{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"ui-logo","type":"registry:component","title":"Logo","description":"Aavya brand mark and wordmark with default, inverted, and white variants.","version":"1.0.0","status":"ga","files":[{"path":"src/components/ui/logo.tsx","type":"registry:component","content":"import { cn } from \"@/lib/utils\";\n\ntype LogoVariant =\n\t| \"default\"   // dark mark + cyan accent; adapts via .dark class\n\t| \"inverted\"  // white mark + cyan accent; for dark backgrounds without .dark class\n\t| \"white\";    // fully white; for coloured or photo backgrounds\n\ntype LogoShape =\n\t| \"full\"      // mark + wordmark (default)\n\t| \"mark\"      // icon/symbol only\n\t| \"wordmark\"; // text only\n\ninterface LogoProps {\n\tclassName?: string;\n\tvariant?: LogoVariant;\n\tshape?: LogoShape;\n}\n\nconst SVG_CONFIG: Record<LogoShape, { viewBox: string; width: number; height: number }> = {\n\tfull:     { viewBox: \"0 0 512 134\",   width: 122, height: 32 },\n\tmark:     { viewBox: \"0 0 122 134\",   width: 29,  height: 32 },\n\twordmark: { viewBox: \"152 43 361 48\", width: 120, height: 16 },\n};\n\nfunction Logo({ className, variant = \"default\", shape = \"full\" }: LogoProps) {\n\tconst darkFill =\n\t\tvariant === \"default\" ? \"fill-navy dark:fill-foreground\" : \"fill-white\";\n\tconst cyanFill = variant === \"white\" ? \"fill-white\" : \"fill-aavya\";\n\n\tconst { viewBox, width, height } = SVG_CONFIG[shape];\n\n\treturn (\n\t\t<svg\n\t\t\twidth={width}\n\t\t\theight={height}\n\t\t\tviewBox={viewBox}\n\t\t\tfill=\"none\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={cn(\"shrink-0\", className)}\n\t\t>\n\t\t\t\t{shape !== \"wordmark\" && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{/* Mark — left dark portion */}\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\t\t\td=\"M26.6171 89.5911H9.50832C6.10069 89.5783 3.37355 87.6956 1.52465 84.7493C-0.324258 81.8031 -0.504018 78.1798 1.05343 75.2463L9.51346 59.308L26.6171 89.5911ZM36.6911 8.99605L38.9598 4.72382C40.5545 1.7174 43.7208 -0.0923531 47.2131 0.00363764C50.7068 0.0996283 53.968 2.08728 55.7181 5.18458L98.198 80.3952C99.3073 82.3585 99.3381 84.702 98.2789 86.5808C97.2196 88.4584 95.2243 89.5988 93.012 89.5911H82.1921L36.6911 8.99605Z\"\n\t\t\t\t\t\t\tclassName={darkFill}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{/* Mark — right cyan portion */}\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\t\t\td=\"M83.8755 124.111L81.608 128.383C80.0121 131.389 76.8458 133.199 73.3534 133.103C69.8598 133.007 66.5985 131.02 64.8485 127.922L22.3686 52.7116C21.2593 50.7482 21.2297 48.4048 22.2877 46.5259C23.347 44.6484 25.3423 43.508 27.5545 43.5157H38.3745L83.8755 124.111ZM93.9495 43.5157H111.058C114.466 43.5285 117.193 45.4112 119.042 48.3574C120.891 51.3037 121.071 54.927 119.513 57.8605L111.054 73.7988L93.9495 43.5157Z\"\n\t\t\t\t\t\t\tclassName={cyanFill}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t\t{shape !== \"mark\" && (\n\t\t\t\t\t/* Wordmark */\n\t\t\t\t\t<path\n\t\t\t\t\t\tfillRule=\"evenodd\"\n\t\t\t\t\t\tclipRule=\"evenodd\"\n\t\t\t\t\t\td=\"M389.312 46.5075C388.902 45.9031 388.879 45.1474 389.232 44.5213C389.596 43.9061 390.291 43.5176 391.03 43.5176H396.117C397.039 43.5176 397.893 43.9492 398.405 44.6831L414.588 67.9658L430.692 44.6831C431.193 43.9492 432.058 43.5176 432.98 43.5176H438.135C438.875 43.5176 439.569 43.9061 439.933 44.5213C440.286 45.1474 440.263 45.9031 439.854 46.5075L419.528 76.6334V84.9123C419.528 87.492 417.32 89.5861 414.6 89.5861C411.869 89.5861 409.661 87.492 409.661 84.9123V76.6334L389.312 46.5075ZM307.405 46.313C307.097 45.7194 307.131 45.007 307.496 44.4349C307.86 43.8628 308.497 43.5176 309.18 43.5176H314.529C315.541 43.5176 316.464 44.0787 316.908 44.9638L332.795 76.4929L348.739 44.9638C349.183 44.0787 350.105 43.5176 351.118 43.5176H356.398C357.093 43.5176 357.73 43.8628 358.094 44.4349C358.447 45.007 358.492 45.7194 358.185 46.313L337.609 86.6718C336.699 88.4528 334.832 89.5861 332.795 89.5861C330.747 89.5861 328.88 88.4528 327.981 86.6718L307.405 46.313ZM204.579 86.7904C204.886 87.3841 204.841 88.0965 204.477 88.6685C204.124 89.2406 203.475 89.5861 202.793 89.5861H197.455C196.442 89.5861 195.509 89.0248 195.065 88.1397L179.189 56.6105L163.233 88.1397C162.789 89.0248 161.867 89.5861 160.854 89.5861H155.573C154.891 89.5861 154.253 89.2406 153.889 88.6685C153.525 88.0965 153.491 87.3841 153.798 86.7904L174.363 46.4319C175.274 44.6509 177.14 43.5176 179.189 43.5176C181.226 43.5176 183.092 44.6509 184.003 46.4319L204.579 86.7904ZM286.361 86.7904C286.668 87.3841 286.634 88.0965 286.27 88.6685C285.906 89.2406 285.269 89.5861 284.586 89.5861H279.248C278.224 89.5861 277.302 89.0248 276.858 88.1397L260.971 56.6105L245.026 88.1397C244.583 89.0248 243.661 89.5861 242.648 89.5861H237.367C236.684 89.5861 236.035 89.2406 235.671 88.6685C235.318 88.0965 235.284 87.3841 235.58 86.7904L256.157 46.4319C257.067 44.6509 258.933 43.5176 260.971 43.5176C263.019 43.5176 264.886 44.6509 265.785 46.4319L286.361 86.7904ZM511.792 86.7904C512.099 87.3841 512.065 88.0965 511.7 88.6685C511.336 89.2406 510.699 89.5861 510.005 89.5861H504.667C503.655 89.5861 502.733 89.0248 502.277 88.1397L486.663 56.6105L470.445 88.1397C470.001 89.0248 469.08 89.5861 468.067 89.5861H462.798C462.103 89.5861 461.466 89.2406 461.102 88.6685C460.737 88.0965 460.703 87.3841 461.01 86.7904L481.849 46.4319C482.759 44.6509 484.626 43.5176 486.663 43.5176C488.711 43.5176 490.578 44.6509 491.488 46.4319L511.792 86.7904Z\"\n\t\t\t\t\t\tclassName={darkFill}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t</svg>\n\t);\n}\n\nexport { Logo };\n"}]}