610 lines · 31.1 KB · TypeScript
RawDownload
import { useId } from "react";import type { Icon } from "./Icons"; const useSvgGradientIds = (prefix: string, count: number) => {  const id = useId();  return Array.from(    { length: count },    (_, index) => `${id}-${prefix}-${String.fromCharCode(97 + index)}`,  );}; export const AquaIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("aqua", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="59.932"          x2="1.336"          y1="59.676"          y2="1.079"          gradientUnits="userSpaceOnUse"        >          <stop offset=".25" stopColor="#7256FF" />          <stop offset=".73" stopColor="#007DFE" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="7.671"          x2="61.125"          y1="64.392"          y2="39.609"          gradientUnits="userSpaceOnUse"        >          <stop offset=".3" stopColor="#00D886" />          <stop offset=".54" stopColor="#7256FF" />        </linearGradient>      </defs>      <path        fill={`url(#${gradientAId})`}        d="M0 4.125v34.128c0 1.658.993 3.154 2.52 3.8L39.943 57.85c.518.219 1.075.33 1.638.324l18.329-.15A4.125 4.125 0 0 0 64 53.9V36.234c0-.806-.236-1.593-.678-2.267L42.213 1.86A4.13 4.13 0 0 0 38.766 0H4.125A4.125 4.125 0 0 0 0 4.125"      />      <path        fill={`url(#${gradientBId})`}        d="M6 49.015v10.862a4.125 4.125 0 0 0 4.125 4.125h12.566q.3 0 .598-.044l37.185-5.448A4.125 4.125 0 0 0 64 54.429V39.03a4.125 4.125 0 0 0-4.127-4.125l-18.504.005c-.426 0-.849.066-1.254.195L8.871 45.085A4.13 4.13 0 0 0 6 49.015z"      />      <path        fill="#00D886"        d="M6 47.55v12.259a4.125 4.125 0 0 0 4.19 4.124L21 64c1.181-.019 2.531-.786 3.3-1.683l32.707-38.158c.64-.748.993-1.7.993-2.685V10.125A4.125 4.125 0 0 0 53.875 6H42.872c-1.19 0-2.321.514-3.105 1.409L7.021 44.834A4.12 4.12 0 0 0 6 47.55"      />      <path fill="#000" d="M52 12H12v40h40z" />      <path        fill="#fff"        d="M33 44H17v3h16zM20.746 31.243a7.3 7.3 0 0 1-2.755-2.787q-1.002-1.774-1.003-3.961c0-2.187.334-2.778 1.003-3.96a7.3 7.3 0 0 1 2.755-2.787q1.752-1.013 3.917-1.014c1.443 0 2.739.338 3.907 1.013a7.3 7.3 0 0 1 2.75 2.787q.996 1.774.996 3.961c0 2.187-.332 2.778-.997 3.96a7.3 7.3 0 0 1-2.749 2.788q-1.752 1.013-3.907 1.013c-1.436 0-2.75-.338-3.917-1.013m6.308-2.23q1.06-.67 1.661-1.854.6-1.185.6-2.664t-.6-2.664a4.6 4.6 0 0 0-1.661-1.854q-1.061-.67-2.39-.67t-2.396.67a4.6 4.6 0 0 0-1.672 1.854q-.605 1.185-.605 2.664t.605 2.664 1.672 1.854q1.067.67 2.396.67 1.33 0 2.39-.67m-2.16 6.034a2.67 2.67 0 0 1-1.126-1.077q-.391-.696-.391-1.64l-.01-1.94h2.743v1.811q0 .332.129.573.128.242.37.365.24.123.574.123h1.833v2.165h-2.412q-.975 0-1.71-.38M38.233 16.992h3.173l5.563 15.006h-2.947l-1.212-3.483h-5.842l-1.136 3.483H32.82zm3.805 9.261-2.025-5.723-.225-.954-.215.954-1.908 5.723z"      />    </svg>  );}; export const CLionIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("clion", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="4.067"          x2="62.664"          y1="4.327"          y2="62.923"          gradientUnits="userSpaceOnUse"        >          <stop offset=".29" stopColor="#009AE5" />          <stop offset=".7" stopColor="#00D980" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="56.329"          x2="2.874"          y1="-.391"          y2="24.393"          gradientUnits="userSpaceOnUse"        >          <stop offset=".3" stopColor="#FF2D90" />          <stop offset=".54" stopColor="#009AE5" />        </linearGradient>      </defs>      <path        fill={`url(#${gradientAId})`}        d="M64 59.878V25.75a4.13 4.13 0 0 0-2.52-3.8L24.057 6.153a4.1 4.1 0 0 0-1.638-.325l-18.329.15A4.124 4.124 0 0 0 0 10.103v17.665c0 .806.236 1.593.678 2.267l21.109 32.109a4.12 4.12 0 0 0 3.447 1.859h34.641A4.125 4.125 0 0 0 64 59.878"      />      <path        fill={`url(#${gradientBId})`}        d="M58 14.988V4.125A4.125 4.125 0 0 0 53.875 0H41.309q-.3 0-.598.044L3.527 5.492A4.125 4.125 0 0 0 0 9.573v15.398a4.125 4.125 0 0 0 4.126 4.125l18.505-.005c.425 0 .848-.066 1.253-.195l31.246-9.98A4.13 4.13 0 0 0 58 14.988"      />      <path        fill="#FF2D90"        d="M58 16.453V4.194A4.125 4.125 0 0 0 53.81.07L43.003.008c-1.18.019-2.535.781-3.304 1.678L6.993 39.844c-.64.748-.993 1.7-.993 2.684v11.35a4.125 4.125 0 0 0 4.125 4.125h11.003c1.19 0 2.321-.514 3.105-1.409L56.979 19.17A4.12 4.12 0 0 0 58 16.453"      />      <path fill="#000" d="M52 12H12v40h40z" />      <path        fill="#fff"        d="M33 44H17v3h16zM20.747 31.243a7.3 7.3 0 0 1-2.744-2.787q-.997-1.774-.997-3.961c0-2.187.332-2.778.997-3.96a7.3 7.3 0 0 1 2.744-2.787q1.747-1.013 3.901-1.014 1.823 0 3.345.675a6.86 6.86 0 0 1 2.535 1.892 6.44 6.44 0 0 1 1.355 2.793h-3.065a4.05 4.05 0 0 0-.895-1.431 4 4 0 0 0-1.431-.95 4.9 4.9 0 0 0-1.822-.332q-1.33 0-2.402.665a4.6 4.6 0 0 0-1.677 1.827q-.606 1.164-.606 2.62 0 1.459.606 2.621a4.6 4.6 0 0 0 1.677 1.828q1.072.664 2.402.664a4.9 4.9 0 0 0 1.822-.332 4.02 4.02 0 0 0 2.326-2.38h3.065a6.44 6.44 0 0 1-1.355 2.792 6.86 6.86 0 0 1-2.535 1.892q-1.522.675-3.345.675-2.154 0-3.901-1.013zM37.33 16.992v12.37h7.117v2.636H34.414V16.992z"      />    </svg>  );}; export const DataGripIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("datagrip", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="59.676"          x2="1.08"          y1="4.067"          y2="62.663"          gradientUnits="userSpaceOnUse"        >          <stop offset=".28" stopColor="#7256FF" />          <stop offset=".66" stopColor="#00D980" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="64.391"          x2="39.607"          y1="56.329"          y2="2.874"          gradientUnits="userSpaceOnUse"        >          <stop offset=".3" stopColor="#FF43F2" />          <stop offset=".54" stopColor="#7256FF" />        </linearGradient>      </defs>      <path        fill={`url(#${gradientAId})`}        d="M4.125 64h34.128a4.13 4.13 0 0 0 3.8-2.52L57.85 24.057c.219-.518.33-1.076.324-1.638l-.15-18.329A4.125 4.125 0 0 0 53.9 0H36.234c-.806 0-1.593.236-2.267.678L1.86 21.787A4.13 4.13 0 0 0 0 25.234v34.641A4.125 4.125 0 0 0 4.125 64"      />      <path        fill={`url(#${gradientBId})`}        d="M49.013 58h10.862A4.125 4.125 0 0 0 64 53.875V41.309q0-.3-.044-.598L58.508 3.527A4.125 4.125 0 0 0 54.427 0H39.029a4.125 4.125 0 0 0-4.125 4.126l.005 18.505c0 .425.066.848.195 1.253l9.979 31.246a4.13 4.13 0 0 0 3.93 2.87"      />      <path        fill="#FF43F2"        d="M47.55 58h12.259a4.125 4.125 0 0 0 4.124-4.19L64 43c-.018-1.181-.785-2.531-1.682-3.3L24.159 6.993A4.13 4.13 0 0 0 21.474 6H10.125A4.125 4.125 0 0 0 6 10.125v11.003c0 1.19.514 2.321 1.409 3.105l37.425 32.746A4.12 4.12 0 0 0 47.55 58"      />      <path fill="#000" d="M52 12H12v40h40z" />      <path        fill="#fff"        d="M33 44H17v3h16zM17.012 16.992h5.713q2.133 0 3.821.965a6.9 6.9 0 0 1 2.642 2.674q.954 1.71.954 3.864t-.954 3.865a6.9 6.9 0 0 1-2.642 2.674q-1.688.964-3.821.964h-5.713zm8.028 11.876q1.008-.6 1.554-1.72.547-1.12.547-2.653 0-1.534-.547-2.653-.546-1.12-1.554-1.721-1.008-.6-2.348-.6h-2.755v9.947h2.755q1.34 0 2.348-.6M35.426 31.243a7.3 7.3 0 0 1-2.744-2.787q-.997-1.774-.997-3.961c0-2.187.333-2.778.997-3.96s1.58-2.112 2.744-2.787q1.747-1.013 3.902-1.014 1.746 0 3.221.622a6.9 6.9 0 0 1 2.487 1.747 6.36 6.36 0 0 1 1.42 2.594h-3.13a3.9 3.9 0 0 0-.927-1.228q-.585-.52-1.367-.803c-.782-.283-1.082-.284-1.683-.284q-1.329 0-2.401.664a4.6 4.6 0 0 0-1.678 1.828q-.605 1.163-.605 2.62c0 1.457.202 1.846.605 2.621a4.6 4.6 0 0 0 1.678 1.828q1.072.664 2.401.664 1.233 0 2.235-.461t1.592-1.276a3.3 3.3 0 0 0 .633-1.833l.01.31h-3.526v-2.304h6.356v1.18q0 1.982-.96 3.585a6.9 6.9 0 0 1-2.625 2.525q-1.668.921-3.736.921c-1.38 0-2.737-.337-3.902-1.013z"      />    </svg>  );}; export const DataSpellIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("dataspell", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="4.067"          x2="62.664"          y1="4.327"          y2="62.923"          gradientUnits="userSpaceOnUse"        >          <stop offset=".28" stopColor="#007DFE" />          <stop offset=".73" stopColor="#00D980" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="56.329"          x2="2.875"          y1="-.391"          y2="24.392"          gradientUnits="userSpaceOnUse"        >          <stop offset=".32" stopColor="#F0EB18" />          <stop offset=".55" stopColor="#007DFE" />        </linearGradient>      </defs>      <path        fill={`url(#${gradientAId})`}        d="M64 59.878V25.75a4.13 4.13 0 0 0-2.52-3.8L24.057 6.153a4.1 4.1 0 0 0-1.638-.325l-18.329.15A4.124 4.124 0 0 0 0 10.103v17.665c0 .806.236 1.593.678 2.267l21.109 32.109a4.12 4.12 0 0 0 3.447 1.859h34.641A4.125 4.125 0 0 0 64 59.878"      />      <path        fill={`url(#${gradientBId})`}        d="M58 14.988V4.125A4.125 4.125 0 0 0 53.875 0H41.309q-.3 0-.598.044L3.527 5.492A4.125 4.125 0 0 0 0 9.573v15.398a4.125 4.125 0 0 0 4.126 4.125l18.505-.005c.425 0 .848-.066 1.253-.195l31.246-9.98A4.13 4.13 0 0 0 58 14.988"      />      <path        fill="#F0EB18"        d="M58 16.45V4.191A4.125 4.125 0 0 0 53.81.067L43 0c-1.181.019-2.531.786-3.3 1.683L6.993 39.84c-.64.748-.993 1.7-.993 2.685v11.349A4.125 4.125 0 0 0 10.125 58h11.003c1.19 0 2.321-.514 3.105-1.409l32.746-37.425A4.12 4.12 0 0 0 58 16.45"      />      <path fill="#000" d="M52 12H12v40h40z" />      <path        fill="#fff"        d="M33 44H17v3h16zM17.012 16.992h5.713q2.133 0 3.821.965a6.9 6.9 0 0 1 2.642 2.674q.954 1.71.954 3.864t-.954 3.865a6.9 6.9 0 0 1-2.642 2.674q-1.688.964-3.821.964h-5.713zm8.028 11.876q1.008-.6 1.554-1.72.547-1.12.547-2.653 0-1.534-.547-2.653-.546-1.12-1.554-1.721-1.008-.6-2.348-.6h-2.755v9.947h2.755q1.34 0 2.348-.6M34.713 31.664q-1.26-.59-1.973-1.65t-.734-2.444h2.937q0 .654.343 1.147t.954.772q.61.278 1.404.278c.53 0 .952-.083 1.334-.251q.574-.252.89-.702t.316-1.029q0-.718-.434-1.19-.435-.471-1.195-.654l-2.648-.59q-1.071-.234-1.865-.809a4 4 0 0 1-1.232-1.42q-.44-.846-.44-1.908 0-1.286.665-2.31.664-1.023 1.854-1.597 1.19-.573 2.701-.573c1.511 0 1.933.186 2.733.558s1.424.888 1.871 1.549q.67.99.68 2.277h-2.926q0-.546-.289-.98c-.289-.435-.466-.515-.82-.676a2.9 2.9 0 0 0-1.217-.24q-.686 0-1.205.23a1.9 1.9 0 0 0-.81.643q-.29.412-.29.96 0 .621.403 1.028.402.407 1.098.579l2.552.557q1.103.226 1.967.852a4.45 4.45 0 0 1 1.345 1.544q.481.917.482 1.999 0 1.329-.702 2.385-.702 1.054-1.967 1.656-1.265.6-2.894.6t-2.889-.59"      />    </svg>  );}; export const GoLandIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("goland", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="64.391"          x2="39.607"          y1="56.329"          y2="2.874"          gradientUnits="userSpaceOnUse"        >          <stop offset=".24" stopColor="#00D886" />          <stop offset=".51" stopColor="#007DFE" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="59.676"          x2="1.08"          y1="4.067"          y2="62.663"          gradientUnits="userSpaceOnUse"        >          <stop offset=".27" stopColor="#007DFE" />          <stop offset=".7" stopColor="#D249FC" />        </linearGradient>      </defs>      <path        fill="#00D886"        d="M47.55 58h12.259a4.125 4.125 0 0 0 4.124-4.19l-.176-11.044a4.13 4.13 0 0 0-1.44-3.066L24.159 6.993A4.13 4.13 0 0 0 21.474 6H10.125A4.125 4.125 0 0 0 6 10.125v11.003c0 1.19.514 2.321 1.409 3.105l37.425 32.746A4.12 4.12 0 0 0 47.55 58"      />      <path        fill={`url(#${gradientAId})`}        d="M49.013 58h10.862A4.125 4.125 0 0 0 64 53.875V41.309q0-.3-.044-.598L58.508 3.527A4.124 4.124 0 0 0 54.427 0H39.029a4.125 4.125 0 0 0-4.125 4.126l.005 18.505c0 .425.066.848.195 1.253l9.979 31.246a4.13 4.13 0 0 0 3.93 2.87"      />      <path        fill={`url(#${gradientBId})`}        d="M4.125 64h34.128a4.13 4.13 0 0 0 3.8-2.52L57.85 24.057c.219-.518.33-1.076.324-1.638l-.15-18.329A4.124 4.124 0 0 0 53.9 0H36.234c-.805 0-1.593.236-2.266.678L1.86 21.787A4.13 4.13 0 0 0 0 25.234v34.641A4.125 4.125 0 0 0 4.125 64"      />      <path fill="#000" d="M52 12H12v40h40z" />      <path        fill="#fff"        d="M19.748 31.243a7.3 7.3 0 0 1-2.743-2.787q-.997-1.774-.997-3.961c0-2.187.332-2.778.997-3.96s1.58-2.112 2.743-2.787q1.747-1.013 3.902-1.014 1.747 0 3.222.622a6.9 6.9 0 0 1 2.486 1.747 6.4 6.4 0 0 1 1.42 2.594h-3.13a3.9 3.9 0 0 0-.926-1.228q-.584-.52-1.367-.803c-.783-.283-1.083-.284-1.683-.284q-1.33 0-2.402.664a4.6 4.6 0 0 0-1.677 1.828q-.606 1.163-.606 2.62c0 1.457.202 1.846.606 2.621a4.6 4.6 0 0 0 1.677 1.828q1.072.664 2.402.664 1.232 0 2.235-.461t1.591-1.276a3.3 3.3 0 0 0 .633-1.833l.01.31h-3.526v-2.304h6.357v1.18q0 1.982-.96 3.585a6.9 6.9 0 0 1-2.626 2.525q-1.666.921-3.736.921c-2.07 0-2.737-.337-3.902-1.013zM36.271 31.243a7.3 7.3 0 0 1-2.755-2.787q-1.002-1.774-1.002-3.961c0-2.187.333-2.778 1.002-3.96a7.3 7.3 0 0 1 2.755-2.787q1.752-1.013 3.918-1.014c1.443 0 2.738.338 3.907 1.013a7.3 7.3 0 0 1 2.749 2.787q.996 1.774.997 3.961c0 2.187-.333 2.778-.997 3.96s-1.581 2.113-2.75 2.788q-1.752 1.013-3.906 1.013c-1.437 0-2.75-.338-3.918-1.013m6.308-2.23q1.062-.67 1.662-1.854t.6-2.664-.6-2.664-1.662-1.854-2.39-.67-2.395.67a4.6 4.6 0 0 0-1.672 1.854q-.606 1.185-.606 2.664t.606 2.664 1.672 1.854 2.395.67q1.33 0 2.39-.67M33 44H17v3h16z"      />    </svg>  );}; export const IntelliJIdeaIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("intellij-idea", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="-.391"          x2="24.392"          y1="7.671"          y2="61.126"          gradientUnits="userSpaceOnUse"        >          <stop offset=".1" stopColor="#FC801D" />          <stop offset=".59" stopColor="#FE2857" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="4.325"          x2="62.921"          y1="59.932"          y2="1.336"          gradientUnits="userSpaceOnUse"        >          <stop offset=".21" stopColor="#FE2857" />          <stop offset=".7" stopColor="#007EFF" />        </linearGradient>      </defs>      <path        fill="#FF8100"        d="M16.45 6H4.191a4.125 4.125 0 0 0-4.124 4.19l.176 11.044a4.13 4.13 0 0 0 1.44 3.066l38.159 32.707c.747.64 1.7.993 2.684.993h11.35A4.125 4.125 0 0 0 58 53.875V42.872c0-1.19-.514-2.321-1.41-3.105L19.167 7.021A4.12 4.12 0 0 0 16.45 6"      />      <path        fill={`url(#${gradientAId})`}        d="M14.988 6H4.125A4.125 4.125 0 0 0 0 10.125v12.566q0 .3.044.598l5.448 37.185A4.125 4.125 0 0 0 9.573 64h15.398a4.125 4.125 0 0 0 4.125-4.127L29.09 41.37c0-.426-.066-.849-.195-1.254l-9.98-31.245A4.13 4.13 0 0 0 14.988 6z"      />      <path        fill={`url(#${gradientBId})`}        d="M59.876 0H25.748a4.13 4.13 0 0 0-3.8 2.52L6.151 39.943a4.1 4.1 0 0 0-.325 1.638l.15 18.329A4.125 4.125 0 0 0 10.101 64h17.666c.806 0 1.593-.236 2.266-.678l32.11-21.109A4.12 4.12 0 0 0 64 38.766V4.125A4.125 4.125 0 0 0 59.876 0"      />      <path fill="#000" d="M52 12H12v40h40z" />      <path        fill="#fff"        d="M33 44H17v3h16zM17 29.383h2.98v-9.775H17v-2.616h8.843v2.616h-2.98v9.775h2.98V32H17zM27.643 29.298h2.154a2.4 2.4 0 0 0 1.163-.279q.51-.279.788-.788.279-.51.279-1.163V16.992h2.926v10.28q0 1.35-.622 2.427a4.45 4.45 0 0 1-1.715 1.688q-1.092.612-2.454.611h-2.519z"      />    </svg>  );}; export const PhpStormIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("phpstorm", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="56.329"          x2="2.874"          y1="-.391"          y2="24.392"          gradientUnits="userSpaceOnUse"        >          <stop offset=".16" stopColor="#D249FC" />          <stop offset=".55" stopColor="#FF2D90" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="4.067"          x2="62.664"          y1="4.326"          y2="62.923"          gradientUnits="userSpaceOnUse"        >          <stop offset=".3" stopColor="#FF2D90" />          <stop offset=".7" stopColor="#7256FF" />        </linearGradient>      </defs>      <path        fill="#D249FC"        d="M58 16.446V4.187A4.125 4.125 0 0 0 53.81.063L42.765.239A4.13 4.13 0 0 0 39.7 1.68L6.993 39.837c-.64.748-.993 1.7-.993 2.685v11.35a4.125 4.125 0 0 0 4.125 4.124h11.003c1.19 0 2.321-.514 3.105-1.409l32.746-37.425A4.12 4.12 0 0 0 58 16.446"      />      <path        fill={`url(#${gradientAId})`}        d="M58 14.988V4.125A4.125 4.125 0 0 0 53.875 0H41.309q-.3 0-.598.044L3.527 5.492A4.125 4.125 0 0 0 0 9.573v15.398a4.125 4.125 0 0 0 4.126 4.125l18.505-.005c.425 0 .848-.066 1.253-.195l31.246-9.98A4.13 4.13 0 0 0 58 14.988"      />      <path        fill={`url(#${gradientBId})`}        d="M64 59.878V25.75a4.13 4.13 0 0 0-2.52-3.8L24.057 6.153a4.1 4.1 0 0 0-1.638-.325l-18.329.15A4.124 4.124 0 0 0 0 10.103v17.665c0 .806.236 1.593.678 2.267l21.109 32.109a4.12 4.12 0 0 0 3.447 1.859h34.641A4.125 4.125 0 0 0 64 59.878"      />      <path fill="#000" d="M52 12H12v40h40z" />      <path        fill="#fff"        d="M33 44H17v3h16zM16.993 16.992h6.442q1.586 0 2.78.579 1.196.579 1.845 1.63.648 1.05.648 2.432c0 .922-.22 1.759-.659 2.466q-.66 1.062-1.87 1.646-1.212.584-2.83.584h-3.43V32h-2.927zm7.54 6.63q.553-.273.852-.782.3-.51.3-1.195c0-.685-.1-.842-.3-1.174q-.3-.5-.852-.772-.552-.273-1.291-.273h-3.323v4.47h3.323q.74 0 1.291-.273M32.572 31.664q-1.26-.59-1.972-1.65t-.735-2.444h2.937q0 .654.343 1.147t.954.772q.611.278 1.404.278c.53 0 .952-.083 1.335-.251q.572-.252.89-.702c.317-.45.315-.643.315-1.029q0-.718-.434-1.19-.435-.471-1.195-.654l-2.647-.59q-1.073-.234-1.866-.809a4 4 0 0 1-1.232-1.42q-.44-.846-.44-1.908 0-1.286.665-2.31.665-1.023 1.854-1.597 1.19-.573 2.702-.573c1.512 0 1.933.186 2.733.558q1.2.558 1.87 1.549t.681 2.277h-2.926q0-.546-.29-.98a1.9 1.9 0 0 0-.82-.676 2.9 2.9 0 0 0-1.216-.24q-.687 0-1.206.23a1.9 1.9 0 0 0-.81.643q-.29.412-.289.96 0 .621.402 1.028t1.099.579l2.551.557q1.104.226 1.967.852a4.45 4.45 0 0 1 1.345 1.544q.482.917.482 1.999 0 1.329-.701 2.385-.703 1.054-1.967 1.656-1.264.6-2.895.6-1.63 0-2.888-.59"      />    </svg>  );}; export const PyCharmIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("pycharm", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="7.671"          x2="61.126"          y1="64.393"          y2="39.609"          gradientUnits="userSpaceOnUse"        >          <stop offset=".1" stopColor="#00D886" />          <stop offset=".59" stopColor="#F0EB18" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="59.933"          x2="1.337"          y1="59.676"          y2="1.08"          gradientUnits="userSpaceOnUse"        >          <stop offset=".3" stopColor="#F0EB18" />          <stop offset=".7" stopColor="#00C4F4" />        </linearGradient>      </defs>      <path        fill="#00D886"        d="M6 47.55v12.259a4.125 4.125 0 0 0 4.19 4.124l11.044-.176a4.13 4.13 0 0 0 3.066-1.44l32.707-38.158c.64-.748.993-1.7.993-2.685V10.125A4.125 4.125 0 0 0 53.875 6H42.872c-1.19 0-2.321.514-3.105 1.409L7.021 44.834A4.12 4.12 0 0 0 6 47.55"      />      <path        fill={`url(#${gradientAId})`}        d="M6 49.015v10.862a4.125 4.125 0 0 0 4.125 4.125h12.566q.3 0 .598-.044l37.185-5.448A4.125 4.125 0 0 0 64 54.429V39.03a4.125 4.125 0 0 0-4.127-4.125l-18.504.005c-.426 0-.849.066-1.254.195L8.871 45.085A4.13 4.13 0 0 0 6 49.015z"      />      <path        fill={`url(#${gradientBId})`}        d="M0 4.125v34.128c0 1.658.993 3.154 2.52 3.8L39.943 57.85c.518.219 1.075.33 1.638.324l18.329-.15A4.125 4.125 0 0 0 64 53.9V36.234c0-.806-.236-1.593-.678-2.267L42.213 1.86A4.13 4.13 0 0 0 38.766 0H4.125A4.125 4.125 0 0 0 0 4.125"      />      <path fill="#000" d="M52 12H12v40h40z" />      <path        fill="#fff"        d="M33 44H17v3h16zM16.993 16.992h6.442q1.586 0 2.78.579 1.196.579 1.845 1.63.648 1.05.648 2.432c0 .922-.22 1.759-.659 2.466q-.66 1.062-1.87 1.646-1.212.584-2.83.584h-3.43V32h-2.927zm7.54 6.63q.553-.273.852-.782.3-.51.3-1.195c0-.685-.1-.842-.3-1.174q-.3-.5-.852-.772-.552-.273-1.291-.273h-3.324v4.47h3.324q.74 0 1.291-.273M33.713 31.243a7.3 7.3 0 0 1-2.744-2.787q-.996-1.774-.996-3.961c0-2.187.332-2.778.996-3.96a7.3 7.3 0 0 1 2.744-2.787q1.748-1.013 3.902-1.014 1.823 0 3.344.675a6.86 6.86 0 0 1 2.535 1.892 6.44 6.44 0 0 1 1.356 2.793h-3.066a4.05 4.05 0 0 0-.895-1.431 4 4 0 0 0-1.43-.95 4.9 4.9 0 0 0-1.823-.332q-1.33 0-2.402.665a4.6 4.6 0 0 0-1.677 1.827q-.606 1.164-.606 2.62 0 1.459.606 2.621a4.6 4.6 0 0 0 1.677 1.828q1.072.664 2.402.664.986 0 1.822-.332a4.02 4.02 0 0 0 2.326-2.38h3.066a6.44 6.44 0 0 1-1.356 2.792 6.86 6.86 0 0 1-2.535 1.892q-1.522.675-3.344.675-2.154 0-3.902-1.013z"      />    </svg>  );}; export const RiderIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("rider", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="64.391"          x2="39.607"          y1="56.329"          y2="2.874"          gradientUnits="userSpaceOnUse"        >          <stop offset=".21" stopColor="#007DFE" />          <stop offset=".55" stopColor="#FFB700" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="59.676"          x2="1.08"          y1="4.067"          y2="62.663"          gradientUnits="userSpaceOnUse"        >          <stop offset=".23" stopColor="#FFB700" />          <stop offset=".73" stopColor="#FF0A67" />        </linearGradient>      </defs>      <path        fill="#007DFE"        d="M47.55 58h12.258a4.125 4.125 0 0 0 4.124-4.19l-.176-11.044a4.12 4.12 0 0 0-1.44-3.066L24.158 6.993A4.13 4.13 0 0 0 21.474 6H10.125A4.125 4.125 0 0 0 6 10.125v11.003c0 1.19.514 2.321 1.409 3.105l37.425 32.746A4.12 4.12 0 0 0 47.55 58"      />      <path        fill={`url(#${gradientAId})`}        d="M49.013 58h10.862A4.125 4.125 0 0 0 64 53.875V41.309q0-.3-.044-.598L58.508 3.527A4.125 4.125 0 0 0 54.427 0H39.029a4.125 4.125 0 0 0-4.125 4.126l.005 18.505c0 .425.066.848.195 1.253l9.979 31.246a4.13 4.13 0 0 0 3.93 2.87"      />      <path        fill={`url(#${gradientBId})`}        d="M4.125 64h34.128a4.13 4.13 0 0 0 3.8-2.52L57.85 24.057c.219-.518.33-1.076.324-1.638l-.15-18.329A4.124 4.124 0 0 0 53.9 0H36.234c-.805 0-1.593.236-2.266.678L1.86 21.787A4.13 4.13 0 0 0 0 25.234v34.641A4.125 4.125 0 0 0 4.125 64"      />      <path fill="#000" d="M52 12H12v40h40z" />      <path        fill="#fff"        d="M33 44H17v3h16zM16.992 16.992h6.442q1.576 0 2.776.579t1.85 1.63.648 2.432c0 .922-.22 1.75-.66 2.46q-.66 1.068-1.875 1.651-1.217.584-2.825.584h-3.43v5.67h-2.926zm7.54 6.63q.553-.274.853-.783.3-.51.3-1.184c0-.45-.1-.852-.3-1.185q-.3-.498-.852-.772-.552-.273-1.292-.273h-3.323v4.47h3.323q.74 0 1.292-.273m-2.63 1.763h3.194L29.03 32h-3.355zM31.613 16.992h5.713q2.133 0 3.822.965a6.9 6.9 0 0 1 2.641 2.674q.954 1.71.954 3.864t-.953 3.865a6.9 6.9 0 0 1-2.642 2.674q-1.688.964-3.822.964h-5.713zm8.028 11.876q1.008-.6 1.555-1.72t.547-2.653q0-1.534-.547-2.653-.547-1.12-1.555-1.721-1.008-.6-2.347-.6h-2.755v9.947h2.755q1.34 0 2.347-.6"      />    </svg>  );}; export const RubyMineIcon: Icon = (props) => {  const [gradientAId, gradientBId] = useSvgGradientIds("rubymine", 2);   return (    <svg {...props} viewBox="0 0 64 64" fill="none">      <defs>        <linearGradient          id={gradientAId}          x1="4.325"          x2="62.921"          y1="59.932"          y2="1.337"          gradientUnits="userSpaceOnUse"        >          <stop offset=".29" stopColor="#FF2358" />          <stop offset=".75" stopColor="#7256FF" />        </linearGradient>        <linearGradient          id={gradientBId}          x1="-.391"          x2="24.393"          y1="7.671"          y2="61.125"          gradientUnits="userSpaceOnUse"        >          <stop offset=".29" stopColor="#FF8100" />          <stop offset=".56" stopColor="#FF2358" />        </linearGradient>      </defs>      <path        fill={`url(#${gradientAId})`}        d="M59.875 0H25.748a4.13 4.13 0 0 0-3.8 2.52L6.151 39.942a4.1 4.1 0 0 0-.325 1.639l.15 18.328A4.125 4.125 0 0 0 10.101 64h17.666c.805 0 1.593-.235 2.266-.678l32.109-21.108A4.12 4.12 0 0 0 64 38.766V4.125A4.125 4.125 0 0 0 59.875 0"      />      <path        fill={`url(#${gradientBId})`}        d="M14.987 6H4.126A4.125 4.125 0 0 0 0 10.125v12.566q0 .3.044.598l5.448 37.184A4.125 4.125 0 0 0 9.572 64H24.97a4.125 4.125 0 0 0 4.125-4.126l-.004-18.504c0-.426-.067-.85-.196-1.254L18.917 8.87A4.13 4.13 0 0 0 14.987 6z"      />      <path        fill="#FF8100"

Lines 1–500 of 610.