{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "orchid-foundation",
  "title": "Orchid Foundation",
  "dependencies": [
    "clsx@2.1.1",
    "tailwind-merge@3.3.1"
  ],
  "devDependencies": [],
  "registryDependencies": [
    "https://ui.orchid.ai/r/orchid-theme.json"
  ],
  "files": [
    {
      "path": "registry/ui/orchid/adapters/navigation.tsx",
      "content": "\"use client\";\nimport { type ComponentProps, useMemo } from 'react';\nexport type LinkProps = ComponentProps<'a'> & {\n    to?: string;\n    preload?: boolean | 'intent';\n};\nexport function Link({ to, href, preload: _preload, ...props }: LinkProps) {\n    return <a {...props} href={to || href}/>;\n}\nexport function useRouter() {\n    return useMemo(() => ({ navigate: ({ to }: {\n            to: string;\n        }) => window.location.assign(to) }), []);\n}\n",
      "type": "registry:ui",
      "target": "@ui/orchid/adapters/navigation.tsx"
    },
    {
      "path": "registry/ui/orchid/hooks/use-dismiss-affordance.ts",
      "content": "import { useEffect, useState } from 'react';\nconst PORTRAIT_PHONE_QUERY = '(max-width: 639px) and (orientation: portrait)';\nconst HOVER_CAPABLE_QUERY = '(hover: hover)';\nexport function useDismissAffordance() {\n    const [showDismissLabel, setShowDismissLabel] = useState(false);\n    const [hideDismissUntilHover, setHideDismissUntilHover] = useState(false);\n    useEffect(() => {\n        const portraitPhoneMediaQuery = window.matchMedia(PORTRAIT_PHONE_QUERY);\n        const hoverMediaQuery = window.matchMedia(HOVER_CAPABLE_QUERY);\n        const update = () => {\n            const isPortraitPhone = portraitPhoneMediaQuery.matches;\n            const canHover = hoverMediaQuery.matches;\n            setShowDismissLabel(!isPortraitPhone);\n            setHideDismissUntilHover(!isPortraitPhone && canHover);\n        };\n        update();\n        portraitPhoneMediaQuery.addEventListener('change', update);\n        hoverMediaQuery.addEventListener('change', update);\n        return () => {\n            portraitPhoneMediaQuery.removeEventListener('change', update);\n            hoverMediaQuery.removeEventListener('change', update);\n        };\n    }, []);\n    return {\n        showDismissLabel,\n        hideDismissUntilHover,\n    };\n}\n",
      "type": "registry:ui",
      "target": "@ui/orchid/hooks/use-dismiss-affordance.ts"
    },
    {
      "path": "registry/ui/orchid/hooks/use-platform.ts",
      "content": "import { useSyncExternalStore } from 'react';\nexport type Platform = 'mac' | 'windows' | 'linux' | 'unknown';\nfunction detectPlatform(): Platform {\n    if (typeof navigator === 'undefined') {\n        return 'unknown';\n    }\n    const userAgent = navigator.userAgent;\n    const platform = navigator.platform;\n    if (/Mac|iPhone|iPad|iPod/.test(platform) || /Mac OS X/.test(userAgent)) {\n        return 'mac';\n    }\n    if (/Win/.test(platform) || /Windows/.test(userAgent)) {\n        return 'windows';\n    }\n    if (/Linux/.test(platform) || /X11/.test(platform)) {\n        return 'linux';\n    }\n    return 'unknown';\n}\nconst subscribe = () => () => { };\nconst getSnapshot = detectPlatform;\nconst getServerSnapshot = (): Platform => 'mac';\nexport function usePlatform(): Platform {\n    return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\nexport function isMac(platform: Platform): boolean {\n    return platform === 'mac';\n}\nexport function isWindows(platform: Platform): boolean {\n    return platform === 'windows';\n}\n",
      "type": "registry:ui",
      "target": "@ui/orchid/hooks/use-platform.ts"
    },
    {
      "path": "registry/ui/orchid/icons.tsx",
      "content": "\"use client\";\nimport { forwardRef } from 'react';\nimport { cn } from \"./lib/ui-utils\";\ntype OrchidProps = {\n    className?: string;\n    variant?: 'icon' | 'full';\n};\nexport const Orchid = forwardRef<SVGSVGElement, OrchidProps>(({ className, variant = 'icon' }, ref) => {\n    if (variant === 'full') {\n        return (<svg width=\"133\" height=\"32\" viewBox=\"0 0 133 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className={className} ref={ref}>\n          <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M11.482 4.9941C11.482 9.92807 15.083 13.1935 16.1491 14.0522C16.3238 14.1928 16.5623 14.1928 16.737 14.0522C17.8031 13.1936 21.4042 9.92836 21.4042 4.9944C21.4042 1.56246 19.7713 -1.73564e-06 16.443 0C13.1148 -1.59101e-06 11.482 1.56215 11.482 4.9941Z\" fill=\"currentColor\"/>\n          <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M26.2426 8.53282C21.5811 10.0575 19.6088 14.5141 19.1271 15.8002C19.0481 16.0109 19.1218 16.2393 19.3087 16.363C20.4493 17.1184 24.647 19.557 29.3084 18.0323C32.5508 16.9718 33.5224 14.9257 32.4939 11.7392C31.4654 8.55276 29.485 7.47229 26.2426 8.53282Z\" fill=\"currentColor\"/>\n          <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M27.4606 23.758C24.5797 19.7663 19.7597 19.2552 18.3958 19.1914C18.1724 19.1809 17.9794 19.3221 17.9202 19.5392C17.559 20.8647 16.5523 25.637 19.4332 29.6287C21.4371 32.4052 23.6704 32.7031 26.3631 30.7338C29.0557 28.7644 29.4645 26.5345 27.4606 23.758Z\" fill=\"currentColor\"/>\n          <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M13.4528 29.6289C16.3337 25.6373 15.3271 20.8648 14.966 19.5393C14.9068 19.3221 14.7138 19.1809 14.4903 19.1914C13.1265 19.2552 8.30664 19.7661 5.42571 23.7577C3.4218 26.5342 3.83048 28.7644 6.52313 30.7338C9.21577 32.7031 11.4489 32.4054 13.4528 29.6289Z\" fill=\"currentColor\"/>\n          <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M3.57743 18.0322C8.23887 19.5569 12.4367 17.1184 13.5774 16.3631C13.7643 16.2393 13.838 16.0109 13.7591 15.8002C13.2774 14.5142 11.3053 10.0576 6.64384 8.53291C3.40145 7.47238 1.42072 8.55281 0.392221 11.7393C-0.63628 14.9257 0.335035 16.9717 3.57743 18.0322Z\" fill=\"currentColor\"/>\n          <path d=\"M52.5094 6.44332C54.5058 6.44332 56.248 6.85097 57.736 7.66625C59.2428 8.48154 60.4105 9.65706 61.2393 11.1928C62.068 12.7096 62.4823 14.5583 62.4823 16.7387C62.4823 18.8622 62.0586 20.7203 61.211 22.3129C60.3634 23.9056 59.1768 25.1475 57.6512 26.0386C56.1445 26.9297 54.4211 27.3753 52.4811 27.3753C50.4846 27.3753 48.733 26.9676 47.2262 26.1524C45.7383 25.3371 44.5799 24.1616 43.7512 22.6258C42.9225 21.09 42.5081 19.2414 42.5081 17.0799C42.5081 14.9564 42.9319 13.0983 43.7795 11.5057C44.6459 9.91303 45.823 8.67114 47.311 7.78001C48.8177 6.88889 50.5505 6.44332 52.5094 6.44332ZM52.3964 6.95525C51.3416 6.95525 50.4187 7.38185 49.6276 8.23505C48.8554 9.08826 48.2527 10.2638 47.8195 11.7616C47.4051 13.2595 47.198 14.9943 47.198 16.9662C47.198 18.976 47.4334 20.7298 47.9043 22.2276C48.394 23.7065 49.0438 24.8536 49.8537 25.6689C50.6824 26.4652 51.5959 26.8634 52.5941 26.8634C53.6489 26.8634 54.5623 26.4368 55.3346 25.5836C56.1256 24.7304 56.7283 23.5548 57.1427 22.057C57.5759 20.5402 57.7925 18.8053 57.7925 16.8524C57.7925 14.8237 57.5476 13.0699 57.0579 11.591C56.5871 10.1121 55.9373 8.9745 55.1085 8.17818C54.2987 7.36289 53.3946 6.95525 52.3964 6.95525Z\" fill=\"currentColor\"/>\n          <path d=\"M74.0931 11.8754C74.6958 11.8754 75.1855 12.0081 75.5622 12.2736C75.9389 12.52 76.212 12.8424 76.3815 13.2405C76.5698 13.6387 76.664 14.0558 76.664 14.4919C76.664 15.1934 76.4568 15.7717 76.0425 16.2267C75.6469 16.6628 75.1196 16.8809 74.4603 16.8809C73.8011 16.8809 73.2832 16.7197 72.9065 16.3974C72.5486 16.0561 72.3697 15.6105 72.3697 15.0607C72.3697 14.5298 72.4827 14.0937 72.7087 13.7524C72.9536 13.3922 73.2549 13.0888 73.6128 12.8424C73.3491 12.7665 73.0854 12.776 72.8217 12.8708C72.4639 12.9277 72.1248 13.0794 71.8046 13.3258C71.4845 13.5534 71.2113 13.8472 70.9853 14.2075C70.7593 14.5488 70.5804 14.928 70.4485 15.3451C70.3167 15.7433 70.2508 16.1319 70.2508 16.5111V24.0478C70.2508 24.9579 70.4674 25.5741 70.9006 25.8964C71.3526 26.2187 72.0212 26.3799 72.9065 26.3799V26.9771C72.4733 26.9582 71.8423 26.9392 71.0136 26.9202C70.1849 26.8823 69.3185 26.8634 68.4144 26.8634C67.661 26.8634 66.8982 26.8823 66.126 26.9202C65.3538 26.9392 64.7699 26.9582 64.3744 26.9771V26.3799C65.0336 26.3799 65.495 26.2377 65.7587 25.9533C66.0412 25.6689 66.1825 25.1285 66.1825 24.3322V15.3735C66.1825 14.5203 66.0506 13.8946 65.787 13.4965C65.5421 13.0794 65.0712 12.8708 64.3744 12.8708V12.2736C64.9771 12.3304 65.5609 12.3589 66.126 12.3589C66.917 12.3589 67.6516 12.3304 68.3296 12.2736C69.0265 12.1977 69.6669 12.0934 70.2508 11.9607V14.6057C70.4768 14.0937 70.7782 13.6292 71.1548 13.2121C71.5315 12.795 71.9647 12.4726 72.4544 12.2451C72.9442 11.9986 73.4904 11.8754 74.0931 11.8754Z\" fill=\"currentColor\"/>\n          <path d=\"M84.5216 11.8754C85.2562 11.8754 85.9248 11.9607 86.5275 12.1314C87.1491 12.283 87.6576 12.4821 88.0531 12.7286C88.5428 13.032 88.9195 13.4112 89.1832 13.8662C89.4657 14.3023 89.607 14.8142 89.607 15.402C89.607 16.0656 89.3998 16.6154 88.9854 17.0515C88.5711 17.4686 88.0343 17.6772 87.3751 17.6772C86.7159 17.6772 86.1885 17.4876 85.793 17.1084C85.3974 16.7292 85.1997 16.2173 85.1997 15.5726C85.1997 14.9659 85.388 14.4635 85.7647 14.0653C86.1414 13.6482 86.5746 13.3732 87.0643 13.2405C86.9136 13.0509 86.6876 12.8898 86.3863 12.757C86.0849 12.6243 85.7459 12.558 85.3692 12.558C84.7853 12.558 84.2673 12.7286 83.8153 13.0699C83.3821 13.4112 83.0148 13.8852 82.7135 14.4919C82.4121 15.0986 82.1767 15.8096 82.0072 16.6249C81.8565 17.4402 81.7812 18.3313 81.7812 19.2983C81.7812 20.7582 81.9601 21.9053 82.318 22.7395C82.6946 23.5738 83.1655 24.1616 83.7306 24.5028C84.3144 24.8441 84.9171 25.0148 85.5387 25.0148C85.8966 25.0148 86.2827 24.9579 86.697 24.8441C87.1302 24.7304 87.5634 24.5028 87.9966 24.1616C88.4487 23.8203 88.863 23.3368 89.2397 22.7111L89.72 22.8817C89.5128 23.5833 89.1738 24.2848 88.7029 24.9863C88.2321 25.6878 87.6199 26.2661 86.8665 26.7212C86.1132 27.1572 85.1903 27.3753 84.0978 27.3753C82.8736 27.3753 81.7623 27.1098 80.7641 26.579C79.7847 26.0291 78.9936 25.1949 78.3909 24.0762C77.807 22.9386 77.5151 21.4787 77.5151 19.6964C77.5151 17.99 77.8165 16.5585 78.4192 15.402C79.0407 14.2265 79.8789 13.3448 80.9336 12.757C81.9883 12.1693 83.1844 11.8754 84.5216 11.8754Z\" fill=\"currentColor\"/>\n          <path d=\"M96.9269 4.73691V14.5203C97.3978 13.5344 98.0288 12.8518 98.8198 12.4726C99.6297 12.0745 100.534 11.8754 101.532 11.8754C102.342 11.8754 102.992 11.9797 103.481 12.1882C103.971 12.3778 104.357 12.6433 104.64 12.9846C104.96 13.3448 105.186 13.8093 105.318 14.3781C105.468 14.9469 105.544 15.7148 105.544 16.6818V24.3322C105.544 25.1285 105.676 25.6689 105.939 25.9533C106.222 26.2377 106.693 26.3799 107.352 26.3799V26.9771C106.994 26.9582 106.448 26.9392 105.713 26.9202C104.998 26.8823 104.301 26.8634 103.623 26.8634C102.888 26.8634 102.172 26.8823 101.476 26.9202C100.797 26.9392 100.289 26.9582 99.9499 26.9771V26.3799C100.515 26.3799 100.91 26.2377 101.136 25.9533C101.363 25.6689 101.476 25.1285 101.476 24.3322V15.4873C101.476 15.0133 101.428 14.6057 101.334 14.2644C101.24 13.9041 101.061 13.6292 100.797 13.4396C100.553 13.231 100.195 13.1268 99.7239 13.1268C99.2154 13.1268 98.7445 13.269 98.3113 13.5534C97.8969 13.8188 97.5579 14.198 97.2942 14.691C97.0494 15.1839 96.9269 15.7527 96.9269 16.3974V24.3322C96.9269 25.1285 97.0399 25.6689 97.266 25.9533C97.492 26.2377 97.8875 26.3799 98.4525 26.3799V26.9771C98.1135 26.9582 97.6144 26.9392 96.9552 26.9202C96.296 26.8823 95.6273 26.8634 94.9493 26.8634C94.2147 26.8634 93.4708 26.8823 92.7174 26.9202C91.9828 26.9392 91.4272 26.9582 91.0505 26.9771V26.3799C91.7097 26.3799 92.1712 26.2377 92.4349 25.9533C92.7174 25.6689 92.8586 25.1285 92.8586 24.3322V8.14973C92.8586 7.29653 92.7268 6.67085 92.4631 6.27268C92.2182 5.85556 91.7474 5.647 91.0505 5.647V5.04976C91.6532 5.10664 92.2371 5.13508 92.8021 5.13508C93.5744 5.13508 94.3089 5.10664 95.0058 5.04976C95.7027 4.97392 96.3431 4.86964 96.9269 4.73691Z\" fill=\"currentColor\"/>\n          <path d=\"M112.053 4.936C112.844 4.936 113.466 5.13508 113.918 5.53324C114.389 5.91244 114.624 6.44333 114.624 7.12589C114.624 7.80845 114.389 8.34882 113.918 8.74698C113.466 9.12618 112.844 9.31578 112.053 9.31578C111.262 9.31578 110.631 9.12618 110.16 8.74698C109.708 8.34882 109.482 7.80845 109.482 7.12589C109.482 6.44333 109.708 5.91244 110.16 5.53324C110.631 5.13508 111.262 4.936 112.053 4.936ZM114.257 11.9607V24.3322C114.257 25.1285 114.389 25.6689 114.652 25.9533C114.935 26.2377 115.406 26.3799 116.065 26.3799V26.9771C115.726 26.9582 115.198 26.9392 114.483 26.9202C113.767 26.8823 113.042 26.8634 112.307 26.8634C111.573 26.8634 110.829 26.8823 110.075 26.9202C109.322 26.9392 108.757 26.9582 108.38 26.9771V26.3799C109.039 26.3799 109.501 26.2377 109.765 25.9533C110.047 25.6689 110.188 25.1285 110.188 24.3322V15.3735C110.188 14.5203 110.057 13.8946 109.793 13.4965C109.548 13.0794 109.077 12.8708 108.38 12.8708V12.2736C108.983 12.3304 109.567 12.3589 110.132 12.3589C110.923 12.3589 111.658 12.3304 112.336 12.2736C113.032 12.1977 113.673 12.0934 114.257 11.9607Z\" fill=\"currentColor\"/>\n          <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M127.124 23.6527C127.036 24.3646 126.772 24.9419 126.332 25.3845C125.824 25.8964 125.25 26.1524 124.609 26.1524C124.082 26.1524 123.611 25.9438 123.197 25.5267C122.801 25.1096 122.49 24.427 122.264 23.479C122.057 22.512 121.953 21.2227 121.953 19.6111C121.935 17.2601 122.208 15.5252 122.773 14.4066C123.338 13.269 124.101 12.7002 125.061 12.7002C125.513 12.7002 125.937 12.8044 126.332 13.013C126.644 13.1556 126.908 13.3733 127.124 13.666V23.6527ZM127.124 27.2615V24.8222C126.839 25.5768 126.434 26.1719 125.909 26.6074C125.287 27.1193 124.468 27.3753 123.451 27.3753C122.34 27.3753 121.341 27.1004 120.456 26.5505C119.59 26.0007 118.912 25.157 118.422 24.0194C117.932 22.8628 117.687 21.3744 117.687 19.5542C117.687 17.8289 117.96 16.4069 118.507 15.2882C119.053 14.1506 119.797 13.2974 120.739 12.7286C121.699 12.1598 122.782 11.8754 123.988 11.8754C124.816 11.8754 125.541 12.0176 126.163 12.302C126.529 12.4539 126.85 12.6679 127.124 12.9439V8.12129C127.124 7.26809 126.992 6.64241 126.728 6.24424C126.483 5.82712 126.012 5.61856 125.315 5.61856V5.02132C125.918 5.0782 126.502 5.10664 127.067 5.10664C127.839 5.10664 128.574 5.0782 129.271 5.02132C129.968 4.94548 130.608 4.8412 131.192 4.70847V23.8487C131.192 24.7019 131.324 25.3371 131.587 25.7542C131.851 26.1524 132.322 26.3514 133 26.3514V26.9487C132.416 26.8918 131.832 26.8634 131.248 26.8634C130.457 26.8634 129.713 26.8918 129.016 26.9487C128.338 27.0056 127.707 27.1098 127.124 27.2615Z\" fill=\"currentColor\"/>\n        </svg>);\n    }\n    return (<svg width=\"33\" height=\"32\" viewBox=\"0 0 33 32\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className={className} ref={ref}>\n        <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M11.482 4.9941C11.482 9.92807 15.083 13.1935 16.1491 14.0522C16.3238 14.1928 16.5623 14.1928 16.737 14.0522C17.8031 13.1936 21.4042 9.92836 21.4042 4.9944C21.4042 1.56245 19.7713 -1.73564e-06 16.443 0C13.1147 -1.59101e-06 11.482 1.56215 11.482 4.9941Z\" fill=\"currentColor\"/>\n        <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M26.2426 8.53282C21.5811 10.0575 19.6088 14.5141 19.1271 15.8002C19.0481 16.0109 19.1218 16.2393 19.3087 16.363C20.4493 17.1184 24.647 19.557 29.3084 18.0323C32.5508 16.9718 33.5224 14.9257 32.4939 11.7392C31.4654 8.55276 29.485 7.47229 26.2426 8.53282Z\" fill=\"currentColor\"/>\n        <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M27.4606 23.758C24.5797 19.7663 19.7597 19.2552 18.3958 19.1914C18.1724 19.1809 17.9794 19.3221 17.9202 19.5392C17.559 20.8647 16.5523 25.637 19.4332 29.6287C21.4371 32.4052 23.6704 32.7031 26.3631 30.7338C29.0557 28.7644 29.4645 26.5345 27.4606 23.758Z\" fill=\"currentColor\"/>\n        <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M13.4528 29.6289C16.3337 25.6373 15.3271 20.8648 14.966 19.5393C14.9068 19.3221 14.7138 19.1809 14.4903 19.1914C13.1265 19.2552 8.30664 19.7661 5.42571 23.7577C3.4218 26.5342 3.83048 28.7644 6.52313 30.7338C9.21577 32.7031 11.4489 32.4054 13.4528 29.6289Z\" fill=\"currentColor\"/>\n        <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M3.57743 18.0322C8.23887 19.5569 12.4367 17.1184 13.5774 16.3631C13.7643 16.2393 13.838 16.0109 13.7591 15.8002C13.2774 14.5142 11.3053 10.0576 6.64384 8.53291C3.40145 7.47238 1.42072 8.55281 0.392221 11.7393C-0.63628 14.9257 0.335035 16.9717 3.57743 18.0322Z\" fill=\"currentColor\"/>\n      </svg>);\n});\nOrchid.displayName = 'Orchid';\nexport const Spinner = forwardRef<SVGSVGElement, {\n    className?: string;\n}>(({ className }, ref) => {\n    return (<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className={cn('animate-spin', className)} ref={ref}>\n      <g clipPath=\"url(#clip0_1075_42091)\">\n        <path d=\"M12.25 7.00026C12.2499 8.10893 11.8989 9.18913 11.2472 10.086C10.5955 10.983 9.6766 11.6505 8.62218 11.9931C7.56775 12.3357 6.43195 12.3356 5.37754 11.993C4.32314 11.6504 3.40426 10.9828 2.75261 10.0858C2.10096 9.18886 1.74999 8.10864 1.75 6.99996C1.75001 5.89129 2.10099 4.81107 2.75266 3.91413C3.40432 3.01719 4.3232 2.34958 5.37761 2.00697C6.43202 1.66436 7.56783 1.66434 8.62225 2.00692\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n      </g>\n      <defs>\n        <clipPath id=\"clip0_1075_42091\">\n          <rect width=\"14\" height=\"14\" fill=\"white\"/>\n        </clipPath>\n      </defs>\n    </svg>);\n});\nSpinner.displayName = 'Spinner';\nexport const GoogleIcon = forwardRef<SVGSVGElement, {\n    className?: string;\n}>(({ className }, ref) => {\n    return (<svg width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className={className} ref={ref}>\n        <path d=\"M18.8 10.7083C18.8 10.0583 18.7417 9.43331 18.6333 8.83331H10V12.3833H14.9333C14.7167 13.525 14.0667 14.4916 13.0917 15.1416V17.45H16.0667C17.8 15.85 18.8 13.5 18.8 10.7083Z\" fill=\"#4285F4\"/>\n        <path d=\"M9.99974 19.6667C12.4747 19.6667 14.5497 18.85 16.0664 17.45L13.0914 15.1417C12.2747 15.6917 11.2331 16.025 9.99974 16.025C7.61641 16.025 5.59141 14.4167 4.86641 12.25H1.81641V14.6167C3.32474 17.6083 6.41641 19.6667 9.99974 19.6667Z\" fill=\"#34A853\"/>\n        <path d=\"M4.86634 12.2417C4.68301 11.6917 4.57467 11.1083 4.57467 10.5C4.57467 9.89166 4.68301 9.30833 4.86634 8.75833V6.39166H1.81634C1.19134 7.625 0.833008 9.01666 0.833008 10.5C0.833008 11.9833 1.19134 13.375 1.81634 14.6083L4.19134 12.7583L4.86634 12.2417Z\" fill=\"#FBBC05\"/>\n        <path d=\"M9.99974 4.98331C11.3497 4.98331 12.5497 5.44998 13.5081 6.34998L16.1331 3.72498C14.5414 2.24165 12.4747 1.33331 9.99974 1.33331C6.41641 1.33331 3.32474 3.39165 1.81641 6.39165L4.86641 8.75831C5.59141 6.59165 7.61641 4.98331 9.99974 4.98331Z\" fill=\"#EA4335\"/>\n      </svg>);\n});\nGoogleIcon.displayName = 'GoogleIcon';\nexport const MicrosoftIcon = forwardRef<SVGSVGElement, {\n    className?: string;\n}>(({ className }, ref) => {\n    return (<svg width=\"21\" height=\"21\" viewBox=\"0 0 21 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" className={className} ref={ref}>\n        <rect x=\"1\" y=\"1\" width=\"9\" height=\"9\" fill=\"#F25022\"/>\n        <rect x=\"11\" y=\"1\" width=\"9\" height=\"9\" fill=\"#7FBA00\"/>\n        <rect x=\"1\" y=\"11\" width=\"9\" height=\"9\" fill=\"#00A4EF\"/>\n        <rect x=\"11\" y=\"11\" width=\"9\" height=\"9\" fill=\"#FFB900\"/>\n      </svg>);\n});\nMicrosoftIcon.displayName = 'MicrosoftIcon';\n",
      "type": "registry:ui",
      "target": "@ui/orchid/icons.tsx"
    },
    {
      "path": "registry/ui/orchid/lib/types.ts",
      "content": "import type { ForwardRefExoticComponent, SVGProps } from 'react';\nexport type HeroIcon = ForwardRefExoticComponent<Omit<SVGProps<SVGSVGElement>, 'ref'> & {\n    title?: string | undefined;\n    titleId?: string | undefined;\n} & React.RefAttributes<SVGSVGElement>>;\n",
      "type": "registry:ui",
      "target": "@ui/orchid/lib/types.ts"
    },
    {
      "path": "registry/ui/orchid/lib/ui-utils.ts",
      "content": "import { clsx, type ClassValue } from 'clsx';\nimport { extendTailwindMerge } from 'tailwind-merge';\nconst customTwMerge = extendTailwindMerge({\n    extend: {\n        classGroups: {\n            'font-size': [\n                'text-title-lg',\n                'text-title',\n                'text-title-md',\n                'text-title-sm',\n                'text-copy-xl',\n                'text-copy-lg',\n                'text-copy',\n                'text-copy-sm',\n                'text-copy-xs',\n                'text-label',\n            ],\n        },\n    },\n});\nexport function cn(...inputs: ClassValue[]) {\n    return customTwMerge(clsx(inputs));\n}\nconst SUPPORTED_URL_PROTOCOLS = new Set(['http:', 'https:', 'mailto:', 'sms:', 'tel:']);\nexport function sanitizeUrl(url: string): string {\n    try {\n        const parsedUrl = new URL(url);\n        if (!SUPPORTED_URL_PROTOCOLS.has(parsedUrl.protocol)) {\n            return 'about:blank';\n        }\n    }\n    catch {\n        return url;\n    }\n    return url;\n}\nconst urlRegExp = new RegExp(/((([A-Za-z]{3,9}:(?:\\/\\/)?)(?:[-;:&=+$,\\w]+@)?[A-Za-z0-9.-]+|(?:www.|[-;:&=+$,\\w]+@)[A-Za-z0-9.-]+)((?:\\/[+~%/.\\w-_]*)?\\??(?:[-+=&;%@.\\w_]*)#?(?:[\\w]*))?)/);\nexport function validateUrl(url: string): boolean {\n    if (url.startsWith('mailto:') || url.startsWith('tel:') || url.startsWith('sms:')) {\n        return true;\n    }\n    return url === 'https://' || urlRegExp.test(url);\n}\nexport const removeWhiteSpace = (text: string): string => {\n    return text\n        .replace(/[\\u034F\\u2800-\\u28FF\\u200B-\\u200D\\uFEFF\\u00A0]/g, ' ')\n        .replace(/\\s+/g, ' ')\n        .trim();\n};\nexport function formatEmailDate(date: Date): string {\n    const hours = date.getHours();\n    const minutes = date.getMinutes();\n    const ampm = hours >= 12 ? 'PM' : 'AM';\n    const displayHours = hours % 12 || 12;\n    const displayMinutes = minutes.toString().padStart(2, '0');\n    const months = [\n        'Jan',\n        'Feb',\n        'Mar',\n        'Apr',\n        'May',\n        'Jun',\n        'Jul',\n        'Aug',\n        'Sep',\n        'Oct',\n        'Nov',\n        'Dec',\n    ];\n    const month = months[date.getMonth()];\n    const day = date.getDate();\n    const year = date.getFullYear();\n    const getOrdinalSuffix = (n: number): string => {\n        const s = ['th', 'st', 'nd', 'rd'];\n        const v = n % 100;\n        return s[(v - 20) % 10] || s[v] || s[0];\n    };\n    return `${month} ${day}${getOrdinalSuffix(day)}, ${year}, ${displayHours}:${displayMinutes} ${ampm}`;\n}\n",
      "type": "registry:ui",
      "target": "@ui/orchid/lib/ui-utils.ts"
    }
  ],
  "type": "registry:lib"
}