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

interface ClaudeAIProps extends IconProps {
  type?: "wordmark" | "icon";
}

export const ClaudeAI: IconComponent<ClaudeAIProps> = React.forwardRef<
  SVGSVGElement,
  ClaudeAIProps
>(function ClaudeAI(
  {
    color = "currentColor",
    fill,
    size = 24,
    strokeWidth,
    strokeLinecap,
    strokeLinejoin,
    strokeDasharray,
    opacity,
    className,
    type = "icon",
    ...props
  },
  forwardedRef,
) {
  if (type === "wordmark") {
    return (
      <svg
        width={size}
        height={size}
        viewBox="0 0 112 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_2011_437)">
          <path
            d="M4.71712 15.9541L9.4465 13.3071L9.52547 13.0765L9.4465 12.9491H9.21506L8.42384 12.9004L5.72141 12.8276L3.37816 12.7305L1.10775 12.6092L0.535719 12.4876L0 11.7833L0.0546875 11.4314L0.535719 11.1096L1.22347 11.1703L2.74509 11.2735L5.02753 11.4314L6.68303 11.5285L9.13609 11.7833H9.52547L9.58016 11.6256L9.4465 11.5285L9.34303 11.4314L6.98141 9.83476L4.42488 8.14713L3.08612 7.17578L2.36162 6.684L1.99631 6.22255L1.83816 5.21476L2.4955 4.49258L3.37816 4.55302L3.60347 4.61389L4.49816 5.29985L6.40916 6.77498L8.90466 8.60836L9.26997 8.91185L9.41609 8.80865L9.43425 8.736L9.26997 8.46262L7.91263 6.01615L6.46406 3.52713L5.81875 2.49513L5.64834 1.87593C5.58753 1.62087 5.54488 1.40836 5.54488 1.1472L6.29366 0.133745L6.70753 0L7.70569 0.133527L8.12569 0.497891L8.7465 1.91236L9.75078 4.14022L11.3089 7.16967L11.7655 8.06815L12.0089 8.89985L12.1002 9.15469H12.2585V9.00916L12.3863 7.3032L12.6236 5.20865L12.8551 2.51324L12.934 1.7544L13.3114 0.843927L14.0602 0.352145L14.6442 0.631418L15.1255 1.31738L15.0583 1.76051L14.7722 3.61222L14.2122 6.51404L13.8469 8.45673H14.0602L14.3036 8.21389L15.2895 6.90851L16.9452 4.84451L17.6757 4.02502L18.5277 3.12044L19.0754 2.68931H20.1101L20.8709 3.81862L20.5301 4.98415L19.465 6.33185L18.5824 7.47316L17.3165 9.1728L16.5252 10.5329L16.5983 10.642L16.7869 10.6239L19.6477 10.0169L21.1936 9.73767L23.0379 9.42196L23.8717 9.81033L23.963 10.2052L23.6344 11.0125L21.6624 11.4982L19.3493 11.9594L15.9044 12.773L15.8618 12.8033L15.9103 12.864L17.4626 13.0097L18.1261 13.0462H19.7512L22.7763 13.2709L23.5675 13.7928L24.0422 14.4303L23.963 14.916L22.7456 15.5352L21.1024 15.1468L17.2677 14.2361L15.953 13.9082H15.7703V14.0173L16.8661 15.086L18.8746 16.8951L21.3885 19.2262L21.5163 19.8031L21.1936 20.2584L20.8528 20.2097L18.6434 18.5524L17.7912 17.8056L15.8618 16.1847H15.734V16.3549L16.1781 17.0044L18.5277 20.5255L18.6493 21.6061L18.4789 21.958L17.8703 22.1705L17.201 22.0492L15.825 20.1249L14.4071 17.9575L13.2628 16.0148L13.1228 16.0937L12.4471 23.3483L12.1306 23.7188L11.4002 23.998L10.7916 23.5366L10.4689 22.7897L10.7916 21.3148L11.181 19.3903L11.4977 17.8604L11.7836 15.96L11.9542 15.3288L11.942 15.2863L11.802 15.3046L10.3655 17.2715L8.18038 20.2159L6.45181 22.0615L6.03794 22.2251L5.31978 21.8548L5.38672 21.1933L5.78834 20.6042L8.18038 17.5689L9.62303 15.6871L10.5543 14.6005L10.5481 14.4425H10.4934L4.13875 18.5585L3.00672 18.7043L2.51978 18.2489L2.58081 17.5021L2.81203 17.2593L4.72325 15.948L4.71712 15.9541Z"
            fill="#d97757"
          />
          <path
            d="M39.2466 20.3676C36.1911 20.3676 34.1033 18.6679 33.1172 16.0513C32.6024 14.6879 32.3484 13.2403 32.3686 11.7836C32.3686 7.39425 34.3407 4.34669 38.6988 4.34669C41.6264 4.34669 43.4341 5.62174 44.4629 8.6632H45.7166L45.5462 4.46822C43.7933 3.33913 41.6021 2.76836 38.9362 2.76836C35.1807 2.76836 31.9852 4.444 30.2081 7.46712C29.29 9.06352 28.823 10.8783 28.8566 12.7183C28.8566 16.0755 30.4454 19.0504 33.4278 20.7016C35.0601 21.5715 36.8913 22.0026 38.7413 21.9522C41.6506 21.9522 43.9576 21.3998 46.0027 20.4345L46.5321 15.8084H45.2541C44.4872 17.9211 43.5741 19.1898 42.0586 19.8638C41.316 20.1976 40.3786 20.3676 39.2466 20.3676ZM52.4241 4.34669L52.5459 2.28269H51.6814L47.8347 3.43622V4.06153L49.539 4.85069V19.2871C49.539 20.2705 49.0337 20.4891 47.7131 20.6529V21.7094H54.2561V20.6529C52.9294 20.4891 52.4302 20.2705 52.4302 19.2871V4.3528L52.4241 4.34669ZM78.4444 21.9522H78.9497L83.3746 21.1144V20.0335L82.7538 19.9851C81.7191 19.8878 81.4511 19.6753 81.4511 18.8316V11.1339L81.573 8.6632H80.873L76.6916 9.26407V10.3205L77.0993 10.3934C78.2313 10.557 78.5662 10.8729 78.5662 11.6621V18.5222C77.4828 19.36 76.4481 19.888 75.2185 19.888C73.855 19.888 73.0091 19.1959 73.0091 17.5812V11.14L73.1307 8.66909H72.4126L68.2251 9.27018V10.3266L68.6571 10.3993C69.7893 10.5633 70.124 10.8791 70.124 11.6682V17.9999C70.124 20.6835 71.6456 21.9581 74.0681 21.9581C75.9185 21.9581 77.434 20.9748 78.5722 19.6087L78.4505 21.9581L78.4444 21.9522ZM66.2834 13.4104C66.2834 9.98058 64.4573 8.6632 61.1583 8.6632C58.249 8.6632 56.1369 9.86516 56.1369 11.8563C56.1369 12.4513 56.35 12.9066 56.7822 13.2221L58.9977 12.9308C58.9002 12.2632 58.8516 11.8563 58.8516 11.6863C58.8516 10.5572 59.4541 9.98669 60.6775 9.98669C62.4853 9.98669 63.3983 11.2554 63.3983 13.2952V13.9628L58.8332 15.3289C57.3116 15.7417 56.4473 16.0999 55.8692 16.9377C55.5627 17.4502 55.4145 18.0414 55.4431 18.6374C55.4431 20.5801 56.782 21.9522 59.0706 21.9522C60.7263 21.9522 62.1932 21.2054 63.4714 19.7909C63.9279 21.2054 64.6277 21.9522 65.8755 21.9522C66.8861 21.9522 67.7989 21.5453 68.6144 20.75L68.371 19.9122C68.0284 20.0086 67.6741 20.0577 67.3181 20.058C66.6181 20.058 66.2834 19.5055 66.2834 18.4251V13.4104ZM60.4402 20.0095C59.1924 20.0095 58.4194 19.2871 58.4194 18.0182C58.4194 17.1564 58.8273 16.6524 59.6975 16.3609L63.3983 15.1892V18.7347C62.2175 19.6271 61.5237 20.0095 60.4402 20.0095ZM98.9686 21.1144V20.0335L98.3417 19.9851C97.307 19.8878 97.0452 19.6753 97.0452 18.8316V4.34647L97.167 2.28247H96.2964L92.4497 3.436V4.06131L94.1539 4.85047V9.59789C93.1946 8.9417 92.0478 8.61365 90.8856 8.66298C87.0631 8.66298 84.0807 11.5648 84.0807 15.9053C84.0807 19.4813 86.2231 21.952 89.7533 21.952C91.5795 21.952 93.168 21.0655 94.1539 19.6936L94.0323 21.9518H94.5435L98.9686 21.114V21.1144ZM90.9584 10.1019C92.7846 10.1019 94.1539 11.1583 94.1539 13.1008V18.5647C93.738 18.9783 93.243 19.3043 92.6982 19.5233C92.1535 19.7423 91.5702 19.8498 90.9829 19.8396C88.3656 19.8396 87.0389 17.7756 87.0389 15.0193C87.0389 11.9233 88.5544 10.1019 90.9584 10.1019ZM108.324 12.8337C107.983 11.231 106.997 10.3203 105.627 10.3203C103.582 10.3203 102.164 11.8563 102.164 14.0599C102.164 17.3202 103.893 19.4327 106.686 19.4327C107.602 19.4235 108.5 19.1748 109.289 18.7114C110.078 18.248 110.732 17.5862 111.184 16.792L112 17.0104C111.635 19.8396 109.066 21.9522 105.913 21.9522C102.213 21.9522 99.6625 19.2204 99.6625 15.3348C99.6625 11.4193 102.432 8.6632 106.132 8.6632C108.896 8.6632 110.843 10.3205 111.47 13.1981L101.829 16.1484V14.8495L108.324 12.8401V12.8337Z"
            fill="currentColor"
          />
        </g>
        <defs>
          <clipPath id="undefined-clip0_2011_437">
            <path fill="#fff" d="M0 0H112V24H0z" />
          </clipPath>
        </defs>
      </svg>
    );
  }

  if (type === "icon") {
    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_2011_421)">
          <path
            d="M4.70888 15.9055L9.42984 13.2667L9.50887 13.0367L9.42984 12.9096H9.19903L8.40909 12.8612L5.71144 12.7885L3.37219 12.6917L1.10578 12.5707L0.534656 12.4496L0 11.7475L0.0546563 11.3965L0.534656 11.0758L1.22128 11.1363L2.74022 11.2391L5.01872 11.3965L6.67144 11.4933L9.12 11.7475H9.50887L9.56353 11.5901L9.42984 11.4933L9.32662 11.3965L6.96909 9.8047L4.41722 8.12218L3.08053 7.15378L2.35744 6.6635L1.99294 6.20358L1.83497 5.19894L2.49122 4.47866L3.37219 4.53927L3.597 4.59978L4.49016 5.28364L6.39797 6.75446L8.88909 8.5821L9.25369 8.88467L9.39947 8.78176L9.41775 8.7092L9.25369 8.43679L7.89872 5.99776L6.45263 3.51633L5.80856 2.48741L5.6385 1.87013C5.57775 1.61584 5.53519 1.40405 5.53519 1.14378L6.28256 0.133074L6.69562 0L7.69219 0.133167L8.11144 0.496249L8.73112 1.90646L9.73369 4.12772L11.2891 7.1478L11.7448 8.04355L11.9878 8.87272L12.079 9.12691H12.237V8.9816L12.3645 7.28097L12.6015 5.19287L12.8324 2.50562L12.9114 1.7492L13.2881 0.841307L14.0354 0.351035L14.6187 0.629416L15.0987 1.31337L15.0319 1.75508L14.7463 3.60112L14.1874 6.49419L13.8228 8.43091H14.0354L14.2785 8.18876L15.2628 6.88753L16.9154 4.8297L17.6446 4.01267L18.4952 3.11085L19.042 2.68118H20.075L20.8343 3.80694L20.4942 4.96893L19.4309 6.31256L18.5498 7.45037L17.2861 9.14503L16.4962 10.5008L16.5691 10.6097L16.7575 10.5916L19.6132 9.98633L21.1565 9.70786L22.9974 9.39315L23.8299 9.78051L23.921 10.1739L23.5928 10.9789L21.6243 11.463L19.3154 11.9231L15.8765 12.7341L15.8339 12.7644L15.8826 12.8249L17.4319 12.9701L18.0942 13.0064H19.7165L22.7362 13.2304L23.5261 13.7509L24 14.3864L23.921 14.8705L22.7058 15.4878L21.0653 15.1005L17.2375 14.1927L15.925 13.8658H15.7428V13.9748L16.8365 15.04L18.8415 16.8436L21.3509 19.1677L21.4784 19.7427L21.1565 20.1965L20.8162 20.1481L18.6106 18.4959L17.76 17.7514L15.8339 16.1355H15.7064V16.3049L16.1498 16.9525L18.4952 20.4628L18.6167 21.5401L18.4466 21.8913L17.839 22.1031L17.1706 21.9819L15.7974 20.0634L14.3818 17.9027L13.2395 15.966L13.0998 16.0447L12.4253 23.2772L12.1094 23.6464L11.3802 23.9247L10.7727 23.4648L10.4506 22.7203L10.7726 21.2496L11.1615 19.3311L11.4774 17.8059L11.763 15.9115L11.9332 15.2821L11.921 15.2397L11.7813 15.2578L10.3474 17.2188L8.16609 20.1542L6.44053 21.9941L6.02738 22.1575L5.31038 21.7883L5.37722 21.1286L5.77819 20.5416L8.166 17.5154L9.606 15.6391L10.5357 14.5559L10.5296 14.3984H10.475L4.13156 18.5019L3.00141 18.6472L2.51531 18.1933L2.57606 17.4488L2.80697 17.2067L4.71478 15.8994L4.70888 15.9055Z"
            fill="#d97757"
          />
        </g>
        <defs>
          <clipPath id="undefined-clip0_2011_421">
            <path fill="#fff" d="M0 0H24V24H0z" />
          </clipPath>
        </defs>
      </svg>
    );
  }

  console.error(`ClaudeAI doesn't support ${type}`);
  return null;
});

ClaudeAI.displayName = "ClaudeAI";

ClaudeAI.metadata = {
  name: "ClaudeAI",
  category: "wordmark/ai",
  tags: ["claude", "icon"],
  description: "ClaudeAI icon from wordmark/ai category",
  type: ["stroke", "icon"],
} as IconMetadata;

export default ClaudeAI;
