144 lines · 7.0 KB · TypeScript
RawDownload
import { type SVGProps, useId } from "react"; export type Icon = React.FC<SVGProps<SVGSVGElement>>; export const GitHubIcon: Icon = (props) => (  <svg {...props} viewBox="0 0 1024 1024" fill="none">    <path      fillRule="evenodd"      clipRule="evenodd"      d="M8 0C3.58 0 0 3.58 0 8C0 11.54 2.29 14.53 5.47 15.59C5.87 15.66 6.02 15.42 6.02 15.21C6.02 15.02 6.01 14.39 6.01 13.72C4 14.09 3.48 13.23 3.32 12.78C3.23 12.55 2.84 11.84 2.5 11.65C2.22 11.5 1.82 11.13 2.49 11.12C3.12 11.11 3.57 11.7 3.72 11.94C4.44 13.15 5.59 12.81 6.05 12.6C6.12 12.08 6.33 11.73 6.56 11.53C4.78 11.33 2.92 10.64 2.92 7.58C2.92 6.71 3.23 5.99 3.74 5.43C3.66 5.23 3.38 4.41 3.82 3.31C3.82 3.31 4.49 3.1 6.02 4.13C6.66 3.95 7.34 3.86 8.02 3.86C8.7 3.86 9.38 3.95 10.02 4.13C11.55 3.09 12.22 3.31 12.22 3.31C12.66 4.41 12.38 5.23 12.3 5.43C12.81 5.99 13.12 6.7 13.12 7.58C13.12 10.65 11.25 11.33 9.47 11.53C9.76 11.78 10.01 12.26 10.01 13.01C10.01 14.08 10 14.94 10 15.21C10 15.42 10.15 15.67 10.55 15.59C13.71 14.53 16 11.53 16 8C16 3.58 12.42 0 8 0Z"      transform="scale(64)"      fill="currentColor"    />  </svg>); export const CursorIcon: Icon = (props) => (  <svg {...props} viewBox="0 0 466.73 532.09" fill="currentColor">    <path d="M457.43,125.94L244.42,2.96c-6.84-3.95-15.28-3.95-22.12,0L9.3,125.94c-5.75,3.32-9.3,9.46-9.3,16.11v247.99c0,6.65,3.55,12.79,9.3,16.11l213.01,122.98c6.84,3.95,15.28,3.95,22.12,0l213.01-122.98c5.75-3.32,9.3-9.46,9.3-16.11v-247.99c0-6.65-3.55-12.79-9.3-16.11h-.01ZM444.05,151.99l-205.63,356.16c-1.39,2.4-5.06,1.42-5.06-1.36v-233.21c0-4.66-2.49-8.97-6.53-11.31L24.87,145.67c-2.4-1.39-1.42-5.06,1.36-5.06h411.26c5.84,0,9.49,6.33,6.57,11.39h-.01Z" />  </svg>); export const VisualStudioCode: Icon = (props) => {  const id = useId();  const maskId = `${id}-vscode-a`;  const topShadowFilterId = `${id}-vscode-b`;  const sideShadowFilterId = `${id}-vscode-c`;  const overlayGradientId = `${id}-vscode-d`;   return (    <svg {...props} fill="none" viewBox="0 0 100 100">      <mask id={maskId} width="100" height="100" x="0" y="0" maskUnits="userSpaceOnUse">        <path          fill="#fff"          fillRule="evenodd"          d="M70.912 99.317a6.223 6.223 0 0 0 4.96-.19l20.589-9.907A6.25 6.25 0 0 0 100 83.587V16.413a6.25 6.25 0 0 0-3.54-5.632L75.874.874a6.226 6.226 0 0 0-7.104 1.21L29.355 38.04 12.187 25.01a4.162 4.162 0 0 0-5.318.236l-5.506 5.009a4.168 4.168 0 0 0-.004 6.162L16.247 50 1.36 63.583a4.168 4.168 0 0 0 .004 6.162l5.506 5.01a4.162 4.162 0 0 0 5.318.236l17.168-13.032L68.77 97.917a6.217 6.217 0 0 0 2.143 1.4ZM75.015 27.3 45.11 50l29.906 22.701V27.3Z"          clipRule="evenodd"        />      </mask>      <g mask={`url(#${maskId})`}>        <path          fill="#0065A9"          d="M96.461 10.796 75.857.876a6.23 6.23 0 0 0-7.107 1.207l-67.451 61.5a4.167 4.167 0 0 0 .004 6.162l5.51 5.009a4.167 4.167 0 0 0 5.32.236l81.228-61.62c2.725-2.067 6.639-.124 6.639 3.297v-.24a6.25 6.25 0 0 0-3.539-5.63Z"        />        <g filter={`url(#${topShadowFilterId})`}>          <path            fill="#007ACC"            d="m96.461 89.204-20.604 9.92a6.229 6.229 0 0 1-7.107-1.207l-67.451-61.5a4.167 4.167 0 0 1 .004-6.162l5.51-5.009a4.167 4.167 0 0 1 5.32-.236l81.228 61.62c2.725 2.067 6.639.124 6.639-3.297v.24a6.25 6.25 0 0 1-3.539 5.63Z"          />        </g>        <g filter={`url(#${sideShadowFilterId})`}>          <path            fill="#1F9CF0"            d="M75.858 99.126a6.232 6.232 0 0 1-7.108-1.21c2.306 2.307 6.25.674 6.25-2.588V4.672c0-3.262-3.944-4.895-6.25-2.589a6.232 6.232 0 0 1 7.108-1.21l20.6 9.908A6.25 6.25 0 0 1 100 16.413v67.174a6.25 6.25 0 0 1-3.541 5.633l-20.601 9.906Z"          />        </g>        <path          fill={`url(#${overlayGradientId})`}          fillRule="evenodd"          d="M70.851 99.317a6.224 6.224 0 0 0 4.96-.19L96.4 89.22a6.25 6.25 0 0 0 3.54-5.633V16.413a6.25 6.25 0 0 0-3.54-5.632L75.812.874a6.226 6.226 0 0 0-7.104 1.21L29.294 38.04 12.126 25.01a4.162 4.162 0 0 0-5.317.236l-5.507 5.009a4.168 4.168 0 0 0-.004 6.162L16.186 50 1.298 63.583a4.168 4.168 0 0 0 .004 6.162l5.507 5.009a4.162 4.162 0 0 0 5.317.236L29.294 61.96l39.414 35.958a6.218 6.218 0 0 0 2.143 1.4ZM74.954 27.3 45.048 50l29.906 22.701V27.3Z"          clipRule="evenodd"          opacity=".25"          style={{ mixBlendMode: "overlay" }}        />      </g>      <defs>        <filter          id={topShadowFilterId}          width="116.727"          height="92.246"          x="-8.394"          y="15.829"          colorInterpolationFilters="sRGB"          filterUnits="userSpaceOnUse"        >          <feFlood floodOpacity="0" result="BackgroundImageFix" />          <feColorMatrix            in="SourceAlpha"            values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"          />          <feOffset />          <feGaussianBlur stdDeviation="4.167" />          <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />          <feBlend in2="BackgroundImageFix" mode="overlay" result="effect1_dropShadow" />          <feBlend in="SourceGraphic" in2="effect1_dropShadow" result="shape" />        </filter>        <filter          id={sideShadowFilterId}          width="47.917"          height="116.151"          x="60.417"          y="-8.076"          colorInterpolationFilters="sRGB"          filterUnits="userSpaceOnUse"        >          <feFlood floodOpacity="0" result="BackgroundImageFix" />          <feColorMatrix            in="SourceAlpha"            values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"          />          <feOffset />          <feGaussianBlur stdDeviation="4.167" />          <feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0" />          <feBlend in2="BackgroundImageFix" mode="overlay" result="effect1_dropShadow" />          <feBlend in="SourceGraphic" in2="effect1_dropShadow" result="shape" />        </filter>        <linearGradient          id={overlayGradientId}          x1="49.939"          x2="49.939"          y1=".258"          y2="99.742"          gradientUnits="userSpaceOnUse"        >          <stop stopColor="#fff" />          <stop offset="1" stopColor="#fff" stopOpacity="0" />        </linearGradient>      </defs>    </svg>  );}; export const Zed: Icon = (props) => {  const id = useId();  const clipPathId = `${id}-zed-logo-a`;   return (    <svg {...props} fill="none" viewBox="0 0 96 96">      <g clipPath={`url(#${clipPathId})`}>        <path          fill="currentColor"          fillRule="evenodd"          d="M9 6a3 3 0 0 0-3 3v66H0V9a9 9 0 0 1 9-9h80.379c4.009 0 6.016 4.847 3.182 7.682L43.055 57.187H57V51h6v7.688a4.5 4.5 0 0 1-4.5 4.5H37.055L26.743 73.5H73.5V36h6v37.5a6 6 0 0 1-6 6H20.743L10.243 90H87a3 3 0 0 0 3-3V21h6v66a9 9 0 0 1-9 9H6.621c-4.009 0-6.016-4.847-3.182-7.682L52.757 39H39v6h-6v-7.5a4.5 4.5 0 0 1 4.5-4.5h21.257l10.5-10.5H22.5V60h-6V22.5a6 6 0 0 1 6-6h52.757L85.757 6H9Z"          clipRule="evenodd"        />      </g>      <defs>        <clipPath id={clipPathId}>          <path fill="#fff" d="M0 0h96v96H0z" />        </clipPath>      </defs>    </svg>  );};