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

export const HuggingFace: IconComponent = React.forwardRef<
  SVGSVGElement,
  IconProps
>(function HuggingFace(
  {
    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}
    >
      <path
        d="M23.6951 18.52C23.8846 19.06 23.8391 19.635 23.5865 20.135C23.4046 20.5 23.1443 20.7825 22.826 21.035C22.442 21.335 21.9646 21.59 21.3886 21.835C20.7014 22.125 19.8627 22.3975 19.4787 22.4975C18.4959 22.75 17.5511 22.91 16.5936 22.9175C15.2243 22.93 14.0446 22.61 13.2058 21.7925C12.7713 21.845 12.3317 21.875 11.8896 21.875C11.4702 21.875 11.0559 21.85 10.6441 21.8C9.80287 22.6125 8.62814 22.93 7.26393 22.9175C6.30645 22.91 5.36161 22.75 4.37635 22.4975C3.99487 22.3975 3.15614 22.125 2.46898 21.835C1.89298 21.59 1.4155 21.335 1.03403 21.035C0.713189 20.7825 0.452979 20.5 0.271084 20.135C0.0209786 19.635 -0.0270214 19.06 0.164979 18.52C-0.0118635 18.1075 -0.0573372 17.635 0.0816102 17.1125C0.144768 16.875 0.248347 16.655 0.379715 16.46C0.351926 16.3575 0.329189 16.2525 0.314031 16.1375C0.218031 15.4525 0.458031 14.8275 0.910242 14.3425C1.13256 14.1 1.37256 13.9325 1.62266 13.825C1.43824 13.05 1.34224 12.2525 1.34224 11.4375C1.34224 5.6725 6.06393 1 11.8896 1C13.8905 1 15.7625 1.55 17.3591 2.51C17.6471 2.685 17.93 2.8725 18.2003 3.0725C18.3342 3.1725 18.4681 3.275 18.597 3.3825C18.7283 3.4875 18.8572 3.5975 18.981 3.71C19.3549 4.0475 19.706 4.41 20.0269 4.7975C20.1355 4.925 20.2391 5.0575 20.3401 5.1925C20.5448 5.46 20.7342 5.7375 20.9086 6.025C21.1738 6.455 21.4062 6.905 21.6083 7.3725C21.7422 7.685 21.8585 8.005 21.962 8.3325C22.1161 8.8225 22.2349 9.3275 22.3157 9.8475C22.341 10.02 22.3637 10.195 22.3814 10.37C22.4168 10.72 22.437 11.075 22.437 11.4375C22.437 12.2425 22.341 13.0325 22.1616 13.795C22.4395 13.9025 22.7022 14.0775 22.9473 14.3425C23.3995 14.8275 23.6395 15.455 23.5435 16.14C23.5283 16.2525 23.5056 16.3575 23.4778 16.46C23.6092 16.655 23.7128 16.875 23.7759 17.1125C23.9149 17.635 23.8694 18.1075 23.6951 18.52Z"
        fill="#fff"
      />
      <path
        d="M11.8105 20.125C16.659 20.125 20.5895 16.2355 20.5895 11.4375C20.5895 6.63953 16.659 2.75 11.8105 2.75C6.96205 2.75 3.03158 6.63953 3.03158 11.4375C3.03158 16.2355 6.96205 20.125 11.8105 20.125Z"
        fill="#ffd21e"
      />
      <path
        d="M20.5895 11.4375C20.5895 6.63953 16.659 2.75 11.8105 2.75C6.96204 2.75 3.03158 6.63953 3.03158 11.4375C3.03158 16.2355 6.96204 20.125 11.8105 20.125C16.659 20.125 20.5895 16.2355 20.5895 11.4375ZM2.02105 11.4375C2.02105 6.08724 6.40395 1.75 11.8105 1.75C17.2171 1.75 21.6 6.08724 21.6 11.4375C21.6 16.7878 17.2171 21.125 11.8105 21.125C6.40395 21.125 2.02105 16.7878 2.02105 11.4375Z"
        fill="#ffac03"
      />
      <path
        d="M14.663 9.073C14.985 9.185 15.113 9.84 15.438 9.669 16.054 9.345 16.288 8.588 15.961 7.979 15.633 7.369 14.868 7.138 14.252 7.462 13.636 7.786 13.402 8.543 13.73 9.152 13.884 9.44 14.375 8.972 14.663 9.073ZM8.712 9.073C8.39 9.185 8.262 9.84 7.936 9.669 7.32 9.345 7.087 8.588 7.414 7.979 7.742 7.369 8.506 7.138 9.122 7.462 9.738 7.786 9.972 8.543 9.645 9.152 9.49 9.44 8.999 8.972 8.712 9.073ZM11.747 15.072C14.23 15.072 15.032 12.882 15.032 11.757 15.032 11.172 14.634 11.356 13.998 11.668 13.41 11.956 12.619 12.353 11.747 12.353 9.934 12.353 8.463 10.632 8.463 11.757 8.463 12.882 9.264 15.072 11.747 15.072Z"
        fill="#3a3b45"
      />
      <path
        d="M11.8105 17.625C13.0206 17.625 14.0016 16.6542 14.0016 15.4568C14.0016 14.5241 13.4065 13.7289 12.5715 13.4229C12.5407 13.4116 12.5097 13.401 12.4783 13.3911C12.2678 13.3245 12.0434 14.0406 11.8105 14.0406C11.5929 14.0406 11.3827 13.3199 11.1843 13.3784C10.2794 13.645 9.61947 14.4746 9.61947 15.4568C9.61947 16.6542 10.6004 17.625 11.8105 17.625Z"
        fill="#ef4e4e"
      />
      <path
        d="M17.747 10.25C18.201 10.25 18.568 9.886 18.568 9.438 18.568 8.989 18.201 8.625 17.747 8.625 17.294 8.625 16.926 8.989 16.926 9.438 16.926 9.886 17.294 10.25 17.747 10.25ZM6 10.25C6.453 10.25 6.821 9.886 6.821 9.438 6.821 8.989 6.453 8.625 6 8.625 5.547 8.625 5.179 8.989 5.179 9.438 5.179 9.886 5.547 10.25 6 10.25Z"
        fill="#ffd21e"
      />
      <path
        d="M4.31039 13C3.90138 13 3.53582 13.1663 3.28091 13.4678C3.12327 13.6545 2.95856 13.9555 2.94517 14.4062C2.77363 14.3575 2.60866 14.3303 2.45456 14.3303C2.06298 14.3303 1.70929 14.4787 1.45919 14.7485C1.13784 15.0947 0.995104 15.5203 1.05725 15.946C1.08681 16.1488 1.15527 16.3305 1.25759 16.4987C1.04184 16.6715 0.882935 16.912 0.806135 17.2013C0.746009 17.428 0.684367 17.9003 1.00622 18.3868C0.985756 18.4185 0.966556 18.4515 0.948619 18.4852C0.755104 18.8488 0.742725 19.2595 0.913504 19.642C1.17245 20.2218 1.8159 20.6785 3.06542 21.1687C3.84277 21.4738 4.55392 21.6687 4.56024 21.6705C5.58795 21.9342 6.51738 22.0682 7.32201 22.0682C8.80091 22.0682 9.85969 21.62 10.469 20.736C11.4498 19.3125 11.3095 18.0105 10.0406 16.7555C9.33826 16.061 8.8714 15.037 8.77414 14.8123C8.57809 14.1467 8.05969 13.407 7.19797 13.407C7.12546 13.407 7.05195 13.4128 6.97969 13.424C6.60226 13.4827 6.27232 13.6977 6.03662 14.0213C5.78222 13.7083 5.53515 13.4592 5.31157 13.3187C4.97456 13.1072 4.6378 13 4.31039 13ZM4.31039 14C4.43923 14 4.59662 14.0543 4.77018 14.1632C5.30904 14.5015 6.34887 16.2703 6.72959 16.9583C6.85717 17.1888 7.07519 17.2863 7.27148 17.2863C7.66104 17.2863 7.96521 16.903 7.3071 16.416C6.31755 15.6832 6.66466 14.4855 7.13708 14.4117C7.1578 14.4085 7.17826 14.407 7.19797 14.407C7.62744 14.407 7.81691 15.1395 7.81691 15.1395C7.81691 15.1395 8.3722 16.5195 9.32614 17.4627C10.2801 18.4062 10.3293 19.1635 9.63409 20.1725C9.1599 20.8605 8.2522 21.0682 7.32201 21.0682C6.35721 21.0682 5.36816 20.8447 4.81388 20.7025C4.7866 20.6955 1.41574 19.7533 1.84268 18.9513C1.91443 18.8165 2.03266 18.7625 2.18146 18.7625C2.78272 18.7625 3.87637 19.648 4.34651 19.648C4.45161 19.648 4.52563 19.6037 4.55595 19.4957C4.75628 18.7845 1.50997 18.4855 1.78357 17.4552C1.83182 17.273 1.96268 17.199 2.1466 17.1993C2.94112 17.1993 4.72369 18.582 5.09733 18.582C5.12588 18.582 5.14635 18.5738 5.15746 18.5563C5.34466 18.2573 5.24209 18.0485 3.9226 17.2583C2.6031 16.4678 1.67696 15.9922 2.20369 15.4248C2.26432 15.3593 2.35022 15.3303 2.45456 15.3303C3.25565 15.3305 5.14837 17.035 5.14837 17.035C5.14837 17.035 5.65919 17.5608 5.96816 17.5608C6.03915 17.5608 6.09952 17.533 6.14045 17.4645C6.35948 17.099 4.10601 15.409 3.97894 14.7118C3.89279 14.2393 4.03931 14 4.31039 14Z"
        fill="#ffac03"
      />
      <path
        d="M9.63406 20.1725C10.3293 19.1635 10.28 18.4063 9.3261 17.4628C8.37216 16.5195 7.81688 15.1395 7.81688 15.1395C7.81688 15.1395 7.60947 14.338 7.13705 14.4118C6.66462 14.4855 6.31776 15.6833 7.30732 16.416C8.29688 17.1485 7.11027 17.6463 6.72955 16.9583C6.34884 16.2703 5.30926 14.5015 4.77014 14.1633C4.23128 13.825 3.85182 14.0145 3.9789 14.7118C4.10597 15.409 6.3597 17.099 6.14041 17.4648C5.92113 17.8303 5.14833 17.035 5.14833 17.035C5.14833 17.035 2.73014 14.8573 2.20366 15.4248C1.67717 15.9923 2.60307 16.4678 3.92256 17.2583C5.24231 18.0485 5.34462 18.2573 5.15742 18.5563C4.96997 18.8553 2.05713 16.425 1.78353 17.4553C1.51018 18.4855 4.75625 18.7845 4.55591 19.4958C4.35557 20.2073 2.26934 18.1495 1.84265 18.9513C1.4157 19.7533 4.78656 20.6955 4.81385 20.7025C5.90269 20.982 8.66799 21.5743 9.63406 20.1725Z"
        fill="#ffd21e"
      />
      <path
        d="M19.437 13C19.846 13 20.2115 13.1663 20.4665 13.4678C20.6241 13.6545 20.7888 13.9555 20.8022 14.4062C20.9737 14.3575 21.1387 14.3303 21.2928 14.3303C21.6844 14.3303 22.0381 14.4787 22.2882 14.7485C22.6095 15.0947 22.7523 15.5203 22.6901 15.946C22.6606 16.1488 22.5921 16.3305 22.4898 16.4987C22.7055 16.6715 22.8644 16.912 22.9412 17.2013C23.0014 17.428 23.063 17.9003 22.7411 18.3868C22.7616 18.4185 22.7808 18.4515 22.7987 18.4852C22.9923 18.8488 23.0046 19.2595 22.8339 19.642C22.5749 20.2218 21.9315 20.6785 20.6819 21.1687C19.9046 21.4738 19.1934 21.6687 19.1871 21.6705C18.1594 21.9342 17.23 22.0682 16.4254 22.0682C14.9465 22.0682 13.8877 21.62 13.2783 20.736C12.2976 19.3125 12.4378 18.0105 13.7068 16.7555C14.4091 16.061 14.876 15.037 14.9732 14.8123C15.1693 14.1467 15.6877 13.407 16.5494 13.407C16.6219 13.407 16.6954 13.4128 16.7677 13.424C17.1451 13.4827 17.475 13.6977 17.7107 14.0213C17.9651 13.7083 18.2122 13.4592 18.4358 13.3187C18.7728 13.1072 19.1096 13 19.437 13ZM19.437 14C19.3081 14 19.1507 14.0543 18.9772 14.1632C18.4383 14.5015 17.3985 16.2703 17.0178 16.9583C16.8902 17.1888 16.6722 17.2863 16.4759 17.2863C16.0863 17.2863 15.7822 16.903 16.4403 16.416C17.4298 15.6832 17.0827 14.4855 16.6103 14.4117C16.5896 14.4085 16.5691 14.407 16.5494 14.407C16.1199 14.407 15.9305 15.1395 15.9305 15.1395C15.9305 15.1395 15.3752 16.5195 14.4212 17.4627C13.4673 18.4062 13.418 19.1635 14.1133 20.1725C14.5875 20.8605 15.4952 21.0682 16.4254 21.0682C17.3902 21.0682 18.3792 20.8447 18.9335 20.7025C18.9608 20.6955 22.3316 19.7533 21.9047 18.9513C21.8329 18.8165 21.7147 18.7625 21.5659 18.7625C20.9646 18.7625 19.871 19.648 19.4009 19.648C19.2958 19.648 19.2217 19.6037 19.1914 19.4957C18.9911 18.7845 22.2374 18.4855 21.9638 17.4552C21.9155 17.273 21.7847 17.199 21.6008 17.1993C20.8062 17.1993 19.0237 18.582 18.65 18.582C18.6215 18.582 18.601 18.5738 18.5899 18.5563C18.4027 18.2573 18.5053 18.0485 19.8248 17.2583C21.1443 16.4678 22.0704 15.9922 21.5437 15.4248C21.483 15.3593 21.3971 15.3303 21.2928 15.3303C20.4917 15.3305 18.599 17.035 18.599 17.035C18.599 17.035 18.0882 17.5608 17.7792 17.5608C17.7082 17.5608 17.6478 17.533 17.6069 17.4645C17.3879 17.099 19.6414 15.409 19.7684 14.7118C19.8546 14.2393 19.7081 14 19.437 14Z"
        fill="#ffac03"
      />
      <path
        d="M14.1133 20.1725C13.4181 19.1635 13.4673 18.4063 14.4213 17.4628C15.3752 16.5195 15.9305 15.1395 15.9305 15.1395C15.9305 15.1395 16.1379 14.338 16.6103 14.4118C17.0827 14.4855 17.4296 15.6833 16.44 16.416C15.4505 17.1485 16.6371 17.6463 17.0178 16.9583C17.3985 16.2703 18.4381 14.5015 18.9772 14.1633C19.5161 13.825 19.8955 14.0145 19.7685 14.7118C19.6414 15.409 17.3877 17.099 17.607 17.4648C17.8262 17.8303 18.599 17.035 18.599 17.035C18.599 17.035 21.0172 14.8573 21.5437 15.4248C22.0702 15.9923 21.1443 16.4678 19.8248 17.2583C18.5051 18.0485 18.4027 18.2573 18.5899 18.5563C18.7774 18.8553 21.6902 16.425 21.9638 17.4553C22.2372 18.4855 18.9911 18.7845 19.1915 19.4958C19.3918 20.2073 21.478 18.1495 21.9047 18.9513C22.3317 19.7533 18.9608 20.6955 18.9335 20.7025C17.8447 20.982 15.0794 21.5743 14.1133 20.1725Z"
        fill="#ffd21e"
      />
    </svg>
  );
});

HuggingFace.displayName = "HuggingFace";

HuggingFace.metadata = {
  name: "HuggingFace",
  category: "icon/ai",
  tags: ["hugging", "face", "icon"],
  description: "HuggingFace icon from icon/ai category",
  type: ["stroke", "icon"],
} as IconMetadata;

export default HuggingFace;
