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

export const Upstash: IconComponent = React.forwardRef<
  SVGSVGElement,
  IconProps
>(function Upstash(
  {
    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_2062_3092)">
        <path
          d="M3 21.003C6.97645 24.9833 13.4236 24.9833 17.4001 21.003C21.3765 17.0227 21.3765 10.5692 17.4001 6.58887L15.6001 8.39063C18.5824 11.3759 18.5824 16.216 15.6001 19.2012C12.6177 22.1865 7.78237 22.1865 4.8 19.2012L3 21.0029V21.003Z"
          fill="#00c98d"
        />
        <path
          d="M6.60007 17.3993C8.58829 19.3895 11.8118 19.3895 13.8001 17.3993C15.7883 15.4093 15.7883 12.1825 13.8001 10.1923L12.0001 11.9941C12.9943 12.9891 12.9943 14.6025 12.0001 15.5976C11.006 16.5927 9.39422 16.5927 8.40007 15.5976L6.60007 17.3993ZM21.0001 2.9852C17.0236 -0.995068 10.5765 -0.995068 6.60007 2.9852C2.62355 6.96561 2.62355 13.419 6.60007 17.3993L8.40007 15.5976C5.41776 12.6124 5.41769 7.77225 8.4 4.78703C11.3824 1.80174 16.2177 1.80174 19.2 4.78703L21.0001 2.9852Z"
          fill="#00c98d"
        />
        <path
          d="M17.4 6.58882C15.4118 4.59865 12.1881 4.59865 10.2 6.58882C8.21167 8.57899 8.21167 11.8057 10.2 13.7959L12 11.9941C11.0057 10.999 11.0057 9.3857 12 8.39058C12.994 7.39546 14.6057 7.39546 15.6 8.39058L17.4 6.58882Z"
          fill="#00c98d"
        />
        <path
          d="M21.0001 2.9852C17.0236 -0.995068 10.5765 -0.995068 6.60007 2.9852C2.62355 6.96561 2.62355 13.419 6.60007 17.3993L8.4 15.5976C5.41769 12.6124 5.41769 7.77225 8.4 4.78703C11.3824 1.80174 16.2177 1.80174 19.2 4.78703L21.0001 2.9852Z"
          fill="#fff"
          fillOpacity=".4"
        />
        <path
          d="M17.4 6.58882C15.4118 4.59865 12.1881 4.59865 10.2 6.58882C8.21167 8.57899 8.21167 11.8057 10.2 13.7959L12 11.9941C11.0057 10.999 11.0057 9.3857 12 8.39058C12.994 7.39546 14.6057 7.39546 15.6 8.39058L17.4 6.58882Z"
          fill="#fff"
          fillOpacity=".4"
        />
      </g>
      <defs>
        <clipPath id="undefined-clip0_2062_3092">
          <path fill="#fff" transform="translate(3)" d="M0 0H18V24H0z" />
        </clipPath>
      </defs>
    </svg>
  );
});

Upstash.displayName = "Upstash";

Upstash.metadata = {
  name: "Upstash",
  category: "icon/database",
  tags: ["upstash", "icon"],
  description: "Upstash icon from icon/database category",
  type: ["stroke", "icon"],
} as IconMetadata;

export default Upstash;
