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

export const Abstract43: IconComponent = React.forwardRef<
  SVGSVGElement,
  IconProps
>(function Abstract43(
  {
    color = "currentColor",
    fill,
    size = 24,
    strokeWidth,
    strokeLinecap,
    strokeLinejoin,
    strokeDasharray,
    opacity,
    className,
    ...props
  },
  forwardedRef,
) {
  return (
    <svg
      width={size}
      height={size}
      viewBox="0 0 25 25"
      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.0437 14.8658L17.8057 17.1036C17.725 16.8025 17.6778 16.4856 17.6778 16.1589C17.6778 14.1375 19.3174 12.498 21.3389 12.498C23.3603 12.498 25 14.1356 25 16.1589C25 18.1822 23.3603 19.8197 21.3389 19.8197C21.0121 19.8197 20.6952 19.7725 20.3941 19.6918L22.634 17.452C23.3486 16.7375 23.3486 15.5783 22.634 14.8638C21.9195 14.1493 20.7602 14.1493 20.0457 14.8638L20.0437 14.8658ZM16.1602 19.5068H12.9931C13.6249 18.4144 14.8059 17.6763 16.1602 17.6763C18.1817 17.6763 19.8213 19.3158 19.8213 21.3372C19.8213 23.3585 18.1817 24.998 16.1602 24.998C14.8059 24.998 13.6269 24.26 12.9931 23.1676H16.1602C17.1719 23.1676 17.9907 22.3488 17.9907 21.3372C17.9907 20.3255 17.1719 19.5068 16.1602 19.5068ZM7.54467 22.6323C8.25918 23.3467 9.41854 23.3467 10.1331 22.6323C10.8476 21.9178 10.8476 20.7585 10.1331 20.0441L7.89504 17.8062C8.1962 17.7255 8.51311 17.6783 8.83986 17.6783C10.8614 17.6783 12.501 19.3178 12.501 21.3392C12.501 23.3605 10.8614 25 8.83986 25C6.81837 25 5.17874 23.3605 5.17874 21.3392C5.17874 21.0124 5.22596 20.6956 5.30666 20.3944L7.54664 22.6342L7.54467 22.6323ZM3.66112 12.5C5.68262 12.5 7.32225 14.1375 7.32225 16.1608C7.32225 16.4876 7.27503 16.8044 7.19432 17.1056L4.95631 14.8677C4.2418 14.1533 3.08244 14.1533 2.36793 14.8677C1.65342 15.5822 1.65342 16.7415 2.36793 17.4559L4.60791 19.6957C4.30675 19.7764 3.98984 19.8236 3.66309 19.8236C1.6416 19.8236 0.00197027 18.1841 0.00197027 16.1628C0.00197027 14.1415 1.6416 12.502 3.66309 12.502L3.66112 12.5ZM7.32225 8.83915C7.32225 10.1933 6.58413 11.3722 5.4917 12.006V8.83915C5.4917 7.8275 4.67286 7.00873 3.66112 7.00873C2.64939 7.00873 1.83057 7.8275 1.83057 8.83915V12.006C0.73814 11.3722 0 10.1933 0 8.83915C0 6.81782 1.63963 5.17832 3.66112 5.17832C5.68262 5.17832 7.32225 6.81782 7.32225 8.83915ZM8.83986 7.32365C8.51311 7.32365 8.1962 7.27641 7.89504 7.19572L10.1331 4.95788C10.8476 4.24343 10.8476 3.08416 10.1331 2.3697C9.41854 1.65525 8.25918 1.65525 7.54467 2.3697L5.30469 4.60951C5.22399 4.30837 5.17677 3.9915 5.17677 3.66478C5.17677 1.64344 6.8164 0.00394023 8.83789 0.00394023C10.8594 0.00394023 12.499 1.64344 12.499 3.66478C12.499 5.68611 10.8594 7.32561 8.83789 7.32561L8.83986 7.32365ZM17.4553 2.36774C16.7408 1.65329 15.5815 1.65329 14.8669 2.36774C14.1524 3.0822 14.1524 4.24146 14.8669 4.95591L17.1049 7.19375C16.8038 7.27444 16.4869 7.32168 16.1602 7.32168C14.1387 7.32168 12.499 5.68217 12.499 3.66084C12.499 1.6395 14.1367 0 16.1602 0C18.1836 0 19.8213 1.6395 19.8213 3.66084C19.8213 3.98756 19.774 4.30444 19.6933 4.60558L17.4533 2.36577L17.4553 2.36774ZM23.1694 12.006V8.83915C23.1694 7.8275 22.3506 7.00873 21.3389 7.00873C20.3271 7.00873 19.5083 7.8275 19.5083 8.83915V12.006C18.4159 11.3722 17.6778 10.1933 17.6778 8.83915C17.6778 6.81782 19.3174 5.17832 21.3389 5.17832C23.3603 5.17832 25 6.81782 25 8.83915C25 10.1933 24.2619 11.3722 23.1694 12.006Z"
        fill="currentColor"
        fillRule="evenodd"
        clipRule="evenodd"
      />
    </svg>
  );
});

Abstract43.displayName = "Abstract43";

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

export default Abstract43;
