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

export const Abstract58: IconComponent = React.forwardRef<
  SVGSVGElement,
  IconProps
>(function Abstract58(
  {
    color = "currentColor",
    fill,
    size = 24,
    strokeWidth,
    strokeLinecap,
    strokeLinejoin,
    strokeDasharray,
    opacity,
    className,
    ...props
  },
  forwardedRef,
) {
  return (
    <svg
      width={size}
      height={size}
      viewBox="0 0 24 24"
      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="M20.4866 20.483C19.7686 21.2009 18.6032 21.2009 17.8853 20.483C17.5482 20.146 17.3197 19.6757 17.0569 19.2796C16.2666 18.0895 15.4363 16.9203 14.6061 15.755C13.8729 14.6963 13.1378 13.6395 12.4047 12.5808C12.2695 12.3865 12.1343 12.1923 11.9991 11.9981C12.6294 12.4341 13.2597 12.8721 13.89 13.3101C15.105 14.1536 16.3199 14.9952 17.5368 15.8388C18.0281 16.1796 19.6677 17.2555 19.9819 17.4745C20.1609 17.5982 20.3323 17.7315 20.4847 17.8838C21.2026 18.6017 21.2026 19.7651 20.4847 20.483H20.4866ZM11.5972 12.5808C10.8641 13.6395 10.129 14.6963 9.39585 15.755C8.56748 16.9203 7.7353 18.0876 6.94501 19.2796C6.68221 19.6757 6.4537 20.146 6.11664 20.483C5.39872 21.2009 4.23327 21.2009 3.51535 20.483C2.79742 19.7651 2.79742 18.6017 3.51535 17.8838C3.66769 17.7315 3.83718 17.5982 4.01809 17.4745C4.3323 17.2555 5.97191 16.1815 6.46322 15.8388C7.67817 14.9952 8.89502 14.1536 10.11 13.3101C10.7403 12.874 11.3706 12.436 12.0009 11.9981C11.8657 12.1923 11.7324 12.3865 11.5972 12.5808ZM12.0009 23.9981C10.986 23.9981 10.1633 23.1755 10.1633 22.1606C10.1633 21.9454 10.1899 21.7302 10.228 21.5151C10.2966 21.138 10.6946 19.2186 10.8012 18.6303C11.0659 17.1755 11.3287 15.7188 11.5915 14.264C11.7286 13.51 11.8657 12.754 12.0009 12C12.0428 12.2323 12.0847 12.4665 12.1285 12.6988C12.3571 13.9651 12.5875 15.2333 12.816 16.4995C13.054 17.9086 13.2921 19.3234 13.5758 20.7248C13.6691 21.1914 13.8405 21.6845 13.8405 22.1625C13.8405 23.1774 13.0178 24 12.0009 24V23.9981ZM10.11 10.6861C8.89502 9.84259 7.67817 9.00094 6.46322 8.1574C5.97191 7.81656 4.3323 6.74262 4.01809 6.52364C3.83908 6.39987 3.66769 6.26467 3.51535 6.11424C2.79742 5.39638 2.79742 4.23293 3.51535 3.51507C4.23327 2.7972 5.39681 2.7972 6.11664 3.51507C6.4537 3.8521 6.68221 4.32244 6.94501 4.71851C7.7353 5.9086 8.56557 7.07776 9.39585 8.2431C10.129 9.30181 10.8641 10.3586 11.5972 11.4173C11.7324 11.6115 11.8676 11.8058 12.0009 12.0019C11.3706 11.5639 10.7403 11.1279 10.11 10.6899V10.6861ZM9.73673 12.4075C8.28184 12.6703 6.82505 12.9349 5.37015 13.1977C4.78172 13.3044 2.86217 13.7023 2.48512 13.7709C2.26993 13.8089 2.05474 13.8356 1.83956 13.8356C0.824561 13.8356 0 13.013 0 11.9981C0 10.9832 0.822656 10.1587 1.83956 10.1587C2.31754 10.1587 2.81075 10.33 3.27731 10.4234C4.67888 10.7071 6.09189 10.9451 7.50108 11.1831C8.76744 11.4116 10.0357 11.642 11.3021 11.8705C11.5363 11.9124 11.7686 11.9543 12.0009 11.9981C11.2468 12.1352 10.4908 12.2723 9.73673 12.4075ZM20.4866 6.11234C20.3342 6.26467 20.1647 6.39797 19.9838 6.52174C19.6696 6.74072 18.03 7.81465 17.5387 8.1555C16.3218 8.99904 15.1069 9.84068 13.8919 10.6842C13.2616 11.1203 12.6313 11.5582 12.0009 11.9962C12.1362 11.802 12.2714 11.6077 12.4066 11.4116C13.1397 10.3529 13.8748 9.29609 14.6079 8.23738C15.4363 7.07394 16.2685 5.90479 17.0588 4.71279C17.3216 4.31672 17.5501 3.84641 17.8872 3.50937C18.6051 2.7915 19.7705 2.7915 20.4885 3.50937C21.2064 4.22724 21.2064 5.39066 20.4885 6.10853L20.4866 6.11234ZM22.1623 13.8356C21.9472 13.8356 21.732 13.8108 21.5168 13.7709C21.1397 13.7023 19.2202 13.3044 18.6318 13.1977C17.1769 12.9349 15.7201 12.6703 14.2652 12.4075C13.5111 12.2704 12.7551 12.1333 12.0009 11.9981C12.2352 11.9562 12.4675 11.9143 12.6998 11.8705C13.9662 11.642 15.2345 11.4116 16.5008 11.1831C17.91 10.9451 19.3249 10.7071 20.7246 10.4234C21.1912 10.33 21.6844 10.1587 22.1623 10.1587C23.1773 10.1587 24 10.9813 24 11.9981C24 13.0149 23.1773 13.8356 22.1623 13.8356ZM13.7758 2.48303C13.7072 2.86005 13.3092 4.77942 13.2026 5.36781C12.9398 6.82258 12.677 8.27927 12.4123 9.73405C12.2752 10.4881 12.14 11.244 12.0029 11.9981C11.961 11.7658 11.9191 11.5316 11.8772 11.2993C11.6487 10.033 11.4182 8.76483 11.1897 7.49857C10.9536 6.08949 10.7136 4.6747 10.4299 3.27514C10.3347 2.80862 10.1652 2.31546 10.1652 1.83752C10.1652 0.8226 10.9879 0 12.0029 0C13.0178 0 13.8424 0.8226 13.8424 1.83752C13.8424 2.05269 13.8158 2.26786 13.7777 2.48303H13.7758Z"
        fill="currentColor"
      />
    </svg>
  );
});

Abstract58.displayName = "Abstract58";

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

export default Abstract58;
