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

export const ReactLib: IconComponent = React.forwardRef<
  SVGSVGElement,
  IconProps
>(function ReactLib(
  {
    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}
    >
      <g fill="#087ea4" clipPath="url(#undefined-clip0_2066_898)">
        <path d="M12.0422 9.63672C10.7726 9.63672 9.74341 10.6852 9.74341 11.9785C9.74341 13.2719 10.7726 14.3203 12.0422 14.3203C13.3118 14.3203 14.3409 13.2719 14.3409 11.9785C14.3409 10.6852 13.3118 9.63672 12.0422 9.63672Z" />
        <path d="M23.9983 11.9998C23.9983 10.1613 22.3271 8.54881 19.6661 7.48765C19.7017 7.24867 19.7339 7.01228 19.7567 6.7802C20.0192 4.1385 19.3944 2.23185 17.9983 1.41053C16.4363 0.491715 14.23 1.15861 11.9992 2.97726C9.76831 1.15861 7.56201 0.491715 6 1.41053C4.60392 2.23185 3.97912 4.1385 4.24157 6.7802C4.26443 7.01228 4.29575 7.24953 4.33216 7.48937C4.11034 7.57565 3.89276 7.6671 3.68365 7.76286C1.30803 8.85077 0 10.3571 0 11.9998C0 13.8382 1.67123 15.4507 4.33216 16.5119C4.29575 16.7508 4.26443 16.9872 4.24157 17.2193C3.97912 19.861 4.60392 21.7677 6 22.589C6.47999 22.8663 7.02388 23.008 7.57556 22.9996C8.89798 22.9996 10.4422 22.2905 11.9992 21.0223C13.5552 22.2905 15.1003 22.9996 16.4244 22.9996C16.9761 23.0079 17.52 22.8661 18 22.589C19.3961 21.7677 20.0209 19.861 19.7584 17.2193C19.7356 16.9872 19.7034 16.7508 19.6678 16.5119C22.3288 15.4524 24 13.8374 24 11.9998M16.4143 2.16456C16.769 2.15584 17.1196 2.24338 17.4302 2.41821C18.3996 2.98847 18.8348 4.53536 18.6231 6.66201C18.6087 6.80695 18.5918 6.95361 18.5715 7.10114C17.465 6.7616 16.3321 6.51943 15.185 6.3773C14.4896 5.43541 13.7164 4.55594 12.8737 3.74855C14.197 2.70636 15.439 2.16456 16.4134 2.16456M15.9588 14.3291C15.5306 15.0865 15.0643 15.8208 14.5619 16.5291C13.7102 16.6183 12.8545 16.6626 11.9983 16.662C11.1424 16.6626 10.287 16.6183 9.43559 16.5291C8.93445 15.8208 8.4696 15.0864 8.0429 14.3291C7.61473 13.5739 7.2256 12.7964 6.8771 11.9998C7.2256 11.2031 7.61473 10.4256 8.0429 9.67037C8.46893 8.91611 8.93234 8.18442 9.43135 7.47816C10.2843 7.38679 11.1415 7.34129 11.9992 7.34184C12.8551 7.34132 13.7104 7.38566 14.5619 7.4747C15.0626 8.18206 15.5277 8.91489 15.9554 9.67037C16.3832 10.4258 16.7724 11.2033 17.1212 11.9998C16.7724 12.7962 16.3832 13.5737 15.9554 14.3291M17.7037 13.4664C17.9724 14.213 18.193 14.9767 18.364 15.7527C17.6216 15.9885 16.8648 16.1744 16.0985 16.3091C16.3897 15.8617 16.6719 15.3961 16.9451 14.9124C17.2152 14.4344 17.4683 13.9521 17.7071 13.4699M10.3914 17.7741C10.918 17.8068 11.4556 17.8258 12 17.8258C12.5444 17.8258 13.0854 17.8068 13.6128 17.7741C13.1127 18.3844 12.574 18.9608 12 19.4995C11.4273 18.9609 10.8899 18.3845 10.3914 17.7741ZM7.90066 16.3074C7.13409 16.1733 6.37699 15.988 5.63426 15.7527C5.80465 14.978 6.02439 14.2154 6.29208 13.4699C6.52744 13.9521 6.77974 14.4344 7.05404 14.9124C7.32835 15.3903 7.61197 15.8614 7.90066 16.3091M6.29208 10.5288C6.02535 9.78599 5.80618 9.02634 5.63595 8.25462C6.37684 8.01905 7.13191 7.83259 7.89643 7.69643C7.60689 8.14246 7.32327 8.60489 7.04981 9.08716C6.77635 9.56943 6.5266 10.0457 6.28785 10.5288M13.6077 6.2246C13.0811 6.19182 12.5435 6.17284 11.9949 6.17284C11.4508 6.17284 10.9146 6.19009 10.3863 6.2246C10.8848 5.61414 11.4222 5.03774 11.9949 4.49913C12.5691 5.03759 13.1079 5.614 13.6077 6.2246ZM16.9434 9.08716C16.6691 8.60288 16.3855 8.137 16.0926 7.68953C16.8609 7.82426 17.6197 8.01044 18.364 8.24685C18.1933 9.02143 17.9735 9.78396 17.7062 10.5297C17.4709 10.0474 17.2177 9.56511 16.9443 9.08802M5.37858 6.66287C5.16439 4.53709 5.60209 2.98934 6.57062 2.41907C6.88132 2.24451 7.23187 2.15699 7.58657 2.16542C8.56103 2.16542 9.80302 2.70722 11.1263 3.74941C10.2831 4.55738 9.50924 5.43742 8.81332 6.37989C7.66657 6.52269 6.53372 6.76396 5.42684 7.10114C5.40737 6.95361 5.38959 6.80781 5.37604 6.66287M4.15267 8.82489C4.28305 8.76737 4.41597 8.70986 4.55143 8.65234C4.81774 9.79724 5.17885 10.9171 5.63087 11.9998C5.17799 13.0846 4.81659 14.2067 4.55059 15.3541C2.3934 14.4525 1.14294 13.2033 1.14294 11.9998C1.14294 10.8592 2.24354 9.70229 4.15267 8.82489ZM6.57062 21.5804C5.60209 21.0102 5.16439 19.4624 5.37858 17.3366C5.39213 17.1917 5.40991 17.0459 5.42938 16.8975C6.53583 17.237 7.66881 17.4791 8.81586 17.6213C9.51144 18.5636 10.2847 19.4436 11.1271 20.2518C9.28235 21.7038 7.59673 22.1826 6.57316 21.5804M18.6223 17.3366C18.8339 19.4633 18.3988 21.0102 17.4294 21.5804C16.4067 22.1844 14.7202 21.7038 12.8763 20.2518C13.7184 19.4436 14.4914 18.5636 15.1867 17.6213C16.3337 17.4792 17.4667 17.2371 18.5732 16.8975C18.5935 17.0459 18.6104 17.1917 18.6248 17.3366M19.4528 15.3524C19.186 14.2057 18.8244 13.0841 18.3717 11.9998C18.8242 10.9148 19.1856 9.79266 19.452 8.64544C21.6049 9.547 22.8588 10.7962 22.8588 11.9998C22.8588 13.2033 21.6083 14.4525 19.4511 15.3541" />
      </g>
      <defs>
        <clipPath id="undefined-clip0_2066_898">
          <path fill="#fff" transform="translate(0 1)" d="M0 0H24V22H0z" />
        </clipPath>
      </defs>
    </svg>
  );
});

ReactLib.displayName = "ReactLib";

ReactLib.metadata = {
  name: "ReactLib",
  category: "icon/library",
  tags: ["react", "lib", "icon"],
  description: "ReactLib icon from icon/library category",
  type: ["stroke", "icon"],
} as IconMetadata;

export default ReactLib;
