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

export const Nuqs: IconComponent = React.forwardRef<SVGSVGElement, IconProps>(
  function Nuqs(
    {
      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 clipPath="url(#undefined-clip0_2066_937)">
          <path
            d="M12 0C15.1826 0 18.2348 1.26428 20.4853 3.51472C22.7357 5.76516 24 8.8174 24 12C24 15.1826 22.7357 18.2348 20.4853 20.4853C18.2348 22.7357 15.1826 24 12 24C8.8174 24 5.76516 22.7357 3.51472 20.4853C1.26428 18.2348 0 15.1826 0 12C0 8.8174 1.26428 5.76516 3.51472 3.51472C5.76516 1.26428 8.8174 0 12 0Z"
            fill="currentColor"
          />
          <path
            d="M6.66078 4.77184L6.73954 6.52684L6.52579 6.44809C6.60829 5.81059 6.82203 5.34934 7.16703 5.06434C7.51203 4.77934 7.95078 4.63684 8.48328 4.63684C9.12828 4.63684 9.63078 4.83934 9.99079 5.24434C10.3583 5.64934 10.542 6.20059 10.542 6.89809V10.7343H8.84329V7.46059C8.84329 7.11559 8.81328 6.83809 8.75328 6.62809C8.70078 6.41809 8.60703 6.26059 8.47203 6.15559C8.33703 6.04309 8.15704 5.98684 7.93204 5.98684C7.57204 5.98684 7.29829 6.11059 7.11079 6.35809C6.93078 6.60559 6.84079 6.97309 6.84079 7.46059V10.7343H5.13079V4.77184H6.66078ZM17.5041 10.7343L17.4366 9.01309L17.6503 9.09184C17.5678 9.71434 17.3541 10.1681 17.0091 10.4531C16.6641 10.7306 16.2328 10.8693 15.7153 10.8693C15.0778 10.8693 14.5791 10.6668 14.2191 10.2618C13.8591 9.85684 13.6791 9.30559 13.6791 8.60809V4.77184H15.3891V8.04559C15.3891 8.39059 15.4153 8.66809 15.4678 8.87809C15.5203 9.08809 15.6103 9.24934 15.7378 9.36184C15.8728 9.46684 16.0528 9.51934 16.2778 9.51934C16.6228 9.51934 16.8853 9.39559 17.0653 9.14809C17.2528 8.90059 17.3466 8.53309 17.3466 8.04559V4.77184H19.0453V10.7343H17.5041ZM10.6476 13.2093V20.8593H8.9376V17.9343L9.08385 18.0243C8.98635 18.3018 8.8476 18.5381 8.6676 18.7331C8.4876 18.9206 8.27385 19.0631 8.02635 19.1606C7.77885 19.2581 7.5051 19.3068 7.2051 19.3068C6.6651 19.3068 6.2001 19.1718 5.8101 18.9018C5.4276 18.6243 5.13885 18.2531 4.94385 17.7881C4.75635 17.3156 4.6626 16.7831 4.6626 16.1906C4.6626 15.5981 4.75635 15.0693 4.94385 14.6043C5.13885 14.1318 5.4276 13.7606 5.8101 13.4906C6.2001 13.2131 6.6651 13.0743 7.2051 13.0743C7.6701 13.0743 8.06385 13.1831 8.38635 13.4006C8.70885 13.6181 8.9451 13.9331 9.0951 14.3456L8.97135 14.4468L9.01635 13.2093H10.6476ZM8.90385 17.1131C9.00135 16.8356 9.0501 16.5281 9.0501 16.1906C9.0501 15.8606 9.00135 15.5606 8.90385 15.2906C8.80635 15.0131 8.65635 14.7918 8.45385 14.6268C8.25885 14.4543 8.01885 14.3681 7.73385 14.3681C7.30635 14.3681 6.97635 14.5443 6.74385 14.8968C6.51885 15.2418 6.40635 15.6731 6.40635 16.1906C6.40635 16.7156 6.51885 17.1506 6.74385 17.4956C6.97635 17.8406 7.30635 18.0131 7.73385 18.0131C8.01885 18.0131 8.25885 17.9306 8.45385 17.7656C8.65635 17.6006 8.80635 17.3831 8.90385 17.1131ZM17.5746 15.1443C17.5296 14.8743 17.4021 14.6606 17.1921 14.5031C16.9896 14.3381 16.7571 14.2556 16.4946 14.2556C16.2321 14.2556 16.0183 14.3193 15.8533 14.4468C15.6883 14.5743 15.6096 14.7431 15.6171 14.9531C15.6246 15.1556 15.7258 15.3131 15.9208 15.4256C16.1158 15.5306 16.3783 15.6131 16.7083 15.6731C17.3233 15.7706 17.8183 15.8943 18.1933 16.0443C18.5683 16.1868 18.8496 16.3781 19.0371 16.6181C19.2321 16.8581 19.3296 17.1656 19.3296 17.5406C19.3296 17.9306 19.2133 18.2568 18.9808 18.5193C18.7558 18.7818 18.4446 18.9806 18.0471 19.1156C17.6496 19.2431 17.1921 19.3068 16.6746 19.3068C16.0971 19.3068 15.5908 19.2281 15.1558 19.0706C14.7283 18.9056 14.3908 18.6731 14.1433 18.3731C13.8958 18.0656 13.7571 17.7018 13.7271 17.2818L15.4371 17.1918C15.4746 17.3868 15.5421 17.5556 15.6396 17.6981C15.7446 17.8331 15.8796 17.9381 16.0446 18.0131C16.2171 18.0806 16.4158 18.1143 16.6408 18.1143C16.8958 18.1143 17.1171 18.0656 17.3046 17.9681C17.4921 17.8631 17.5858 17.7093 17.5858 17.5068C17.5783 17.3718 17.5333 17.2593 17.4508 17.1693C17.3758 17.0793 17.2746 17.0118 17.1471 16.9668C17.0271 16.9218 16.8621 16.8768 16.6521 16.8318C16.5921 16.8243 16.5171 16.8093 16.4271 16.7868C15.8196 16.6668 15.3358 16.5393 14.9758 16.4043C14.6233 16.2618 14.3496 16.0781 14.1546 15.8531C13.9596 15.6206 13.8621 15.3243 13.8621 14.9643C13.8621 14.5743 13.9671 14.2368 14.1771 13.9518C14.3946 13.6668 14.7058 13.4493 15.1108 13.2993C15.5158 13.1418 15.9996 13.0631 16.5621 13.0631C17.3121 13.0631 17.9271 13.2431 18.4071 13.6031C18.8871 13.9556 19.1796 14.4468 19.2846 15.0768L17.5746 15.1443Z"
            fill="#fff"
          />
        </g>
        <defs>
          <clipPath id="undefined-clip0_2066_937">
            <path fill="#fff" d="M0 0H24V24H0z" />
          </clipPath>
        </defs>
      </svg>
    );
  },
);

Nuqs.displayName = "Nuqs";

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

export default Nuqs;
