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

export const ModelContextProtocol: IconComponent = React.forwardRef<
  SVGSVGElement,
  IconProps
>(function ModelContextProtocol(
  {
    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
        fill="currentColor"
        clipPath="url(#undefined-clip0_2066_418)"
        fillRule="evenodd"
        clipRule="evenodd"
      >
        <path d="M15.688 2.34298C15.2048 1.87274 14.5572 1.60963 13.883 1.60963C13.2087 1.60963 12.5611 1.87274 12.078 2.34298L2.45197 11.783C2.29089 11.9395 2.07511 12.0271 1.85047 12.0271C1.62584 12.0271 1.41005 11.9395 1.24897 11.783C1.17011 11.7063 1.10742 11.6146 1.06462 11.5132C1.02181 11.4119 0.999756 11.303 0.999756 11.193C0.999756 11.083 1.02181 10.9741 1.06462 10.8727C1.10742 10.7714 1.17011 10.6797 1.24897 10.603L10.875 1.16298C11.6802 0.379372 12.7594 -0.059082 13.883 -0.059082C15.0065 -0.059082 16.0858 0.379372 16.891 1.16298C17.3569 1.61608 17.7089 2.17308 17.9182 2.78837C18.1274 3.40366 18.188 4.05977 18.095 4.70298C18.7467 4.61028 19.4111 4.66847 20.0368 4.87305C20.6625 5.07764 21.2329 5.42315 21.704 5.88298L21.754 5.93298C22.1483 6.31646 22.4617 6.7751 22.6757 7.28179C22.8898 7.78848 23 8.33294 23 8.88298C23 9.43302 22.8898 9.97748 22.6757 10.4842C22.4617 10.9909 22.1483 11.4495 21.754 11.833L13.048 20.37C13.0217 20.3955 13.0008 20.4261 12.9865 20.4598C12.9723 20.4936 12.9649 20.5298 12.9649 20.5665C12.9649 20.6031 12.9723 20.6394 12.9865 20.6731C13.0008 20.7069 13.0217 20.7374 13.048 20.763L14.836 22.517C14.9148 22.5937 14.9775 22.6854 15.0203 22.7867C15.0631 22.8881 15.0852 22.997 15.0852 23.107C15.0852 23.217 15.0631 23.3259 15.0203 23.4272C14.9775 23.5286 14.9148 23.6203 14.836 23.697C14.6749 23.8535 14.4591 23.9411 14.2345 23.9411C14.0098 23.9411 13.7941 23.8535 13.633 23.697L11.845 21.944C11.6608 21.765 11.5144 21.551 11.4145 21.3144C11.3145 21.0779 11.263 20.8238 11.263 20.567C11.263 20.3102 11.3145 20.056 11.4145 19.8195C11.5144 19.583 11.6608 19.3689 11.845 19.19L20.551 10.652C20.7874 10.4218 20.9754 10.1466 21.1037 9.84261C21.2321 9.5386 21.2982 9.21196 21.2982 8.88198C21.2982 8.552 21.2321 8.22536 21.1037 7.92135C20.9754 7.61735 20.7874 7.34214 20.551 7.11198L20.501 7.06298C20.0183 6.59324 19.3716 6.33015 18.6981 6.32959C18.0246 6.32902 17.3774 6.59104 16.894 7.05998L9.72197 14.094L9.71997 14.096L9.62197 14.193C9.46084 14.3498 9.24485 14.4376 9.01997 14.4376C8.7951 14.4376 8.5791 14.3498 8.41797 14.193C8.33911 14.1163 8.27642 14.0246 8.23362 13.9232C8.19081 13.8219 8.16876 13.713 8.16876 13.603C8.16876 13.493 8.19081 13.3841 8.23362 13.2827C8.27642 13.1814 8.33911 13.0897 8.41797 13.013L15.691 5.87998C15.9268 5.64967 16.1141 5.37449 16.2419 5.07065C16.3697 4.76681 16.4354 4.44047 16.4351 4.11085C16.4349 3.78122 16.3686 3.45499 16.2403 3.15137C16.112 2.84775 15.9242 2.57289 15.688 2.34298Z" />
        <path d="M14.4851 4.70296C14.564 4.62627 14.6266 4.53454 14.6694 4.4332C14.7123 4.33186 14.7343 4.22297 14.7343 4.11296C14.7343 4.00296 14.7123 3.89406 14.6694 3.79273C14.6266 3.69139 14.564 3.59966 14.4851 3.52296C14.324 3.3661 14.108 3.27832 13.8831 3.27832C13.6582 3.27832 13.4422 3.3661 13.2811 3.52296L6.16209 10.505C5.76777 10.8884 5.45434 11.3471 5.24031 11.8538C5.02629 12.3605 4.91602 12.9049 4.91602 13.455C4.91602 14.005 5.02629 14.5495 5.24031 15.0562C5.45434 15.5628 5.76777 16.0215 6.16209 16.405C6.96743 17.1883 8.0466 17.6266 9.17009 17.6266C10.2936 17.6266 11.3728 17.1883 12.1781 16.405L19.2981 9.42296C19.377 9.34627 19.4396 9.25454 19.4824 9.1532C19.5253 9.05186 19.5473 8.94297 19.5473 8.83296C19.5473 8.72296 19.5253 8.61406 19.4824 8.51273C19.4396 8.41139 19.377 8.31966 19.2981 8.24296C19.137 8.0861 18.921 7.99832 18.6961 7.99832C18.4712 7.99832 18.2552 8.0861 18.0941 8.24296L10.9751 15.225C10.4919 15.6952 9.84431 15.9583 9.17009 15.9583C8.49587 15.9583 7.84826 15.6952 7.36509 15.225C7.12862 14.9948 6.94067 14.7196 6.81234 14.4156C6.684 14.1116 6.61788 13.7849 6.61788 13.455C6.61788 13.125 6.684 12.7983 6.81234 12.4943C6.94067 12.1903 7.12862 11.9151 7.36509 11.685L14.4851 4.70296Z" />
      </g>
      <defs>
        <clipPath id="undefined-clip0_2066_418">
          <path fill="#fff" d="M0 0H24V24H0z" />
        </clipPath>
      </defs>
    </svg>
  );
});

ModelContextProtocol.displayName = "ModelContextProtocol";

ModelContextProtocol.metadata = {
  name: "ModelContextProtocol",
  category: "icon/framework",
  tags: ["model", "context", "protocol", "icon"],
  description: "ModelContextProtocol icon from icon/framework category",
  type: ["stroke", "icon"],
} as IconMetadata;

export default ModelContextProtocol;
