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

export const Redux: IconComponent = React.forwardRef<SVGSVGElement, IconProps>(
  function Redux(
    {
      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_907)">
          <path
            d="M16.6295 16.475C17.5151 16.3833 18.187 15.6198 18.1565 14.7035C18.126 13.7873 17.3624 13.0542 16.4462 13.0542H16.3852C15.4383 13.0848 14.7053 13.8788 14.7359 14.8256C14.7665 15.2838 14.9497 15.6808 15.2245 15.9557C14.1862 18.0021 12.598 19.4986 10.2158 20.7508C8.59715 21.606 6.91744 21.9114 5.23772 21.6977C3.86334 21.5144 2.79441 20.9036 2.12241 19.8956C1.14516 18.3991 1.05356 16.7803 1.87819 15.1616C2.4585 14.001 3.37462 13.1458 3.95494 12.7182C3.83278 12.3212 3.6495 11.6493 3.55791 11.1607C-0.870564 14.3676 -0.412407 18.7045 0.931405 20.7508C1.93922 22.278 3.9855 23.2248 6.24553 23.2248C6.85631 23.2248 7.46709 23.1637 8.07797 23.011C11.9872 22.2474 14.9497 19.9262 16.6295 16.475ZM22.0047 12.6877C19.6836 9.96947 16.263 8.47294 12.3537 8.47294H11.8651C11.5902 7.92319 11.0099 7.55662 10.3686 7.55662H10.3074C9.36075 7.58719 8.62781 8.38125 8.65828 9.32812C8.68884 10.2443 9.45234 10.9774 10.3686 10.9774H10.4296C11.1015 10.9468 11.6818 10.5192 11.9261 9.93891H12.4759C14.797 9.93891 16.9959 10.6108 18.9812 11.9242C20.5082 12.9321 21.6077 14.2454 22.2185 15.8335C22.7377 17.1163 22.7071 18.3685 22.1573 19.4376C21.3022 21.0562 19.8668 21.942 17.9733 21.942C16.7516 21.942 15.5911 21.5754 14.9802 21.3006C14.6443 21.606 14.0334 22.0946 13.6058 22.4002C14.9192 23.0109 16.263 23.3469 17.5457 23.3469C20.4776 23.3469 22.6461 21.7282 23.4707 20.1095C24.3563 18.338 24.2952 15.2838 22.0047 12.6877ZM6.48984 16.9941C6.5204 17.9104 7.28391 18.6433 8.20012 18.6433H8.26125C9.20803 18.6128 9.94097 17.8187 9.9104 16.8719C9.87994 15.9556 9.11634 15.2227 8.20012 15.2227H8.13909C8.07797 15.2227 7.98628 15.2227 7.92534 15.2531C6.67312 13.1763 6.15394 10.9163 6.33722 8.47284C6.45928 6.64031 7.07016 5.05209 8.13909 3.73875C9.02475 2.60869 10.735 2.05894 11.8957 2.02847C15.1329 1.96734 16.5072 5.99887 16.5989 7.61766C16.9959 7.70925 17.6678 7.92309 18.126 8.07581C17.7594 3.12806 14.7053 0.5625 11.7735 0.5625C9.02475 0.5625 6.48984 2.54775 5.48194 5.47978C4.07709 9.38916 4.99331 13.1458 6.70359 16.1084C6.55097 16.3222 6.45928 16.6581 6.48984 16.9941Z"
            fill="#764abc"
          />
        </g>
        <defs>
          <clipPath id="undefined-clip0_2066_907">
            <path fill="#fff" d="M0 0H24V24H0z" />
          </clipPath>
        </defs>
      </svg>
    );
  },
);

Redux.displayName = "Redux";

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

export default Redux;
