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

export const NestJs: IconComponent = React.forwardRef<SVGSVGElement, IconProps>(
  function NestJs(
    {
      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_397)">
          <path
            d="M13.9047 0.377949C13.7415 0.377949 13.5873 0.413943 13.4512 0.467933C13.7505 0.656901 13.9138 0.917855 13.9954 1.2148C13.9954 1.2598 14.0136 1.28679 14.0226 1.33178L14.0317 1.43077C14.0589 1.94368 13.8957 2.00667 13.7868 2.31261C13.6145 2.69955 13.6598 3.12247 13.8685 3.45541C13.8866 3.50041 13.9047 3.5454 13.941 3.58139C13.7143 2.11465 14.9478 1.88969 15.1836 1.43077C15.2018 1.03483 14.8662 0.764882 14.6031 0.575915C14.3941 0.445283 14.1518 0.376601 13.9047 0.377949ZM15.7823 0.71989C15.7551 0.854866 15.7823 0.818872 15.7732 0.89086L15.7551 1.04383L15.7188 1.17881L15.6734 1.32278L15.6009 1.45776L15.5555 1.52075L15.5192 1.57474C15.492 1.61973 15.4648 1.66473 15.4285 1.69172C15.4013 1.72771 15.3741 1.77271 15.3378 1.7997L15.2199 1.88969C15.0929 1.98867 14.9478 2.06066 14.8299 2.15064C14.7846 2.17764 14.7392 2.19563 14.712 2.24063C14.6666 2.25862 14.6304 2.29462 14.5941 2.33061L14.4943 2.43859L14.4036 2.55557L14.322 2.67255L14.2585 2.80753L14.2131 2.9425C14.1961 2.98988 14.181 3.03791 14.1678 3.08648L14.1587 3.16746L14.1496 3.23045L14.1406 3.38343V3.48241L14.1678 3.62638C14.1678 3.68037 14.1768 3.71637 14.195 3.77036L14.2403 3.90534L14.2766 3.99532L12.9342 3.47341L12.2539 3.29344L11.8911 3.20346C11.5371 3.13491 11.1799 3.08385 10.8208 3.05048H10.7846C9.82053 2.9475 8.84676 2.97778 7.89113 3.14047L7.61902 3.19446C7.43761 3.22145 7.26528 3.26645 7.10201 3.30244L6.8299 3.37443L6.58501 3.48241L6.38546 3.57239L6.35825 3.58139L6.19498 3.67138L6.14963 3.68037L5.96823 3.77036L5.85938 3.83335L5.80496 3.86034L5.65076 3.95033L5.50564 4.04031L5.38773 4.1213L5.37866 4.1303L5.26074 4.22028L5.17004 4.29227L5.13376 4.31926L5.04306 4.39125C5.04306 4.40925 5.03399 4.40925 5.02492 4.41825L4.91607 4.50823V4.52623C4.87072 4.55322 4.83444 4.58922 4.80723 4.62521L4.78909 4.63421L4.69838 4.72419C4.69838 4.74219 4.67117 4.75119 4.6621 4.76919L4.5714 4.86817L4.53512 4.89516L4.40813 5.03914L4.38999 5.05714C4.20116 5.26194 3.98796 5.44323 3.75507 5.59704C3.41617 5.82651 3.04681 6.00821 2.65757 6.13695C2.41267 6.18194 2.1587 6.28092 1.94101 6.29892L1.79589 6.31692L1.65077 6.35291L1.50564 6.4069L1.36959 6.46989L1.2426 6.55088C1.19725 6.57787 1.1519 6.61386 1.12469 6.64986C1.07934 6.67685 1.03399 6.72185 1.00677 6.75784L0.907001 6.87482L0.816298 7.0008L0.734666 7.13577L0.671174 7.28875L0.616752 7.44172L0.589541 7.5767V7.59469L0.544189 7.75667V7.94563C0.551922 8.02085 0.573439 8.09404 0.607681 8.16159L0.671174 8.26958L0.743736 8.37756C0.810611 8.44401 0.883477 8.50425 0.961423 8.55753C1.09748 8.6835 1.13376 8.7285 1.31516 8.81848L1.40587 8.86347H1.42401V8.89947C1.44261 8.99579 1.47307 9.08947 1.51471 9.17842L1.56006 9.2864L1.56913 9.31339C1.61852 9.40049 1.67304 9.48462 1.7324 9.56535L1.8231 9.67333L1.94101 9.77231H1.95009C2.0914 9.89687 2.25863 9.98903 2.43988 10.0423L2.46709 10.0513L2.53965 10.0693C2.52151 10.3842 2.51244 10.6812 2.56686 10.7891C2.61222 10.8971 2.87526 10.5462 3.12922 10.1412C3.09294 10.5372 3.0748 11.0141 3.12922 11.1491C3.19272 11.293 3.54646 10.8431 3.85485 10.3392C4.801 10.1115 5.78551 10.0888 6.74132 10.2726C7.69712 10.4564 8.60178 10.8423 9.39368 11.4042C10.1856 11.9661 10.8461 12.6907 11.3303 13.5287C11.8145 14.3667 12.111 15.2983 12.1995 16.2602C12.127 15.6303 11.3469 15.2884 10.9841 15.3693C10.8027 15.8013 10.5124 16.3592 10.0317 16.7011C10.068 16.3142 10.0499 15.9182 9.96823 15.5313C9.84124 16.0712 9.58727 16.5661 9.2426 16.9981C8.97408 17.0162 8.70522 16.9681 8.45994 16.8582C8.21465 16.7483 8.00056 16.58 7.83671 16.3682L7.79135 16.2962L7.746 16.1702L7.70972 16.0532V15.8373C7.70972 15.7923 7.71879 15.7473 7.73693 15.7113C7.73693 15.6753 7.75507 15.6303 7.77321 15.5943L7.84578 15.4683C7.93648 15.1984 7.93648 14.9644 7.75507 14.8384L7.6553 14.7754L7.57367 14.7484L7.52832 14.7305L7.40133 14.7035C7.363 14.6923 7.32335 14.6863 7.28342 14.6855L7.15643 14.6765H7.06573L6.93875 14.6945L6.81176 14.7215L6.69385 14.7574L6.57594 14.8114L6.45802 14.8744C5.09748 15.7563 5.9138 17.8259 6.83897 18.4288C6.4943 18.4918 6.13149 18.5638 6.03172 18.6358L6.02265 18.6538C6.56087 18.9721 7.14978 19.1973 7.76414 19.3197C8.50374 19.4627 9.26489 19.4557 10.0017 19.2989C10.7384 19.1421 11.4355 18.8389 12.0509 18.4075C12.6663 17.9761 13.1872 17.4255 13.5822 16.7889C13.9772 16.1523 14.2381 15.4429 14.3492 14.7035L14.3855 14.8564C14.4036 14.9644 14.4308 15.0724 14.4399 15.1894L14.458 15.3423V15.3693L14.4762 15.5133L14.4852 15.7113V16.1972L14.4762 16.2692V16.4042C14.458 16.4222 14.458 16.4402 14.458 16.4492C14.458 16.5031 14.458 16.5391 14.4399 16.5841V16.6381C14.4399 16.7011 14.4217 16.7461 14.4127 16.8091V16.8181L14.3764 16.9801V16.9981C14.3764 17.052 14.3582 17.106 14.3401 17.16V17.178L14.2948 17.34V17.358L14.2494 17.52V17.529L14.195 17.7089L14.1315 17.8709L14.0589 18.0419L13.9954 18.2128C13.9592 18.2578 13.941 18.3208 13.9047 18.3748L13.8957 18.4108C13.8957 18.4108 13.8957 18.4288 13.8775 18.4288C13.4913 19.1978 12.9291 19.8665 12.2358 20.3815L12.0907 20.4805C12.0907 20.4984 12.0635 20.4984 12.0544 20.5164L11.9274 20.6064L11.9455 20.6334L12.1904 20.5974H12.1995C12.3969 20.5661 12.5935 20.5301 12.7891 20.4894L12.8707 20.4715L12.9886 20.4445L13.0975 20.4175C13.678 20.2825 14.2494 20.0845 14.7936 19.8596C13.8685 21.1193 12.6168 22.1362 11.1564 22.811C12.7106 22.7066 14.2138 22.219 15.53 21.3925C16.8462 20.566 17.9337 19.4267 18.6938 18.0779C18.449 19.4276 17.9138 20.6964 17.1156 21.8122C18.1885 21.1105 19.1017 20.1941 19.7968 19.1218C20.4919 18.0495 20.9534 16.8449 21.1519 15.5853C21.3514 16.5031 21.4059 17.448 21.3152 18.3838C25.551 12.5348 21.678 6.46089 20.0453 4.85917L20.0363 4.83217V4.84117L20.0272 4.83217L20.009 5.03914C19.9941 5.16854 19.976 5.29756 19.9546 5.42607L19.8548 5.813C19.7689 6.06111 19.6627 6.30187 19.5374 6.53288C19.3051 6.94287 19.001 7.30852 18.6394 7.61269L18.5034 7.73867C18.2978 7.90624 18.0724 8.04827 17.8322 8.16159L17.4694 8.32357C17.2168 8.41768 16.9555 8.487 16.6893 8.53053L16.2902 8.58452C15.9288 8.6036 15.5664 8.57943 15.2109 8.51253L14.8208 8.41355C15.4857 8.35506 16.1281 8.14571 16.6984 7.80166L17.0249 7.5677L17.3242 7.30674L17.5963 7.01879C17.687 6.91981 17.7687 6.81183 17.8412 6.70385C17.8594 6.69485 17.8685 6.66785 17.8775 6.64986L18.0499 6.37091C18.1792 6.14185 18.2855 5.90073 18.3673 5.65103C18.4036 5.52505 18.4399 5.39008 18.458 5.2641C18.4852 5.12912 18.5124 5.00314 18.5215 4.87717L18.5487 4.48124L18.5397 4.20228L18.4852 3.81535C18.4671 3.68037 18.4399 3.5454 18.3945 3.41942C18.3582 3.30244 18.322 3.17646 18.2675 3.05048C18.2222 2.92451 18.1678 2.80753 18.1043 2.69055L17.9047 2.34861C17.7515 2.13162 17.5849 1.92426 17.4059 1.72771C17.094 1.40562 16.7251 1.14329 16.3174 0.953849C16.1451 0.836869 15.9637 0.77388 15.7823 0.71989Z"
            fill="#e0234e"
            fillRule="evenodd"
            clipRule="evenodd"
          />
        </g>
        <defs>
          <clipPath id="undefined-clip0_2066_397">
            <path fill="#fff" d="M0 0H24V23H0z" />
          </clipPath>
        </defs>
      </svg>
    );
  },
);

NestJs.displayName = "NestJs";

NestJs.metadata = {
  name: "NestJs",
  category: "icon/framework",
  tags: ["nest", "js", "icon"],
  description: "NestJs icon from icon/framework category",
  type: ["stroke", "icon"],
} as IconMetadata;

export default NestJs;
