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

export const Stimulus: IconComponent = React.forwardRef<
  SVGSVGElement,
  IconProps
>(function Stimulus(
  {
    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_408)">
        <path
          d="M24 13.4241V17.66H19.06C18.6462 17.6435 18.2401 17.5424 17.867 17.3628L17.744 17.3L16.544 16.604C16.3711 16.5147 16.1806 16.4652 15.9862 16.4589C15.7918 16.4526 15.5984 16.4898 15.4202 16.5677L15.344 16.604L13.808 17.504C13.7452 17.5353 13.6918 17.5825 13.653 17.6409C13.6143 17.6994 13.5916 17.767 13.5872 17.837C13.5828 17.9069 13.5969 17.9768 13.628 18.0397C13.6592 18.1025 13.7063 18.156 13.7647 18.1949L13.808 18.22L17.04 20.116C17.4033 20.3126 17.8032 20.4322 18.2147 20.4674L18.352 20.476H24V23.3C23.998 23.4752 23.9311 23.6435 23.8122 23.7723C23.6933 23.901 23.5309 23.9811 23.3564 23.9971L23.296 24H0.703969C0.530616 23.9991 0.363623 23.9346 0.234637 23.8188C0.10565 23.703 0.0236316 23.5438 0.004125 23.3716L0 23.3119V20.4881H5.63203C6.0447 20.4717 6.44958 20.3705 6.82144 20.1908L6.94397 20.128L17.744 13.7841C18.1093 13.5892 18.51 13.4699 18.9224 13.4332L19.06 13.4241H24ZM24 6.35203V10.588H18.368C17.9556 10.6062 17.5511 10.7074 17.1788 10.8858L17.0559 10.948L6.25594 17.296C5.89071 17.4909 5.49 17.6102 5.07769 17.6468L4.93997 17.656H0V13.42H5.63203C6.04445 13.4019 6.44896 13.3006 6.82125 13.1222L6.94406 13.06L17.7441 6.71203C18.1093 6.51717 18.51 6.39783 18.9223 6.36112L19.06 6.35203H24ZM23.2959 1.17698e-08C23.4702 -3.18386e-05 23.6383 0.0645803 23.7677 0.181336C23.8971 0.298091 23.9786 0.458691 23.9964 0.632062L24 0.692062V3.516H18.368C17.9553 3.53239 17.5504 3.63358 17.1786 3.81328L17.056 3.876L6.25603 10.2201C5.89144 10.4165 5.49042 10.5361 5.07778 10.5713L4.93997 10.58H0V6.34406H4.93997C5.35355 6.36227 5.75924 6.46357 6.13284 6.64191L6.25603 6.70406L7.45603 7.40409C7.62886 7.49332 7.81942 7.54287 8.01382 7.54915C8.20823 7.55542 8.40158 7.51826 8.57981 7.44037L8.65603 7.40409L10.192 6.50006C10.2538 6.46841 10.3063 6.42123 10.3443 6.36316C10.3823 6.30509 10.4046 6.23812 10.4089 6.16885C10.4132 6.09957 10.3994 6.03037 10.3688 5.96804C10.3383 5.90571 10.2921 5.8524 10.2347 5.81334L6.96 3.888C6.59608 3.69309 6.19652 3.57373 5.78531 3.53709L5.64797 3.528H0V0.703969C1.43909e-05 0.527263 0.0664749 0.357023 0.186187 0.227047C0.3059 0.0970703 0.47011 0.0168614 0.646219 0.00234376L0.704063 1.17698e-08H23.2961H23.2959Z"
          fill="#77e8b9"
        />
      </g>
      <defs>
        <clipPath id="undefined-clip0_2066_408">
          <path fill="#fff" d="M0 0H24V24H0z" />
        </clipPath>
      </defs>
    </svg>
  );
});

Stimulus.displayName = "Stimulus";

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

export default Stimulus;
