import * as React from "react";
import type { IconProps, IconMetadata, IconComponent } from "../../types";

export const Abstract159: IconComponent = React.forwardRef<
  SVGSVGElement,
  IconProps
>(function Abstract159(
  {
    color = "currentColor",
    fill,
    size = 24,
    strokeWidth,
    strokeLinecap,
    strokeLinejoin,
    strokeDasharray,
    opacity,
    className,
    ...props
  },
  forwardedRef,
) {
  return (
    <svg
      width={size}
      height={size}
      viewBox="0 0 23 23"
      fill="none"
      xmlns="http://www.w3.org/2000/svg"
      className={className}
      strokeWidth={strokeWidth}
      strokeLinecap={strokeLinecap}
      strokeLinejoin={strokeLinejoin}
      strokeDasharray={strokeDasharray}
      opacity={opacity}
      {...props}
      ref={forwardedRef}
    >
      <path
        d="M12.2808 23C13.0735 21.9351 13.4763 19.2773 13.6823 16.7704C14.5044 17.4638 15.2916 18.08 16.0145 18.5986C17.7783 19.8585 18.7421 20.2301 19.3123 20.2301C19.6341 20.2301 19.8273 20.1123 19.9689 19.9707C20.3643 19.5753 20.5648 18.7679 18.5986 16.0126C18.0818 15.2916 17.4657 14.5026 16.7704 13.6823C19.2773 13.4763 21.9351 13.0735 23 12.2808V23H12.2826H12.2808ZM16.7704 9.31772C17.4657 8.49556 18.0818 7.70835 18.5986 6.98736C20.5648 4.23214 20.3643 3.42471 19.9726 3.0311C19.5771 2.63566 18.7697 2.43519 16.0145 4.40137C15.2935 4.9182 14.5044 5.53434 13.6823 6.22958C13.4763 3.72451 13.0735 1.06493 12.2808 0H22.9982V10.7192C21.9351 9.92651 19.2755 9.52371 16.7686 9.31772H16.7704ZM14.7822 10.1399C15.207 10.1601 15.6135 10.1858 16.0016 10.2116C19.9689 10.4948 22.1153 11.111 22.4887 11.5009C22.1153 11.8908 19.9689 12.507 16.0016 12.7902C15.6135 12.816 15.2052 12.8417 14.7822 12.862C15.0673 13.1728 15.3358 13.4781 15.5878 13.7669C18.1995 16.7759 19.281 18.7311 19.2718 19.2718H19.2626C18.7127 19.2718 16.7612 18.1866 13.7669 15.5878C13.4744 15.3358 13.1728 15.0672 12.862 14.784C12.8417 15.2089 12.816 15.6153 12.7902 16.0034C12.5088 19.9707 11.8927 22.1171 11.5009 22.4905C11.111 22.1171 10.4948 19.9707 10.2116 16.0034C10.1858 15.6153 10.1583 15.2089 10.1399 14.784C9.82903 15.0691 9.52739 15.3376 9.23495 15.5878C6.24062 18.1866 4.28732 19.2718 3.73922 19.2718H3.73003C3.72083 18.7311 4.80232 16.7759 7.41407 13.7669C7.66605 13.4781 7.93459 13.1728 8.21783 12.862C7.79296 12.8417 7.38648 12.816 6.9984 12.7902C3.03111 12.507 0.884686 11.8908 0.511315 11.5009C0.884686 11.111 3.03111 10.4948 6.9984 10.2116C7.38648 10.1858 7.79296 10.1601 8.21783 10.1399C7.93275 9.82903 7.66421 9.5237 7.41407 9.23494C4.80232 6.2259 3.71899 4.27078 3.73003 3.73003C4.27813 3.71716 6.23143 4.80049 9.23495 7.41224C9.52739 7.66422 9.82903 7.93275 10.1399 8.21784C10.1583 7.79297 10.1858 7.38833 10.2116 7.00025C10.4948 3.03296 11.1092 0.886532 11.5009 0.513162C11.8908 0.886532 12.507 3.03296 12.7902 7.00025C12.8178 7.38833 12.8436 7.79481 12.862 8.21968C13.1728 7.93459 13.4744 7.66606 13.7669 7.41592C16.7612 4.81704 18.7127 3.73187 19.2626 3.73187H19.2718C19.281 4.27262 18.1977 6.22774 15.5878 9.23678C15.3358 9.52554 15.0673 9.83087 14.7822 10.1417V10.1399ZM9.31771 6.22958C8.49556 5.53434 7.70836 4.92004 6.98736 4.40137C4.23215 2.43519 3.42471 2.63566 3.03111 3.02926C2.63567 3.4247 2.43519 4.23214 4.40136 6.98736C4.91819 7.70835 5.53435 8.4974 6.22959 9.31772C3.72267 9.52371 1.06493 9.92651 0 10.7192V0H10.7192C9.92651 1.06493 9.52371 3.72267 9.31771 6.22958ZM0 23V12.2808C1.06309 13.0735 3.72267 13.4763 6.22959 13.6823C5.53435 14.5044 4.92003 15.2916 4.40136 16.0126C2.43519 18.7679 2.63567 19.5753 3.02927 19.9689C3.17273 20.1124 3.36769 20.2301 3.68772 20.2301C4.2579 20.2301 5.22351 19.8585 6.98553 18.5986C7.70652 18.0818 8.49556 17.4657 9.31587 16.7704C9.52187 19.2755 9.92467 21.9351 10.7174 23H0Z"
        fill="currentColor"
      />
    </svg>
  );
});

Abstract159.displayName = "Abstract159";

Abstract159.metadata = {
  name: "Abstract159",
  category: "shapes/abstract",
  tags: ["abstract", "159", "icon"],
  description: "Abstract159 icon from shapes/abstract category",
  type: ["stroke", "icon"],
} as IconMetadata;

export default Abstract159;
