@gradeui/ui 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ui/avatar.md +28 -3
- package/components/ui/grade-loader.md +31 -0
- package/components/ui/input.md +2 -1
- package/components/ui/logo.md +39 -13
- package/components/ui/map.md +19 -10
- package/components/ui/motion.md +109 -0
- package/dist/contracts.js +5 -5
- package/dist/contracts.js.map +1 -1
- package/dist/contracts.mjs +5 -5
- package/dist/contracts.mjs.map +1 -1
- package/dist/index.d.mts +309 -21
- package/dist/index.d.ts +309 -21
- package/dist/index.js +222 -45
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +222 -45
- package/dist/index.mjs.map +1 -1
- package/dist/map/leaflet.d.mts +6 -0
- package/dist/map/leaflet.d.ts +6 -0
- package/dist/map/leaflet.js +4 -0
- package/dist/map/leaflet.js.map +1 -0
- package/dist/map/leaflet.mjs +4 -0
- package/dist/map/leaflet.mjs.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +7 -2
package/dist/contracts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../components/ui/accordion.contract.ts","../components/ui/ai-chat.contract.ts","../components/ui/ai-chat-composer.contract.ts","../components/ui/app-shell.contract.ts","../components/ui/avatar.contract.ts","../components/ui/background-fill.contract.ts","../components/ui/badge.contract.ts","../components/ui/banner.contract.ts","../components/ui/breadcrumb.contract.ts","../components/ui/button.contract.ts","../components/ui/calendar.contract.ts","../components/ui/callout.contract.ts","../components/ui/card.contract.ts","../components/ui/carousel.contract.ts","../components/ui/chart.contract.ts","../components/ui/checkbox.contract.ts","../components/ui/checkbox-card.contract.ts","../components/ui/code.contract.ts","../components/ui/collapsible.contract.ts","../components/ui/command.contract.ts","../components/ui/composer.contract.ts","../components/ui/date-picker.contract.ts","../components/ui/dialog.contract.ts","../components/ui/dropdown-menu.contract.ts","../components/ui/field.contract.ts","../components/ui/fill-picker.contract.ts","../components/ui/flex.contract.ts","../components/ui/grid.contract.ts","../components/ui/hover-card.contract.ts","../components/ui/input.contract.ts","../components/ui/label.contract.ts","../components/ui/logo.contract.ts","../components/ui/map.contract.ts","../components/ui/media-surface.contract.ts","../components/ui/message.contract.ts","../components/ui/multi-select.contract.ts","../components/ui/popover.contract.ts","../components/ui/progress.contract.ts","../components/ui/radio-card.contract.ts","../components/ui/radio-group.contract.ts","../components/ui/resizable.contract.ts","../components/ui/rive-player.contract.ts","../components/ui/row.contract.ts","../components/ui/screen-animator.contract.ts","../components/ui/scroll-area.contract.ts","../components/ui/section-block.contract.ts","../components/ui/select.contract.ts","../components/ui/separator.contract.ts","../components/ui/shader-preset-picker.contract.ts","../components/ui/shader-preset-preview.contract.ts","../components/ui/sheet.contract.ts","../components/ui/sidebar.contract.ts","../components/ui/skeleton.contract.ts","../components/ui/slider.contract.ts","../components/ui/sortable.contract.ts","../components/ui/stack.contract.ts","../components/ui/switch.contract.ts","../components/ui/switch-card.contract.ts","../components/ui/table.contract.ts","../components/ui/tabs.contract.ts","../components/ui/textarea.contract.ts","../components/ui/three-scene.contract.ts","../components/ui/toast.contract.ts","../components/ui/toggle.contract.ts","../components/ui/toggle-group.contract.ts","../components/ui/toolbar.contract.ts","../components/ui/tooltip.contract.ts","../components/ui/video-player.contract.ts","../lib/contracts.ts"],"names":["AccordionContract","z","AiChatContract","AiChatComposerContract","AppShellContract","AvatarContract","BackgroundFillContract","BadgeContract","BannerContract","BreadcrumbContract","ButtonContract","CalendarContract","CalloutContract","CardContract","AlignSchema","AutoplayConfigSchema","AutoplaySchema","CarouselContract","ChartContract","CheckboxContract","CheckboxCardContract","CodeContract","CollapsibleContract","CommandContract","ComposerContract","DatePickerContract","DialogContract","DropdownMenuContract","FieldContract","FillPickerContract","FlexContract","GridContract","HoverCardContract","InputContract","LabelContract","LogoContract","MapContract","AlbumSource","TvShowSource","MovieSource","GameSource","BookSource","PosterSource","PortraitSource","LandscapeSource","ProductSource","FoodSource","GenericSource","NoSubFieldsSource","MediaSourceSchema","AspectSchema","RadiusSchema","HintSchema","EmptyStateSchema","MediaSurfaceContract","MessageContract","MultiSelectContract","PopoverContract","ProgressContract","RadioCardContract","RadioGroupContract","ResizableContract","RivePlayerContract","RowContract","ScreenAnimatorContract","ScrollAreaContract","SectionBlockContract","SelectContract","SeparatorContract","ShaderPresetPickerContract","ShaderPresetPreviewContract","SheetContract","SidebarContract","SkeletonContract","SliderContract","SortableContract","StackContract","SwitchContract","SwitchCardContract","TableContract","TabsContract","TextareaContract","ThreeSceneContract","ToastContract","ToggleContract","ToggleGroupContract","ToolbarContract","TooltipContract","VideoPlayerContract","COMPONENT_CONTRACTS","getComponentContract","componentName","listContractedComponents"],"mappings":"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","file":"contracts.js","sourcesContent":["// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AccordionContract = contract({\n name: \"Accordion\",\n description: \"Long-form content that would overwhelm if shown all at once — FAQs, settings groups, \\\"what's included\\\" sections, nested help. For tab-style peer views with one always visible, reach for Tabs. For a single show/hide reveal use Collapsible.\",\n import: \"@gradeui/ui\",\n aliases: [\"accordion\",\"faq\",\"expand\",\"collapse list\",\"disclosure list\",\"disclosure group\",\"outline group\",\"expandable list\",\"sectionlist\"],\n subcomponents: [\"AccordionItem\",\"AccordionTrigger\",\"AccordionContent\"],\n composesWith: [\"Card (as a faq inside a card body)\",\"Section primitives\"],\n styleDefaults: {\"AccordionItem\":\"border-b\",\"AccordionTrigger\":\"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\"AccordionContent\":\"pb-4 pt-0\"},\n props: {\n \"type\": {\n schema: z.enum([\"single\", \"multiple\"]),\n design: \"knob\",\n description: \"single keeps one open at a time, multiple lets several be open at once\",\n },\n \"collapsible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"only valid with type=\\\"single\\\"; allows the open item to be toggled shut\",\n },\n \"defaultValue\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"initial open item(s)\",\n },\n \"value\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"controlled\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"the row label users click to expand\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AiChatContract = contract({\n name: \"AiChat\",\n description: \"A flexible chat block — header + scrollable message list + composer. Out of the box it looks like a polished \\\"AI panel\\\"; under it, every region is a slot so hosts can compose richer chat surfaces (e.g. Studio's left column with selection chip + settings panel above the composer, an error banner inline, per-message usage / refs / actions). Per-turn token usage, refs, and actions are optional and gated by `showUsage` / `showRefs` / `showActions` — leave them off for product-facing chats, turn them on for developer-facing ones where transparency matters. Composes with [[AIChatComposer]] (rendered internally; can be slotted in with custom props via `composerSlot`).\",\n import: \"@gradeui/ui\",\n aliases: [\"ai chat\",\"chat panel\",\"chat block\",\"llm chat\",\"assistant panel\",\"copilot chat\",\"ai assistant\"],\n composesWith: [\"Card (host in a sidebar panel)\",\"Sheet (mobile drawer)\",\"Stack (place above other content)\",\"AIChatComposer (internal composer; slot to override)\"],\n styleDefaults: {\"MessageActions\":\"inline-flex items-center gap-1 rounded-md px-2 py-1 text-[11px]\",\"ThinkingDisclosure\":\"w-3.5 h-3.5 text-gds-gray-500 dark:text-gds-gray-400 shrink-0\",\"StepsDisclosure\":\"w-3.5 h-3.5 text-gds-gray-500 dark:text-gds-gray-400 transition-transform shrink-0\",\"AIChat\":\"flex flex-col overflow-hidden\"},\n props: {\n \"messages\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"`{ id, role: \\\"user\\\" | \\\"assistant\\\", content, timestamp, thinking?, steps?, usage?, refs?, actions?, duration? }`; defaults to empty\",\n },\n \"onSendMessage\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires when the user submits via the default composer; ignored if `composerSlot` is set\",\n },\n \"isLoading\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"shows a typing indicator at the bottom of the message list\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"composer placeholder text (ignored if `composerSlot` is set)\",\n },\n \"title\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"header title; defaults to \\\"AI Assistant\\\"\",\n },\n \"titleIcon\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"optional icon rendered before the title (e.g. `<Sparkles />`)\",\n },\n \"headerTokens\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"optional session-level token total shown on the right of the header; rendered as \\\"N tokens\\\" with a small gauge icon when set\",\n },\n \"headerEnd\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"optional arbitrary content appended after `headerTokens` on the right of the header\",\n },\n \"showUsage\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the per-turn `usage` strip below the assistant bubble; default false\",\n },\n \"showRefs\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the per-turn `refs` strip below the assistant bubble; default false\",\n },\n \"showActions\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render per-turn `actions` chips when a message has them; default true\",\n },\n \"showDuration\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render the per-turn wall-clock duration (\\\"2.3s\\\") below the assistant bubble when a message carries `duration`; default false\",\n },\n \"showThinking\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render the per-turn reasoning (\\\"Thoughts\\\") disclosure above the assistant prose when a message carries `thinking`; collapsed by default, click to expand; default false\",\n },\n \"showSteps\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render the per-turn step timeline above the assistant prose when a message carries `steps`; collapsed view shows the current running step (or \\\"N steps completed\\\"), click to expand the vertical timeline with status glyphs; default false\",\n },\n \"thinkingPhrase\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"override the \\\"Thinking\\\" label in the loading indicator\",\n },\n \"suggestedPrompts\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"empty-state quick prompts (ignored if `emptyStateSlot` is set)\",\n },\n \"emptyStateSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"replaces the default empty state entirely\",\n },\n \"errorSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"rendered after the messages list (typically an error banner)\",\n },\n \"composerAboveSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"rendered between the messages and the composer (selection chip, settings panel)\",\n },\n \"composerBelowSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"rendered below the composer (disclaimer, char counter)\",\n },\n \"composerSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"full override of the composer; when provided, `onSendMessage` + `placeholder` are unused\",\n },\n \"bare\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"strip the outer card chrome (background, border, rounded corners) so the chat takes the surface of its container; default false (keeps the canned card look)\",\n },\n \"assistantBubble\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"whether assistant messages render with a bubble (background + border + padding + rounded corners); default true. Set false for a Claude.ai-style chromeless transcript where assistant text sits on the surface and only user turns wear a bubble.\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AiChatComposerContract = contract({\n name: \"AiChatComposer\",\n description: \"The reusable \\\"input card\\\" for any chat surface — auto-growing textarea, image attachments via paperclip and clipboard paste, attachment chips with previews, Send/Stop toggle, controlled value. Drop in below any messages list. Use this when you want the input affordances of `<AIChat>` but you're rendering your own messages list / scrollarea / header (e.g. Studio's left-column chat, where SelectionChip and SettingsPanel sit between messages and composer). For the full canned chat block, use `<AIChat>` instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"chat composer\",\"chat input\",\"prompt composer\",\"message input\"],\n composesWith: [\"AIChat (uses this internally)\",\"Card (host above)\",\"ScrollArea (place messages above)\"],\n styleDefaults: {\"AIChatComposer\":\"w-full\"},\n props: {\n \"value\": {\n schema: z.string(),\n design: \"content\",\n description: \"controlled textarea value\",\n },\n \"onChange\": {\n schema: z.unknown(),\n design: \"event\",\n description: \"fires for every textarea change\",\n },\n \"onSend\": {\n schema: z.unknown(),\n design: \"event\",\n description: \"fires when the user submits (Enter or click Send); composer validates that text or attachments exist before firing\",\n },\n \"isLoading\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"disables the textarea + paperclip and swaps Send for Stop\",\n },\n \"onStop\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires when the user clicks Stop; without this, Stop renders disabled\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"maxLength\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"hard cap passed to the underlying `<textarea>`\",\n },\n \"showHint\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the \\\"Press Enter… · Paste images\\\" hint below the card; default true, set false when the host renders its own footer\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AppShellContract = contract({\n name: \"AppShell\",\n description: \"The top-level page scaffold for any app-like or marketing layout. Reach for AppShell\\ninstead of hand-rolling `grid grid-cols-[auto_1fr]` so the layout shape (top nav,\\nside nav, three-pane Slack/Mail/Notion shape, constrained vs full-width main) is a\\nprop the settings panel can mutate. Don't compose top-level layouts from raw grid\\ntemplates — the four variants below cover most app shapes.\\n\\nPick the `nav` variant from the source:\\n nav=\\\"none\\\" — Single column. Marketing landing, login, splash.\\n nav=\\\"top\\\" — Top bar + content. Reddit, Twitter chrome.\\n nav=\\\"side\\\" — Left nav + content. Linear, Notion sidebar shape.\\n nav=\\\"three-pane\\\" — **Narrow icon rail + Aside + Main.** The Slack /\\n WhatsApp / Mail / Plane / Discord / Notion-with-pages\\n shape. ANY time you see a vertical icon rail next to\\n a separate list/sidebar, this is the answer — don't\\n reach for raw `<div className=\\\"grid\\\">` with three\\n column tracks.\",\n import: \"@gradeui/ui\",\n subcomponents: [\"AppShellHeader\",\"AppShellNav\",\"AppShellAside\",\"AppShellMain\",\"AppShellFooter\"],\n composesWith: [\"Stack\",\"Row\",\"Card\",\"Button\",\"Separator\",\"Sidebar\",\"Toolbar\",\"any page content\"],\n styleDefaults: {\"AppShell\":\"gds-app-shell min-h-screen w-full bg-background text-foreground grid\",\"AppShellHeader\":\"gds-app-shell-header\",\"AppShellNav\":\"gds-app-shell-nav border-b bg-background\",\"AppShellAside\":\"gds-app-shell-aside min-w-0 border-r bg-background\",\"AppShellMain\":\"gds-app-shell-main min-w-0 w-full\",\"AppShellFooter\":\"gds-app-shell-footer border-t bg-background\"},\n variantDefaults: {\"nav\":\"none\"},\n props: {\n \"nav\": {\n schema: z.enum([\"none\", \"top\", \"side\", \"three-pane\"]).optional(),\n design: \"knob\",\n description: \"layout structure\",\n default: \"none\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AvatarContract = contract({\n name: \"Avatar\",\n description: \"User/entity identity for PEOPLE — profile pictures, author rows, member lists, account headers. Circular by default; the AvatarFallback initials read as a person's name. Always include AvatarFallback so load failure doesn't leave a gap.\",\n import: \"@gradeui/ui\",\n aliases: [\"profile picture\",\"user image\",\"account image\",\"avatar\",\"person glyph\",\"user avatar\",\"profile image\",\"react native avatar\"],\n subcomponents: [\"AvatarImage\",\"AvatarFallback\"],\n composesWith: [\"Card (in CardHeader)\",\"Table cells\",\"Badge (placed next to for status)\",\"Skeleton (loading state)\"],\n styleDefaults: {\"AvatarImage\":\"aspect-square h-full w-full\"},\n props: {\n \"className\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"set size via utilities (default h-10 w-10)\",\n },\n \"src\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"initials\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const BackgroundFillContract = contract({\n name: \"BackgroundFill\",\n description: \"The background *paint* of a frame — a generative shader, image, video, gradient, repeating texture, or solid token rendered as a layer BEHIND the frame's content. Use it as the first child of a `relative` frame; it paints an `absolute inset-0`, `z-0`, `pointer-events-none` layer, so content carrying `relative z-10` sits on top. This is the canonical way to give any container a rich background — never drop a full-bleed `<ThreeScene>` or `<img>` as a free-standing sibling. For a sized, in-flow media element (a hero card, a thumbnail), use ThreeScene / MediaSurface / VideoPlayer directly instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"background\",\"fill\",\"frame fill\",\"backdrop\",\"surface fill\",\"background image\",\"background video\",\"background gradient\",\"background shader\",\"texture\",\"paint\"],\n composesWith: [\"AppShell\",\"Card\",\"Stack\",\"Row\",\"Grid (any relative container)\",\"ThreeScene (shader fill)\",\"MediaSurface\"],\n styleDefaults: {\"BackgroundFill\":\"absolute inset-0 h-full w-full\"},\n props: {\n \"type\": {\n schema: z.enum([\"none\", \"solid\", \"gradient\", \"image\", \"video\", \"shader\"]),\n design: \"knob\",\n description: \"which paint to render (required)\",\n },\n \"color\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"solid fill; a token name (`primary`, `card`, `muted`, `accent`, `secondary`, `destructive`, `background`, `transparent`) or any CSS colour\",\n },\n \"gradient\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"stops are token names or CSS colours. shape: \\\"linear\\\" (default, uses `angle`, default 135°) | \\\"radial\\\" (uses `at` — CSS position like \\\"top\\\" / \\\"30% 20%\\\", default \\\"center\\\" — and optional `size` like \\\"45rem 50rem\\\", default farthest-corner)\",\n },\n \"src\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"image or video URL\",\n },\n \"fit\": {\n schema: z.enum([\"cover\", \"contain\", \"fill\", \"none\"]).optional(),\n design: \"knob\",\n description: \"object-fit for image/video (default \\\"cover\\\")\",\n },\n \"position\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"CSS object/background position (default \\\"center\\\")\",\n },\n \"repeat\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"tile the image (background-repeat) instead of a single <img>\",\n },\n \"tileSize\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"CSS background-size when repeating (e.g. \\\"120px\\\")\",\n },\n \"preset\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"shader preset id (see ThreeScene)\",\n },\n \"fragmentShader\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"custom GLSL (takes precedence over preset)\",\n },\n \"palette\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"shader palette overrides; wrap tokens as `oklch(var(--token))`\",\n },\n \"postPreset\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"shader post-FX\",\n },\n \"opacity\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"layer opacity 0–1\",\n },\n \"blendMode\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"blend against the frame behind it\",\n },\n \"radius\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n description: \"match the frame's radius so the paint clips cleanly\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const BadgeContract = contract({\n name: \"Badge\",\n description: \"Compact status chips, counts, tags, pills. For higher-signal inline status → use Callout. For solid CTAs → Button. Soft/outline variants are quieter; solid variants are loud.\",\n import: \"@gradeui/ui\",\n aliases: [\"chip\",\"tag\",\"pill\",\"label chip\",\"badge\",\"tag view\",\"status pill\",\"token\",\"count badge\"],\n composesWith: [\"Card\",\"Table (inside a cell)\",\"Avatar (next to it)\",\"anywhere inline\"],\n styleDefaults: {\"Badge\":\"inline-flex items-center gap-1 border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 [&_svg]:size-3 [&_svg]:shrink-0 border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80 rounded-md\"},\n variantDefaults: {\"variant\":\"default\",\"rounded\":\"default\"},\n props: {\n \"variant\": {\n schema: z.enum([\"see list above\"]).optional(),\n design: \"knob\",\n },\n \"rounded\": {\n schema: z.enum([\"default\", \"full\"]).optional(),\n design: \"knob\",\n description: \"\\\"full\\\" gives a pill shape\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const BannerContract = contract({\n name: \"Banner\",\n description: \"A full-width horizontal strip surfacing system-level state, announcements, or first-run guidance — \\\"you're previewing a draft\\\", \\\"investigating incident\\\", \\\"new feature available\\\", \\\"send your design to Figma\\\". Distinct from Callout (inline boxed message in the layout flow), Toast (transient floating notification), Dialog (modal interrupt). Banner is what lives at the TOP of an AppShellHeader, page, or panel.\",\n import: \"@gradeui/ui\",\n aliases: [\"banner\",\"notification banner\",\"system banner\",\"header banner\",\"announcement bar\",\"top bar\",\"status bar\",\"promo banner\",\"incident banner\",\"draft banner\",\"first run banner\",\"glass banner\",\"sticky banner\"],\n composesWith: [\"AppShellHeader (most common host — banner sits ABOVE the header content)\",\"Button (in the action slot)\",\"Link (inside the content)\",\"Lucide icons (in the icon slot)\"],\n styleDefaults: {\"Banner\":\"relative flex items-center gap-3 px-4 py-2.5 text-sm leading-relaxed border-b bg-muted text-foreground border-border [&>svg]:text-muted-foreground justify-between\"},\n variantDefaults: {\"variant\":\"default\",\"align\":\"between\"},\n props: {\n \"variant\": {\n schema: z.enum([\"default\", \"info\", \"success\", \"warning\", \"destructive\", \"announcement\"]).optional(),\n design: \"knob\",\n description: \"intent + tonal direction. `default` is a calm muted strip; `announcement` is a low-alpha brand tint for \\\"new feature\\\" messaging; status variants pick up the soft+deep token pairs.\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"material applied over the variant tint. `glass` for banners that sit over imagery / generative backdrops.\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"between\"]).optional(),\n design: \"knob\",\n description: \"justify behaviour of the inner flex row. Defaults to `between` so the action / dismiss button right-align.\",\n },\n \"sticky\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"stick to the top of the scroll container.\",\n },\n \"dismissible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render the trailing X close button. Pair with `onDismiss` to react.\",\n },\n \"onDismiss\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"icon\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"leading icon slot. NOT inferred from variant; pass what fits the message.\",\n },\n \"action\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"trailing slot before dismiss. Usually a `<Button size=\\\"sm\\\">` or `<a>`.\",\n },\n \"role\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"overrides the automatic role mapping (warning/destructive → alert, others → status).\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const BreadcrumbContract = contract({\n name: \"Breadcrumb\",\n description: \"Reach for Breadcrumb whenever a screen sits inside a hierarchy and you want the path back to the top to be visible. Common spots: above page titles in admin/CMS screens, top of Settings detail pages, after a router redirect when the URL implies depth. Use the current page as a <BreadcrumbPage> (non-clickable) and prior levels as <BreadcrumbLink>. For a horizontal \\\"top nav\\\" of peer destinations use Side Menu or Tabs instead — Breadcrumb is strictly for hierarchical path.\",\n import: \"@gradeui/ui\",\n aliases: [\"breadcrumb\",\"breadcrumbs\",\"crumbs\",\"path\",\"page hierarchy\",\"path bar\",\"navigation trail\",\"finder path\"],\n subcomponents: [\"BreadcrumbList\",\"BreadcrumbItem\",\"BreadcrumbLink\",\"BreadcrumbPage\",\"BreadcrumbSeparator\",\"BreadcrumbEllipsis\"],\n composesWith: [\"AppShellMain\",\"Card (in CardHeader)\",\"Dialog\"],\n styleDefaults: {\"BreadcrumbList\":\"flex flex-wrap items-center gap-1.5 break-words text-xs text-muted-foreground\",\"BreadcrumbItem\":\"inline-flex items-center gap-1.5\",\"BreadcrumbPage\":\"inline-flex items-center gap-1.5 px-0.5 text-xs font-medium text-foreground\",\"BreadcrumbSeparator\":\"[&_svg]:size-3 [&_svg]:shrink-0 text-muted-foreground/60\",\"BreadcrumbEllipsis\":\"flex h-5 w-5 items-center justify-center\",\"BreadcrumbMenuTrigger\":\"h-3 w-3 text-muted-foreground transition-transform\"},\n props: {\n \"aria-label\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"passed to the underlying <nav>\",\n },\n \"separator\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"**tree-wide default** for every <BreadcrumbSeparator/> inside. Pass a string (\\\"/\\\", \\\"›\\\", \\\"•\\\"), a lucide icon (`<Slash/>`, `<ChevronRight/>`), or any ReactNode. Default: `<ChevronRight/>`. Set once on the root; every separator below picks it up via context.\",\n },\n \"className\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"the <ol> wrapper; usually no overrides needed\",\n },\n \"href\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"renders as <a> when set, <button> when not; asChild? wraps a custom element\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"per-instance override of the separator glyph. When set, beats the root's `separator` prop for this one slot. When not set, falls back to the root's `separator`, then to `<ChevronRight/>`.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ButtonContract = contract({\n name: \"Button\",\n description: \"Any clickable action. Use size=\\\"icon\\\" for square icon-only buttons, variant=\\\"link\\\" for inline links that should look like Button, variant=\\\"raised\\\" for high-commitment / weighty actions where the chrome can afford a tactile \\\"physical key\\\" treatment. A Button placed next to a TabsList of the same size lines up edge-to-edge without per-call overrides.\",\n import: \"@gradeui/ui\",\n aliases: [\"button\",\"push button\",\"plain button\",\"bordered button\",\"destructive button\",\"capsule button\",\"link button\",\"action button\",\"cta\",\"raised button\",\"pill button\",\"key button\"],\n composesWith: [\"Dialog\",\"DropdownMenu\",\"Tooltip\",\"Card (in CardFooter)\",\"Row\",\"Form controls\"],\n styleDefaults: {\"Button\":\"inline-flex items-center justify-center whitespace-nowrap rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 gap-1.5 px-3 text-base [&_svg]:size-4\"},\n variantDefaults: {\"variant\":\"default\",\"size\":\"md\"},\n props: {\n \"variant\": {\n schema: z.enum([\"default\", \"destructive\", \"outline\", \"secondary\", \"ghost\", \"link\", \"raised\"]).optional(),\n design: \"knob\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\", \"lg\", \"icon\"]).optional(),\n design: \"knob\",\n description: \"t-shirt scale aligned with Tabs/ToggleGroup heights (sm=h-7, md=h-8, lg=h-10). `default` still works as an alias for `md`.\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"renders as the child element (use to wrap <a>/<Link>)\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CalendarContract = contract({\n name: \"Calendar\",\n description: \"An inline date grid — date-of-birth pickers in profile forms, scheduling screens with a month view, range selection in reporting filters. For a compact trigger-and-popover input, use DatePicker / DateRangePicker (which wrap Calendar internally). For one-off relative dates (\\\"yesterday\\\", \\\"last week\\\") use a Select instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"calendar\",\"date grid\",\"month view\",\"scheduler grid\",\"calendar view\",\"multidate picker\",\"react native calendars\"],\n subcomponents: [\"CalendarDayButton\"],\n composesWith: [\"Popover (DatePicker composes them)\",\"Card (inline scheduling card)\",\"Dialog (full-screen mobile date pick)\"],\n styleDefaults: {\"Calendar\":\"bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\"},\n props: {\n \"mode\": {\n schema: z.enum([\"single\", \"multiple\", \"range\"]).optional(),\n design: \"knob\",\n description: \"picks one date, several dates, or a [from, to] range\",\n },\n \"selected\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"controlled selection; shape matches `mode`\",\n },\n \"onSelect\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires with the new selection\",\n },\n \"month\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"controlled displayed month\",\n },\n \"defaultMonth\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"uncontrolled initial month\",\n },\n \"onMonthChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"numberOfMonths\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"render multiple months side by side, useful for range pickers\",\n },\n \"disabled\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"captionLayout\": {\n schema: z.enum([\"label\", \"dropdown\", \"dropdown-months\", \"dropdown-years\"]).optional(),\n design: \"knob\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CalloutContract = contract({\n name: \"Callout\",\n description: \"Inline, ambient, non-blocking status/feedback that sits inside the layout flow. Form-level validation summaries, settings-page notices, page-level banners. NOT a toast (use Sonner for transient). NOT a modal (use Dialog when the user must respond). Put an icon as first child — it's auto-positioned; CalloutTitle + CalloutDescription follow.\",\n import: \"@gradeui/ui\",\n aliases: [\"callout\",\"banner\",\"notice\",\"inline alert\",\"in-app notification\",\"status banner\",\"info banner\",\"info callout\",\"warning callout\",\"success callout\"],\n subcomponents: [\"CalloutTitle\",\"CalloutDescription\"],\n composesWith: [\"lucide-react icons as first child\",\"Button (inside CalloutDescription)\",\"Card (as a section callout)\"],\n styleDefaults: {\"CalloutTitle\":\"mb-1 font-medium leading-none tracking-tight\",\"CalloutDescription\":\"text-sm [&_p]:leading-relaxed\"},\n props: {\n \"variant\": {\n schema: z.enum([\"default\", \"destructive\", \"success\", \"warning\", \"info\"]).optional(),\n design: \"knob\",\n description: \"semantic colouring; `default` is neutral\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CardContract = contract({\n name: \"Card\",\n description: \"Grouped content with a distinct surface — settings panels, dashboard tiles, list-of-cards layouts, marketing hero containers, AI suggestion overlays. Pair CardHeader (title + description) with CardContent and optional CardFooter (actions). Reach for `surface=\\\"glass\\\"` whenever the card sits over a busy backdrop (gradient mesh, dot grid, generative art, image hero).\",\n import: \"@gradeui/ui\",\n aliases: [\"card\",\"group box\",\"groupbox\",\"panel\",\"tile\",\"surface\",\"glass card\",\"frosted card\",\"floating panel\",\"hero card\",\"ai suggestion card\",\"dashboard tile\",\"settings panel\"],\n subcomponents: [\"CardHeader\",\"CardTitle\",\"CardDescription\",\"CardContent\",\"CardFooter\"],\n composesWith: [\"Button (in CardFooter)\",\"Badge\",\"Separator\",\"Avatar\",\"Code\",\"MediaSurface\",\"any form controls\"],\n styleDefaults: {\"Card\":\"gds-card rounded-xl border text-card-foreground shadow\",\"CardHeader\":\"flex flex-col space-y-1.5 p-6\",\"CardTitle\":\"font-semibold leading-none tracking-tight\",\"CardDescription\":\"text-sm text-muted-foreground\",\"CardContent\":\"p-6 pt-0\",\"CardFooter\":\"flex items-center p-6 pt-0\"},\n props: {\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the card surface is *made of*. `solid` is the default opaque `bg-card`. `translucent` is ~82% opacity for menu sheets. `glass` is ~58% opacity + 14px blur + edge highlight for floating panels. `glass-strong` is ~42% + 24px blur for full-page overlays. Composes with `shadow-elevation-*` (depth) and `gds-aura-*` (state signal).\",\n },\n \"Each\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","/**\n * Carousel — component contract.\n *\n * Hand-authored (no generator marker at the top), so it survives\n * `pnpm -F @gradeui/ui generate:contracts` reruns. Mirrors the\n * Carousel component's TS interface and exposes the props the\n * Studio settings panel can render controls for.\n *\n * Per-slide content (durations, video src/poster, alt text) lives on\n * `Carousel.Slide` / `Carousel.VideoSlide` and is intentionally NOT\n * surfaced through this top-level contract — those belong to the\n * children's own contracts (added later if/when we want per-slide\n * editing). For v1, the panel edits the carousel-wide knobs (autoplay,\n * loop, align, slides per view) and the chat handles per-slide\n * authoring.\n */\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nconst AlignSchema = z.enum([\"start\", \"center\", \"end\"]);\nconst AutoplayConfigSchema = z.object({\n delay: z.number().int().positive().optional(),\n pauseOnHover: z.boolean().optional(),\n pauseWhenOffscreen: z.boolean().optional(),\n});\nconst AutoplaySchema = z.union([z.boolean(), AutoplayConfigSchema]);\n\nexport const CarouselContract = contract({\n name: \"Carousel\",\n description:\n \"Token-driven slideshow primitive. Embla under the hood, custom autoplay loop with per-slide duration overrides, and a VideoSlide variant that autoplays muted+loop with a poster fallback. Reach for it for marketing hero rotations, app onboarding tours, image galleries, TV/streaming featured rails — anywhere a horizontal stack of slides cycles automatically or on user input.\",\n import: \"@gradeui/ui\",\n aliases: [\n \"carousel\",\n \"slideshow\",\n \"slider\", // colloquial — disambiguate from <Slider> (range input) at the prompt-stitching layer\n \"hero rotation\",\n \"image gallery\",\n \"featured row\",\n \"swipe deck\",\n ],\n subcomponents: [\n \"Carousel.Slide\",\n \"Carousel.VideoSlide\",\n \"Carousel.Dots\",\n \"Carousel.Arrows\",\n \"Carousel.Prev\",\n \"Carousel.Next\",\n ],\n composesWith: [\n \"MediaSurface (inside Carousel.Slide for posters / album art)\",\n \"Card (slide content)\",\n \"Stack / Row (slide composition)\",\n ],\n\n props: {\n // ── Knobs — design choices ───────────────────────────────────────\n loop: {\n schema: z.boolean().optional(),\n design: \"knob\",\n label: \"Loop\",\n default: true,\n description:\n \"Wrap from the last slide back to the first. Default true — the natural fit for hero rotations. Turn off for finite onboarding sequences.\",\n },\n align: {\n schema: AlignSchema.optional(),\n design: \"knob\",\n control: \"toggle-group\",\n label: \"Slide alignment\",\n default: \"start\",\n description:\n \"How slides line up inside the viewport when not at 100% width. 'start' is full-bleed; 'center' gives the 'peek of neighbours' carousel look.\",\n },\n slidesPerView: {\n schema: z.number().int().positive().optional(),\n design: \"knob\",\n label: \"Slides per view\",\n default: 1,\n description:\n \"How many slides show at once. 1 for hero rotations; 3 for thumbnail strips; etc. For media-query responsive layouts, leave this at 1 and override `--gds-carousel-slide-basis` on each Slide via CSS.\",\n },\n autoplay: {\n schema: AutoplaySchema.optional(),\n design: \"structured\",\n label: \"Autoplay\",\n default: false,\n description:\n \"`true` for sensible defaults (5s, pause on hover, pause offscreen). Object form: `{ delay, pauseOnHover, pauseWhenOffscreen }`. Per-slide overrides go on `<Carousel.Slide duration={ms}>`.\",\n },\n draggable: {\n schema: z.boolean().optional(),\n design: \"knob\",\n label: \"Drag to swipe\",\n default: true,\n description:\n \"Disable when slide content (a Map, a chart, a draggable card) needs to swallow drag events.\",\n },\n\n // ── Events ───────────────────────────────────────────────────────\n onSlideChange: {\n schema: z.function().optional(),\n design: \"event\",\n description:\n \"Fires with the new slide index whenever the active slide changes (programmatic, autoplay, or user swipe).\",\n },\n\n // ── Plumbing ─────────────────────────────────────────────────────\n className: {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n style: {\n schema: z.record(z.string(), z.unknown()).optional(),\n design: \"plumbing\",\n },\n children: {\n schema: z.unknown(),\n design: \"plumbing\",\n description:\n \"Carousel.Slide / Carousel.VideoSlide children, plus optionally Carousel.Dots and Carousel.Arrows.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ChartContract = contract({\n name: \"Chart\",\n description: \"Reporting dashboards, single-purpose analytics cards (revenue, conversions, active users), or anywhere you'd otherwise hand-roll a Recharts setup. Bring the actual chart type from `recharts` — ChartContainer doesn't pick the chart shape for you, it themes whatever you nest. For sparkline-style decorative trends consider just rendering a small SVG line directly; ChartContainer is overkill for non-interactive ornament.\",\n import: \"@gradeui/ui\",\n aliases: [\"chart\",\"charts\",\"graph\",\"bar chart\",\"line chart\",\"area chart\",\"recharts\",\"analytics chart\",\"swift chart\",\"swiftui chart\",\"victory chart\",\"victory native\"],\n subcomponents: [\"ChartTooltip\",\"ChartTooltipContent\",\"ChartLegend\",\"ChartLegendContent\",\"ChartStyle\"],\n composesWith: [\"Card (chart-in-a-card pattern)\",\"Tabs (multi-metric switcher)\",\"Recharts components (Bar\",\"Line\",\"Area\",\"Pie\",\"Radar from \\\"recharts\\\")\"],\n styleDefaults: {\"ChartContainer\":\"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\"ChartTooltipContent\":\"font-medium\",\"ChartLegendContent\":\"flex items-center justify-center gap-4\"},\n props: {\n \"config\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"`{ [seriesKey]: { label: string; color?: string; theme?: { light: string; dark: string } } }`; the keys here are the names you reference in your Recharts <Bar dataKey=\\\"…\\\" /> calls\",\n },\n \"id\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"used for the inlined <style> tag\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"typically a single Recharts ResponsiveContainer or chart\",\n },\n \"passes\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"pair with `content={<ChartTooltipContent />}`\",\n },\n \"indicator\": {\n schema: z.enum([\"dot\", \"line\", \"dashed\"]).optional(),\n design: \"knob\",\n },\n \"ChartLegend\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CheckboxContract = contract({\n name: \"Checkbox\",\n description: \"Binary on/off tied to a list (select multiple, agree to terms). Single on/off that controls a setting is better with Switch. For a label + description row, wrap in Field. When each option should be a whole selectable card (label + description, selected state on the card surface), use CheckboxCard.\",\n import: \"@gradeui/ui\",\n aliases: [\"checkbox\",\"tickbox\",\"tick box\",\"check\",\"multi-select item\"],\n composesWith: [\"Label (via htmlFor)\",\"Field (label + description row)\",\"CheckboxCard (whole-card selectable option)\",\"Card\",\"Form rows\",\"Table (for row selection)\"],\n styleDefaults: {\"Checkbox\":\"flex items-center justify-center text-current\"},\n props: {\n \"checked\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"onCheckedChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"defaultChecked\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"id\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"bind a Label's htmlFor to this\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CheckboxCardContract = contract({\n name: \"CheckboxCard\",\n description: \"Multi-select where each option is a whole selectable card (add-ons, feature toggles, opt-ins). The whole card is the control, so focus and the checked state live on the card surface. Standalone (not in a group). Static content only — never nest an interactive control inside. For a plain checkbox + label row use Field instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"checkbox card\",\"selectable card\",\"multi-select card\",\"add-on card\",\"feature card\",\"opt-in card\"],\n composesWith: [\"Badge (in aside)\",\"MediaSurface (custom children)\",\"Stack / Grid (laying out several)\"],\n props: {\n \"checked\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"standard checkbox state\",\n },\n \"label\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"title line\",\n },\n \"description\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"secondary line\",\n },\n \"aside\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot before the indicator (a Badge, price, hint)\",\n },\n \"hideIndicator\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the check; selection shown by the card border + background\",\n },\n \"indicatorPosition\": {\n schema: z.enum([\"leading\", \"trailing\"]).optional(),\n design: \"knob\",\n description: \"default trailing\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"arbitrary static content instead of label/description\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CodeContract = contract({\n name: \"Code\",\n description: \"Read-only code surface for marketing heroes, docs, changelog entries, AI-output displays. Use `diff` for the \\\"diff hero\\\" pattern (before/after side-by-side or stacked). Use `reveal=\\\"lines\\\"` with `trigger=\\\"inView\\\"` for scroll-driven marketing pages. Use `reveal=\\\"typewriter\\\"` for AI-output / chat-style displays. Use `bare` for inline code inside prose. NOT a code editor — for editable code, reach for an external editor primitive (CodeMirror / Monaco).\",\n import: \"@gradeui/ui\",\n aliases: [\"code block\",\"code\",\"code snippet\",\"code surface\",\"syntax highlighted code\",\"diff hero\",\"diff view\",\"diff block\",\"changelog code\",\"before after code\",\"scroll-triggered code\",\"typewriter code\"],\n composesWith: [\"SectionBlock\",\"Card\",\"Tabs (for multi-file examples)\",\"Carousel (slide-to-slide code progression)\"],\n styleDefaults: {\"Code\":\"gds-code relative w-full overflow-hidden\"},\n props: {\n \"source\": {\n schema: z.string(),\n design: \"content\",\n description: \"the code to render\",\n },\n \"language\": {\n schema: z.enum([\"tsx\", \"jsx\", \"ts\", \"js\", \"html\", \"css\", \"json\", \"bash\", \"md\", \"py\", \"go\", \"rust\"]).optional(),\n design: \"knob\",\n description: \"Prism language id; defaults to `tsx`\",\n },\n \"highlight\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"1-indexed line number, array of numbers, or array of `[start, end]` ranges to emphasise\",\n },\n \"diff\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"`{ added?: number[]; removed?: number[] }` — 1-indexed lines for diff hero / changelog mode\",\n },\n \"reveal\": {\n schema: z.enum([\"none\", \"lines\", \"typewriter\", \"diff\"]).optional(),\n design: \"knob\",\n description: \"entrance animation; defaults to `none`\",\n },\n \"trigger\": {\n schema: z.enum([\"mount\", \"inView\", \"manual\"]).optional(),\n design: \"knob\",\n description: \"what kicks the reveal off; defaults to `mount`\",\n },\n \"play\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"for `trigger=\\\"manual\\\"`, set true to play\",\n },\n \"speed\": {\n schema: z.enum([\"slow\", \"normal\", \"fast\"]).optional(),\n design: \"knob\",\n description: \"animation feel preset. `normal` (default) maps to the canonical 50ms/22ms staggers + 180ms pre-delay. Pick a feel; don't tune individual numbers unless you have to.\",\n },\n \"delay\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"explicit delay before reveal starts (ms) — overrides the `speed` preset\",\n },\n \"stagger\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"explicit per-line stagger for `lines`/`diff`, per-token for `typewriter` (ms) — overrides the `speed` preset\",\n },\n \"prompt\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"string prepended to each line. Use for terminal emulation: `prompt=\\\"$ \\\"` for bash, `prompt=\\\"> \\\"` for PowerShell, `prompt=\\\">>> \\\"` for Python REPL. Prompt characters render in muted token colour, don't pick up the typewriter stagger, and are hidden from screen readers.\",\n },\n \"showLineNumbers\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"filename\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"optional label rendered in the header chrome\",\n },\n \"wrap\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"wrap long lines instead of horizontal scroll\",\n },\n \"bare\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"drop chrome (border, header, padding) — for inline use\",\n },\n \"size\": {\n schema: z.enum([\"xs\", \"sm\", \"md\"]).optional(),\n design: \"knob\",\n description: \"type-scale preset. `xs` (12px) for dense changelog cards / inline blocks; `sm` (14px, default) for marketing heroes and docs; `md` (16px) for focal-point displays.\",\n },\n \"height\": {\n schema: z.enum([\"auto\", \"number\", \"string\"]).optional(),\n design: \"knob\",\n description: \"container sizing. `auto` (default) grows with content. Number = pixels (`300` → `300px`). String passes through as CSS (`\\\"20rem\\\"`, `\\\"50vh\\\"`).\",\n },\n \"maxLines\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"cap the visible line count at exactly N line-heights. Wins over `height`. Inherits the current size's line-height automatically.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CollapsibleContract = contract({\n name: \"Collapsible\",\n description: \"A single show/hide reveal — \\\"Show advanced settings\\\" rows, expandable inline help, \\\"More details\\\" sections inside cards. For multiple rows of expandable content where one-at-a-time matters, reach for Accordion. For a separate panel that floats above content, use Popover.\",\n import: \"@gradeui/ui\",\n aliases: [\"collapsible\",\"expand\",\"show more\",\"disclosure\",\"advanced settings\",\"disclosure group\",\"expandable section\",\"expandable view\",\"show hide\"],\n subcomponents: [\"CollapsibleTrigger\",\"CollapsibleContent\"],\n composesWith: [\"Button (as the trigger\",\"asChild)\",\"Card (expandable settings group)\",\"Row (header + chevron)\"],\n props: {\n \"open\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"controlled open state\",\n },\n \"defaultOpen\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"uncontrolled initial state\",\n },\n \"onOpenChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"the clickable header (often a Button asChild)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CommandContract = contract({\n name: \"Command\",\n description: \"A searchable list of actions or destinations — global ⌘K palettes, \\\"jump to\\\" inputs, account switchers with filter. Wrap in CommandDialog when it should pop over the entire app on a hotkey. For straight forms with filter, prefer a Select with a search input. For free-text autocomplete tied to a single value, prefer Combobox built on Popover + Command.\",\n import: \"@gradeui/ui\",\n aliases: [\"command palette\",\"command menu\",\"cmd k\",\"quick switcher\",\"action menu\",\"spotlight\",\"spotlight search\",\"quick open\",\"fuzzy finder\"],\n subcomponents: [\"CommandInput\",\"CommandList\",\"CommandEmpty\",\"CommandGroup\",\"CommandItem\",\"CommandSeparator\",\"CommandShortcut\",\"CommandDialog\"],\n composesWith: [\"Dialog (CommandDialog wraps it)\",\"Popover (inline combobox)\",\"Tooltip\"],\n styleDefaults: {\"Command\":\"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\"CommandInput\":\"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\"CommandList\":\"max-h-[300px] overflow-y-auto overflow-x-hidden\",\"CommandGroup\":\"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\"CommandSeparator\":\"-mx-1 h-px bg-border\",\"CommandItem\":\"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\"CommandShortcut\":\"ml-auto text-xs tracking-widest text-muted-foreground\"},\n props: {\n \"value\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"controlled active item value\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"wraps groups and empty state\",\n },\n \"heading\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"onSelect\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"open\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"when you want the command palette mounted in a modal (cmd+k pattern)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ComposerContract = contract({\n name: \"Composer\",\n description: \"THE PRIMITIVE for any text composition surface — Slack / Discord /\\nTeams chat input, AI chat / copilot prompt box, comment thread input,\\nGitHub / Linear / Jira comment box, Reddit / Twitter reply box,\\nNotion / Linear document body, email composer, post body, anywhere\\na user types text and submits.\\n\\nCONCRETE TEST — if you find yourself writing a `<textarea>` (or\\n`<Input>` styled tall) with a row of `<Bold>` / `<Italic>` /\\n`<Paperclip>` / `<Send>` buttons below or beside it, STOP. That is\\n`<Composer>`. Use it.\\n\\nCommon shapes:\\n Chat input with formatting + attachments + send\\n → <Composer formats={[\\\"bold\\\",\\\"italic\\\",\\\"code\\\"]} toolbar attachments />\\n AI prompt box with paperclip + send\\n → <AIChatComposer /> (preset wrapping Composer)\\n Comment / reply input\\n → <ComposerReply triggers={[{char:\\\"@\\\", items: people}]} />\\n Document body editor\\n → <Composer toolbar formats={[...]} bare />\\n\\nBuilt on Lexical for rich text, mentions, slash commands. The\\n`attachments` prop wires image paste + paperclip + chip preview row\\nwith object URL lifecycle handled internally — don't roll that\\nplumbing yourself. The `triggers` prop wires @mentions and /slash\\ncommands with a typeahead popover. The `formats` array picks which\\ntoolbar buttons render when `toolbar` is on.\\n\\nShares the lib/demo step vocabulary with <Code> so scripted\\ntyping/format/mention demos animate in the same rhythm as your\\nterminal demos.\",\n import: \"@gradeui/ui\",\n composesWith: [\"AIChatComposer (preset wrapping this with paperclip + send + attachments)\",\"ComposerReply (preset for comment threads)\",\"AIChat (uses AIChatComposer internally)\",\"Card (host above for reply boxes)\",\"Avatar (in leftActions slot for \\\"your\\\" avatar next to the input)\"],\n styleDefaults: {\"ComposerToolbar\":\"flex flex-wrap items-center gap-0.5\",\"AttachmentChips\":\"absolute -top-1.5 -right-1.5 h-5 w-5 rounded-full\",\"ComposerInner\":\"w-full\"},\n props: {\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"initialText\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"plain text content to seed on mount\",\n },\n \"initialJson\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"Lexical state JSON (from a previous onSubmit round-trip)\",\n },\n \"formats\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"available formats (defaults to bold/italic/underline/strikethrough/code/h1/h2/blockquote/ul/ol); pass false for plain text only\",\n },\n \"toolbar\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the formatting toolbar above the editor; default false\",\n },\n \"triggers\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"mention/slash configs, eg. `[{ char: \\\"@\\\", items: people }, { char: \\\"/\\\", items: commands }]`\",\n },\n \"attachments\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"enable image paste + paperclip when true/object; default off\",\n },\n \"onSubmit\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"isLoading\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"disables editor, swaps default Send for Stop\",\n },\n \"onStop\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"maxLength\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"autoFocus\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n },\n \"submitOnEnter\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"default true (Shift-Enter still inserts newline)\",\n },\n \"leftActions\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"override the default paperclip\",\n },\n \"rightActions\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"override the default Send/Stop\",\n },\n \"hideSend\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the default Send without replacing it\",\n },\n \"steps\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"scripted demo sequence\",\n },\n \"trigger\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"\\\"mount\\\" | \\\"inView\\\" | \\\"manual\\\"; default \\\"mount\\\"\",\n },\n \"play\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"for trigger=\\\"manual\\\"\",\n },\n \"speed\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"\\\"slow\\\" | \\\"normal\\\" | \\\"fast\\\"; default \\\"normal\\\"\",\n },\n \"loop\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"loopDelay\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"ms between loop iterations, default 2000\",\n },\n \"readOnly\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"disables editing AND focusability; programmatic playback still works; use for marketing demos so the script doesn't steal focus\",\n },\n \"bare\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"strip the card chrome\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const DatePickerContract = contract({\n name: \"DatePicker\",\n description: \"Any date or date-range entry. Use DatePicker for a single date (DOB, due date, booking). Use DateRangePicker for a span (report period, stay dates, filter window). Prefer these over <Input type=\\\"date\\\"> — consistent theming, keyboard nav, a11y, and no browser-native UI drift.\",\n import: \"@gradeui/ui\",\n aliases: [\"datepicker\",\"calendar input\",\"date field\",\"date range\",\"datepickerios\",\"react native date picker\",\"calendar input field\",\"date field control\"],\n subcomponents: [\"DateRangePicker\"],\n composesWith: [\"Label\",\"Form\",\"Card (in CardContent)\",\"Button (form submit)\"],\n styleDefaults: {\"DatePicker\":\"w-[280px] justify-start text-left font-normal data-[empty=true]:text-muted-foreground\",\"DateRangePicker\":\"w-[300px] justify-start text-left font-normal data-[empty=true]:text-muted-foreground\"},\n props: {\n \"value\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"onChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"called on select or clear\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"trigger label when empty (default \\\"Pick a date\\\" / \\\"Pick a date range\\\")\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"format\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"date-fns format token for the trigger label (default \\\"PPP\\\" single, \\\"LLL dd, y\\\" range)\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\"]).optional(),\n design: \"knob\",\n description: \"popover align (default \\\"start\\\")\",\n },\n \"side\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\"]).optional(),\n design: \"knob\",\n description: \"popover side\",\n },\n \"captionLayout\": {\n schema: z.enum([\"label\", \"dropdown\", \"dropdown-months\", \"dropdown-years\"]).optional(),\n design: \"knob\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"on the trigger button\",\n },\n \"contentClassName\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"on the PopoverContent\",\n },\n \"icon\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"replaces the default CalendarIcon\",\n },\n \"numberOfMonths\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"DateRangePicker only, default 2\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const DialogContract = contract({\n name: \"Dialog\",\n description: \"Modal interruptions — confirmations, focused forms, detail views, AI suggestion sheets. Dialog is the right primitive for Apple HIG / React Native \\\"Alert\\\" (modal) semantics. For non-blocking inline messaging use Callout; for transient notifications use Toaster (Sonner). Always include DialogTitle (a11y requirement).\",\n import: \"@gradeui/ui\",\n aliases: [\"modal\",\"popup\",\"overlay\",\"alert\",\"system alert\",\"alert dialog\",\"modal dialog\",\"confirm dialog\",\"react native modal\",\"rn alert\",\"glass modal\",\"frosted modal\",\"ai suggestion modal\"],\n subcomponents: [\"DialogTrigger\",\"DialogContent\",\"DialogHeader\",\"DialogTitle\",\"DialogDescription\",\"DialogFooter\",\"DialogClose\"],\n composesWith: [\"Button (as DialogTrigger asChild\",\"and inside DialogFooter)\",\"Input/Textarea/Select inside DialogContent\",\"Code (for changelog / diff modals)\",\"MediaSurface (for image / preview modals)\"],\n styleDefaults: {\"DialogOverlay\":\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\"DialogContent\":\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\"DialogHeader\":\"flex flex-col space-y-1.5 text-center sm:text-left\",\"DialogFooter\":\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\"DialogTitle\":\"text-lg font-semibold leading-none tracking-tight\",\"DialogDescription\":\"text-sm text-muted-foreground\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"Radix controlled/uncontrolled pattern\",\n },\n \"asChild\": {\n schema: z.enum([\"wrap a Button\"]).optional(),\n design: \"plumbing\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the modal panel is *made of*. Defaults to `solid` (opaque `bg-background`). `glass` lets the page show through softly — pairs with rich backdrops or AI-suggestion modals.\",\n },\n \"accepts\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"used\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const DropdownMenuContract = contract({\n name: \"DropdownMenu\",\n description: \"A small action menu attached to a trigger — overflow \\\"…\\\" buttons on cards, user-avatar menus in headers, \\\"Insert\\\" menus in editors. For a full searchable list, use Command. For ONE primary action plus a secondary, use a Button next to a smaller ghost Button instead of a dropdown.\",\n import: \"@gradeui/ui\",\n aliases: [\"dropdown\",\"dropdown menu\",\"overflow menu\",\"kebab menu\",\"more menu\",\"action menu\",\"context-style menu\",\"menu\",\"pull-down menu\",\"pulldown menu\",\"context menu\",\"popup menu\",\"actions menu\",\"glass menu\",\"frosted menu\",\"ios menu\",\"hig menu\"],\n subcomponents: [\"DropdownMenuTrigger\",\"DropdownMenuContent\",\"DropdownMenuItem\",\"DropdownMenuCheckboxItem\",\"DropdownMenuRadioGroup\",\"DropdownMenuRadioItem\",\"DropdownMenuLabel\",\"DropdownMenuSeparator\",\"DropdownMenuShortcut\",\"DropdownMenuGroup\",\"DropdownMenuSub\",\"DropdownMenuSubTrigger\",\"DropdownMenuSubContent\"],\n composesWith: [\"Button (as trigger asChild)\",\"Avatar (user menu)\",\"Card (overflow on a tile)\",\"Tooltip (on the trigger)\"],\n styleDefaults: {\"DropdownMenuSubTrigger\":\"flex cursor-default select-none items-center gap-2 rounded-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:shrink-0\",\"DropdownMenuSubContent\":\"z-50 min-w-[8rem] overflow-hidden rounded-md border text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]\",\"DropdownMenuContent\":\"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border text-popover-foreground shadow-md\",\"DropdownMenuItem\":\"relative flex cursor-default select-none items-center gap-2 rounded-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:shrink-0\",\"DropdownMenuCheckboxItem\":\"relative flex cursor-default select-none items-center rounded-sm pr-2 outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\"DropdownMenuRadioItem\":\"relative flex cursor-default select-none items-center rounded-sm pr-2 outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\"DropdownMenuLabel\":\"font-semibold\",\"DropdownMenuSeparator\":\"-mx-1 my-1 h-px bg-muted\",\"DropdownMenuShortcut\":\"ml-auto text-xs tracking-widest opacity-60\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"usually wraps a Button\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"top\", \"right\", \"bottom\", \"left\"]).optional(),\n design: \"knob\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the menu surface is *made of*. `solid` (default) is `bg-popover`. `translucent` matches Apple HIG / iOS menu sheets. `glass` for menus floating over rich canvases.\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"menu density; cascades to every item (Item, Checkbox, Radio, SubTrigger, Label) via context so a compact trigger gets a compact menu. Use \\\"xs\\\" in dense tool panels.\",\n },\n \"onSelect\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"DropdownMenuCheckboxItem\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"DropdownMenuSub\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"sub-trigger shows children, sub-content holds the deeper items\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"right-aligned kbd hint\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const FieldContract = contract({\n name: \"Field\",\n description: \"Pair a bare control with a label and optional description in a row, with id + aria-describedby wired automatically. Use layout=\\\"setting\\\" for the classic settings row (label on the left, Switch on the right). For a selectable CARD where the whole surface is the control, use RadioCard / CheckboxCard / SwitchCard instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"field\",\"form field\",\"control row\",\"label and description\",\"two line checkbox\",\"option row\",\"setting row\",\"toggle row\"],\n composesWith: [\"Checkbox\",\"RadioGroup\",\"RadioGroupItem\",\"Switch\",\"Badge (inside Field.Trailing)\"],\n styleDefaults: {\"FieldLabel\":\"text-sm font-medium leading-none text-foreground cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\"FieldDescription\":\"text-sm text-muted-foreground\",\"FieldTrailing\":\"flex shrink-0 items-center gap-2\",\"FieldRoot\":\"flex gap-3\"},\n props: {\n \"layout\": {\n schema: z.enum([\"option\", \"setting\"]).optional(),\n design: \"knob\",\n description: \"option (default): control leads, text beside it; setting: text leads, control pinned trailing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"order does not matter\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const FillPickerContract = contract({\n name: \"FillPicker\",\n description: \"Grade's paint picker — the control for choosing a frame's background fill, modelled on Figma's fill popover. A fill-type icon row (solid · gradient · image · pattern · video · shader) switches the panel below; a global opacity sits at the foot. Emits a FillValue that maps 1:1 onto BackgroundFill props. This is a Studio/inspector chrome control — pair it with BackgroundFill, which renders the chosen paint. Not for app content.\",\n import: \"@gradeui/ui\",\n aliases: [\"fill picker\",\"paint picker\",\"background picker\",\"fill chooser\",\"fill popover\"],\n composesWith: [\"BackgroundFill (renders the FillValue)\",\"Popover (host it in a popover)\",\"ShaderPresetPicker (the shader tab)\",\"the inspector Fill section\"],\n styleDefaults: {\"Swatch\":\"h-7 w-7 rounded-md border border-border/60 transition-shadow\",\"FillPicker\":\"flex flex-col gap-3\"},\n props: {\n \"value\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"current paint ({ type, color?, gradient?, src?, fit?, repeat?, tileSize?, preset?, palette?, postPreset?, opacity? }) (required)\",\n },\n \"onChange\": {\n schema: z.unknown(),\n design: \"event\",\n description: \"called on any change (required)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const FlexContract = contract({\n name: \"Flex\",\n description: \"The unopinionated flexbox primitive — reach for Flex when Stack, Row, or Grid don't quite fit. Specifically when you need reverse direction (`row-reverse` / `col-reverse`), CSS defaults instead of Row's baked-in `items-center gap-md`, or baseline alignment. Otherwise prefer Stack / Row / Grid — they're easier to read and tuned for the 95% case. Flex is the escape hatch, not the default.\",\n import: \"@gradeui/ui\",\n aliases: [\"flex\",\"flexbox\",\"flex container\",\"hstack\",\"vstack\",\"horizontal\",\"vertical\",\"generic container\",\"layout view\"],\n composesWith: [\"any content component\"],\n props: {\n \"direction\": {\n schema: z.enum([\"row\", \"col\", \"row-reverse\", \"col-reverse\"]).optional(),\n design: \"knob\",\n description: \"main-axis direction\",\n default: \"row\",\n },\n \"gap\": {\n schema: z.enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"]).optional(),\n design: \"knob\",\n description: \"gap between children\",\n default: \"none\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"stretch\", \"baseline\"]).optional(),\n design: \"knob\",\n description: \"cross-axis alignment\",\n default: \"stretch\",\n },\n \"justify\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"between\", \"around\", \"evenly\"]).optional(),\n design: \"knob\",\n description: \"main-axis distribution\",\n default: \"start\",\n },\n \"wrap\": {\n schema: z.enum([\"nowrap\", \"wrap\", \"wrap-reverse\"]).optional(),\n design: \"knob\",\n description: \"wrap behaviour when children overflow\",\n default: \"nowrap\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const GridContract = contract({\n name: \"Grid\",\n description: \"2D layouts where Stack (vertical) and Row (horizontal) don't fit — stat-card grids, feature tiles, pricing columns, photo grids. Reach for Grid over hand-rolled `grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4` so the column count is a prop the settings panel can mutate and the responsive ladder stays consistent across designs.\",\n import: \"@gradeui/ui\",\n aliases: [\"grid\",\"tiles\",\"cards grid\",\"stat grid\",\"columns\",\"feature grid\",\"grid view\",\"lazy v grid\",\"lazyvgrid\",\"lazy h grid\",\"lazyhgrid\",\"tile grid\",\"masonry\"],\n composesWith: [\"Card\",\"Stack (inside each cell)\",\"Row\",\"Button\",\"any content component\"],\n styleDefaults: {\"Grid\":\"gds-grid grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4 items-stretch\"},\n variantDefaults: {\"cols\":\"3\",\"gap\":\"md\",\"align\":\"stretch\"},\n props: {\n \"cols\": {\n schema: z.enum([\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"12\"]).optional(),\n design: \"knob\",\n description: \"desktop column count; each value has a baked-in responsive ladder (e.g. \\\"4\\\" → 1 col mobile, 2 tablet, 4 desktop)\",\n default: \"3\",\n },\n \"gap\": {\n schema: z.enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"]).optional(),\n design: \"knob\",\n description: \"gap between grid cells (same scale as Stack/Row)\",\n default: \"md\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"stretch\"]).optional(),\n design: \"knob\",\n description: \"cross-axis alignment of cells\",\n default: \"stretch\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const HoverCardContract = contract({\n name: \"HoverCard\",\n description: \"Rich preview content surfaced on hover — user profile mini-cards on @-mentions, link previews, definition popups, layer-thumbnail peeks. Pointer-only by design (no touch-friendly trigger); pair with a click target for touch devices, or fall back to Popover. NEVER use HoverCard for critical info — if the user can't reach it via keyboard or touch, it might as well not exist for accessibility.\",\n import: \"@gradeui/ui\",\n aliases: [\"hover card\",\"hover preview\",\"mention preview\",\"profile peek\",\"link preview\",\"rich tooltip\",\"link preview card\",\"profile hover\",\"peek card\",\"glass preview\",\"frosted preview\"],\n subcomponents: [\"HoverCardTrigger\",\"HoverCardContent\"],\n composesWith: [\"Avatar (user preview)\",\"Card (richer content)\",\"Link (the trigger)\",\"MediaSurface (link/layer previews)\",\"Code (snippet previews)\"],\n styleDefaults: {\"HoverCardContent\":\"z-50 w-64 rounded-md border p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-hover-card-content-transform-origin]\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"usually a Link or Button\",\n },\n \"side\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the preview surface is *made of*. `solid` (default) is `bg-popover`. `glass` for hover previews over rich content (a media feed, a layout canvas).\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const InputContract = contract({\n name: \"Input\",\n description: \"Any single-line text entry. Always pair with a Label for accessibility. Use startSlot/endSlot for icons, prefixes and units instead of hand-positioning absolute children; use size=\\\"sm\\\"/\\\"xs\\\" in dense tool panels.\",\n import: \"@gradeui/ui\",\n aliases: [\"text field\",\"textbox\",\"textfield\",\"form field\",\"text input\",\"secure field\",\"search field\",\"url field\",\"number field\",\"textinput\",\"text input field\",\"react native textinput\",\"unit input\",\"input with icon\"],\n composesWith: [\"Label\",\"Form\",\"Card (in CardContent)\",\"Button (form submit)\"],\n styleDefaults: {\"Input\":\"pointer-events-none absolute inset-y-0 left-0 flex items-center text-muted-foreground [&_svg]:size-3.5\"},\n props: {\n \"type\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"control density. `default` (h-9) for forms; `sm` (h-8) and `xs` (h-7) for dense tool panels like the inspector.\",\n },\n \"startSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"adornment rendered inside the leading edge (icon, prefix, currency symbol). Non-interactive by default so clicks focus the input.\",\n },\n \"endSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"adornment rendered inside the trailing edge (unit like \\\"px\\\", a clear button, a stepper). Same pointer rules as startSlot.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const LabelContract = contract({\n name: \"Label\",\n description: \"Every Input / Textarea / Checkbox / Switch / RadioGroup. Always use htmlFor so clicking the label focuses the control. Match `size` to the field it labels (size=\\\"xs\\\" label over a size=\\\"xs\\\" input).\",\n import: \"@gradeui/ui\",\n aliases: [\"label\",\"form label\",\"field label\",\"caption\"],\n composesWith: [\"Input\",\"Textarea\",\"Checkbox\",\"Switch\",\"RadioGroup\",\"Select\"],\n styleDefaults: {\"Label\":\"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm\"},\n variantDefaults: {\"size\":\"default\"},\n props: {\n \"htmlFor\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"binds to the input's id\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"text size, mirrors Input/Select/Textarea so a field and its label scale together. default = text-sm; xs = 11px for dense tool panels.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const LogoContract = contract({\n name: \"Logo\",\n description: \"A brand mark with built-in variations — a square mark for tight\",\n import: \"@gradeui/ui\",\n aliases: [\"logo\",\"brand\",\"brandmark\",\"wordmark\",\"lockup\",\"brand logo\",\"app logo\",\"logotype\"],\n composesWith: [\"AppShell\",\"AppShellHeader\",\"Sidebar\",\"SidebarHeader\",\"Row\",\"Stack\"],\n styleDefaults: {\"Logo\":\"gds-logo inline-flex shrink-0 select-none items-center\",\"LogoPlaceholder\":\"inline-flex h-full items-center gap-1.5 rounded-md border border-dashed px-2 text-xs font-medium\"},\n props: {\n \"sources\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"artwork keyed by lockup then appearance:\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const MapContract = contract({\n name: \"Map\",\n description: \"Any layout that needs a real map — listings (real estate, Airbnb-style), fleet/logistics dashboards, store locators, anywhere a user picks a location from a viewport. Reach for the controlled `hoveredId` prop when a sibling list and the map need to highlight each other.\",\n import: \"@gradeui/ui\",\n aliases: [\"map\",\"maps\",\"mapbox\",\"maplibre\",\"google maps\",\"geo\",\"location\",\"latlng\",\"coordinates\",\"marker\",\"pin\",\"airbnb\",\"listings\",\"fleet\",\"real estate\",\"logistics\",\"map view\",\"mapkit\",\"mapview\",\"react native maps\",\"rn maps\"],\n subcomponents: [\"MapMarker\"],\n composesWith: [\"Card (as marker content)\",\"Badge\",\"Avatar\",\"Button\",\"Row\",\"Stack\",\"Skeleton\"],\n props: {\n \"provider\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"\\\"maplibre\\\" (default, free, no key) | \\\"mapbox\\\" (needs accessToken) | \\\"google\\\" (needs apiKey). Switching is one prop change.\",\n },\n \"center\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"`[lng, lat]` tuple. ALWAYS lng first. Required.\",\n },\n \"zoom\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"number, 0–22. Required.\",\n },\n \"bounds\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"`[[swLng, swLat], [neLng, neLat]]`. When set, takes precedence over center+zoom.\",\n },\n \"appearance\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"\\\"light\\\" | \\\"dark\\\" | \\\"satellite\\\" | \\\"auto\\\" (default \\\"auto\\\", follows GradeThemeProvider mode).\",\n },\n \"hoveredId\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"controlled string id, pairs with onHoveredIdChange. The matching MapMarker gets `data-gds-state=\\\"hovered\\\"` automatically. This is how you build list ↔ map two-way sync.\",\n },\n \"interactive\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"false freezes pan/zoom, useful for static cards.\",\n },\n \"onLoad\": {\n schema: z.unknown(),\n design: \"event\",\n description: \"handle exposes flyTo, panTo, fitBounds, getCenter, getZoom, getBounds, instance.\",\n },\n \"tilerKey\": {\n schema: z.enum([\"maplibre\"]),\n design: \"knob\",\n description: \"only needed off `gradeui.com`/`localhost`. Default key is referrer-locked.\",\n },\n \"accessToken\": {\n schema: z.enum([\"mapbox), apiKey (google\"]),\n design: \"knob\",\n description: \"required for those providers.\",\n },\n },\n});\n","/**\n * MediaSurface — component contract.\n *\n * First contract in the codebase, so this file is the reference template\n * other components will copy. Five rules of thumb worth carrying over:\n *\n * 1. **One contract file per component**, co-located with the .tsx.\n * The two evolve together; the contract is the source of truth\n * for both the playbook prompt and the settings panel.\n *\n * 2. **Every prop in the component's TS interface has a contract entry.**\n * Even plumbing escapes (`asChild`, `className`, `style`) — they go\n * under `design: \"plumbing\"` so the panel filters them out, but\n * they exist for runtime validation and type derivation.\n *\n * 3. **Discriminated unions express structured props.** MediaSurface's\n * `source` is the canonical case: kind-based shapes that the panel\n * reveals as per-kind sub-forms. Zod's `discriminatedUnion` keeps\n * the type narrowing intact through `z.infer`.\n *\n * 4. **Actions are first-class.** Anything imperative (\"Fill image\",\n * \"Refresh\", future \"Force open this dialog\") lives under `actions`,\n * not as a prop. Host (Studio) wires the action handler by `kind`.\n *\n * 5. **Keep descriptions terse and concrete.** They surface in three\n * places: panel tooltips, the playbook prompt, generated docs.\n * A 200-character paragraph reads badly in all three.\n */\n\nimport { z } from \"zod\";\nimport { contract, type InferProps } from \"@gradeui/contracts\";\n\n// ─── Source descriptor schema ──────────────────────────────────────\n//\n// Discriminated union mirroring MediaSource in `media-surface.tsx`.\n// The component's own type and this schema MUST stay in lock-step;\n// changing one without the other surfaces at the next typecheck\n// because the component will import `InferProps<typeof\n// MediaSurfaceContract>` once the migration completes.\n\nconst AlbumSource = z.object({\n kind: z.literal(\"album\"),\n artist: z.string(),\n title: z.string(),\n year: z.number().optional(),\n description: z.string().optional(),\n});\n\nconst TvShowSource = z.object({\n kind: z.literal(\"tv-show\"),\n title: z.string(),\n year: z.number().optional(),\n description: z.string().optional(),\n});\n\nconst MovieSource = z.object({\n kind: z.literal(\"movie\"),\n title: z.string(),\n year: z.number().optional(),\n description: z.string().optional(),\n});\n\nconst GameSource = z.object({\n kind: z.literal(\"game\"),\n title: z.string(),\n description: z.string().optional(),\n});\n\nconst BookSource = z.object({\n kind: z.literal(\"book\"),\n title: z.string().optional(),\n author: z.string().optional(),\n isbn: z.string().optional(),\n description: z.string().optional(),\n});\n\nconst PosterSource = z.object({\n kind: z.literal(\"poster\"),\n title: z.string(),\n year: z.number().optional(),\n description: z.string().optional(),\n});\n\nconst PortraitSource = z.object({\n kind: z.literal(\"portrait\"),\n name: z.string().optional(),\n role: z.string().optional(),\n});\n\nconst LandscapeSource = z.object({\n kind: z.literal(\"landscape\"),\n location: z.string().optional(),\n mood: z.string().optional(),\n});\n\nconst ProductSource = z.object({\n kind: z.literal(\"product\"),\n name: z.string().optional(),\n brand: z.string().optional(),\n});\n\nconst FoodSource = z.object({\n kind: z.literal(\"food\"),\n dish: z.string().optional(),\n cuisine: z.string().optional(),\n});\n\nconst GenericSource = z.object({\n kind: z.literal(\"generic\"),\n prompt: z.string(),\n});\n\nconst NoSubFieldsSource = z.union([\n z.object({ kind: z.literal(\"video\") }),\n z.object({ kind: z.literal(\"audio\") }),\n z.object({ kind: z.literal(\"embed\") }),\n z.object({ kind: z.literal(\"3d\") }),\n]);\n\nconst MediaSourceSchema = z.union([\n AlbumSource,\n TvShowSource,\n MovieSource,\n GameSource,\n BookSource,\n PosterSource,\n PortraitSource,\n LandscapeSource,\n ProductSource,\n FoodSource,\n GenericSource,\n NoSubFieldsSource,\n]);\n\n// ─── Enums ─────────────────────────────────────────────────────────\n\nconst AspectSchema = z.enum([\"video\", \"square\", \"portrait\", \"wide\", \"auto\"]);\nconst RadiusSchema = z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]);\nconst HintSchema = z.enum([\n \"album\",\n \"tv-show\",\n \"movie\",\n \"game\",\n \"book\",\n \"portrait\",\n \"landscape\",\n \"poster\",\n \"product\",\n \"food\",\n \"video\",\n \"audio\",\n \"embed\",\n \"3d\",\n \"generic\",\n]);\nconst EmptyStateSchema = z.union([\n z.literal(\"auto\"),\n z.literal(\"icon\"),\n z.literal(\"none\"),\n]);\n\n// ─── Contract ──────────────────────────────────────────────────────\n\nexport const MediaSurfaceContract = contract({\n name: \"MediaSurface\",\n description:\n \"The canonical media slot for ALL non-person imagery — album art, posters, hero images, landscape photos, video and 3D containers.\",\n when:\n \"Pass `hint` + `alt` + (optionally) `source` so the empty-state placeholder is meaningful and the generation pipeline can later fill the slot with a real image. Use directly for declarative slots; the higher-level VideoPlayer / RivePlayer / ThreeScene wrap this for runtime-heavy media.\",\n antipatterns: [\n \"Don't wrap <Avatar> inside <MediaSurface> to get an initials fallback. Set `alt` + `hint` on MediaSurface directly — the placeholder renders initials at small sizes derived from `alt`.\",\n \"Don't use <Avatar> for album art, posters, products, food, landscapes, etc. Avatar is for PEOPLE only.\",\n \"Don't inline manual gradient backgrounds (`bg-gradient-to-br …`) on MediaSurface as a 'placeholder vibe' — the empty-state is already styled via `--gds-media-placeholder-bg/-fg` tokens.\",\n ],\n composesWith: [\"Card\", \"CardBlock\", \"MediaBlock\", \"VideoPlayer\", \"RivePlayer\", \"ThreeScene\"],\n aliases: [\n \"media\",\n \"image slot\",\n \"media slot\",\n \"image placeholder\",\n \"cover\",\n \"thumbnail\",\n \"poster slot\",\n ],\n import: \"@gradeui/ui\",\n\n props: {\n // ── Knobs — design choices ──────────────────────────────────────\n hint: {\n schema: HintSchema.optional(),\n design: \"knob\",\n group: \"image\",\n control: \"glyph-picker\",\n label: \"Slot kind\",\n description:\n \"Picks the placeholder glyph + the default aspect + the future generation provider. Defaults to 'generic'.\",\n default: \"generic\",\n examples: [\"album\", \"portrait\", \"landscape\", \"poster\"],\n },\n aspect: {\n schema: AspectSchema.optional(),\n design: \"knob\",\n control: \"toggle-group\",\n label: \"Aspect ratio\",\n description:\n \"Override the slot's natural framing. When omitted, derived from `hint`: album/product/food → square, portrait/poster → portrait, landscape → wide, video/audio/embed/generic → video.\",\n },\n radius: {\n schema: RadiusSchema.optional(),\n design: \"knob\",\n control: \"toggle-group\",\n label: \"Corner radius\",\n default: \"lg\",\n description: \"Driven by the `--gds-media-radius` CSS variable.\",\n },\n border: {\n schema: z.boolean().optional(),\n design: \"knob\",\n label: \"Show border\",\n default: false,\n },\n loading: {\n schema: z.boolean().optional(),\n design: \"knob\",\n label: \"Loading state\",\n default: false,\n description: \"Overlays the muted-pulse skeleton on top of the slot.\",\n },\n emptyState: {\n schema: EmptyStateSchema.optional(),\n design: \"knob\",\n control: \"select\",\n label: \"Empty state\",\n default: \"auto\",\n description:\n \"'auto' renders the size-tiered placeholder (initials → glyph → glyph + caption). 'icon' is a legacy alias. 'none' renders a truly empty surface.\",\n },\n\n // ── Content — text / URL the user authors ──────────────────────\n alt: {\n schema: z.string().optional(),\n design: \"content\",\n group: \"image\",\n control: \"text\",\n label: \"Alt text\",\n description:\n \"Becomes the eventual `<img alt>`. Also drives the placeholder caption (>160px slots) and the 2-letter initials fallback (<64px slots).\",\n examples: [\n \"Travelling Without Moving — Jamiroquai\",\n \"Sunset over Mount Fuji\",\n ],\n },\n src: {\n schema: z.string().url().optional(),\n design: \"content\",\n group: \"image\",\n control: \"url\",\n label: \"Image URL\",\n description:\n \"When set, renders an `<img>` filling the slot via object-cover. The wrapper keeps its aspect/radius/border. Generators patch this prop; manual values always win.\",\n },\n\n // ── Structured — discriminated union with sub-form per kind ────\n source: {\n schema: MediaSourceSchema.optional(),\n design: \"structured\",\n label: \"Source descriptor\",\n description:\n \"Structured metadata for the generation pipeline. Opaque to MediaSurface itself; read by the resolver to look up real imagery from the right provider (MusicBrainz / Pollinations / etc.).\",\n perKindFields: {\n album: { artist: \"string\", title: \"string\", year: \"number?\" },\n poster: { title: \"string\", year: \"number?\" },\n portrait: { name: \"string?\", role: \"string?\" },\n landscape: { location: \"string?\", mood: \"string?\" },\n product: { name: \"string?\", brand: \"string?\" },\n food: { dish: \"string?\", cuisine: \"string?\" },\n generic: { prompt: \"string\" },\n video: {},\n audio: {},\n embed: {},\n \"3d\": {},\n },\n },\n\n // ── Plumbing — needed in code, hidden from the design panel ────\n className: {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n style: {\n schema: z.record(z.string(), z.unknown()).optional(),\n design: \"plumbing\",\n },\n children: {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description:\n \"Escape hatch for putting a custom <video>, <canvas>, Rive runtime, etc. inside. When supplied, the placeholder is suppressed.\",\n },\n overlay: {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description:\n \"Decorative layer rendered ABOVE the media/placeholder (play buttons, hover gradients, corner badges). Does NOT suppress the placeholder.\",\n },\n glyph: {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description:\n \"Per-instance override of the hint-derived placeholder glyph. Most consumers should pick a `hint` and let the map decide.\",\n },\n fallback: {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"Custom node shown while `loading` is true.\",\n },\n\n // ── Events ─────────────────────────────────────────────────────\n onVisibilityChange: {\n schema: z.function().optional(),\n design: \"event\",\n description: \"Fires when the surface enters / leaves the viewport (IntersectionObserver).\",\n },\n },\n\n // ─── Actions ─────────────────────────────────────────────────────\n actions: {\n fill: {\n label: \"Fill image\",\n icon: \"Sparkles\",\n description:\n \"Resolve this slot's source via the free providers (MusicBrainz → Pollinations → Picsum) and patch the result into the runtime URL map.\",\n kind: \"resolve-media-source\",\n // Only meaningful when we have something to resolve from. Without\n // a `source`, the providers have no descriptor to look up — the\n // chat is the right path for that case (regenerate the JSX with\n // a `source` first).\n enabledWhen: { propPresent: \"source\" },\n },\n // \"Refresh\" (refresh-media-source) removed — its cache-bust re-resolve\n // read as \"step the image back\" and confused more than it helped. Fill\n // re-resolves anyway; a dedicated retry can return behind a clearer\n // affordance if a real need resurfaces.\n },\n});\n\n/** Source descriptor type, derived from the schema so it stays in sync. */\nexport type MediaSource = z.infer<typeof MediaSourceSchema>;\n\n/** Inferred React props type — one entry per prop in the contract.\n * All optional at the JSX boundary because every prop has a defaulted\n * or genuinely optional shape in the schema. */\nexport type MediaSurfacePropsContract = InferProps<typeof MediaSurfaceContract>;\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const MessageContract = contract({\n name: \"Message\",\n description: \"The canonical \\\"avatar + author + timestamp + body\\\" row. THE PRIMITIVE\\nfor any chat surface, comment thread, post-reply, activity log, or\\nnotification feed that follows the people-and-text shape.\\n\\nCONCRETE TEST — if you find yourself composing an `<Avatar>` followed\\nby a `<Row>` of author name + timestamp, with a `<p>` or `<span>`\\nbody below, STOP. That is `<Message>`. Reach for it directly.\\n\\nSlack-style channel feed, Discord messages, Teams chat, Linear /\\nGitHub / Jira comments, Reddit replies, Twitter/X posts in a thread,\\nNotion comment sidebars, in-app activity logs, notification rows —\\nevery one of these IS `<Message>`. Do not roll the layout inline.\\n\\nFor non-people activity (system events, log lines, status pings) use\\nCallout or a plain Row instead — Message implies a human author.\",\n import: \"@gradeui/ui\",\n composesWith: [\"Avatar (in the avatar slot — pair with AvatarFallback tone=\\\"...\\\" for stable per-author colour)\",\"Badge (in the badge slot for role / OP / bot tags)\",\"Button (in actions\",\"typically size=\\\"icon\\\" + variant=\\\"ghost\\\")\",\"Stack (host multiple Messages in a thread)\",\"Card (wrap a Stack of Messages for a comment-thread block)\"],\n styleDefaults: {\"Message\":\"flex items-start\"},\n props: {\n \"author\": {\n schema: z.string(),\n design: \"content\",\n description: \"display name of the message author\",\n },\n \"timestamp\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"string (\\\"11:24\\\", \\\"2 hours ago\\\") or any node for custom formatting\",\n },\n \"avatar\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot for any `<Avatar>` composition; omit for grouped messages from the same author\",\n },\n \"badge\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"small chip(s) next to the author name (OP, Bot, Admin, role tag)\",\n },\n \"edited\": {\n schema: z.union([z.boolean(), z.string()]).optional(),\n design: \"knob\",\n description: \"renders \\\"(edited)\\\" hint next to timestamp; pass a string to customise (\\\"(edited 2 minutes ago)\\\")\",\n },\n \"pinned\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"renders a pin glyph + \\\"Pinned\\\" label above the header row for sticky / pinned messages\",\n },\n \"actions\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"end-of-header slot, typically hover-revealed icon buttons (reply / react / more)\",\n },\n \"reactions\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot below the body, typically a Row of reaction chips (emoji + count)\",\n },\n \"threadCount\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"renders a \\\"N replies\\\" link affordance below the body\",\n },\n \"onThreadClick\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"handler for the threadCount affordance\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"end\"]).optional(),\n design: \"knob\",\n description: \"`start` (default) puts the avatar on the left; `end` mirrors for \\\"your messages\\\" in DM threads\",\n },\n \"density\": {\n schema: z.enum([\"default\", \"compact\"]).optional(),\n design: \"knob\",\n description: \"`default` is the canonical chat / channel-feed rhythm; `compact` tightens text sizes + gaps for dense side panels (Studio comments, activity feeds). Pair with `Avatar size=\\\"xs\\\"` for the tightest stack.\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"body content (plain text or rich nodes)\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const MultiSelectContract = contract({\n name: \"MultiSelect\",\n description: \"Picking multiple items from a finite list — tag selectors, filter chips,\\n\\\"share with N people\\\", multi-region settings.\\n\\n**This is the answer for ANY \\\"removable-chips-inside-an-input\\\" pattern.**\\nMultiSelect's trigger renders the current selection as Badges with X\\nicons (the \\\"chip-in-trigger\\\" / \\\"chip-in-input\\\" shape), opens a Popover\\nwith a searchable Command list, and supports \\\"+N more\\\" collapse past\\n`maxCount`. Reach for it for:\\n - Linear-style filter bars (assignee, label, project chips inside one trigger)\\n - Slack channel pickers (selected channels as removable chips)\\n - Notion relation properties (related-page chips)\\n - GitHub label / assignee pickers\\n - tag / category / mention pickers anywhere\\nDon't invent a `<ChipInput>` or `<TagInput>` for these — MultiSelect\\nalready covers the trigger-with-badges shape.\\n\\nUse `<Select>` instead for SINGLE selection. Use `<Command>` directly\\n(no MultiSelect wrapper) when the option set is unbounded or async\\n(users to @-mention, email recipients, search-as-you-type API results).\",\n import: \"@gradeui/ui\",\n composesWith: [\"Popover\",\"Command\",\"Badge\",\"Checkbox-style row indicator\",\"Separator\"],\n styleDefaults: {\"MultiSelect\":\"mr-2 flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-primary\"},\n props: {\n \"options\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"value\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"controlled selection\",\n },\n \"defaultValue\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"uncontrolled initial selection\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n default: \"Select…\",\n },\n \"searchPlaceholder\": {\n schema: z.string().optional(),\n design: \"content\",\n default: \"Search…\",\n },\n \"emptyMessage\": {\n schema: z.string().optional(),\n design: \"content\",\n default: \"Nothing matches.\",\n },\n \"maxCount\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"badges shown on the trigger before collapsing to \\\"+N more\\\"\",\n },\n \"searchable\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide for short option lists\",\n default: true,\n },\n \"badgeDismissible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show × on each selected badge\",\n default: true,\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"modalPopover\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"Popover modal mode\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const PopoverContract = contract({\n name: \"Popover\",\n description: \"A floating panel anchored to a trigger that contains interactive content — date pickers, color pickers, filter pickers, \\\"more info\\\" panels, inline forms. Differs from Tooltip (hover-only, no focusable content) and Dialog (modal, blocks the page). DatePicker, DateRangePicker, and the Combobox pattern all compose Popover internally.\",\n import: \"@gradeui/ui\",\n aliases: [\"popover\",\"dropdown panel\",\"floating panel\",\"inline editor\",\"attached panel\",\"filter pop\",\"popover view\",\"popoverpresentation\",\"attached popover\",\"glass popover\",\"frosted popover\",\"inspector popover\"],\n subcomponents: [\"PopoverTrigger\",\"PopoverContent\",\"PopoverAnchor\"],\n composesWith: [\"Button (as trigger)\",\"Calendar (date picker)\",\"Command (combobox)\",\"Form controls (inline edit popover)\",\"Code (code-detail popovers)\"],\n styleDefaults: {\"PopoverContent\":\"z-50 w-72 rounded-md border p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"usually a Button\",\n },\n \"side\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\", \"start\", \"center\", \"end\"]).optional(),\n design: \"knob\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the popover surface is *made of*. `solid` is the default opaque `bg-popover`. `translucent` is the Apple HIG menu-sheet feel. `glass` for floating panels over rich canvases (Studio inspector, image-tool palette).\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ProgressContract = contract({\n name: \"Progress\",\n description: \"Determinate progress — file uploads, multi-step forms, quota meters. Indeterminate state → use Skeleton or animated Loader icon.\",\n import: \"@gradeui/ui\",\n aliases: [\"progress\",\"progress view\",\"progress indicator\",\"progress bar\",\"determinate progress\",\"loading bar\",\"completion bar\"],\n composesWith: [\"Card (as a section)\",\"Badge (showing % next to it)\",\"Label (describing what's loading)\"],\n styleDefaults: {\"Progress\":\"relative h-4 w-full overflow-hidden rounded-full bg-secondary\"},\n props: {\n \"value\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"percent complete\",\n },\n \"max\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const RadioCardContract = contract({\n name: \"RadioCard\",\n description: \"Single-select where each option is a whole selectable card (shipping options, plan picker, onboarding choices). The whole card is the control, so focus and the checked state live on the card surface and the entire card is clickable. MUST sit inside a RadioGroup (keeps roving focus + single-select). Static content only — never nest an interactive control (Slider/Input/Button/link) inside. For a plain radio + label row use Field instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"radio card\",\"selectable card\",\"option card\",\"plan picker\",\"choice card\",\"pricing tier\",\"segmented choice card\"],\n composesWith: [\"RadioGroup (required parent)\",\"Badge (in aside)\",\"MediaSurface (custom children)\"],\n props: {\n \"value\": {\n schema: z.string(),\n design: \"content\",\n description: \"the radio value\",\n },\n \"label\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"title line\",\n },\n \"description\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"secondary line\",\n },\n \"aside\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot before the indicator (a Badge, price, hint)\",\n },\n \"hideIndicator\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the dot; selection shown by the card border + background\",\n },\n \"indicatorPosition\": {\n schema: z.enum([\"leading\", \"trailing\"]).optional(),\n design: \"knob\",\n description: \"default trailing\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"arbitrary static content (image, custom layout) instead of label/description\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const RadioGroupContract = contract({\n name: \"RadioGroup\",\n description: \"A small set of mutually-exclusive options where the user needs to SEE all of them at once — pricing tiers (3-4 options), shipping speed, payment method radio cards. When each option should be a whole clickable card (label + description, selected state on the card), use RadioCard inside the RadioGroup instead of a Card with a radio in the corner. For a plain label + description row, wrap RadioGroupItem in Field. For 5+ options use Select. For a segmented control as part of a toolbar use ToggleGroup. For yes/no use Switch.\",\n import: \"@gradeui/ui\",\n aliases: [\"radio group\",\"radio buttons\",\"single-choice\",\"pricing options\",\"payment method\",\"radio buttons\",\"radio control\",\"single-select\"],\n subcomponents: [\"RadioGroupItem\"],\n composesWith: [\"Label (paired with each item via htmlFor)\",\"Field (label + description row)\",\"RadioCard (whole-card selectable option)\",\"Stack (vertical list)\"],\n styleDefaults: {\"RadioGroup\":\"grid gap-2\",\"RadioGroupItem\":\"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"},\n props: {\n \"value\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"controlled selection\",\n },\n \"defaultValue\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"uncontrolled initial\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"orientation\": {\n schema: z.enum([\"horizontal\", \"vertical\"]).optional(),\n design: \"knob\",\n default: \"vertical\",\n },\n \"name\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"form name when posting natively\",\n },\n \"id\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"pair with a <Label htmlFor> for click-on-label\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ResizableContract = contract({\n name: \"Resizable\",\n description: \"A multi-pane layout where the user wants to drag the divider — Slack/Mail-style list+detail, IDE editor+terminal, side-by-side compare view. Static layouts shouldn't use this — reach for AppShell with nav=\\\"three-pane\\\" (fixed widths) or Grid (responsive ladder). Built on react-resizable-panels under the hood.\",\n import: \"@gradeui/ui\",\n aliases: [\"resizable\",\"splitter\",\"split pane\",\"drag divider\",\"adjustable panels\",\"resizer\",\"split view\",\"draggable divider\",\"split pane resizer\",\"ns split view\"],\n subcomponents: [\"ResizablePanelGroup\",\"ResizablePanel\",\"ResizableHandle\"],\n composesWith: [\"AppShellMain (host the splitter inside main)\",\"ScrollArea (each panel's content)\",\"Card\"],\n styleDefaults: {\"ResizablePanelGroup\":\"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\"ResizableHandle\":\"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\"},\n props: {\n \"direction\": {\n schema: z.enum([\"horizontal\", \"vertical\"]),\n design: \"knob\",\n description: \"required; sets the axis the user drags along\",\n },\n \"autoSaveId\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"persists user-adjusted sizes to localStorage under this id\",\n },\n \"onLayout\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"defaultSize\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"percent of group (0-100); siblings should sum to ~100\",\n },\n \"minSize\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"percent bounds\",\n },\n \"collapsible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"allow this panel to collapse to zero\",\n },\n \"collapsedSize\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"collapse behaviour controls\",\n },\n \"withHandle\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show a visible drag affordance (default just a hit-zone)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const RivePlayerContract = contract({\n name: \"RivePlayer\",\n description: \"Rive runtime wrapped in the shared media surface. Reach for Rive when you need interactive state-machine animations driven by scroll/hover/input. For non-interactive looping video, use VideoPlayer; for shader-driven backgrounds, use ThreeScene.\",\n import: \"@gradeui/ui\",\n aliases: [\"rive\",\"riv\",\"animation\",\"animated\",\"lottie\"],\n composesWith: [\"MediaSurface (internal)\",\"Card\",\"any container\"],\n styleDefaults: {\"RiveInner\":\"absolute inset-0 flex items-end justify-end p-2\"},\n props: {\n \"src\": {\n schema: z.string(),\n design: \"content\",\n description: \"URL or path to the .riv file\",\n },\n \"stateMachines\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"state machine(s) to run\",\n },\n \"artboard\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"artboard name; omit to use default\",\n },\n \"controls\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"viewer mode by default; set true for play/pause overlay\",\n default: false,\n },\n \"autoPlay\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"respects reduced-motion\",\n default: true,\n },\n \"loop\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n default: true,\n },\n \"pauseOffscreen\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n default: true,\n },\n \"fit\": {\n schema: z.enum([\"contain\", \"cover\", \"fill\", \"fitWidth\", \"fitHeight\", \"none\"]).optional(),\n design: \"knob\",\n default: \"contain\",\n },\n \"stateMachineInputs\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"aspect\": {\n schema: z.enum([\"video\", \"square\", \"portrait\", \"wide\", \"auto\"]).optional(),\n design: \"knob\",\n default: \"square\",\n },\n \"radius\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n default: \"lg\",\n },\n \"poster\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"image shown while the runtime loads\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const RowContract = contract({\n name: \"Row\",\n description: \"Horizontal composition — button groups, inline form rows, logo + nav rows, anything on one line. Reach for Row instead of `flex items-center gap-*` so the alignment and spacing are editable through the settings panel. For two-pane layouts with an explicit ratio (sidebar + content, 1/3 + 2/3) use Split instead — Row evenly flows whatever children it holds.\",\n import: \"@gradeui/ui\",\n aliases: [\"row\",\"hstack\",\"horizontal\",\"inline\",\"horizontal layout\",\"hstack\",\"h-stack\",\"horizontal stack\",\"lazyhstack\"],\n composesWith: [\"Button\",\"Input\",\"NavItem\",\"Stack (can wrap a Row)\",\"any content component\"],\n styleDefaults: {\"Row\":\"gds-row flex flex-row gap-4 items-center justify-start\"},\n variantDefaults: {\"gap\":\"md\",\"align\":\"center\",\"justify\":\"start\"},\n props: {\n \"gap\": {\n schema: z.enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"]).optional(),\n design: \"knob\",\n description: \"gap between children\",\n default: \"md\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"stretch\", \"baseline\"]).optional(),\n design: \"knob\",\n description: \"cross-axis (vertical) alignment\",\n default: \"center\",\n },\n \"justify\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"between\", \"around\", \"evenly\"]).optional(),\n design: \"knob\",\n description: \"main-axis distribution\",\n default: \"start\",\n },\n \"wrap\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"allow children to wrap onto additional lines when they overflow\",\n default: false,\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ScreenAnimatorContract = contract({\n name: \"ScreenAnimator\",\n description: \"Wrap ANY screen or section in a directed camera — a \\\"live demo\",\n import: \"@gradeui/ui\",\n aliases: [\"screen animator\",\"camera\",\"camera tour\",\"director\",\"demo\",\"product demo\",\"zoom pan\",\"spotlight\",\"ken burns\",\"presenter\"],\n composesWith: [\"AppShell\",\"ThreeScene\",\"Card\",\"Grid\",\"the whole component set (it wraps a screen)\"],\n styleDefaults: {\"ScreenAnimator\":\"gds-screen-animator\"},\n props: {\n \"shots\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"the tour. Each\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ScrollAreaContract = contract({\n name: \"ScrollArea\",\n description: \"Bounded content that needs custom scroll chrome — sidebars with long item lists, chat transcripts, table panels inside a dashboard, anywhere the OS scrollbar would feel out of place against the design tokens. The wrapping element has to have a height constraint (`h-`, `max-h-`, or grid row sizing) or nothing scrolls — scroll-area can't infer a bound on its own. For body-level scrolling, leave the document to the browser.\",\n import: \"@gradeui/ui\",\n aliases: [\"scroll area\",\"scroll container\",\"custom scrollbar\",\"sidebar scroll\",\"panel scroll\",\"scroll view\",\"scrollview\",\"react native scrollview\"],\n subcomponents: [\"ScrollBar\"],\n composesWith: [\"Card (long card body)\",\"AppShellNav (long sidebar)\",\"Sheet (long modal body)\",\"Table (sticky-header scrolling list)\"],\n styleDefaults: {\"ScrollArea\":\"relative overflow-hidden\",\"ScrollBar\":\"flex touch-none select-none transition-colors\"},\n props: {\n \"type\": {\n schema: z.enum([\"auto\", \"always\", \"scroll\", \"hover\"]).optional(),\n design: \"knob\",\n description: \"when the scrollbar shows\",\n },\n \"scrollHideDelay\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"ms before \\\"scroll\\\"/\\\"hover\\\" scrollbars fade\",\n },\n \"dir\": {\n schema: z.enum([\"ltr\", \"rtl\"]).optional(),\n design: \"plumbing\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"set a height/max-height here, otherwise nothing scrolls\",\n },\n \"orientation\": {\n schema: z.enum([\"vertical\", \"horizontal\"]).optional(),\n design: \"knob\",\n default: \"vertical\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SectionBlockContract = contract({\n name: \"SectionBlock\",\n description: \"The top-level container for a marketing page section — hero, feature row, pricing table, testimonial strip, FAQ section. Always reach for SectionBlock over a hand-rolled `<section>` so vertical rhythm, container width, and tonal background stay consistent across the page. Pair `background=\\\"gradient\\\"` + `surface=\\\"glass\\\"` inner Cards for the \\\"modern marketing hero\\\" pattern.\",\n import: \"@gradeui/ui\",\n aliases: [\"section\",\"section block\",\"hero section\",\"marketing section\",\"page section\",\"content section\",\"container section\",\"feature section\",\"hero\",\"page hero\",\"marketing hero\",\"glass section\",\"gradient section\",\"mesh hero\"],\n composesWith: [\"Card (the most common child — especially with surface=\\\"glass\\\")\",\"Grid (feature rows)\",\"Stack (hero column)\",\"MediaSurface (hero imagery)\",\"Code (developer hero)\",\"Carousel (logo strips)\"],\n styleDefaults: {\"SectionBlock\":\"relative w-full py-16 md:py-24 bg-transparent\"},\n variantDefaults: {\"padding\":\"lg\",\"background\":\"transparent\"},\n props: {\n \"padding\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n description: \"vertical rhythm. Defaults to `lg`.\",\n },\n \"background\": {\n schema: z.enum([\"transparent\", \"muted\", \"card\", \"primary\", \"gradient\"]).optional(),\n design: \"knob\",\n description: \"tonal direction of the section bg.\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the section is *made of*. Orthogonal to `background`. Use `glass` for hero sections that float over a generative backdrop / image / dot grid.\",\n },\n \"container\": {\n schema: z.enum([\"default\", \"wide\", \"narrow\", \"full\"]).optional(),\n design: \"knob\",\n description: \"max-width of the inner content.\",\n },\n \"alignment\": {\n schema: z.enum([\"left\", \"center\", \"right\"]).optional(),\n design: \"knob\",\n description: \"header / CTA alignment.\",\n },\n \"titleSize\": {\n schema: z.enum([\"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n },\n \"title\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"subtitle\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"cta1\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"string or `{ text, variant, href, onClick }` config\",\n },\n \"backgroundImage\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"direct CSS background image url\",\n },\n \"as\": {\n schema: z.enum([\"section\", \"div\", \"article\"]).optional(),\n design: \"knob\",\n description: \"semantic root\",\n },\n \"fullBleed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SelectContract = contract({\n name: \"Select\",\n description: \"Single-choice from 3+ known options. Fewer than 3 → RadioGroup. Huge list with search → use a Combobox (not in DS yet). Multi-select → not supported by this primitive. In dense tool panels, set size=\\\"xs\\\" on BOTH the trigger and the content so the closed control and open menu match.\",\n import: \"@gradeui/ui\",\n aliases: [\"dropdown\",\"combobox\",\"picker\",\"select\",\"pop-up button\",\"popup button\",\"popup picker\",\"picker view\",\"rnpickerselect\",\"react native picker\",\"native picker\"],\n subcomponents: [\"SelectTrigger\",\"SelectValue\",\"SelectContent\",\"SelectItem\",\"SelectGroup\",\"SelectLabel\",\"SelectSeparator\"],\n composesWith: [\"Label (above SelectTrigger)\",\"Form\",\"Card\"],\n styleDefaults: {\"SelectTrigger\":\"flex w-full items-center justify-between rounded-md border border-input bg-background ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 h-10 px-3 py-2 text-sm\",\"SelectScrollUpButton\":\"flex cursor-default items-center justify-center py-1\",\"SelectScrollDownButton\":\"flex cursor-default items-center justify-center py-1\",\"SelectContent\":\"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\"SelectLabel\":\"py-1.5 pl-8 pr-2 text-sm font-semibold\",\"SelectItem\":\"relative flex w-full cursor-default select-none items-center rounded-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 py-1.5 pl-8 pr-2 text-sm\",\"SelectSeparator\":\"-mx-1 my-1 h-px bg-muted\"},\n props: {\n \"value\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"Radix root\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"control density; wraps the clickable control, nest SelectValue inside\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"text when nothing is selected\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SeparatorContract = contract({\n name: \"Separator\",\n description: \"Light divider between sibling blocks in a Card, list, or header. For section-level partition use extra spacing instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"divider\",\"rule\",\"hr\",\"line\",\"horizontal rule\"],\n composesWith: [\"Card (between CardHeader/Content/Footer)\",\"navigation menus\",\"any vertical stacks\"],\n styleDefaults: {\"Separator\":\"shrink-0 bg-border\"},\n props: {\n \"orientation\": {\n schema: z.enum([\"horizontal\", \"vertical\"]).optional(),\n design: \"knob\",\n description: \"default \\\"horizontal\\\"\",\n },\n \"decorative\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide from a11y tree\",\n default: true,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ShaderPresetPickerContract = contract({\n name: \"ShaderPresetPicker\",\n description: \"Runtime gallery of shader presets — click to select. Use with ThreeScene as a controlled input so the user can pick a background shader. For a single preview card, use ShaderPresetPreview directly.\",\n import: \"@gradeui/ui\",\n aliases: [\"shader picker\",\"preset picker\",\"shader gallery\",\"preset gallery\"],\n composesWith: [\"ShaderPresetPreview (internal)\",\"ThreeScene (the typical downstream consumer)\"],\n styleDefaults: {\"ShaderPresetPicker\":\"grid grid-cols-2 gap-3\"},\n props: {\n \"value\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"currently selected preset id (controlled)\",\n },\n \"onChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"called when the user clicks a preset card\",\n },\n \"filterTags\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"only show presets matching at least one tag (\\\"space\\\" | \\\"retro\\\" | \\\"motion\\\" | \\\"hero\\\" | \\\"background\\\" …)\",\n },\n \"live\": {\n schema: z.enum([\"never\", \"hover\", \"always\"]).optional(),\n design: \"knob\",\n description: \"thumbnail render mode\",\n default: \"hover\",\n },\n \"postPreset\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"shared post-FX preset applied to every thumbnail\",\n },\n \"palette\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"shared palette applied to every thumbnail\",\n },\n \"columns\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"grid columns at md+ breakpoint\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ShaderPresetPreviewContract = contract({\n name: \"ShaderPresetPreview\",\n description: \"Thumbnail-sized preview card for a shader preset. Defaults to a cheap static placeholder until hovered, at which point the live WebGL render kicks in. Use directly when you want a single preset card; use ShaderPresetPicker for a filterable grid.\",\n import: \"@gradeui/ui\",\n aliases: [\"shader preview\",\"preset preview\",\"shader card\"],\n composesWith: [\"ThreeScene (internal)\",\"ShaderPresetPicker (wraps this)\"],\n styleDefaults: {\"ShaderPresetPreview\":\"group cursor-pointer flex flex-col gap-2\"},\n props: {\n \"preset\": {\n schema: z.string(),\n design: \"content\",\n description: \"shader preset id from the registry\",\n },\n \"live\": {\n schema: z.enum([\"never\", \"hover\", \"always\"]).optional(),\n design: \"knob\",\n description: \"when to run the live WebGL render\",\n default: \"hover\",\n },\n \"postPreset\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"override the preset's default post-FX\",\n },\n \"palette\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"palette overrides for the preview\",\n },\n \"aspect\": {\n schema: z.enum([\"video\", \"square\", \"portrait\", \"wide\"]).optional(),\n design: \"knob\",\n default: \"video\",\n },\n \"hideLabel\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the label strip under the preview\",\n default: false,\n },\n \"onClick\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SheetContract = contract({\n name: \"Sheet\",\n description: \"A panel that slides in from a screen edge — mobile nav drawers, side panels for editing a single record without leaving the list, filter trays on small viewports, Studio-style inspector panels. For a centered focus modal use Dialog. For a transient announcement use Toast (Sonner). For inline reveals use Collapsible.\",\n import: \"@gradeui/ui\",\n aliases: [\"sheet\",\"drawer\",\"side panel\",\"slide-in\",\"nav drawer\",\"mobile drawer\",\"slide-over\",\"action sheet\",\"modal sheet\",\"bottom sheet\",\"side sheet\",\"react native modal sheet\",\"bottom-sheet\",\"ios action sheet\",\"inspector panel\",\"glass sheet\",\"frosted drawer\"],\n subcomponents: [\"SheetTrigger\",\"SheetContent\",\"SheetHeader\",\"SheetTitle\",\"SheetDescription\",\"SheetFooter\",\"SheetClose\"],\n composesWith: [\"Form controls (an inline edit sheet)\",\"Button (trigger + close)\",\"AppShellNav (mobile-only swap)\",\"Code (changelog drawers)\",\"MediaSurface (image-detail sheets)\"],\n styleDefaults: {\"SheetOverlay\":\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\"SheetContent\":\"fixed z-50 gap-4 p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500 inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\"SheetHeader\":\"flex flex-col space-y-2 text-center sm:text-left\",\"SheetFooter\":\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\"SheetTitle\":\"text-lg font-semibold text-foreground\",\"SheetDescription\":\"text-sm text-muted-foreground\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n },\n \"side\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\"]).optional(),\n design: \"knob\",\n default: \"right\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the sheet panel is *made of*. `solid` is the default opaque `bg-background`. Reach for `glass` whenever the canvas behind the sheet (a layout in progress, a media gallery, a dashboard) should remain visible.\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"usually set a width (right/left) or height (top/bottom)\",\n },\n \"SheetTitle\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SidebarContract = contract({\n name: \"Sidebar\",\n description: \"Vertical app navigation. Drop inside `<AppShellNav placement=\\\"side\\\">` for full-page layouts. Compound API — `<SidebarHeader>` for brand, `<SidebarContent>` for the scrollable body of `<SidebarSection>` + `<SidebarItem>` rows, `<SidebarFooter>` for user / settings chrome. For top nav reach for TopMenu; for command-palette style search reach for Command.\",\n import: \"@gradeui/ui\",\n aliases: [\"sidebar\",\"side menu\",\"sidemenu\",\"navigation sidebar\",\"app sidebar\",\"side nav\",\"side nav rail\",\"master pane\",\"sidebarmenu\",\"navigation rail\",\"react native drawer\"],\n subcomponents: [\"SidebarHeader\",\"SidebarContent\",\"SidebarFooter\",\"SidebarSection\",\"SidebarItem\"],\n composesWith: [\"AppShell (inside AppShellNav)\",\"Avatar (in Footer)\",\"Tooltip (auto-wrapped on collapsed items)\",\"Button (asChild for custom routing)\"],\n styleDefaults: {\"Sidebar\":\"relative flex h-full flex-col bg-card text-card-foreground\",\"SidebarHeader\":\"flex shrink-0 items-center border-b border-border\",\"SidebarContent\":\"flex-1 overflow-y-auto overflow-x-hidden\",\"SidebarFooter\":\"shrink-0 border-t border-border\",\"SidebarSection\":\"px-[var(--gds-sidebar-section-px,0.5rem)] space-y-[var(--gds-sidebar-section-gap,0.125rem)]\",\"SidebarItem\":\"group flex items-center gap-2.5 rounded-md transition-colors\",\"SidebarTreeItem\":\"group flex w-full items-center gap-1.5 rounded-md py-1 text-sm font-medium transition-colors\"},\n props: {\n \"collapsed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"controlled collapsed state (wire onCollapsedChange when set)\",\n },\n \"defaultCollapsed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"uncontrolled initial value (default false)\",\n },\n \"onCollapsedChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"collapsible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the affordance for the user to collapse (default true)\",\n },\n \"variant\": {\n schema: z.enum([\"rail\", \"panel\"]).optional(),\n design: \"knob\",\n description: \"outer chrome treatment. `rail` (default) is the classic nav rail with a single right-border + tracked width via `--gds-sidebar-width`; drops cleanly into `<AppShellNav placement=\\\"side\\\">`. `panel` is a card-style floating sidebar with full border + rounded corners + parent-controlled width; use when the sidebar is one of several adjacent panes in a body row (e.g. Projects | Canvas | Settings). The compound children (Header/Content/Footer/Section/Item) are identical in both treatments.\",\n },\n \"any\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"brand / logo / org switcher; hides nothing when collapsed (centred)\",\n },\n \"title\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"group label; **uppercase tracking-wide muted** styling auto-applied (Notion / Linear / Slack-style \\\"GAMES\\\", \\\"FAVORITES\\\", \\\"WORKSPACE\\\" headers); hidden when sidebar is collapsed\",\n },\n \"icon\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"optional icon beside the title\",\n },\n \"trailing\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"**action(s) on the right edge of the header** — the canonical \\\"+\\\" / \\\"...\\\" slot (Notion's \\\"+ Add page\\\" next to Pages, Linear's \\\"+\\\" next to Favorites, Slack's \\\"+\\\" next to Channels). Pointer events isolated so a Button here doesn't toggle collapse.\",\n },\n \"defaultExpanded\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"initial open state (default true)\",\n },\n \"badge\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"trailing count / label (hidden when collapsed)\",\n },\n \"active\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"current route; adds aria-current=\\\"page\\\"\",\n },\n \"href\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"renders as <a>; for routing use `asChild` with your link component\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"wrap a custom link (<Link href> from Next.js etc.) via Radix Slot\",\n },\n \"asButton\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render as <button> for action rows (open dialog, log out)\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"collapsedLabel\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"tooltip override when sidebar is collapsed (defaults to children text)\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\"]).optional(),\n design: \"knob\",\n description: \"row size. `md` (default) is the standard `text-sm font-medium` nav row; `sm` is `text-xs` + lighter weight + tighter padding for visually subordinate rows (nested screens under a project, sub-pages under a section). Active state still wins on color + weight so the current row pops at either size.\",\n },\n \"description\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"secondary line beneath the label (metadata like 'Edited 2m ago', '12 items', a brief description). Row layout adapts: label + description stacked vertically; icon vertically-centered against the stack; badge stays on trailing edge. Hidden when sidebar collapsed.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SkeletonContract = contract({\n name: \"Skeleton\",\n description: \"Loading placeholder for content whose shape you know. Set width/height via className to mimic the real content (e.g. \\\"h-4 w-32\\\"). Not a spinner — use it where the real thing will drop in.\",\n import: \"@gradeui/ui\",\n aliases: [\"placeholder\",\"shimmer\",\"loader\",\"loading state\",\"redacted\",\"redacted placeholder\",\"shimmer placeholder\",\"content placeholder\",\"lottie placeholder\"],\n composesWith: [\"Card\",\"Avatar (inside a Skeleton for avatar loading)\",\"any layout\"],\n styleDefaults: {\"Skeleton\":\"animate-pulse rounded-md bg-muted\"},\n props: {\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"required in practice; supply width/height utilities\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SliderContract = contract({\n name: \"Slider\",\n description: \"A continuous-ish numeric pick — volume, opacity, font size, price-range filters. Use a single-thumb slider for one value, two-thumb for a range. For a small set of discrete options (1-5 stars, sm/md/lg) prefer ToggleGroup. For free-text numeric entry use an Input type=\\\"number\\\".\",\n import: \"@gradeui/ui\",\n aliases: [\"slider\",\"range slider\",\"range input\",\"volume\",\"opacity slider\",\"scrub\",\"drag value\",\"slider control\",\"value slider\",\"react native slider\"],\n composesWith: [\"Label (mandatory above)\",\"Row (label + current value display)\",\"Card (settings rows)\"],\n styleDefaults: {\"Slider\":\"relative flex w-full touch-none select-none items-center\"},\n props: {\n \"value\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"controlled value; ALWAYS an array even for a single-thumb slider (`[50]`)\",\n },\n \"defaultValue\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"uncontrolled initial; `[20, 80]` for a two-thumb range\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"min\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"max\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"step\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"orientation\": {\n schema: z.enum([\"horizontal\", \"vertical\"]).optional(),\n design: \"knob\",\n default: \"horizontal\",\n },\n \"dir\": {\n schema: z.enum([\"ltr\", \"rtl\"]).optional(),\n design: \"plumbing\",\n },\n \"inverted\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"flip the visual direction\",\n },\n \"name\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"form name when posting natively\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SortableContract = contract({\n name: \"Sortable\",\n description: \"Drag-to-reorder lists, kanban-column reordering, sortable shelves, tab strips the user can rearrange. Pairs with any layout primitive — Stack for vertical lists, Row for horizontal strips, Grid for 2D card walls. For cross-container drag (drag a card from one column to another) hand-roll DndContext at the page level — Sortable v1 covers single-list reorder; Sortable.Group for cross-container is a planned follow-up. Reach for raw `@dnd-kit/core` if you need custom collision detection, drag overlays with arbitrary chrome, or non-list use cases (kanban swimlanes, draggable canvas nodes).\",\n import: \"@gradeui/ui\",\n aliases: [\"sortable\",\"reorder\",\"drag and drop\",\"dnd\",\"draggable list\",\"sortable list\",\"kanban\",\"drag to reorder\",\"drag-drop\",\"dragdroplist\",\"drag handle\",\"react native draggable flatlist\"],\n subcomponents: [\"Sortable.Item\",\"Sortable.Handle\"],\n composesWith: [\"Stack (vertical lists)\",\"Row (horizontal strips)\",\"Grid (2D card walls)\",\"Card (typical item content)\",\"Button (as Sortable.Handle asChild)\"],\n styleDefaults: {\"SortableHandle\":\"cursor-grab touch-none select-none\"},\n props: {\n \"values\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"ordered list of unique ids; the source of truth for the order\",\n },\n \"onReorder\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires with the new order after a drag that changed it\",\n },\n \"strategy\": {\n schema: z.enum([\"vertical\", \"horizontal\", \"grid\"]).optional(),\n design: \"knob\",\n description: \"match the layout your items render in\",\n default: \"vertical\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"disable drag on every item\",\n },\n \"Sortable\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"must match one entry in the parent `values` array (identity, not React key)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const StackContract = contract({\n name: \"Stack\",\n description: \"Default top-level layout inside the main slot when composing two or more stacked regions (hero + content + footer, auth card + subtext, etc.). Prefer Stack over hand-rolled `flex flex-col gap-*` so the vertical rhythm is editable through the settings panel.\",\n import: \"@gradeui/ui\",\n aliases: [\"stack\",\"vstack\",\"vertical\",\"column\",\"vertical layout\",\"v-stack\",\"vertical stack\",\"lazyvstack\"],\n composesWith: [\"Section\",\"Row\",\"Split\",\"Hero\",\"any content component\"],\n props: {\n \"gap\": {\n schema: z.enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"]).optional(),\n design: \"knob\",\n description: \"vertical gap between children\",\n default: \"md\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"stretch\"]).optional(),\n design: \"knob\",\n description: \"cross-axis (horizontal) alignment of children\",\n default: \"stretch\",\n },\n \"justify\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"between\", \"around\", \"evenly\"]).optional(),\n design: \"knob\",\n description: \"main-axis (vertical) distribution. Reach for this on absolute-positioned overlays (`justify=\\\"end\\\"` pins children to the bottom) and split footers (`justify=\\\"between\\\"`).\",\n default: \"start\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot, so `<Stack asChild><section>…</section></Stack>` stamps Stack's classes onto the `<section>` rather than nesting a wrapper div\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SwitchContract = contract({\n name: \"Switch\",\n description: \"Instant on/off setting (\\\"Enable notifications\\\", \\\"Dark mode\\\"). Commits on toggle — no submit button needed. For selecting-from-a-list use Checkbox. For a settings row (label + description on the left, Switch on the right) use Field layout=\\\"setting\\\". For a prominent on/off presented as a whole selectable card, use SwitchCard.\",\n import: \"@gradeui/ui\",\n aliases: [\"toggle\",\"switch\",\"on/off switch\",\"ios toggle\",\"toggle switch\",\"switch control\",\"react native switch\"],\n composesWith: [\"Label (via htmlFor)\",\"Field (layout=\\\"setting\\\" settings row)\",\"SwitchCard (whole-card toggle)\",\"Card (settings rows)\"],\n styleDefaults: {\"Switch\":\"peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input h-6 w-11\"},\n variantDefaults: {\"size\":\"default\"},\n props: {\n \"checked\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"onCheckedChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"defaultChecked\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"id\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SwitchCardContract = contract({\n name: \"SwitchCard\",\n description: \"A prominent on/off setting presented as a whole selectable card. The whole card is the switch, so the toggled state lives on the card surface. Standalone. For a row of compact settings (label left, small Switch right) use Field layout=\\\"setting\\\" instead — SwitchCard is for the heavier, card-sized toggle.\",\n import: \"@gradeui/ui\",\n aliases: [\"switch card\",\"toggle card\",\"setting card\",\"feature toggle card\"],\n composesWith: [\"Badge (in aside)\",\"Stack (stacking several)\"],\n props: {\n \"checked\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"standard switch state\",\n },\n \"label\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"title line\",\n },\n \"description\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"secondary line\",\n },\n \"aside\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot before the indicator (a Badge, price, hint)\",\n },\n \"hideIndicator\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the switch glyph; state shown by the card border + background\",\n },\n \"indicatorPosition\": {\n schema: z.enum([\"leading\", \"trailing\"]).optional(),\n design: \"knob\",\n description: \"default trailing\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"arbitrary static content instead of label/description\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const TableContract = contract({\n name: \"Table\",\n description: \"Structured tabular data — rows × columns with alignment requirements. NOT a layout grid — for that use div+Tailwind grid utilities. Keep to <100 rows; larger datasets need virtualisation (not in DS).\",\n import: \"@gradeui/ui\",\n aliases: [\"table\",\"table view\",\"data table\",\"datatable\",\"grid view\",\"data grid\",\"rows and columns\"],\n subcomponents: [\"TableHeader\",\"TableBody\",\"TableFooter\",\"TableRow\",\"TableHead\",\"TableCell\",\"TableCaption\"],\n composesWith: [\"Card (wrap the table)\",\"Badge (inside TableCell for status)\",\"Checkbox (row selection)\",\"Button (row actions)\"],\n styleDefaults: {\"Table\":\"w-full caption-bottom text-sm\",\"TableHeader\":\"[&_tr]:border-b\",\"TableBody\":\"[&_tr:last-child]:border-0\",\"TableFooter\":\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\"TableRow\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"TableHead\":\"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\"TableCell\":\"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\"TableCaption\":\"mt-4 text-sm text-muted-foreground\"},\n props: {\n \"Each\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"No\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"styling follows the active theme tokens\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const TabsContract = contract({\n name: \"Tabs\",\n description: \"A small set of peer views within one surface (2–5 tabs). For primary nav use Side Menu/routing. For filters use a filter control, not tabs. Pick `variant=\\\"pill\\\"` for app chrome (settings panels, in-card tab strips). Pick `variant=\\\"underlined\\\"` for marketing/docs pages and browser-tab-style treatments.\",\n import: \"@gradeui/ui\",\n aliases: [\"tabs\",\"tab strip\",\"tab bar\",\"tab view\",\"tabbed interface\",\"pageviewcontroller\",\"react native tab view\",\"underlined tabs\",\"page tabs\",\"segment switcher\",\"simple tabs\"],\n subcomponents: [\"TabsList\",\"TabsTrigger\",\"TabsContent\"],\n composesWith: [\"Card (tabs inside a card body)\",\"Dialog\",\"TooltipProvider (required for tooltip prop)\"],\n styleDefaults: {\"TabsList\":\"inline-flex items-center text-muted-foreground justify-center rounded-lg bg-muted\",\"TabsContent\":\"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"},\n props: {\n \"defaultValue\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\", \"lg, default md\"]).optional(),\n design: \"knob\",\n description: \"t-shirt scale aligned with Button/ToggleGroup heights; cascades to every TabsTrigger via context so set it once on the list\",\n },\n \"variant\": {\n schema: z.enum([\"pill\", \"underlined, default pill\"]).optional(),\n design: \"knob\",\n description: \"`pill` is the shadcn chip-on-muted look; `underlined` is the minimal text + bottom-border treatment (formerly the separate SimpleTabs component, collapsed into Tabs in May 2026). Cascades to triggers.\",\n },\n \"value\": {\n schema: z.string(),\n design: \"content\",\n description: \"matches a TabsContent value; tooltip?: string — when set, wraps the trigger in the design-system Tooltip and auto-applies aria-label (useful for icon-only triggers); requires a TooltipProvider somewhere above the tabs\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const TextareaContract = contract({\n name: \"Textarea\",\n description: \"Multi-line text entry (descriptions, messages, comments). Pair with a Label. Single-line input → use Input instead. Use size=\\\"sm\\\"/\\\"xs\\\" in dense tool panels.\",\n import: \"@gradeui/ui\",\n aliases: [\"text area\",\"multiline\",\"comment box\",\"message field\",\"text editor\",\"multi-line text\",\"multiline input\",\"multiline text field\",\"comments box\",\"multiline textinput\"],\n composesWith: [\"Label\",\"Form\",\"Card (in CardContent)\"],\n styleDefaults: {\"Textarea\":\"flex w-full rounded-md border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 min-h-[80px] px-3 py-2 text-sm\"},\n variantDefaults: {\"size\":\"default\"},\n props: {\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"control density, mirrors Input. default = min-h-80 / text-sm; sm and xs shrink the min-height + padding for dense panels.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ThreeSceneContract = contract({\n name: \"ThreeScene\",\n description: \"WebGL primitive for shader backgrounds, generative visuals, and bespoke three.js scenes. Three authoring paths, in order of preference — (1) pick a `preset` id; (2) if nothing in the registry fits, write a `fragmentShader` against the fixed uniform contract; (3) only as a last resort, pass a full `createScene` factory. For looping video, use VideoPlayer; for interactive animations, use RivePlayer.\",\n import: \"@gradeui/ui\",\n aliases: [\"three\",\"threejs\",\"webgl\",\"shader\",\"scene\",\"3d\",\"generative\",\"hero background\",\"fragment shader\",\"glsl\"],\n composesWith: [\"MediaSurface (internal)\",\"foreground content stacked above with `position: absolute/relative z-10`\"],\n styleDefaults: {\"ThreeScene\":\"absolute inset-0 flex items-end justify-end p-2\"},\n props: {\n \"preset\": {\n schema: z.enum([\"mesh\", \"waves\", \"space\", \"plasma\", \"voronoi\", \"synthwave\"]).optional(),\n design: \"knob\",\n description: \"shader preset id from the registry\",\n },\n \"fragmentShader\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"user-authored GLSL body; takes precedence over preset\",\n },\n \"onShaderError\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires on compile failure; scene falls back to `preset=\\\"space\\\"`\",\n },\n \"postPreset\": {\n schema: z.enum([\"none\", \"vhs\", \"cinematic\", \"synthwave\", \"crt\"]).optional(),\n design: \"knob\",\n description: \"post-processing pass\",\n default: \"vhs\",\n },\n \"palette\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"any CSS-legal colour string per slot. Re-tints automatically when the theme changes. Unset slots fall back to defaults.\",\n },\n \"createScene\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"custom full scene factory; takes precedence over preset AND fragmentShader\",\n },\n \"controls\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"play/pause overlay\",\n default: false,\n },\n \"autoPlay\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"respects reduced-motion\",\n default: true,\n },\n \"pauseOffscreen\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"big win for WebGL battery life\",\n default: true,\n },\n \"aspect\": {\n schema: z.enum([\"video\", \"square\", \"portrait\", \"wide\", \"auto\"]).optional(),\n design: \"knob\",\n default: \"video\",\n },\n \"maxDpr\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"lower for thumbnails / low-end devices\",\n },\n \"radius\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n default: \"lg\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ToastContract = contract({\n name: \"Toast\",\n description: \"Transient, non-blocking feedback that confirms or warns about an action — \\\"Saved\\\", \\\"Failed to upload\\\", \\\"Copied to clipboard\\\", \\\"Invitation sent\\\". For permanent inline messages reach for Callout. For confirmations that block until acknowledged use Dialog. Mount <Toaster /> ONCE at the root of the app; everywhere else, call the `toast` helper.\",\n import: \"@gradeui/ui\",\n aliases: [\"toast\",\"toaster\",\"sonner\",\"notification\",\"snackbar\",\"alert toast\",\"transient alert\",\"transient banner\",\"banner notification\",\"toastandroid\"],\n composesWith: [\"App root layout (single <Toaster /> mount)\",\"Form submit handlers (success/error toasts)\",\"Async actions\"],\n props: {\n \"position\": {\n schema: z.enum([\"top-left\", \"top-center\", \"top-right\", \"bottom-left\", \"bottom-center\", \"bottom-right\"]).optional(),\n design: \"knob\",\n default: \"bottom-right\",\n },\n \"theme\": {\n schema: z.enum([\"light\", \"dark\", \"system\"]).optional(),\n design: \"knob\",\n },\n \"richColors\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"colored variants for success/error/warning/info\",\n },\n \"expand\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"keep multiple toasts visually separated rather than stacked\",\n },\n \"visibleToasts\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"max concurrent toasts on screen (default 3)\",\n },\n \"duration\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"default ms before auto-dismiss\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ToggleContract = contract({\n name: \"Toggle\",\n description: \"A standalone on/off button — Bold/Italic in a toolbar, \\\"Show grid\\\" in a header, single binary toggle that doesn't belong inside a Switch row. For two-or-more mutually-exclusive options use ToggleGroup. For a labeled settings switch (\\\"Active: on/off\\\") use Switch.\",\n import: \"@gradeui/ui\",\n aliases: [\"toggle\",\"toggle button\",\"press button\",\"bold button\",\"italic button\"],\n composesWith: [\"Tooltip (wrap an icon-only Toggle)\",\"Row\",\"TabsList (sibling)\"],\n styleDefaults: {\"Toggle\":\"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-transparent h-9 px-2 min-w-9\"},\n variantDefaults: {\"variant\":\"default\",\"size\":\"default\"},\n props: {\n \"variant\": {\n schema: z.enum([\"default\", \"outline\"]).optional(),\n design: \"knob\",\n description: \"outline adds a border, default is borderless and ghost-like\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"lg\"]).optional(),\n design: \"knob\",\n },\n \"pressed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"controlled pressed state\",\n },\n \"defaultPressed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"uncontrolled initial state\",\n },\n \"onPressedChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"usually an icon or short label\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ToggleGroupContract = contract({\n name: \"ToggleGroup\",\n description: \"A small set of mutually-exclusive (`type=\\\"single\\\"`) or independent (`type=\\\"multiple\\\"`) binary options that live side-by-side as a segmented control — viewport size picker (Mobile/Tablet/Desktop), text alignment, view density. Reads identically to a TabsList of the same size; reach for ToggleGroup when each option emits a value (like a form input) rather than swapping panels. Use Tabs for panel switching, Toggle for a single on/off.\",\n import: \"@gradeui/ui\",\n aliases: [\"toggle group\",\"segmented control\",\"segmented buttons\",\"button group\",\"pill group\",\"view selector\",\"segmented picker\",\"segmentedcontrolios\",\"segmented buttons group\",\"rn segmented control\"],\n subcomponents: [\"ToggleGroupItem\"],\n composesWith: [\"Card (header controls)\",\"Row\",\"AppShellHeader chrome\",\"settings panels\"],\n styleDefaults: {\"ToggleGroup\":\"inline-flex items-center justify-center rounded-lg bg-muted text-muted-foreground h-8 p-0.5\",\"ToggleGroupItem\":\"inline-flex items-center justify-center whitespace-nowrap rounded-md font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 data-[state=on]:bg-background data-[state=on]:text-foreground h-7 px-2 text-xs gap-1.5 [&_svg]:size-3.5\"},\n variantDefaults: {\"size\":\"md\"},\n props: {\n \"type\": {\n schema: z.enum([\"single\", \"multiple\"]),\n design: \"knob\",\n description: \"single picks one, multiple picks any number\",\n },\n \"value\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"controlled; matches `type` (string for single, string[] for multiple)\",\n },\n \"defaultValue\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"uncontrolled initial\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\", \"lg, default md\"]).optional(),\n design: \"knob\",\n description: \"cascades to every ToggleGroupItem via context, matches Tabs/Button heights\",\n },\n \"variant\": {\n schema: z.enum([\"default\", \"outline\"]).optional(),\n design: \"knob\",\n },\n \"tooltip\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"when set, wraps the item in a Tooltip; required for icon-only items where the visible chrome doesn't carry a label\",\n },\n \"tooltipSide\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\\\", default \\\"top\"]).optional(),\n design: \"knob\",\n description: \"side the tooltip renders on\",\n },\n \"tooltipDelay\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"per-item delay override; falls back to the upstream TooltipProvider's delayDuration\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ToolbarContract = contract({\n name: \"Toolbar\",\n description: \"ANY three-region chrome bar — the leading/center/trailing pattern Apple HIG\\ndescribes as a \\\"Toolbar.\\\" App window chrome (Reddit, Twitter, GitHub, Linear,\\nmost desktop apps), section toolbars inside Cards or panels, bottom action\\nbars on mobile layouts, persistent footer toolbars.\\n\\nDon't hand-roll `<Row justify=\\\"between\\\">` with a flex-1 on a middle child and\\nmanual min-width juggling — Toolbar gives you the canonical `auto 1fr auto`\\ngrid for free, with `role=\\\"toolbar\\\"`, `data-gds-part` markers, position\\nvariants for top/bottom borders, and sticky sizing.\\n\\nSlot semantics:\\n leading — Logo + nav rail (e.g. a `<Row>` of Buttons or Link components)\\n center — Search input, page title chip, segmented Tab strip\\n trailing — Icon buttons, notification bell, avatar, primary CTA\\n\\nWhen a slot is omitted, its column collapses cleanly. Center stays visually\\ncentered in the bar regardless of leading/trailing widths because the grid\\ntemplate is `auto 1fr auto` (the center column absorbs available width).\\n\\nUse as the top child of `<AppShellHeader>` for window-level chrome:\\n <AppShellHeader>\\n <Toolbar leading={<Logo/>} center={<Search/>} trailing={<Avatar/>} />\\n </AppShellHeader>\\n\\nUse directly inside a Card or page section for section-scoped toolbars:\\n <Card>\\n <Toolbar size=\\\"sm\\\" variant=\\\"subtle\\\" leading={...} trailing={...} />\\n {content}\\n </Card>\",\n import: \"@gradeui/ui\",\n subcomponents: [\"ToolbarSlot\"],\n composesWith: [\"Button\",\"Avatar\",\"Input\",\"Logo\",\"Badge\",\"AppShellHeader\",\"Card\",\"Row\",\"Stack\"],\n styleDefaults: {\"ToolbarSlot\":\"flex items-center min-w-0\"},\n props: {\n \"leading\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"left-aligned region (logo + primary nav)\",\n },\n \"center\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"center region (search, page title, segmented control)\",\n },\n \"trailing\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"right-aligned region (action icons, avatar, primary CTA)\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"escape hatch; bypasses slot layout\",\n },\n \"position\": {\n schema: z.enum([\"top\", \"bottom\", \"inline\"]).optional(),\n design: \"knob\",\n description: \"border placement\",\n default: \"top\",\n },\n \"variant\": {\n schema: z.enum([\"default\", \"subtle\", \"transparent\"]).optional(),\n design: \"knob\",\n default: \"default\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\", \"lg\"]).optional(),\n design: \"knob\",\n description: \"height + padding\",\n default: \"md\",\n },\n \"sticky\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"pin to top/bottom of scroll container\",\n default: false,\n },\n \"aria-label\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"required by WAI-ARIA toolbar pattern\",\n default: \"Toolbar\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const TooltipContract = contract({\n name: \"Tooltip\",\n description: \"A short, non-essential label that explains a control on hover/focus — icon-only buttons in toolbars, abbreviated column headers, status dots. NEVER hide critical info inside a tooltip — they're invisible on touch and can be skipped by screen readers if implemented carelessly. For richer hover content use HoverCard. For inline help text that's always visible, use a description paragraph.\",\n import: \"@gradeui/ui\",\n aliases: [\"tooltip\",\"tip\",\"hover tip\",\"hint\",\"label on hover\",\"help tag\",\"hint\",\"helper text bubble\",\"info tip\"],\n subcomponents: [\"TooltipTrigger\",\"TooltipContent\",\"TooltipProvider\"],\n composesWith: [\"Button (icon-only)\",\"Toggle\",\"TabsTrigger (the canonical tabs already have a `tooltip` prop that wraps this)\",\"Avatar (status badge meaning)\"],\n styleDefaults: {\"TooltipContent\":\"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]\"},\n props: {\n \"delayDuration\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"ms hover before show; mount ONCE near the app root\",\n },\n \"skipDelayDuration\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"ms gap that still feels like \\\"same hover\\\"\",\n },\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"usually wraps a Button or icon\",\n },\n \"side\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\", \"start\", \"center\", \"end\"]).optional(),\n design: \"knob\",\n default: \"top\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const VideoPlayerContract = contract({\n name: \"VideoPlayer\",\n description: \"HTML5 video wrapped in the shared media surface. Controls-on for a standard player, controls-off (+ autoplay/muted/loop) for hero / background video. Prefer Rive for anything interactive, Three Scene for shader backgrounds.\",\n import: \"@gradeui/ui\",\n aliases: [\"video\",\"mp4\",\"movie\",\"webm\",\"clip\",\"video view\",\"av player\",\"react native video\",\"video element\"],\n composesWith: [\"MediaSurface (internal)\",\"Card (wrap for thumbnail grids)\"],\n styleDefaults: {\"VideoPlayer\":\"w-full h-full\"},\n props: {\n \"src\": {\n schema: z.string(),\n design: \"content\",\n description: \"video URL\",\n },\n \"controls\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show native controls; false for chromeless hero/background video\",\n default: true,\n },\n \"autoPlay\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"forces muted=true (browser restriction)\",\n default: false,\n },\n \"loop\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n default: false,\n },\n \"muted\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n default: false,\n },\n \"pauseOffscreen\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"pause when scrolled out of viewport\",\n default: true,\n },\n \"aspect\": {\n schema: z.enum([\"video\", \"square\", \"portrait\", \"wide\", \"auto\"]).optional(),\n design: \"knob\",\n default: \"video\",\n },\n \"radius\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n description: \"driven by `--gds-media-radius`\",\n default: \"lg\",\n },\n \"objectFit\": {\n schema: z.enum([\"cover\", \"contain\", \"fill\"]).optional(),\n design: \"knob\",\n default: \"cover\",\n },\n \"poster\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"image shown before playback. Always rendered as a `loading=\\\"lazy\\\"` `<img>` overlay (not the native `poster` attribute, which fetches eagerly).\",\n },\n \"playbackRate\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n },\n});\n","/**\n * Component contract registry — auto-managed by\n * scripts/generate-contracts.mjs. Hand-authored contracts (MediaSurface,\n * etc.) are also wired in here; the generator preserves them on each\n * run.\n */\n\nimport type { ComponentContract } from \"@gradeui/contracts\";\nimport { AccordionContract } from \"../components/ui/accordion.contract\";\nimport { AiChatContract } from \"../components/ui/ai-chat.contract\";\nimport { AiChatComposerContract } from \"../components/ui/ai-chat-composer.contract\";\nimport { AppShellContract } from \"../components/ui/app-shell.contract\";\nimport { AvatarContract } from \"../components/ui/avatar.contract\";\nimport { BackgroundFillContract } from \"../components/ui/background-fill.contract\";\nimport { BadgeContract } from \"../components/ui/badge.contract\";\nimport { BannerContract } from \"../components/ui/banner.contract\";\nimport { BreadcrumbContract } from \"../components/ui/breadcrumb.contract\";\nimport { ButtonContract } from \"../components/ui/button.contract\";\nimport { CalendarContract } from \"../components/ui/calendar.contract\";\nimport { CalloutContract } from \"../components/ui/callout.contract\";\nimport { CardContract } from \"../components/ui/card.contract\";\nimport { CarouselContract } from \"../components/ui/carousel.contract\";\nimport { ChartContract } from \"../components/ui/chart.contract\";\nimport { CheckboxContract } from \"../components/ui/checkbox.contract\";\nimport { CheckboxCardContract } from \"../components/ui/checkbox-card.contract\";\nimport { CodeContract } from \"../components/ui/code.contract\";\nimport { CollapsibleContract } from \"../components/ui/collapsible.contract\";\nimport { CommandContract } from \"../components/ui/command.contract\";\nimport { ComposerContract } from \"../components/ui/composer.contract\";\nimport { DatePickerContract } from \"../components/ui/date-picker.contract\";\nimport { DialogContract } from \"../components/ui/dialog.contract\";\nimport { DropdownMenuContract } from \"../components/ui/dropdown-menu.contract\";\nimport { FieldContract } from \"../components/ui/field.contract\";\nimport { FillPickerContract } from \"../components/ui/fill-picker.contract\";\nimport { FlexContract } from \"../components/ui/flex.contract\";\nimport { GridContract } from \"../components/ui/grid.contract\";\nimport { HoverCardContract } from \"../components/ui/hover-card.contract\";\nimport { InputContract } from \"../components/ui/input.contract\";\nimport { LabelContract } from \"../components/ui/label.contract\";\nimport { LogoContract } from \"../components/ui/logo.contract\";\nimport { MapContract } from \"../components/ui/map.contract\";\nimport { MediaSurfaceContract } from \"../components/ui/media-surface.contract\";\nimport { MessageContract } from \"../components/ui/message.contract\";\nimport { MultiSelectContract } from \"../components/ui/multi-select.contract\";\nimport { PopoverContract } from \"../components/ui/popover.contract\";\nimport { ProgressContract } from \"../components/ui/progress.contract\";\nimport { RadioCardContract } from \"../components/ui/radio-card.contract\";\nimport { RadioGroupContract } from \"../components/ui/radio-group.contract\";\nimport { ResizableContract } from \"../components/ui/resizable.contract\";\nimport { RivePlayerContract } from \"../components/ui/rive-player.contract\";\nimport { RowContract } from \"../components/ui/row.contract\";\nimport { ScreenAnimatorContract } from \"../components/ui/screen-animator.contract\";\nimport { ScrollAreaContract } from \"../components/ui/scroll-area.contract\";\nimport { SectionBlockContract } from \"../components/ui/section-block.contract\";\nimport { SelectContract } from \"../components/ui/select.contract\";\nimport { SeparatorContract } from \"../components/ui/separator.contract\";\nimport { ShaderPresetPickerContract } from \"../components/ui/shader-preset-picker.contract\";\nimport { ShaderPresetPreviewContract } from \"../components/ui/shader-preset-preview.contract\";\nimport { SheetContract } from \"../components/ui/sheet.contract\";\nimport { SidebarContract } from \"../components/ui/sidebar.contract\";\nimport { SkeletonContract } from \"../components/ui/skeleton.contract\";\nimport { SliderContract } from \"../components/ui/slider.contract\";\nimport { SortableContract } from \"../components/ui/sortable.contract\";\nimport { StackContract } from \"../components/ui/stack.contract\";\nimport { SwitchContract } from \"../components/ui/switch.contract\";\nimport { SwitchCardContract } from \"../components/ui/switch-card.contract\";\nimport { TableContract } from \"../components/ui/table.contract\";\nimport { TabsContract } from \"../components/ui/tabs.contract\";\nimport { TextareaContract } from \"../components/ui/textarea.contract\";\nimport { ThreeSceneContract } from \"../components/ui/three-scene.contract\";\nimport { ToastContract } from \"../components/ui/toast.contract\";\nimport { ToggleContract } from \"../components/ui/toggle.contract\";\nimport { ToggleGroupContract } from \"../components/ui/toggle-group.contract\";\nimport { ToolbarContract } from \"../components/ui/toolbar.contract\";\nimport { TooltipContract } from \"../components/ui/tooltip.contract\";\nimport { VideoPlayerContract } from \"../components/ui/video-player.contract\";\n\nexport const COMPONENT_CONTRACTS: Readonly<Record<string, ComponentContract>> = {\n Accordion: AccordionContract,\n AiChat: AiChatContract,\n AiChatComposer: AiChatComposerContract,\n AppShell: AppShellContract,\n Avatar: AvatarContract,\n BackgroundFill: BackgroundFillContract,\n Badge: BadgeContract,\n Banner: BannerContract,\n Breadcrumb: BreadcrumbContract,\n Button: ButtonContract,\n Calendar: CalendarContract,\n Callout: CalloutContract,\n Card: CardContract,\n Carousel: CarouselContract,\n Chart: ChartContract,\n Checkbox: CheckboxContract,\n CheckboxCard: CheckboxCardContract,\n Code: CodeContract,\n Collapsible: CollapsibleContract,\n Command: CommandContract,\n Composer: ComposerContract,\n DatePicker: DatePickerContract,\n Dialog: DialogContract,\n DropdownMenu: DropdownMenuContract,\n Field: FieldContract,\n FillPicker: FillPickerContract,\n Flex: FlexContract,\n Grid: GridContract,\n HoverCard: HoverCardContract,\n Input: InputContract,\n Label: LabelContract,\n Logo: LogoContract,\n Map: MapContract,\n MediaSurface: MediaSurfaceContract,\n Message: MessageContract,\n MultiSelect: MultiSelectContract,\n Popover: PopoverContract,\n Progress: ProgressContract,\n RadioCard: RadioCardContract,\n RadioGroup: RadioGroupContract,\n Resizable: ResizableContract,\n RivePlayer: RivePlayerContract,\n Row: RowContract,\n ScreenAnimator: ScreenAnimatorContract,\n ScrollArea: ScrollAreaContract,\n SectionBlock: SectionBlockContract,\n Select: SelectContract,\n Separator: SeparatorContract,\n ShaderPresetPicker: ShaderPresetPickerContract,\n ShaderPresetPreview: ShaderPresetPreviewContract,\n Sheet: SheetContract,\n Sidebar: SidebarContract,\n Skeleton: SkeletonContract,\n Slider: SliderContract,\n Sortable: SortableContract,\n Stack: StackContract,\n Switch: SwitchContract,\n SwitchCard: SwitchCardContract,\n Table: TableContract,\n Tabs: TabsContract,\n Textarea: TextareaContract,\n ThreeScene: ThreeSceneContract,\n Toast: ToastContract,\n Toggle: ToggleContract,\n ToggleGroup: ToggleGroupContract,\n Toolbar: ToolbarContract,\n Tooltip: TooltipContract,\n VideoPlayer: VideoPlayerContract,\n};\n\nexport function getComponentContract(\n componentName: string | null | undefined,\n): ComponentContract | null {\n if (!componentName) return null;\n return COMPONENT_CONTRACTS[componentName] ?? null;\n}\n\nexport function listContractedComponents(): string[] {\n return Object.keys(COMPONENT_CONTRACTS);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../components/ui/accordion.contract.ts","../components/ui/ai-chat.contract.ts","../components/ui/ai-chat-composer.contract.ts","../components/ui/app-shell.contract.ts","../components/ui/avatar.contract.ts","../components/ui/background-fill.contract.ts","../components/ui/badge.contract.ts","../components/ui/banner.contract.ts","../components/ui/breadcrumb.contract.ts","../components/ui/button.contract.ts","../components/ui/calendar.contract.ts","../components/ui/callout.contract.ts","../components/ui/card.contract.ts","../components/ui/carousel.contract.ts","../components/ui/chart.contract.ts","../components/ui/checkbox.contract.ts","../components/ui/checkbox-card.contract.ts","../components/ui/code.contract.ts","../components/ui/collapsible.contract.ts","../components/ui/command.contract.ts","../components/ui/composer.contract.ts","../components/ui/date-picker.contract.ts","../components/ui/dialog.contract.ts","../components/ui/dropdown-menu.contract.ts","../components/ui/field.contract.ts","../components/ui/fill-picker.contract.ts","../components/ui/flex.contract.ts","../components/ui/grid.contract.ts","../components/ui/hover-card.contract.ts","../components/ui/input.contract.ts","../components/ui/label.contract.ts","../components/ui/logo.contract.ts","../components/ui/map.contract.ts","../components/ui/media-surface.contract.ts","../components/ui/message.contract.ts","../components/ui/motion.contract.ts","../components/ui/multi-select.contract.ts","../components/ui/popover.contract.ts","../components/ui/progress.contract.ts","../components/ui/radio-card.contract.ts","../components/ui/radio-group.contract.ts","../components/ui/resizable.contract.ts","../components/ui/rive-player.contract.ts","../components/ui/row.contract.ts","../components/ui/screen-animator.contract.ts","../components/ui/scroll-area.contract.ts","../components/ui/section-block.contract.ts","../components/ui/select.contract.ts","../components/ui/separator.contract.ts","../components/ui/shader-preset-picker.contract.ts","../components/ui/shader-preset-preview.contract.ts","../components/ui/sheet.contract.ts","../components/ui/sidebar.contract.ts","../components/ui/skeleton.contract.ts","../components/ui/slider.contract.ts","../components/ui/sortable.contract.ts","../components/ui/stack.contract.ts","../components/ui/switch.contract.ts","../components/ui/switch-card.contract.ts","../components/ui/table.contract.ts","../components/ui/tabs.contract.ts","../components/ui/textarea.contract.ts","../components/ui/three-scene.contract.ts","../components/ui/toast.contract.ts","../components/ui/toggle.contract.ts","../components/ui/toggle-group.contract.ts","../components/ui/toolbar.contract.ts","../components/ui/tooltip.contract.ts","../components/ui/video-player.contract.ts","../lib/contracts.ts"],"names":["AccordionContract","z","AiChatContract","AiChatComposerContract","AppShellContract","AvatarContract","BackgroundFillContract","BadgeContract","BannerContract","BreadcrumbContract","ButtonContract","CalendarContract","CalloutContract","CardContract","AlignSchema","AutoplayConfigSchema","AutoplaySchema","CarouselContract","ChartContract","CheckboxContract","CheckboxCardContract","CodeContract","CollapsibleContract","CommandContract","ComposerContract","DatePickerContract","DialogContract","DropdownMenuContract","FieldContract","FillPickerContract","FlexContract","GridContract","HoverCardContract","InputContract","LabelContract","LogoContract","MapContract","AlbumSource","TvShowSource","MovieSource","GameSource","BookSource","PosterSource","PortraitSource","LandscapeSource","ProductSource","FoodSource","GenericSource","NoSubFieldsSource","MediaSourceSchema","AspectSchema","RadiusSchema","HintSchema","EmptyStateSchema","MediaSurfaceContract","MessageContract","MotionContract","MultiSelectContract","PopoverContract","ProgressContract","RadioCardContract","RadioGroupContract","ResizableContract","RivePlayerContract","RowContract","ScreenAnimatorContract","ScrollAreaContract","SectionBlockContract","SelectContract","SeparatorContract","ShaderPresetPickerContract","ShaderPresetPreviewContract","SheetContract","SidebarContract","SkeletonContract","SliderContract","SortableContract","StackContract","SwitchContract","SwitchCardContract","TableContract","TabsContract","TextareaContract","ThreeSceneContract","ToastContract","ToggleContract","ToggleGroupContract","ToolbarContract","TooltipContract","VideoPlayerContract","COMPONENT_CONTRACTS","getComponentContract","componentName","listContractedComponents"],"mappings":"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","file":"contracts.js","sourcesContent":["// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AccordionContract = contract({\n name: \"Accordion\",\n description: \"Long-form content that would overwhelm if shown all at once — FAQs, settings groups, \\\"what's included\\\" sections, nested help. For tab-style peer views with one always visible, reach for Tabs. For a single show/hide reveal use Collapsible.\",\n import: \"@gradeui/ui\",\n aliases: [\"accordion\",\"faq\",\"expand\",\"collapse list\",\"disclosure list\",\"disclosure group\",\"outline group\",\"expandable list\",\"sectionlist\"],\n subcomponents: [\"AccordionItem\",\"AccordionTrigger\",\"AccordionContent\"],\n composesWith: [\"Card (as a faq inside a card body)\",\"Section primitives\"],\n styleDefaults: {\"AccordionItem\":\"border-b\",\"AccordionTrigger\":\"flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180\",\"AccordionContent\":\"pb-4 pt-0\"},\n props: {\n \"type\": {\n schema: z.enum([\"single\", \"multiple\"]),\n design: \"knob\",\n description: \"single keeps one open at a time, multiple lets several be open at once\",\n },\n \"collapsible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"only valid with type=\\\"single\\\"; allows the open item to be toggled shut\",\n },\n \"defaultValue\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"initial open item(s)\",\n },\n \"value\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"controlled\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"the row label users click to expand\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AiChatContract = contract({\n name: \"AiChat\",\n description: \"A flexible chat block — header + scrollable message list + composer. Out of the box it looks like a polished \\\"AI panel\\\"; under it, every region is a slot so hosts can compose richer chat surfaces (e.g. Studio's left column with selection chip + settings panel above the composer, an error banner inline, per-message usage / refs / actions). Per-turn token usage, refs, and actions are optional and gated by `showUsage` / `showRefs` / `showActions` — leave them off for product-facing chats, turn them on for developer-facing ones where transparency matters. Composes with [[AIChatComposer]] (rendered internally; can be slotted in with custom props via `composerSlot`).\",\n import: \"@gradeui/ui\",\n aliases: [\"ai chat\",\"chat panel\",\"chat block\",\"llm chat\",\"assistant panel\",\"copilot chat\",\"ai assistant\"],\n composesWith: [\"Card (host in a sidebar panel)\",\"Sheet (mobile drawer)\",\"Stack (place above other content)\",\"AIChatComposer (internal composer; slot to override)\"],\n styleDefaults: {\"MessageActions\":\"inline-flex items-center gap-1 rounded-md px-2 py-1 text-[11px]\",\"ThinkingDisclosure\":\"w-3.5 h-3.5 text-gds-gray-500 dark:text-gds-gray-400 shrink-0\",\"StepsDisclosure\":\"w-3.5 h-3.5 text-gds-gray-500 dark:text-gds-gray-400 transition-transform shrink-0\",\"AIChat\":\"flex flex-col overflow-hidden\"},\n props: {\n \"messages\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"`{ id, role: \\\"user\\\" | \\\"assistant\\\", content, timestamp, thinking?, steps?, usage?, refs?, actions?, duration? }`; defaults to empty\",\n },\n \"onSendMessage\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires when the user submits via the default composer; ignored if `composerSlot` is set\",\n },\n \"isLoading\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"shows a typing indicator at the bottom of the message list\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"composer placeholder text (ignored if `composerSlot` is set)\",\n },\n \"title\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"header title; defaults to \\\"AI Assistant\\\"\",\n },\n \"titleIcon\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"optional icon rendered before the title (e.g. `<Sparkles />`)\",\n },\n \"headerTokens\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"optional session-level token total shown on the right of the header; rendered as \\\"N tokens\\\" with a small gauge icon when set\",\n },\n \"headerEnd\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"optional arbitrary content appended after `headerTokens` on the right of the header\",\n },\n \"showUsage\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the per-turn `usage` strip below the assistant bubble; default false\",\n },\n \"showRefs\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the per-turn `refs` strip below the assistant bubble; default false\",\n },\n \"showActions\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render per-turn `actions` chips when a message has them; default true\",\n },\n \"showDuration\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render the per-turn wall-clock duration (\\\"2.3s\\\") below the assistant bubble when a message carries `duration`; default false\",\n },\n \"showThinking\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render the per-turn reasoning (\\\"Thoughts\\\") disclosure above the assistant prose when a message carries `thinking`; collapsed by default, click to expand; default false\",\n },\n \"showSteps\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render the per-turn step timeline above the assistant prose when a message carries `steps`; collapsed view shows the current running step (or \\\"N steps completed\\\"), click to expand the vertical timeline with status glyphs; default false\",\n },\n \"thinkingPhrase\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"override the \\\"Thinking\\\" label in the loading indicator\",\n },\n \"suggestedPrompts\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"empty-state quick prompts (ignored if `emptyStateSlot` is set)\",\n },\n \"emptyStateSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"replaces the default empty state entirely\",\n },\n \"errorSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"rendered after the messages list (typically an error banner)\",\n },\n \"composerAboveSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"rendered between the messages and the composer (selection chip, settings panel)\",\n },\n \"composerBelowSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"rendered below the composer (disclaimer, char counter)\",\n },\n \"composerSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"full override of the composer; when provided, `onSendMessage` + `placeholder` are unused\",\n },\n \"bare\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"strip the outer card chrome (background, border, rounded corners) so the chat takes the surface of its container; default false (keeps the canned card look)\",\n },\n \"assistantBubble\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"whether assistant messages render with a bubble (background + border + padding + rounded corners); default true. Set false for a Claude.ai-style chromeless transcript where assistant text sits on the surface and only user turns wear a bubble.\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AiChatComposerContract = contract({\n name: \"AiChatComposer\",\n description: \"The reusable \\\"input card\\\" for any chat surface — auto-growing textarea, image attachments via paperclip and clipboard paste, attachment chips with previews, Send/Stop toggle, controlled value. Drop in below any messages list. Use this when you want the input affordances of `<AIChat>` but you're rendering your own messages list / scrollarea / header (e.g. Studio's left-column chat, where SelectionChip and SettingsPanel sit between messages and composer). For the full canned chat block, use `<AIChat>` instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"chat composer\",\"chat input\",\"prompt composer\",\"message input\"],\n composesWith: [\"AIChat (uses this internally)\",\"Card (host above)\",\"ScrollArea (place messages above)\"],\n styleDefaults: {\"AIChatComposer\":\"w-full\"},\n props: {\n \"value\": {\n schema: z.string(),\n design: \"content\",\n description: \"controlled textarea value\",\n },\n \"onChange\": {\n schema: z.unknown(),\n design: \"event\",\n description: \"fires for every textarea change\",\n },\n \"onSend\": {\n schema: z.unknown(),\n design: \"event\",\n description: \"fires when the user submits (Enter or click Send); composer validates that text or attachments exist before firing\",\n },\n \"isLoading\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"disables the textarea + paperclip and swaps Send for Stop\",\n },\n \"onStop\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires when the user clicks Stop; without this, Stop renders disabled\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"maxLength\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"hard cap passed to the underlying `<textarea>`\",\n },\n \"showHint\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the \\\"Press Enter… · Paste images\\\" hint below the card; default true, set false when the host renders its own footer\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AppShellContract = contract({\n name: \"AppShell\",\n description: \"The top-level page scaffold for any app-like or marketing layout. Reach for AppShell\\ninstead of hand-rolling `grid grid-cols-[auto_1fr]` so the layout shape (top nav,\\nside nav, three-pane Slack/Mail/Notion shape, constrained vs full-width main) is a\\nprop the settings panel can mutate. Don't compose top-level layouts from raw grid\\ntemplates — the four variants below cover most app shapes.\\n\\nPick the `nav` variant from the source:\\n nav=\\\"none\\\" — Single column. Marketing landing, login, splash.\\n nav=\\\"top\\\" — Top bar + content. Reddit, Twitter chrome.\\n nav=\\\"side\\\" — Left nav + content. Linear, Notion sidebar shape.\\n nav=\\\"three-pane\\\" — **Narrow icon rail + Aside + Main.** The Slack /\\n WhatsApp / Mail / Plane / Discord / Notion-with-pages\\n shape. ANY time you see a vertical icon rail next to\\n a separate list/sidebar, this is the answer — don't\\n reach for raw `<div className=\\\"grid\\\">` with three\\n column tracks.\",\n import: \"@gradeui/ui\",\n subcomponents: [\"AppShellHeader\",\"AppShellNav\",\"AppShellAside\",\"AppShellMain\",\"AppShellFooter\"],\n composesWith: [\"Stack\",\"Row\",\"Card\",\"Button\",\"Separator\",\"Sidebar\",\"Toolbar\",\"any page content\"],\n styleDefaults: {\"AppShell\":\"gds-app-shell min-h-screen w-full bg-background text-foreground grid\",\"AppShellHeader\":\"gds-app-shell-header\",\"AppShellNav\":\"gds-app-shell-nav border-b bg-background\",\"AppShellAside\":\"gds-app-shell-aside min-w-0 border-r bg-background\",\"AppShellMain\":\"gds-app-shell-main min-w-0 w-full\",\"AppShellFooter\":\"gds-app-shell-footer border-t bg-background\"},\n variantDefaults: {\"nav\":\"none\"},\n props: {\n \"nav\": {\n schema: z.enum([\"none\", \"top\", \"side\", \"three-pane\"]).optional(),\n design: \"knob\",\n description: \"layout structure\",\n default: \"none\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const AvatarContract = contract({\n name: \"Avatar\",\n description: \"User/entity identity for PEOPLE — profile pictures, author rows, member lists, account headers. Circular by default; the AvatarFallback initials read as a person's name. Always include AvatarFallback so load failure doesn't leave a gap.\",\n import: \"@gradeui/ui\",\n aliases: [\"profile picture\",\"user image\",\"account image\",\"avatar\",\"person glyph\",\"user avatar\",\"profile image\",\"react native avatar\"],\n subcomponents: [\"AvatarImage\",\"AvatarFallback\"],\n composesWith: [\"Card (in CardHeader)\",\"Table cells\",\"Badge (placed next to for status)\",\"Skeleton (loading state)\",\"Message (in the avatar slot)\"],\n styleDefaults: {\"AvatarImage\":\"aspect-square h-full w-full\"},\n props: {\n \"size\": {\n schema: z.enum([\"2xs\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n description: \"t-shirt scale, 20px → 80px; default md (40px). xs for chat message rows, sm for comments/dense threads, lg/xl for profile headers. Prefer this over h-*/w-* className utilities.\",\n },\n \"src\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"tone\": {\n schema: z.enum([\"muted\", \"primary\", \"violet\", \"amber\", \"emerald\", \"sky\", \"rose\", \"plum\", \"lime\"]).optional(),\n design: \"knob\",\n description: \"tinted bg/text pair. Reach for explicit tones when each author needs a stable colour mapping (chat avatars, comment threads, member lists); default muted.\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"initials (or a small icon), rendered while the image loads or when it fails\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const BackgroundFillContract = contract({\n name: \"BackgroundFill\",\n description: \"The background *paint* of a frame — a generative shader, image, video, gradient, repeating texture, or solid token rendered as a layer BEHIND the frame's content. Use it as the first child of a `relative` frame; it paints an `absolute inset-0`, `z-0`, `pointer-events-none` layer, so content carrying `relative z-10` sits on top. This is the canonical way to give any container a rich background — never drop a full-bleed `<ThreeScene>` or `<img>` as a free-standing sibling. For a sized, in-flow media element (a hero card, a thumbnail), use ThreeScene / MediaSurface / VideoPlayer directly instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"background\",\"fill\",\"frame fill\",\"backdrop\",\"surface fill\",\"background image\",\"background video\",\"background gradient\",\"background shader\",\"texture\",\"paint\"],\n composesWith: [\"AppShell\",\"Card\",\"Stack\",\"Row\",\"Grid (any relative container)\",\"ThreeScene (shader fill)\",\"MediaSurface\"],\n styleDefaults: {\"BackgroundFill\":\"absolute inset-0 h-full w-full\"},\n props: {\n \"type\": {\n schema: z.enum([\"none\", \"solid\", \"gradient\", \"image\", \"video\", \"shader\"]),\n design: \"knob\",\n description: \"which paint to render (required)\",\n },\n \"color\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"solid fill; a token name (`primary`, `card`, `muted`, `accent`, `secondary`, `destructive`, `background`, `transparent`) or any CSS colour\",\n },\n \"gradient\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"stops are token names or CSS colours. shape: \\\"linear\\\" (default, uses `angle`, default 135°) | \\\"radial\\\" (uses `at` — CSS position like \\\"top\\\" / \\\"30% 20%\\\", default \\\"center\\\" — and optional `size` like \\\"45rem 50rem\\\", default farthest-corner)\",\n },\n \"src\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"image or video URL\",\n },\n \"fit\": {\n schema: z.enum([\"cover\", \"contain\", \"fill\", \"none\"]).optional(),\n design: \"knob\",\n description: \"object-fit for image/video (default \\\"cover\\\")\",\n },\n \"position\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"CSS object/background position (default \\\"center\\\")\",\n },\n \"repeat\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"tile the image (background-repeat) instead of a single <img>\",\n },\n \"tileSize\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"CSS background-size when repeating (e.g. \\\"120px\\\")\",\n },\n \"preset\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"shader preset id (see ThreeScene)\",\n },\n \"fragmentShader\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"custom GLSL (takes precedence over preset)\",\n },\n \"palette\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"shader palette overrides; wrap tokens as `oklch(var(--token))`\",\n },\n \"postPreset\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"shader post-FX\",\n },\n \"opacity\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"layer opacity 0–1\",\n },\n \"blendMode\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"blend against the frame behind it\",\n },\n \"radius\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n description: \"match the frame's radius so the paint clips cleanly\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const BadgeContract = contract({\n name: \"Badge\",\n description: \"Compact status chips, counts, tags, pills. For higher-signal inline status → use Callout. For solid CTAs → Button. Soft/outline variants are quieter; solid variants are loud.\",\n import: \"@gradeui/ui\",\n aliases: [\"chip\",\"tag\",\"pill\",\"label chip\",\"badge\",\"tag view\",\"status pill\",\"token\",\"count badge\"],\n composesWith: [\"Card\",\"Table (inside a cell)\",\"Avatar (next to it)\",\"anywhere inline\"],\n styleDefaults: {\"Badge\":\"inline-flex items-center gap-1 border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 [&_svg]:size-3 [&_svg]:shrink-0 border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80 rounded-md\"},\n variantDefaults: {\"variant\":\"default\",\"rounded\":\"default\"},\n props: {\n \"variant\": {\n schema: z.enum([\"default\", \"secondary\", \"destructive\", \"outline\", \"highlight\", \"success\", \"warning\", \"info\", \"success-soft\", \"warning-soft\", \"destructive-soft\", \"info-soft\", \"highlight-soft\", \"success-outline\", \"warning-outline\", \"destructive-outline\", \"info-outline\"]).optional(),\n design: \"knob\",\n },\n \"rounded\": {\n schema: z.enum([\"default\", \"full\"]).optional(),\n design: \"knob\",\n description: \"\\\"full\\\" gives a pill shape\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const BannerContract = contract({\n name: \"Banner\",\n description: \"A full-width horizontal strip surfacing system-level state, announcements, or first-run guidance — \\\"you're previewing a draft\\\", \\\"investigating incident\\\", \\\"new feature available\\\", \\\"send your design to Figma\\\". Distinct from Callout (inline boxed message in the layout flow), Toast (transient floating notification), Dialog (modal interrupt). Banner is what lives at the TOP of an AppShellHeader, page, or panel.\",\n import: \"@gradeui/ui\",\n aliases: [\"banner\",\"notification banner\",\"system banner\",\"header banner\",\"announcement bar\",\"top bar\",\"status bar\",\"promo banner\",\"incident banner\",\"draft banner\",\"first run banner\",\"glass banner\",\"sticky banner\"],\n composesWith: [\"AppShellHeader (most common host — banner sits ABOVE the header content)\",\"Button (in the action slot)\",\"Link (inside the content)\",\"Lucide icons (in the icon slot)\"],\n styleDefaults: {\"Banner\":\"relative flex items-center gap-3 px-4 py-2.5 text-sm leading-relaxed border-b bg-muted text-foreground border-border [&>svg]:text-muted-foreground justify-between\"},\n variantDefaults: {\"variant\":\"default\",\"align\":\"between\"},\n props: {\n \"variant\": {\n schema: z.enum([\"default\", \"info\", \"success\", \"warning\", \"destructive\", \"announcement\"]).optional(),\n design: \"knob\",\n description: \"intent + tonal direction. `default` is a calm muted strip; `announcement` is a low-alpha brand tint for \\\"new feature\\\" messaging; status variants pick up the soft+deep token pairs.\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"material applied over the variant tint. `glass` for banners that sit over imagery / generative backdrops.\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"between\"]).optional(),\n design: \"knob\",\n description: \"justify behaviour of the inner flex row. Defaults to `between` so the action / dismiss button right-align.\",\n },\n \"sticky\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"stick to the top of the scroll container.\",\n },\n \"dismissible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render the trailing X close button. Pair with `onDismiss` to react.\",\n },\n \"onDismiss\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"icon\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"leading icon slot. NOT inferred from variant; pass what fits the message.\",\n },\n \"action\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"trailing slot before dismiss. Usually a `<Button size=\\\"sm\\\">` or `<a>`.\",\n },\n \"role\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"overrides the automatic role mapping (warning/destructive → alert, others → status).\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const BreadcrumbContract = contract({\n name: \"Breadcrumb\",\n description: \"Reach for Breadcrumb whenever a screen sits inside a hierarchy and you want the path back to the top to be visible. Common spots: above page titles in admin/CMS screens, top of Settings detail pages, after a router redirect when the URL implies depth. Use the current page as a <BreadcrumbPage> (non-clickable) and prior levels as <BreadcrumbLink>. For a horizontal \\\"top nav\\\" of peer destinations use Side Menu or Tabs instead — Breadcrumb is strictly for hierarchical path.\",\n import: \"@gradeui/ui\",\n aliases: [\"breadcrumb\",\"breadcrumbs\",\"crumbs\",\"path\",\"page hierarchy\",\"path bar\",\"navigation trail\",\"finder path\"],\n subcomponents: [\"BreadcrumbList\",\"BreadcrumbItem\",\"BreadcrumbLink\",\"BreadcrumbPage\",\"BreadcrumbSeparator\",\"BreadcrumbEllipsis\"],\n composesWith: [\"AppShellMain\",\"Card (in CardHeader)\",\"Dialog\"],\n styleDefaults: {\"BreadcrumbList\":\"flex flex-wrap items-center gap-1.5 break-words text-xs text-muted-foreground\",\"BreadcrumbItem\":\"inline-flex items-center gap-1.5\",\"BreadcrumbPage\":\"inline-flex items-center gap-1.5 px-0.5 text-xs font-medium text-foreground\",\"BreadcrumbSeparator\":\"[&_svg]:size-3 [&_svg]:shrink-0 text-muted-foreground/60\",\"BreadcrumbEllipsis\":\"flex h-5 w-5 items-center justify-center\",\"BreadcrumbMenuTrigger\":\"h-3 w-3 text-muted-foreground transition-transform\"},\n props: {\n \"aria-label\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"passed to the underlying <nav>\",\n },\n \"separator\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"**tree-wide default** for every <BreadcrumbSeparator/> inside. Pass a string (\\\"/\\\", \\\"›\\\", \\\"•\\\"), a lucide icon (`<Slash/>`, `<ChevronRight/>`), or any ReactNode. Default: `<ChevronRight/>`. Set once on the root; every separator below picks it up via context.\",\n },\n \"className\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"the <ol> wrapper; usually no overrides needed\",\n },\n \"href\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"renders as <a> when set, <button> when not; asChild? wraps a custom element\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"per-instance override of the separator glyph. When set, beats the root's `separator` prop for this one slot. When not set, falls back to the root's `separator`, then to `<ChevronRight/>`.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ButtonContract = contract({\n name: \"Button\",\n description: \"Any clickable action. Use size=\\\"icon\\\" for square icon-only buttons, variant=\\\"link\\\" for inline links that should look like Button, variant=\\\"raised\\\" for high-commitment / weighty actions where the chrome can afford a tactile \\\"physical key\\\" treatment. A Button placed next to a TabsList of the same size lines up edge-to-edge without per-call overrides.\",\n import: \"@gradeui/ui\",\n aliases: [\"button\",\"push button\",\"plain button\",\"bordered button\",\"destructive button\",\"capsule button\",\"link button\",\"action button\",\"cta\",\"raised button\",\"pill button\",\"key button\"],\n composesWith: [\"Dialog\",\"DropdownMenu\",\"Tooltip\",\"Card (in CardFooter)\",\"Row\",\"Form controls\"],\n styleDefaults: {\"Button\":\"inline-flex items-center justify-center whitespace-nowrap rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 bg-primary text-primary-foreground shadow hover:bg-primary/90 h-8 gap-1.5 px-3 text-base [&_svg]:size-4\"},\n variantDefaults: {\"variant\":\"default\",\"size\":\"md\"},\n props: {\n \"variant\": {\n schema: z.enum([\"default\", \"destructive\", \"outline\", \"secondary\", \"ghost\", \"link\", \"raised\"]).optional(),\n design: \"knob\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\", \"lg\", \"icon\"]).optional(),\n design: \"knob\",\n description: \"t-shirt scale aligned with Tabs/ToggleGroup heights (sm=h-7, md=h-8, lg=h-10). `default` still works as an alias for `md`.\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"renders as the child element (use to wrap <a>/<Link>)\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CalendarContract = contract({\n name: \"Calendar\",\n description: \"An inline date grid — date-of-birth pickers in profile forms, scheduling screens with a month view, range selection in reporting filters. For a compact trigger-and-popover input, use DatePicker / DateRangePicker (which wrap Calendar internally). For one-off relative dates (\\\"yesterday\\\", \\\"last week\\\") use a Select instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"calendar\",\"date grid\",\"month view\",\"scheduler grid\",\"calendar view\",\"multidate picker\",\"react native calendars\"],\n subcomponents: [\"CalendarDayButton\"],\n composesWith: [\"Popover (DatePicker composes them)\",\"Card (inline scheduling card)\",\"Dialog (full-screen mobile date pick)\"],\n styleDefaults: {\"Calendar\":\"bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\"},\n props: {\n \"mode\": {\n schema: z.enum([\"single\", \"multiple\", \"range\"]).optional(),\n design: \"knob\",\n description: \"picks one date, several dates, or a [from, to] range\",\n },\n \"selected\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"controlled selection; shape matches `mode`\",\n },\n \"onSelect\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires with the new selection\",\n },\n \"month\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"controlled displayed month\",\n },\n \"defaultMonth\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"uncontrolled initial month\",\n },\n \"onMonthChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"numberOfMonths\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"render multiple months side by side, useful for range pickers\",\n },\n \"disabled\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"captionLayout\": {\n schema: z.enum([\"label\", \"dropdown\", \"dropdown-months\", \"dropdown-years\"]).optional(),\n design: \"knob\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CalloutContract = contract({\n name: \"Callout\",\n description: \"Inline, ambient, non-blocking status/feedback that sits inside the layout flow. Form-level validation summaries, settings-page notices, page-level banners. NOT a toast (use Sonner for transient). NOT a modal (use Dialog when the user must respond). Put an icon as first child — it's auto-positioned; CalloutTitle + CalloutDescription follow.\",\n import: \"@gradeui/ui\",\n aliases: [\"callout\",\"banner\",\"notice\",\"inline alert\",\"in-app notification\",\"status banner\",\"info banner\",\"info callout\",\"warning callout\",\"success callout\"],\n subcomponents: [\"CalloutTitle\",\"CalloutDescription\"],\n composesWith: [\"lucide-react icons as first child\",\"Button (inside CalloutDescription)\",\"Card (as a section callout)\"],\n styleDefaults: {\"CalloutTitle\":\"mb-1 font-medium leading-none tracking-tight\",\"CalloutDescription\":\"text-sm [&_p]:leading-relaxed\"},\n props: {\n \"variant\": {\n schema: z.enum([\"default\", \"destructive\", \"success\", \"warning\", \"info\"]).optional(),\n design: \"knob\",\n description: \"semantic colouring; `default` is neutral\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CardContract = contract({\n name: \"Card\",\n description: \"Grouped content with a distinct surface — settings panels, dashboard tiles, list-of-cards layouts, marketing hero containers, AI suggestion overlays. Pair CardHeader (title + description) with CardContent and optional CardFooter (actions). Reach for `surface=\\\"glass\\\"` whenever the card sits over a busy backdrop (gradient mesh, dot grid, generative art, image hero).\",\n import: \"@gradeui/ui\",\n aliases: [\"card\",\"group box\",\"groupbox\",\"panel\",\"tile\",\"surface\",\"glass card\",\"frosted card\",\"floating panel\",\"hero card\",\"ai suggestion card\",\"dashboard tile\",\"settings panel\"],\n subcomponents: [\"CardHeader\",\"CardTitle\",\"CardDescription\",\"CardContent\",\"CardFooter\"],\n composesWith: [\"Button (in CardFooter)\",\"Badge\",\"Separator\",\"Avatar\",\"Code\",\"MediaSurface\",\"any form controls\"],\n styleDefaults: {\"Card\":\"gds-card rounded-xl border text-card-foreground shadow\",\"CardHeader\":\"flex flex-col space-y-1.5 p-6\",\"CardTitle\":\"font-semibold leading-none tracking-tight\",\"CardDescription\":\"text-sm text-muted-foreground\",\"CardContent\":\"p-6 pt-0\",\"CardFooter\":\"flex items-center p-6 pt-0\"},\n props: {\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the card surface is *made of*. `solid` is the default opaque `bg-card`. `translucent` is ~82% opacity for menu sheets. `glass` is ~58% opacity + 14px blur + edge highlight for floating panels. `glass-strong` is ~42% + 24px blur for full-page overlays. Composes with `shadow-elevation-*` (depth) and `gds-aura-*` (state signal).\",\n },\n \"Each\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","/**\n * Carousel — component contract.\n *\n * Hand-authored (no generator marker at the top), so it survives\n * `pnpm -F @gradeui/ui generate:contracts` reruns. Mirrors the\n * Carousel component's TS interface and exposes the props the\n * Studio settings panel can render controls for.\n *\n * Per-slide content (durations, video src/poster, alt text) lives on\n * `Carousel.Slide` / `Carousel.VideoSlide` and is intentionally NOT\n * surfaced through this top-level contract — those belong to the\n * children's own contracts (added later if/when we want per-slide\n * editing). For v1, the panel edits the carousel-wide knobs (autoplay,\n * loop, align, slides per view) and the chat handles per-slide\n * authoring.\n */\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nconst AlignSchema = z.enum([\"start\", \"center\", \"end\"]);\nconst AutoplayConfigSchema = z.object({\n delay: z.number().int().positive().optional(),\n pauseOnHover: z.boolean().optional(),\n pauseWhenOffscreen: z.boolean().optional(),\n});\nconst AutoplaySchema = z.union([z.boolean(), AutoplayConfigSchema]);\n\nexport const CarouselContract = contract({\n name: \"Carousel\",\n description:\n \"Token-driven slideshow primitive. Embla under the hood, custom autoplay loop with per-slide duration overrides, and a VideoSlide variant that autoplays muted+loop with a poster fallback. Reach for it for marketing hero rotations, app onboarding tours, image galleries, TV/streaming featured rails — anywhere a horizontal stack of slides cycles automatically or on user input.\",\n import: \"@gradeui/ui\",\n aliases: [\n \"carousel\",\n \"slideshow\",\n \"slider\", // colloquial — disambiguate from <Slider> (range input) at the prompt-stitching layer\n \"hero rotation\",\n \"image gallery\",\n \"featured row\",\n \"swipe deck\",\n ],\n subcomponents: [\n \"Carousel.Slide\",\n \"Carousel.VideoSlide\",\n \"Carousel.Dots\",\n \"Carousel.Arrows\",\n \"Carousel.Prev\",\n \"Carousel.Next\",\n ],\n composesWith: [\n \"MediaSurface (inside Carousel.Slide for posters / album art)\",\n \"Card (slide content)\",\n \"Stack / Row (slide composition)\",\n ],\n\n props: {\n // ── Knobs — design choices ───────────────────────────────────────\n loop: {\n schema: z.boolean().optional(),\n design: \"knob\",\n label: \"Loop\",\n default: true,\n description:\n \"Wrap from the last slide back to the first. Default true — the natural fit for hero rotations. Turn off for finite onboarding sequences.\",\n },\n align: {\n schema: AlignSchema.optional(),\n design: \"knob\",\n control: \"toggle-group\",\n label: \"Slide alignment\",\n default: \"start\",\n description:\n \"How slides line up inside the viewport when not at 100% width. 'start' is full-bleed; 'center' gives the 'peek of neighbours' carousel look.\",\n },\n slidesPerView: {\n schema: z.number().int().positive().optional(),\n design: \"knob\",\n label: \"Slides per view\",\n default: 1,\n description:\n \"How many slides show at once. 1 for hero rotations; 3 for thumbnail strips; etc. For media-query responsive layouts, leave this at 1 and override `--gds-carousel-slide-basis` on each Slide via CSS.\",\n },\n autoplay: {\n schema: AutoplaySchema.optional(),\n design: \"structured\",\n label: \"Autoplay\",\n default: false,\n description:\n \"`true` for sensible defaults (5s, pause on hover, pause offscreen). Object form: `{ delay, pauseOnHover, pauseWhenOffscreen }`. Per-slide overrides go on `<Carousel.Slide duration={ms}>`.\",\n },\n draggable: {\n schema: z.boolean().optional(),\n design: \"knob\",\n label: \"Drag to swipe\",\n default: true,\n description:\n \"Disable when slide content (a Map, a chart, a draggable card) needs to swallow drag events.\",\n },\n\n // ── Events ───────────────────────────────────────────────────────\n onSlideChange: {\n schema: z.function().optional(),\n design: \"event\",\n description:\n \"Fires with the new slide index whenever the active slide changes (programmatic, autoplay, or user swipe).\",\n },\n\n // ── Plumbing ─────────────────────────────────────────────────────\n className: {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n style: {\n schema: z.record(z.string(), z.unknown()).optional(),\n design: \"plumbing\",\n },\n children: {\n schema: z.unknown(),\n design: \"plumbing\",\n description:\n \"Carousel.Slide / Carousel.VideoSlide children, plus optionally Carousel.Dots and Carousel.Arrows.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ChartContract = contract({\n name: \"Chart\",\n description: \"Reporting dashboards, single-purpose analytics cards (revenue, conversions, active users), or anywhere you'd otherwise hand-roll a Recharts setup. Bring the actual chart type from `recharts` — ChartContainer doesn't pick the chart shape for you, it themes whatever you nest. For sparkline-style decorative trends consider just rendering a small SVG line directly; ChartContainer is overkill for non-interactive ornament.\",\n import: \"@gradeui/ui\",\n aliases: [\"chart\",\"charts\",\"graph\",\"bar chart\",\"line chart\",\"area chart\",\"recharts\",\"analytics chart\",\"swift chart\",\"swiftui chart\",\"victory chart\",\"victory native\"],\n subcomponents: [\"ChartTooltip\",\"ChartTooltipContent\",\"ChartLegend\",\"ChartLegendContent\",\"ChartStyle\"],\n composesWith: [\"Card (chart-in-a-card pattern)\",\"Tabs (multi-metric switcher)\",\"Recharts components (Bar\",\"Line\",\"Area\",\"Pie\",\"Radar from \\\"recharts\\\")\"],\n styleDefaults: {\"ChartContainer\":\"flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none\",\"ChartTooltipContent\":\"font-medium\",\"ChartLegendContent\":\"flex items-center justify-center gap-4\"},\n props: {\n \"config\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"`{ [seriesKey]: { label: string; color?: string; theme?: { light: string; dark: string } } }`; the keys here are the names you reference in your Recharts <Bar dataKey=\\\"…\\\" /> calls\",\n },\n \"id\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"used for the inlined <style> tag\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"typically a single Recharts ResponsiveContainer or chart\",\n },\n \"passes\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"pair with `content={<ChartTooltipContent />}`\",\n },\n \"indicator\": {\n schema: z.enum([\"dot\", \"line\", \"dashed\"]).optional(),\n design: \"knob\",\n },\n \"ChartLegend\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CheckboxContract = contract({\n name: \"Checkbox\",\n description: \"Binary on/off tied to a list (select multiple, agree to terms). Single on/off that controls a setting is better with Switch. For a label + description row, wrap in Field. When each option should be a whole selectable card (label + description, selected state on the card surface), use CheckboxCard.\",\n import: \"@gradeui/ui\",\n aliases: [\"checkbox\",\"tickbox\",\"tick box\",\"check\",\"multi-select item\"],\n composesWith: [\"Label (via htmlFor)\",\"Field (label + description row)\",\"CheckboxCard (whole-card selectable option)\",\"Card\",\"Form rows\",\"Table (for row selection)\"],\n styleDefaults: {\"Checkbox\":\"flex items-center justify-center text-current\"},\n props: {\n \"checked\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"onCheckedChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"defaultChecked\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"id\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"bind a Label's htmlFor to this\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CheckboxCardContract = contract({\n name: \"CheckboxCard\",\n description: \"Multi-select where each option is a whole selectable card (add-ons, feature toggles, opt-ins). The whole card is the control, so focus and the checked state live on the card surface. Standalone (not in a group). Static content only — never nest an interactive control inside. For a plain checkbox + label row use Field instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"checkbox card\",\"selectable card\",\"multi-select card\",\"add-on card\",\"feature card\",\"opt-in card\"],\n composesWith: [\"Badge (in aside)\",\"MediaSurface (custom children)\",\"Stack / Grid (laying out several)\"],\n props: {\n \"checked\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"standard checkbox state\",\n },\n \"label\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"title line\",\n },\n \"description\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"secondary line\",\n },\n \"aside\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot before the indicator (a Badge, price, hint)\",\n },\n \"hideIndicator\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the check; selection shown by the card border + background\",\n },\n \"indicatorPosition\": {\n schema: z.enum([\"leading\", \"trailing\"]).optional(),\n design: \"knob\",\n description: \"default trailing\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"arbitrary static content instead of label/description\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CodeContract = contract({\n name: \"Code\",\n description: \"Read-only code surface for marketing heroes, docs, changelog entries, AI-output displays. Use `diff` for the \\\"diff hero\\\" pattern (before/after side-by-side or stacked). Use `reveal=\\\"lines\\\"` with `trigger=\\\"inView\\\"` for scroll-driven marketing pages. Use `reveal=\\\"typewriter\\\"` for AI-output / chat-style displays. Use `bare` for inline code inside prose. NOT a code editor — for editable code, reach for an external editor primitive (CodeMirror / Monaco).\",\n import: \"@gradeui/ui\",\n aliases: [\"code block\",\"code\",\"code snippet\",\"code surface\",\"syntax highlighted code\",\"diff hero\",\"diff view\",\"diff block\",\"changelog code\",\"before after code\",\"scroll-triggered code\",\"typewriter code\"],\n composesWith: [\"SectionBlock\",\"Card\",\"Tabs (for multi-file examples)\",\"Carousel (slide-to-slide code progression)\"],\n styleDefaults: {\"Code\":\"gds-code relative w-full overflow-hidden\"},\n props: {\n \"source\": {\n schema: z.string(),\n design: \"content\",\n description: \"the code to render\",\n },\n \"language\": {\n schema: z.enum([\"tsx\", \"jsx\", \"ts\", \"js\", \"html\", \"css\", \"json\", \"bash\", \"md\", \"py\", \"go\", \"rust\"]).optional(),\n design: \"knob\",\n description: \"Prism language id; defaults to `tsx`\",\n },\n \"highlight\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"1-indexed line number, array of numbers, or array of `[start, end]` ranges to emphasise\",\n },\n \"diff\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"`{ added?: number[]; removed?: number[] }` — 1-indexed lines for diff hero / changelog mode\",\n },\n \"reveal\": {\n schema: z.enum([\"none\", \"lines\", \"typewriter\", \"diff\"]).optional(),\n design: \"knob\",\n description: \"entrance animation; defaults to `none`\",\n },\n \"trigger\": {\n schema: z.enum([\"mount\", \"inView\", \"manual\"]).optional(),\n design: \"knob\",\n description: \"what kicks the reveal off; defaults to `mount`\",\n },\n \"play\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"for `trigger=\\\"manual\\\"`, set true to play\",\n },\n \"speed\": {\n schema: z.enum([\"slow\", \"normal\", \"fast\"]).optional(),\n design: \"knob\",\n description: \"animation feel preset. `normal` (default) maps to the canonical 50ms/22ms staggers + 180ms pre-delay. Pick a feel; don't tune individual numbers unless you have to.\",\n },\n \"delay\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"explicit delay before reveal starts (ms) — overrides the `speed` preset\",\n },\n \"stagger\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"explicit per-line stagger for `lines`/`diff`, per-token for `typewriter` (ms) — overrides the `speed` preset\",\n },\n \"prompt\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"string prepended to each line. Use for terminal emulation: `prompt=\\\"$ \\\"` for bash, `prompt=\\\"> \\\"` for PowerShell, `prompt=\\\">>> \\\"` for Python REPL. Prompt characters render in muted token colour, don't pick up the typewriter stagger, and are hidden from screen readers.\",\n },\n \"showLineNumbers\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"filename\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"optional label rendered in the header chrome\",\n },\n \"wrap\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"wrap long lines instead of horizontal scroll\",\n },\n \"bare\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"drop chrome (border, header, padding) — for inline use\",\n },\n \"size\": {\n schema: z.enum([\"xs\", \"sm\", \"md\"]).optional(),\n design: \"knob\",\n description: \"type-scale preset. `xs` (12px) for dense changelog cards / inline blocks; `sm` (14px, default) for marketing heroes and docs; `md` (16px) for focal-point displays.\",\n },\n \"height\": {\n schema: z.enum([\"auto\", \"number\", \"string\"]).optional(),\n design: \"knob\",\n description: \"container sizing. `auto` (default) grows with content. Number = pixels (`300` → `300px`). String passes through as CSS (`\\\"20rem\\\"`, `\\\"50vh\\\"`).\",\n },\n \"maxLines\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"cap the visible line count at exactly N line-heights. Wins over `height`. Inherits the current size's line-height automatically.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CollapsibleContract = contract({\n name: \"Collapsible\",\n description: \"A single show/hide reveal — \\\"Show advanced settings\\\" rows, expandable inline help, \\\"More details\\\" sections inside cards. For multiple rows of expandable content where one-at-a-time matters, reach for Accordion. For a separate panel that floats above content, use Popover.\",\n import: \"@gradeui/ui\",\n aliases: [\"collapsible\",\"expand\",\"show more\",\"disclosure\",\"advanced settings\",\"disclosure group\",\"expandable section\",\"expandable view\",\"show hide\"],\n subcomponents: [\"CollapsibleTrigger\",\"CollapsibleContent\"],\n composesWith: [\"Button (as the trigger\",\"asChild)\",\"Card (expandable settings group)\",\"Row (header + chevron)\"],\n props: {\n \"open\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"controlled open state\",\n },\n \"defaultOpen\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"uncontrolled initial state\",\n },\n \"onOpenChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"the clickable header (often a Button asChild)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const CommandContract = contract({\n name: \"Command\",\n description: \"A searchable list of actions or destinations — global ⌘K palettes, \\\"jump to\\\" inputs, account switchers with filter. Wrap in CommandDialog when it should pop over the entire app on a hotkey. For straight forms with filter, prefer a Select with a search input. For free-text autocomplete tied to a single value, prefer Combobox built on Popover + Command.\",\n import: \"@gradeui/ui\",\n aliases: [\"command palette\",\"command menu\",\"cmd k\",\"quick switcher\",\"action menu\",\"spotlight\",\"spotlight search\",\"quick open\",\"fuzzy finder\"],\n subcomponents: [\"CommandInput\",\"CommandList\",\"CommandEmpty\",\"CommandGroup\",\"CommandItem\",\"CommandSeparator\",\"CommandShortcut\",\"CommandDialog\"],\n composesWith: [\"Dialog (CommandDialog wraps it)\",\"Popover (inline combobox)\",\"Tooltip\"],\n styleDefaults: {\"Command\":\"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\"CommandInput\":\"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\"CommandList\":\"max-h-[300px] overflow-y-auto overflow-x-hidden\",\"CommandGroup\":\"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\"CommandSeparator\":\"-mx-1 h-px bg-border\",\"CommandItem\":\"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\"CommandShortcut\":\"ml-auto text-xs tracking-widest text-muted-foreground\"},\n props: {\n \"value\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"controlled active item value\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"wraps groups and empty state\",\n },\n \"heading\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"onSelect\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"open\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"when you want the command palette mounted in a modal (cmd+k pattern)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ComposerContract = contract({\n name: \"Composer\",\n description: \"THE PRIMITIVE for any text composition surface — Slack / Discord /\\nTeams chat input, AI chat / copilot prompt box, comment thread input,\\nGitHub / Linear / Jira comment box, Reddit / Twitter reply box,\\nNotion / Linear document body, email composer, post body, anywhere\\na user types text and submits.\\n\\nCONCRETE TEST — if you find yourself writing a `<textarea>` (or\\n`<Input>` styled tall) with a row of `<Bold>` / `<Italic>` /\\n`<Paperclip>` / `<Send>` buttons below or beside it, STOP. That is\\n`<Composer>`. Use it.\\n\\nCommon shapes:\\n Chat input with formatting + attachments + send\\n → <Composer formats={[\\\"bold\\\",\\\"italic\\\",\\\"code\\\"]} toolbar attachments />\\n AI prompt box with paperclip + send\\n → <AIChatComposer /> (preset wrapping Composer)\\n Comment / reply input\\n → <ComposerReply triggers={[{char:\\\"@\\\", items: people}]} />\\n Document body editor\\n → <Composer toolbar formats={[...]} bare />\\n\\nBuilt on Lexical for rich text, mentions, slash commands. The\\n`attachments` prop wires image paste + paperclip + chip preview row\\nwith object URL lifecycle handled internally — don't roll that\\nplumbing yourself. The `triggers` prop wires @mentions and /slash\\ncommands with a typeahead popover. The `formats` array picks which\\ntoolbar buttons render when `toolbar` is on.\\n\\nShares the lib/demo step vocabulary with <Code> so scripted\\ntyping/format/mention demos animate in the same rhythm as your\\nterminal demos.\",\n import: \"@gradeui/ui\",\n composesWith: [\"AIChatComposer (preset wrapping this with paperclip + send + attachments)\",\"ComposerReply (preset for comment threads)\",\"AIChat (uses AIChatComposer internally)\",\"Card (host above for reply boxes)\",\"Avatar (in leftActions slot for \\\"your\\\" avatar next to the input)\"],\n styleDefaults: {\"ComposerToolbar\":\"flex flex-wrap items-center gap-0.5\",\"AttachmentChips\":\"absolute -top-1.5 -right-1.5 h-5 w-5 rounded-full\",\"ComposerInner\":\"w-full\"},\n props: {\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"initialText\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"plain text content to seed on mount\",\n },\n \"initialJson\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"Lexical state JSON (from a previous onSubmit round-trip)\",\n },\n \"formats\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"available formats (defaults to bold/italic/underline/strikethrough/code/h1/h2/blockquote/ul/ol); pass false for plain text only\",\n },\n \"toolbar\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the formatting toolbar above the editor; default false\",\n },\n \"triggers\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"mention/slash configs, eg. `[{ char: \\\"@\\\", items: people }, { char: \\\"/\\\", items: commands }]`\",\n },\n \"attachments\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"enable image paste + paperclip when true/object; default off\",\n },\n \"onSubmit\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"isLoading\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"disables editor, swaps default Send for Stop\",\n },\n \"onStop\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"maxLength\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"autoFocus\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n },\n \"submitOnEnter\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"default true (Shift-Enter still inserts newline)\",\n },\n \"leftActions\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"override the default paperclip\",\n },\n \"rightActions\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"override the default Send/Stop\",\n },\n \"hideSend\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the default Send without replacing it\",\n },\n \"steps\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"scripted demo sequence\",\n },\n \"trigger\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"\\\"mount\\\" | \\\"inView\\\" | \\\"manual\\\"; default \\\"mount\\\"\",\n },\n \"play\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"for trigger=\\\"manual\\\"\",\n },\n \"speed\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"\\\"slow\\\" | \\\"normal\\\" | \\\"fast\\\"; default \\\"normal\\\"\",\n },\n \"loop\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"loopDelay\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"ms between loop iterations, default 2000\",\n },\n \"readOnly\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"disables editing AND focusability; programmatic playback still works; use for marketing demos so the script doesn't steal focus\",\n },\n \"bare\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"strip the card chrome\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const DatePickerContract = contract({\n name: \"DatePicker\",\n description: \"Any date or date-range entry. Use DatePicker for a single date (DOB, due date, booking). Use DateRangePicker for a span (report period, stay dates, filter window). Prefer these over <Input type=\\\"date\\\"> — consistent theming, keyboard nav, a11y, and no browser-native UI drift.\",\n import: \"@gradeui/ui\",\n aliases: [\"datepicker\",\"calendar input\",\"date field\",\"date range\",\"datepickerios\",\"react native date picker\",\"calendar input field\",\"date field control\"],\n subcomponents: [\"DateRangePicker\"],\n composesWith: [\"Label\",\"Form\",\"Card (in CardContent)\",\"Button (form submit)\"],\n styleDefaults: {\"DatePicker\":\"w-[280px] justify-start text-left font-normal data-[empty=true]:text-muted-foreground\",\"DateRangePicker\":\"w-[300px] justify-start text-left font-normal data-[empty=true]:text-muted-foreground\"},\n props: {\n \"value\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"onChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"called on select or clear\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"trigger label when empty (default \\\"Pick a date\\\" / \\\"Pick a date range\\\")\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"format\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"date-fns format token for the trigger label (default \\\"PPP\\\" single, \\\"LLL dd, y\\\" range)\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\"]).optional(),\n design: \"knob\",\n description: \"popover align (default \\\"start\\\")\",\n },\n \"side\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\"]).optional(),\n design: \"knob\",\n description: \"popover side\",\n },\n \"captionLayout\": {\n schema: z.enum([\"label\", \"dropdown\", \"dropdown-months\", \"dropdown-years\"]).optional(),\n design: \"knob\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"on the trigger button\",\n },\n \"contentClassName\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"on the PopoverContent\",\n },\n \"icon\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"replaces the default CalendarIcon\",\n },\n \"numberOfMonths\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"DateRangePicker only, default 2\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const DialogContract = contract({\n name: \"Dialog\",\n description: \"Modal interruptions — confirmations, focused forms, detail views, AI suggestion sheets. Dialog is the right primitive for Apple HIG / React Native \\\"Alert\\\" (modal) semantics. For non-blocking inline messaging use Callout; for transient notifications use Toaster (Sonner). Always include DialogTitle (a11y requirement).\",\n import: \"@gradeui/ui\",\n aliases: [\"modal\",\"popup\",\"overlay\",\"alert\",\"system alert\",\"alert dialog\",\"modal dialog\",\"confirm dialog\",\"react native modal\",\"rn alert\",\"glass modal\",\"frosted modal\",\"ai suggestion modal\"],\n subcomponents: [\"DialogTrigger\",\"DialogContent\",\"DialogHeader\",\"DialogTitle\",\"DialogDescription\",\"DialogFooter\",\"DialogClose\"],\n composesWith: [\"Button (as DialogTrigger asChild\",\"and inside DialogFooter)\",\"Input/Textarea/Select inside DialogContent\",\"Code (for changelog / diff modals)\",\"MediaSurface (for image / preview modals)\"],\n styleDefaults: {\"DialogOverlay\":\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\"DialogContent\":\"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\"DialogHeader\":\"flex flex-col space-y-1.5 text-center sm:text-left\",\"DialogFooter\":\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\"DialogTitle\":\"text-lg font-semibold leading-none tracking-tight\",\"DialogDescription\":\"text-sm text-muted-foreground\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"Radix controlled/uncontrolled pattern\",\n },\n \"asChild\": {\n schema: z.enum([\"wrap a Button\"]).optional(),\n design: \"plumbing\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the modal panel is *made of*. Defaults to `solid` (opaque `bg-background`). `glass` lets the page show through softly — pairs with rich backdrops or AI-suggestion modals.\",\n },\n \"accepts\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"used\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const DropdownMenuContract = contract({\n name: \"DropdownMenu\",\n description: \"A small action menu attached to a trigger — overflow \\\"…\\\" buttons on cards, user-avatar menus in headers, \\\"Insert\\\" menus in editors. For a full searchable list, use Command. For ONE primary action plus a secondary, use a Button next to a smaller ghost Button instead of a dropdown.\",\n import: \"@gradeui/ui\",\n aliases: [\"dropdown\",\"dropdown menu\",\"overflow menu\",\"kebab menu\",\"more menu\",\"action menu\",\"context-style menu\",\"menu\",\"pull-down menu\",\"pulldown menu\",\"context menu\",\"popup menu\",\"actions menu\",\"glass menu\",\"frosted menu\",\"ios menu\",\"hig menu\"],\n subcomponents: [\"DropdownMenuTrigger\",\"DropdownMenuContent\",\"DropdownMenuItem\",\"DropdownMenuCheckboxItem\",\"DropdownMenuRadioGroup\",\"DropdownMenuRadioItem\",\"DropdownMenuLabel\",\"DropdownMenuSeparator\",\"DropdownMenuShortcut\",\"DropdownMenuGroup\",\"DropdownMenuSub\",\"DropdownMenuSubTrigger\",\"DropdownMenuSubContent\"],\n composesWith: [\"Button (as trigger asChild)\",\"Avatar (user menu)\",\"Card (overflow on a tile)\",\"Tooltip (on the trigger)\"],\n styleDefaults: {\"DropdownMenuSubTrigger\":\"flex cursor-default select-none items-center gap-2 rounded-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:shrink-0\",\"DropdownMenuSubContent\":\"z-50 min-w-[8rem] overflow-hidden rounded-md border text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-dropdown-menu-content-transform-origin]\",\"DropdownMenuContent\":\"z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border text-popover-foreground shadow-md\",\"DropdownMenuItem\":\"relative flex cursor-default select-none items-center gap-2 rounded-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:shrink-0\",\"DropdownMenuCheckboxItem\":\"relative flex cursor-default select-none items-center rounded-sm pr-2 outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\"DropdownMenuRadioItem\":\"relative flex cursor-default select-none items-center rounded-sm pr-2 outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\"DropdownMenuLabel\":\"font-semibold\",\"DropdownMenuSeparator\":\"-mx-1 my-1 h-px bg-muted\",\"DropdownMenuShortcut\":\"ml-auto text-xs tracking-widest opacity-60\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"usually wraps a Button\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"top\", \"right\", \"bottom\", \"left\"]).optional(),\n design: \"knob\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the menu surface is *made of*. `solid` (default) is `bg-popover`. `translucent` matches Apple HIG / iOS menu sheets. `glass` for menus floating over rich canvases.\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"menu density; cascades to every item (Item, Checkbox, Radio, SubTrigger, Label) via context so a compact trigger gets a compact menu. Use \\\"xs\\\" in dense tool panels.\",\n },\n \"onSelect\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"DropdownMenuCheckboxItem\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"DropdownMenuSub\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"sub-trigger shows children, sub-content holds the deeper items\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"right-aligned kbd hint\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const FieldContract = contract({\n name: \"Field\",\n description: \"Pair a bare control with a label and optional description in a row, with id + aria-describedby wired automatically. Use layout=\\\"setting\\\" for the classic settings row (label on the left, Switch on the right). For a selectable CARD where the whole surface is the control, use RadioCard / CheckboxCard / SwitchCard instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"field\",\"form field\",\"control row\",\"label and description\",\"two line checkbox\",\"option row\",\"setting row\",\"toggle row\"],\n composesWith: [\"Checkbox\",\"RadioGroup\",\"RadioGroupItem\",\"Switch\",\"Badge (inside Field.Trailing)\"],\n styleDefaults: {\"FieldLabel\":\"text-sm font-medium leading-none text-foreground cursor-pointer peer-disabled:cursor-not-allowed peer-disabled:opacity-70\",\"FieldDescription\":\"text-sm text-muted-foreground\",\"FieldTrailing\":\"flex shrink-0 items-center gap-2\",\"FieldRoot\":\"flex gap-3\"},\n props: {\n \"layout\": {\n schema: z.enum([\"option\", \"setting\"]).optional(),\n design: \"knob\",\n description: \"option (default): control leads, text beside it; setting: text leads, control pinned trailing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"order does not matter\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const FillPickerContract = contract({\n name: \"FillPicker\",\n description: \"Grade's paint picker — the control for choosing a frame's background fill, modelled on Figma's fill popover. A fill-type icon row (solid · gradient · image · pattern · video · shader) switches the panel below; a global opacity sits at the foot. Emits a FillValue that maps 1:1 onto BackgroundFill props. This is a Studio/inspector chrome control — pair it with BackgroundFill, which renders the chosen paint. Not for app content.\",\n import: \"@gradeui/ui\",\n aliases: [\"fill picker\",\"paint picker\",\"background picker\",\"fill chooser\",\"fill popover\"],\n composesWith: [\"BackgroundFill (renders the FillValue)\",\"Popover (host it in a popover)\",\"ShaderPresetPicker (the shader tab)\",\"the inspector Fill section\"],\n styleDefaults: {\"Swatch\":\"h-7 w-7 rounded-md border border-border/60 transition-shadow\",\"FillPicker\":\"flex flex-col gap-3\"},\n props: {\n \"value\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"current paint ({ type, color?, gradient?, src?, fit?, repeat?, tileSize?, preset?, palette?, postPreset?, opacity? }) (required)\",\n },\n \"onChange\": {\n schema: z.unknown(),\n design: \"event\",\n description: \"called on any change (required)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const FlexContract = contract({\n name: \"Flex\",\n description: \"The unopinionated flexbox primitive — reach for Flex when Stack, Row, or Grid don't quite fit. Specifically when you need reverse direction (`row-reverse` / `col-reverse`), CSS defaults instead of Row's baked-in `items-center gap-md`, or baseline alignment. Otherwise prefer Stack / Row / Grid — they're easier to read and tuned for the 95% case. Flex is the escape hatch, not the default.\",\n import: \"@gradeui/ui\",\n aliases: [\"flex\",\"flexbox\",\"flex container\",\"hstack\",\"vstack\",\"horizontal\",\"vertical\",\"generic container\",\"layout view\"],\n composesWith: [\"any content component\"],\n props: {\n \"direction\": {\n schema: z.enum([\"row\", \"col\", \"row-reverse\", \"col-reverse\"]).optional(),\n design: \"knob\",\n description: \"main-axis direction\",\n default: \"row\",\n },\n \"gap\": {\n schema: z.enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"]).optional(),\n design: \"knob\",\n description: \"gap between children\",\n default: \"none\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"stretch\", \"baseline\"]).optional(),\n design: \"knob\",\n description: \"cross-axis alignment\",\n default: \"stretch\",\n },\n \"justify\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"between\", \"around\", \"evenly\"]).optional(),\n design: \"knob\",\n description: \"main-axis distribution\",\n default: \"start\",\n },\n \"wrap\": {\n schema: z.enum([\"nowrap\", \"wrap\", \"wrap-reverse\"]).optional(),\n design: \"knob\",\n description: \"wrap behaviour when children overflow\",\n default: \"nowrap\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const GridContract = contract({\n name: \"Grid\",\n description: \"2D layouts where Stack (vertical) and Row (horizontal) don't fit — stat-card grids, feature tiles, pricing columns, photo grids. Reach for Grid over hand-rolled `grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4` so the column count is a prop the settings panel can mutate and the responsive ladder stays consistent across designs.\",\n import: \"@gradeui/ui\",\n aliases: [\"grid\",\"tiles\",\"cards grid\",\"stat grid\",\"columns\",\"feature grid\",\"grid view\",\"lazy v grid\",\"lazyvgrid\",\"lazy h grid\",\"lazyhgrid\",\"tile grid\",\"masonry\"],\n composesWith: [\"Card\",\"Stack (inside each cell)\",\"Row\",\"Button\",\"any content component\"],\n styleDefaults: {\"Grid\":\"gds-grid grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-4 items-stretch\"},\n variantDefaults: {\"cols\":\"3\",\"gap\":\"md\",\"align\":\"stretch\"},\n props: {\n \"cols\": {\n schema: z.enum([\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"12\"]).optional(),\n design: \"knob\",\n description: \"desktop column count; each value has a baked-in responsive ladder (e.g. \\\"4\\\" → 1 col mobile, 2 tablet, 4 desktop)\",\n default: \"3\",\n },\n \"gap\": {\n schema: z.enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"]).optional(),\n design: \"knob\",\n description: \"gap between grid cells (same scale as Stack/Row)\",\n default: \"md\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"stretch\"]).optional(),\n design: \"knob\",\n description: \"cross-axis alignment of cells\",\n default: \"stretch\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const HoverCardContract = contract({\n name: \"HoverCard\",\n description: \"Rich preview content surfaced on hover — user profile mini-cards on @-mentions, link previews, definition popups, layer-thumbnail peeks. Pointer-only by design (no touch-friendly trigger); pair with a click target for touch devices, or fall back to Popover. NEVER use HoverCard for critical info — if the user can't reach it via keyboard or touch, it might as well not exist for accessibility.\",\n import: \"@gradeui/ui\",\n aliases: [\"hover card\",\"hover preview\",\"mention preview\",\"profile peek\",\"link preview\",\"rich tooltip\",\"link preview card\",\"profile hover\",\"peek card\",\"glass preview\",\"frosted preview\"],\n subcomponents: [\"HoverCardTrigger\",\"HoverCardContent\"],\n composesWith: [\"Avatar (user preview)\",\"Card (richer content)\",\"Link (the trigger)\",\"MediaSurface (link/layer previews)\",\"Code (snippet previews)\"],\n styleDefaults: {\"HoverCardContent\":\"z-50 w-64 rounded-md border p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-hover-card-content-transform-origin]\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"usually a Link or Button\",\n },\n \"side\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the preview surface is *made of*. `solid` (default) is `bg-popover`. `glass` for hover previews over rich content (a media feed, a layout canvas).\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const InputContract = contract({\n name: \"Input\",\n description: \"Any single-line text entry. Always pair with a Label for accessibility. Use startSlot/endSlot for icons, prefixes and units instead of hand-positioning absolute children; use size=\\\"sm\\\"/\\\"xs\\\" in dense tool panels.\",\n import: \"@gradeui/ui\",\n aliases: [\"text field\",\"textbox\",\"textfield\",\"form field\",\"text input\",\"secure field\",\"search field\",\"url field\",\"number field\",\"textinput\",\"text input field\",\"react native textinput\",\"unit input\",\"input with icon\"],\n composesWith: [\"Label\",\"Form\",\"Card (in CardContent)\",\"Button (form submit)\"],\n styleDefaults: {\"Input\":\"pointer-events-none absolute inset-y-0 left-0 flex items-center text-muted-foreground [&_svg]:size-3.5\"},\n props: {\n \"type\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"hint text shown while the input is empty. Model it explicitly (not just a native passthrough) so generated screens carry placeholders and the validator accepts them.\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"control density. `default` (h-9) for forms; `sm` (h-8) and `xs` (h-7) for dense tool panels like the inspector. NOTE: pre-unification scale — see Figma parity audit; due to migrate to the t-shirt scale (xs 24 | sm 28 | md 32 | lg 40, default→md).\",\n },\n \"startSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"adornment rendered inside the leading edge (icon, prefix, currency symbol). Non-interactive by default so clicks focus the input.\",\n },\n \"endSlot\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"adornment rendered inside the trailing edge (unit like \\\"px\\\", a clear button, a stepper). Same pointer rules as startSlot.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const LabelContract = contract({\n name: \"Label\",\n description: \"Every Input / Textarea / Checkbox / Switch / RadioGroup. Always use htmlFor so clicking the label focuses the control. Match `size` to the field it labels (size=\\\"xs\\\" label over a size=\\\"xs\\\" input).\",\n import: \"@gradeui/ui\",\n aliases: [\"label\",\"form label\",\"field label\",\"caption\"],\n composesWith: [\"Input\",\"Textarea\",\"Checkbox\",\"Switch\",\"RadioGroup\",\"Select\"],\n styleDefaults: {\"Label\":\"font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70 text-sm\"},\n variantDefaults: {\"size\":\"default\"},\n props: {\n \"htmlFor\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"binds to the input's id\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"text size, mirrors Input/Select/Textarea so a field and its label scale together. default = text-sm; xs = 11px for dense tool panels.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const LogoContract = contract({\n name: \"Logo\",\n description: \"ALWAYS use <Logo> wherever a screen carries a brand mark —\",\n import: \"@gradeui/ui\",\n aliases: [\"logo\",\"brand\",\"brandmark\",\"wordmark\",\"lockup\",\"brand logo\",\"app logo\",\"logotype\",\"grade mark\",\"g arrow\"],\n composesWith: [\"AppShell\",\"AppShellHeader\",\"Sidebar\",\"SidebarHeader\",\"Toolbar\",\"MotionOverlay\",\"Row\",\"Stack\"],\n styleDefaults: {\"Logo\":\"gds-logo inline-flex shrink-0 select-none items-center\"},\n props: {\n \"sources\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"artwork keyed by lockup then appearance:\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const MapContract = contract({\n name: \"Map\",\n description: \"Any layout that needs a real map — listings (real estate, Airbnb-style), fleet/logistics dashboards, store locators, anywhere a user picks a location from a viewport. Reach for the controlled `hoveredId` prop when a sibling list and the map need to highlight each other.\",\n import: \"@gradeui/ui\",\n aliases: [\"map\",\"maps\",\"mapbox\",\"maplibre\",\"google maps\",\"geo\",\"location\",\"latlng\",\"coordinates\",\"marker\",\"pin\",\"airbnb\",\"listings\",\"fleet\",\"real estate\",\"logistics\",\"map view\",\"mapkit\",\"mapview\",\"react native maps\",\"rn maps\"],\n subcomponents: [\"MapMarker\"],\n composesWith: [\"Card (as marker content)\",\"Badge\",\"Avatar\",\"Button\",\"Row\",\"Stack\",\"Skeleton\"],\n props: {\n \"provider\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"\\\"maplibre\\\" (default, free, no key) | \\\"mapbox\\\" (needs accessToken) | \\\"google\\\" (needs apiKey). Switching is one prop change.\",\n },\n \"center\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"`[lng, lat]` tuple. ALWAYS lng first. Required.\",\n },\n \"zoom\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"number, 0–22. Required.\",\n },\n \"bounds\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"`[[swLng, swLat], [neLng, neLat]]`. When set, takes precedence over center+zoom.\",\n },\n \"appearance\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"\\\"light\\\" | \\\"dark\\\" | \\\"satellite\\\" | \\\"auto\\\" (default \\\"auto\\\", follows GradeThemeProvider mode).\",\n },\n \"hoveredId\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"controlled string id, pairs with onHoveredIdChange. The matching MapMarker gets `data-gds-state=\\\"hovered\\\"` automatically. This is how you build list ↔ map two-way sync.\",\n },\n \"interactive\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"false freezes pan/zoom, useful for static cards.\",\n },\n \"onLoad\": {\n schema: z.unknown(),\n design: \"event\",\n description: \"handle exposes flyTo, panTo, fitBounds, getCenter, getZoom, getBounds, instance.\",\n },\n \"tilerKey\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"MapLibre only (provider=\\\"maplibre\\\"). Optional everywhere: omit on `gradeui.com`/`localhost` and the referrer-locked demo key is used; set it only when embedding off-domain. The contract never requires it.\",\n },\n \"accessToken\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"Mapbox only. Pass it whenever provider=\\\"mapbox\\\" — the component itself enforces this at runtime (throws a clear `provider=\\\"mapbox\\\" requires an accessToken prop` error via onError if missing). It is OPTIONAL in the contract on purpose, so the validator never demands it from maplibre/google maps.\",\n },\n \"apiKey\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"Google only. Pass it whenever provider=\\\"google\\\" — the component enforces it at runtime (throws `provider=\\\"google\\\" requires an apiKey prop` via onError if missing). OPTIONAL in the contract on purpose, so it's never demanded from maplibre/mapbox.\",\n },\n \"id\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"string. Required. Stable marker id; pair with Map's `hoveredId` for list↔map hover sync.\",\n },\n \"at\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"`[lng, lat]` tuple. Required. THE coordinate prop. ALWAYS lng first. The prop is literally named `at` — it is NOT `lngLat`, `coordinates`, `position`, `latLng`, `center`, or separate `lng`/`lat` props. Passing any other name leaves the marker coord `undefined`, and MapLibre throws on mount, crashing the WHOLE screen in every renderer. When in doubt, copy the `airbnb-listings` scaffold: `<MapMarker id={l.id} at={l.coords}>`.\",\n },\n \"anchor\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"\\\"center\\\" | \\\"bottom\\\" (default \\\"bottom\\\", pin tip sits on the coord). Only these two values.\",\n },\n \"onClick\": {\n schema: z.unknown(),\n design: \"event\",\n description: \"handler called with `({ id, coords, native })` on marker click.\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"DOM rendered as the marker (Badge, Card, Avatar, or any element). Inherits `--gds-*` tokens.\",\n },\n },\n});\n","/**\n * MediaSurface — component contract.\n *\n * First contract in the codebase, so this file is the reference template\n * other components will copy. Five rules of thumb worth carrying over:\n *\n * 1. **One contract file per component**, co-located with the .tsx.\n * The two evolve together; the contract is the source of truth\n * for both the playbook prompt and the settings panel.\n *\n * 2. **Every prop in the component's TS interface has a contract entry.**\n * Even plumbing escapes (`asChild`, `className`, `style`) — they go\n * under `design: \"plumbing\"` so the panel filters them out, but\n * they exist for runtime validation and type derivation.\n *\n * 3. **Discriminated unions express structured props.** MediaSurface's\n * `source` is the canonical case: kind-based shapes that the panel\n * reveals as per-kind sub-forms. Zod's `discriminatedUnion` keeps\n * the type narrowing intact through `z.infer`.\n *\n * 4. **Actions are first-class.** Anything imperative (\"Fill image\",\n * \"Refresh\", future \"Force open this dialog\") lives under `actions`,\n * not as a prop. Host (Studio) wires the action handler by `kind`.\n *\n * 5. **Keep descriptions terse and concrete.** They surface in three\n * places: panel tooltips, the playbook prompt, generated docs.\n * A 200-character paragraph reads badly in all three.\n */\n\nimport { z } from \"zod\";\nimport { contract, type InferProps } from \"@gradeui/contracts\";\n\n// ─── Source descriptor schema ──────────────────────────────────────\n//\n// Discriminated union mirroring MediaSource in `media-surface.tsx`.\n// The component's own type and this schema MUST stay in lock-step;\n// changing one without the other surfaces at the next typecheck\n// because the component will import `InferProps<typeof\n// MediaSurfaceContract>` once the migration completes.\n\nconst AlbumSource = z.object({\n kind: z.literal(\"album\"),\n artist: z.string(),\n title: z.string(),\n year: z.number().optional(),\n description: z.string().optional(),\n});\n\nconst TvShowSource = z.object({\n kind: z.literal(\"tv-show\"),\n title: z.string(),\n year: z.number().optional(),\n description: z.string().optional(),\n});\n\nconst MovieSource = z.object({\n kind: z.literal(\"movie\"),\n title: z.string(),\n year: z.number().optional(),\n description: z.string().optional(),\n});\n\nconst GameSource = z.object({\n kind: z.literal(\"game\"),\n title: z.string(),\n description: z.string().optional(),\n});\n\nconst BookSource = z.object({\n kind: z.literal(\"book\"),\n title: z.string().optional(),\n author: z.string().optional(),\n isbn: z.string().optional(),\n description: z.string().optional(),\n});\n\nconst PosterSource = z.object({\n kind: z.literal(\"poster\"),\n title: z.string(),\n year: z.number().optional(),\n description: z.string().optional(),\n});\n\nconst PortraitSource = z.object({\n kind: z.literal(\"portrait\"),\n name: z.string().optional(),\n role: z.string().optional(),\n});\n\nconst LandscapeSource = z.object({\n kind: z.literal(\"landscape\"),\n location: z.string().optional(),\n mood: z.string().optional(),\n});\n\nconst ProductSource = z.object({\n kind: z.literal(\"product\"),\n name: z.string().optional(),\n brand: z.string().optional(),\n});\n\nconst FoodSource = z.object({\n kind: z.literal(\"food\"),\n dish: z.string().optional(),\n cuisine: z.string().optional(),\n});\n\nconst GenericSource = z.object({\n kind: z.literal(\"generic\"),\n prompt: z.string(),\n});\n\nconst NoSubFieldsSource = z.union([\n z.object({ kind: z.literal(\"video\") }),\n z.object({ kind: z.literal(\"audio\") }),\n z.object({ kind: z.literal(\"embed\") }),\n z.object({ kind: z.literal(\"3d\") }),\n]);\n\nconst MediaSourceSchema = z.union([\n AlbumSource,\n TvShowSource,\n MovieSource,\n GameSource,\n BookSource,\n PosterSource,\n PortraitSource,\n LandscapeSource,\n ProductSource,\n FoodSource,\n GenericSource,\n NoSubFieldsSource,\n]);\n\n// ─── Enums ─────────────────────────────────────────────────────────\n\nconst AspectSchema = z.enum([\"video\", \"square\", \"portrait\", \"wide\", \"auto\"]);\nconst RadiusSchema = z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]);\nconst HintSchema = z.enum([\n \"album\",\n \"tv-show\",\n \"movie\",\n \"game\",\n \"book\",\n \"portrait\",\n \"landscape\",\n \"poster\",\n \"product\",\n \"food\",\n \"video\",\n \"audio\",\n \"embed\",\n \"3d\",\n \"generic\",\n]);\nconst EmptyStateSchema = z.union([\n z.literal(\"auto\"),\n z.literal(\"icon\"),\n z.literal(\"none\"),\n]);\n\n// ─── Contract ──────────────────────────────────────────────────────\n\nexport const MediaSurfaceContract = contract({\n name: \"MediaSurface\",\n description:\n \"The canonical media slot for ALL non-person imagery — album art, posters, hero images, landscape photos, video and 3D containers.\",\n when:\n \"Pass `hint` + `alt` + (optionally) `source` so the empty-state placeholder is meaningful and the generation pipeline can later fill the slot with a real image. Use directly for declarative slots; the higher-level VideoPlayer / RivePlayer / ThreeScene wrap this for runtime-heavy media.\",\n antipatterns: [\n \"Don't wrap <Avatar> inside <MediaSurface> to get an initials fallback. Set `alt` + `hint` on MediaSurface directly — the placeholder renders initials at small sizes derived from `alt`.\",\n \"Don't use <Avatar> for album art, posters, products, food, landscapes, etc. Avatar is for PEOPLE only.\",\n \"Don't inline manual gradient backgrounds (`bg-gradient-to-br …`) on MediaSurface as a 'placeholder vibe' — the empty-state is already styled via `--gds-media-placeholder-bg/-fg` tokens.\",\n ],\n composesWith: [\"Card\", \"CardBlock\", \"MediaBlock\", \"VideoPlayer\", \"RivePlayer\", \"ThreeScene\"],\n aliases: [\n \"media\",\n \"image slot\",\n \"media slot\",\n \"image placeholder\",\n \"cover\",\n \"thumbnail\",\n \"poster slot\",\n ],\n import: \"@gradeui/ui\",\n\n props: {\n // ── Knobs — design choices ──────────────────────────────────────\n hint: {\n schema: HintSchema.optional(),\n design: \"knob\",\n group: \"image\",\n control: \"glyph-picker\",\n label: \"Slot kind\",\n description:\n \"Picks the placeholder glyph + the default aspect + the future generation provider. Defaults to 'generic'.\",\n default: \"generic\",\n examples: [\"album\", \"portrait\", \"landscape\", \"poster\"],\n },\n aspect: {\n schema: AspectSchema.optional(),\n design: \"knob\",\n control: \"toggle-group\",\n label: \"Aspect ratio\",\n description:\n \"Override the slot's natural framing. When omitted, derived from `hint`: album/product/food → square, portrait/poster → portrait, landscape → wide, video/audio/embed/generic → video.\",\n },\n radius: {\n schema: RadiusSchema.optional(),\n design: \"knob\",\n control: \"toggle-group\",\n label: \"Corner radius\",\n default: \"lg\",\n description: \"Driven by the `--gds-media-radius` CSS variable.\",\n },\n border: {\n schema: z.boolean().optional(),\n design: \"knob\",\n label: \"Show border\",\n default: false,\n },\n loading: {\n schema: z.boolean().optional(),\n design: \"knob\",\n label: \"Loading state\",\n default: false,\n description: \"Overlays the muted-pulse skeleton on top of the slot.\",\n },\n emptyState: {\n schema: EmptyStateSchema.optional(),\n design: \"knob\",\n control: \"select\",\n label: \"Empty state\",\n default: \"auto\",\n description:\n \"'auto' renders the size-tiered placeholder (initials → glyph → glyph + caption). 'icon' is a legacy alias. 'none' renders a truly empty surface.\",\n },\n\n // ── Content — text / URL the user authors ──────────────────────\n alt: {\n schema: z.string().optional(),\n design: \"content\",\n group: \"image\",\n control: \"text\",\n label: \"Alt text\",\n description:\n \"Becomes the eventual `<img alt>`. Also drives the placeholder caption (>160px slots) and the 2-letter initials fallback (<64px slots).\",\n examples: [\n \"Travelling Without Moving — Jamiroquai\",\n \"Sunset over Mount Fuji\",\n ],\n },\n src: {\n schema: z.string().url().optional(),\n design: \"content\",\n group: \"image\",\n control: \"url\",\n label: \"Image URL\",\n description:\n \"When set, renders an `<img>` filling the slot via object-cover. The wrapper keeps its aspect/radius/border. Generators patch this prop; manual values always win.\",\n },\n\n // ── Structured — discriminated union with sub-form per kind ────\n source: {\n schema: MediaSourceSchema.optional(),\n design: \"structured\",\n label: \"Source descriptor\",\n description:\n \"Structured metadata for the generation pipeline. Opaque to MediaSurface itself; read by the resolver to look up real imagery from the right provider (MusicBrainz / Pollinations / etc.).\",\n perKindFields: {\n album: { artist: \"string\", title: \"string\", year: \"number?\" },\n poster: { title: \"string\", year: \"number?\" },\n portrait: { name: \"string?\", role: \"string?\" },\n landscape: { location: \"string?\", mood: \"string?\" },\n product: { name: \"string?\", brand: \"string?\" },\n food: { dish: \"string?\", cuisine: \"string?\" },\n generic: { prompt: \"string\" },\n video: {},\n audio: {},\n embed: {},\n \"3d\": {},\n },\n },\n\n // ── Plumbing — needed in code, hidden from the design panel ────\n className: {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n style: {\n schema: z.record(z.string(), z.unknown()).optional(),\n design: \"plumbing\",\n },\n children: {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description:\n \"Escape hatch for putting a custom <video>, <canvas>, Rive runtime, etc. inside. When supplied, the placeholder is suppressed.\",\n },\n overlay: {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description:\n \"Decorative layer rendered ABOVE the media/placeholder (play buttons, hover gradients, corner badges). Does NOT suppress the placeholder.\",\n },\n glyph: {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description:\n \"Per-instance override of the hint-derived placeholder glyph. Most consumers should pick a `hint` and let the map decide.\",\n },\n fallback: {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"Custom node shown while `loading` is true.\",\n },\n\n // ── Events ─────────────────────────────────────────────────────\n onVisibilityChange: {\n schema: z.function().optional(),\n design: \"event\",\n description: \"Fires when the surface enters / leaves the viewport (IntersectionObserver).\",\n },\n },\n\n // ─── Actions ─────────────────────────────────────────────────────\n actions: {\n fill: {\n label: \"Fill image\",\n icon: \"Sparkles\",\n description:\n \"Resolve this slot's source via the free providers (MusicBrainz → Pollinations → Picsum) and patch the result into the runtime URL map.\",\n kind: \"resolve-media-source\",\n // Only meaningful when we have something to resolve from. Without\n // a `source`, the providers have no descriptor to look up — the\n // chat is the right path for that case (regenerate the JSX with\n // a `source` first).\n enabledWhen: { propPresent: \"source\" },\n },\n // \"Refresh\" (refresh-media-source) removed — its cache-bust re-resolve\n // read as \"step the image back\" and confused more than it helped. Fill\n // re-resolves anyway; a dedicated retry can return behind a clearer\n // affordance if a real need resurfaces.\n },\n});\n\n/** Source descriptor type, derived from the schema so it stays in sync. */\nexport type MediaSource = z.infer<typeof MediaSourceSchema>;\n\n/** Inferred React props type — one entry per prop in the contract.\n * All optional at the JSX boundary because every prop has a defaulted\n * or genuinely optional shape in the schema. */\nexport type MediaSurfacePropsContract = InferProps<typeof MediaSurfaceContract>;\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const MessageContract = contract({\n name: \"Message\",\n description: \"The canonical \\\"avatar + author + timestamp + body\\\" row. THE PRIMITIVE\\nfor any chat surface, comment thread, post-reply, activity log, or\\nnotification feed that follows the people-and-text shape.\\n\\nCONCRETE TEST — if you find yourself composing an `<Avatar>` followed\\nby a `<Row>` of author name + timestamp, with a `<p>` or `<span>`\\nbody below, STOP. That is `<Message>`. Reach for it directly.\\n\\nSlack-style channel feed, Discord messages, Teams chat, Linear /\\nGitHub / Jira comments, Reddit replies, Twitter/X posts in a thread,\\nNotion comment sidebars, in-app activity logs, notification rows —\\nevery one of these IS `<Message>`. Do not roll the layout inline.\\n\\nFor non-people activity (system events, log lines, status pings) use\\nCallout or a plain Row instead — Message implies a human author.\",\n import: \"@gradeui/ui\",\n composesWith: [\"Avatar (in the avatar slot — pair with AvatarFallback tone=\\\"...\\\" for stable per-author colour)\",\"Badge (in the badge slot for role / OP / bot tags)\",\"Button (in actions\",\"typically size=\\\"icon\\\" + variant=\\\"ghost\\\")\",\"Stack (host multiple Messages in a thread)\",\"Card (wrap a Stack of Messages for a comment-thread block)\"],\n styleDefaults: {\"Message\":\"flex items-start\"},\n props: {\n \"author\": {\n schema: z.string(),\n design: \"content\",\n description: \"display name of the message author\",\n },\n \"timestamp\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"string (\\\"11:24\\\", \\\"2 hours ago\\\") or any node for custom formatting\",\n },\n \"avatar\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot for any `<Avatar>` composition; omit for grouped messages from the same author\",\n },\n \"badge\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"small chip(s) next to the author name (OP, Bot, Admin, role tag)\",\n },\n \"edited\": {\n schema: z.union([z.boolean(), z.string()]).optional(),\n design: \"knob\",\n description: \"renders \\\"(edited)\\\" hint next to timestamp; pass a string to customise (\\\"(edited 2 minutes ago)\\\")\",\n },\n \"pinned\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"renders a pin glyph + \\\"Pinned\\\" label above the header row for sticky / pinned messages\",\n },\n \"actions\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"end-of-header slot, typically hover-revealed icon buttons (reply / react / more)\",\n },\n \"reactions\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot below the body, typically a Row of reaction chips (emoji + count)\",\n },\n \"threadCount\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"renders a \\\"N replies\\\" link affordance below the body\",\n },\n \"onThreadClick\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"handler for the threadCount affordance\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"end\"]).optional(),\n design: \"knob\",\n description: \"`start` (default) puts the avatar on the left; `end` mirrors for \\\"your messages\\\" in DM threads\",\n },\n \"density\": {\n schema: z.enum([\"default\", \"compact\"]).optional(),\n design: \"knob\",\n description: \"`default` is the canonical chat / channel-feed rhythm; `compact` tightens text sizes + gaps for dense side panels (Studio comments, activity feeds). Pair with `Avatar size=\\\"xs\\\"` for the tightest stack.\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"body content (plain text or rich nodes)\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const MotionContract = contract({\n name: \"Motion\",\n description: \"A directed sequence of scenes on one persistent stage — the\",\n import: \"@gradeui/ui\",\n aliases: [\"motion\",\"grade motion\",\"scenes\",\"sequence\",\"demo reel\",\"product video\",\"launch video\",\"title card\",\"lower third\",\"section break\",\"multi-scene\",\"storyboard\"],\n subcomponents: [\"MotionScene\",\"MotionScreen\",\"MotionText\"],\n composesWith: [\"ScreenAnimator\",\"ThreeScene\",\"VideoPlayer\",\"AppShell\",\"the whole component set (scenes hold screens)\"],\n styleDefaults: {\"MotionScreen\":\"gds-motion-screen\",\"MotionText\":\"gds-motion-text\",\"MotionOverlay\":\"gds-motion-overlay\",\"MotionSceneImpl\":\"gds-motion-scene\",\"Motion\":\"gds-motion\"},\n props: {\n \"view\": {\n schema: z.enum([\"play\", \"strip\"]).optional(),\n design: \"knob\",\n description: \"play runs the film; strip lays\",\n default: \"play\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const MultiSelectContract = contract({\n name: \"MultiSelect\",\n description: \"Picking multiple items from a finite list — tag selectors, filter chips,\\n\\\"share with N people\\\", multi-region settings.\\n\\n**This is the answer for ANY \\\"removable-chips-inside-an-input\\\" pattern.**\\nMultiSelect's trigger renders the current selection as Badges with X\\nicons (the \\\"chip-in-trigger\\\" / \\\"chip-in-input\\\" shape), opens a Popover\\nwith a searchable Command list, and supports \\\"+N more\\\" collapse past\\n`maxCount`. Reach for it for:\\n - Linear-style filter bars (assignee, label, project chips inside one trigger)\\n - Slack channel pickers (selected channels as removable chips)\\n - Notion relation properties (related-page chips)\\n - GitHub label / assignee pickers\\n - tag / category / mention pickers anywhere\\nDon't invent a `<ChipInput>` or `<TagInput>` for these — MultiSelect\\nalready covers the trigger-with-badges shape.\\n\\nUse `<Select>` instead for SINGLE selection. Use `<Command>` directly\\n(no MultiSelect wrapper) when the option set is unbounded or async\\n(users to @-mention, email recipients, search-as-you-type API results).\",\n import: \"@gradeui/ui\",\n composesWith: [\"Popover\",\"Command\",\"Badge\",\"Checkbox-style row indicator\",\"Separator\"],\n styleDefaults: {\"MultiSelect\":\"mr-2 flex h-4 w-4 shrink-0 items-center justify-center rounded-sm border border-primary\"},\n props: {\n \"options\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"value\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"controlled selection\",\n },\n \"defaultValue\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"uncontrolled initial selection\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n default: \"Select…\",\n },\n \"searchPlaceholder\": {\n schema: z.string().optional(),\n design: \"content\",\n default: \"Search…\",\n },\n \"emptyMessage\": {\n schema: z.string().optional(),\n design: \"content\",\n default: \"Nothing matches.\",\n },\n \"maxCount\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"badges shown on the trigger before collapsing to \\\"+N more\\\"\",\n },\n \"searchable\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide for short option lists\",\n default: true,\n },\n \"badgeDismissible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show × on each selected badge\",\n default: true,\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"modalPopover\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"Popover modal mode\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const PopoverContract = contract({\n name: \"Popover\",\n description: \"A floating panel anchored to a trigger that contains interactive content — date pickers, color pickers, filter pickers, \\\"more info\\\" panels, inline forms. Differs from Tooltip (hover-only, no focusable content) and Dialog (modal, blocks the page). DatePicker, DateRangePicker, and the Combobox pattern all compose Popover internally.\",\n import: \"@gradeui/ui\",\n aliases: [\"popover\",\"dropdown panel\",\"floating panel\",\"inline editor\",\"attached panel\",\"filter pop\",\"popover view\",\"popoverpresentation\",\"attached popover\",\"glass popover\",\"frosted popover\",\"inspector popover\"],\n subcomponents: [\"PopoverTrigger\",\"PopoverContent\",\"PopoverAnchor\"],\n composesWith: [\"Button (as trigger)\",\"Calendar (date picker)\",\"Command (combobox)\",\"Form controls (inline edit popover)\",\"Code (code-detail popovers)\"],\n styleDefaults: {\"PopoverContent\":\"z-50 w-72 rounded-md border p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-popover-content-transform-origin]\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"usually a Button\",\n },\n \"side\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\", \"start\", \"center\", \"end\"]).optional(),\n design: \"knob\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the popover surface is *made of*. `solid` is the default opaque `bg-popover`. `translucent` is the Apple HIG menu-sheet feel. `glass` for floating panels over rich canvases (Studio inspector, image-tool palette).\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ProgressContract = contract({\n name: \"Progress\",\n description: \"Determinate progress — file uploads, multi-step forms, quota meters. Indeterminate state → use Skeleton or animated Loader icon.\",\n import: \"@gradeui/ui\",\n aliases: [\"progress\",\"progress view\",\"progress indicator\",\"progress bar\",\"determinate progress\",\"loading bar\",\"completion bar\"],\n composesWith: [\"Card (as a section)\",\"Badge (showing % next to it)\",\"Label (describing what's loading)\"],\n styleDefaults: {\"Progress\":\"relative h-4 w-full overflow-hidden rounded-full bg-secondary\"},\n props: {\n \"value\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"percent complete\",\n },\n \"max\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const RadioCardContract = contract({\n name: \"RadioCard\",\n description: \"Single-select where each option is a whole selectable card (shipping options, plan picker, onboarding choices). The whole card is the control, so focus and the checked state live on the card surface and the entire card is clickable. MUST sit inside a RadioGroup (keeps roving focus + single-select). Static content only — never nest an interactive control (Slider/Input/Button/link) inside. For a plain radio + label row use Field instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"radio card\",\"selectable card\",\"option card\",\"plan picker\",\"choice card\",\"pricing tier\",\"segmented choice card\"],\n composesWith: [\"RadioGroup (required parent)\",\"Badge (in aside)\",\"MediaSurface (custom children)\"],\n props: {\n \"value\": {\n schema: z.string(),\n design: \"content\",\n description: \"the radio value\",\n },\n \"label\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"title line\",\n },\n \"description\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"secondary line\",\n },\n \"aside\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot before the indicator (a Badge, price, hint)\",\n },\n \"hideIndicator\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the dot; selection shown by the card border + background\",\n },\n \"indicatorPosition\": {\n schema: z.enum([\"leading\", \"trailing\"]).optional(),\n design: \"knob\",\n description: \"default trailing\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"arbitrary static content (image, custom layout) instead of label/description\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const RadioGroupContract = contract({\n name: \"RadioGroup\",\n description: \"A small set of mutually-exclusive options where the user needs to SEE all of them at once — pricing tiers (3-4 options), shipping speed, payment method radio cards. When each option should be a whole clickable card (label + description, selected state on the card), use RadioCard inside the RadioGroup instead of a Card with a radio in the corner. For a plain label + description row, wrap RadioGroupItem in Field. For 5+ options use Select. For a segmented control as part of a toolbar use ToggleGroup. For yes/no use Switch.\",\n import: \"@gradeui/ui\",\n aliases: [\"radio group\",\"radio buttons\",\"single-choice\",\"pricing options\",\"payment method\",\"radio buttons\",\"radio control\",\"single-select\"],\n subcomponents: [\"RadioGroupItem\"],\n composesWith: [\"Label (paired with each item via htmlFor)\",\"Field (label + description row)\",\"RadioCard (whole-card selectable option)\",\"Stack (vertical list)\"],\n styleDefaults: {\"RadioGroup\":\"grid gap-2\",\"RadioGroupItem\":\"aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\"},\n props: {\n \"value\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"controlled selection\",\n },\n \"defaultValue\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"uncontrolled initial\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"orientation\": {\n schema: z.enum([\"horizontal\", \"vertical\"]).optional(),\n design: \"knob\",\n default: \"vertical\",\n },\n \"name\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"form name when posting natively\",\n },\n \"id\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"pair with a <Label htmlFor> for click-on-label\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ResizableContract = contract({\n name: \"Resizable\",\n description: \"A multi-pane layout where the user wants to drag the divider — Slack/Mail-style list+detail, IDE editor+terminal, side-by-side compare view. Static layouts shouldn't use this — reach for AppShell with nav=\\\"three-pane\\\" (fixed widths) or Grid (responsive ladder). Built on react-resizable-panels under the hood.\",\n import: \"@gradeui/ui\",\n aliases: [\"resizable\",\"splitter\",\"split pane\",\"drag divider\",\"adjustable panels\",\"resizer\",\"split view\",\"draggable divider\",\"split pane resizer\",\"ns split view\"],\n subcomponents: [\"ResizablePanelGroup\",\"ResizablePanel\",\"ResizableHandle\"],\n composesWith: [\"AppShellMain (host the splitter inside main)\",\"ScrollArea (each panel's content)\",\"Card\"],\n styleDefaults: {\"ResizablePanelGroup\":\"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\"ResizableHandle\":\"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90\"},\n props: {\n \"direction\": {\n schema: z.enum([\"horizontal\", \"vertical\"]),\n design: \"knob\",\n description: \"required; sets the axis the user drags along\",\n },\n \"autoSaveId\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"persists user-adjusted sizes to localStorage under this id\",\n },\n \"onLayout\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"defaultSize\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"percent of group (0-100); siblings should sum to ~100\",\n },\n \"minSize\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"percent bounds\",\n },\n \"collapsible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"allow this panel to collapse to zero\",\n },\n \"collapsedSize\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"collapse behaviour controls\",\n },\n \"withHandle\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show a visible drag affordance (default just a hit-zone)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const RivePlayerContract = contract({\n name: \"RivePlayer\",\n description: \"Rive runtime wrapped in the shared media surface. Reach for Rive when you need interactive state-machine animations driven by scroll/hover/input. For non-interactive looping video, use VideoPlayer; for shader-driven backgrounds, use ThreeScene.\",\n import: \"@gradeui/ui\",\n aliases: [\"rive\",\"riv\",\"animation\",\"animated\",\"lottie\"],\n composesWith: [\"MediaSurface (internal)\",\"Card\",\"any container\"],\n styleDefaults: {\"RiveInner\":\"absolute inset-0 flex items-end justify-end p-2\"},\n props: {\n \"src\": {\n schema: z.string(),\n design: \"content\",\n description: \"URL or path to the .riv file\",\n },\n \"stateMachines\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"state machine(s) to run\",\n },\n \"artboard\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"artboard name; omit to use default\",\n },\n \"controls\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"viewer mode by default; set true for play/pause overlay\",\n default: false,\n },\n \"autoPlay\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"respects reduced-motion\",\n default: true,\n },\n \"loop\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n default: true,\n },\n \"pauseOffscreen\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n default: true,\n },\n \"fit\": {\n schema: z.enum([\"contain\", \"cover\", \"fill\", \"fitWidth\", \"fitHeight\", \"none\"]).optional(),\n design: \"knob\",\n default: \"contain\",\n },\n \"stateMachineInputs\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"aspect\": {\n schema: z.enum([\"video\", \"square\", \"portrait\", \"wide\", \"auto\"]).optional(),\n design: \"knob\",\n default: \"square\",\n },\n \"radius\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n default: \"lg\",\n },\n \"poster\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"image shown while the runtime loads\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const RowContract = contract({\n name: \"Row\",\n description: \"Horizontal composition — button groups, inline form rows, logo + nav rows, anything on one line. Reach for Row instead of `flex items-center gap-*` so the alignment and spacing are editable through the settings panel. For two-pane layouts with an explicit ratio (sidebar + content, 1/3 + 2/3) use Split instead — Row evenly flows whatever children it holds.\",\n import: \"@gradeui/ui\",\n aliases: [\"row\",\"hstack\",\"horizontal\",\"inline\",\"horizontal layout\",\"hstack\",\"h-stack\",\"horizontal stack\",\"lazyhstack\"],\n composesWith: [\"Button\",\"Input\",\"NavItem\",\"Stack (can wrap a Row)\",\"any content component\"],\n styleDefaults: {\"Row\":\"gds-row flex flex-row gap-4 items-center justify-start\"},\n variantDefaults: {\"gap\":\"md\",\"align\":\"center\",\"justify\":\"start\"},\n props: {\n \"gap\": {\n schema: z.enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"]).optional(),\n design: \"knob\",\n description: \"gap between children\",\n default: \"md\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"stretch\", \"baseline\"]).optional(),\n design: \"knob\",\n description: \"cross-axis (vertical) alignment\",\n default: \"center\",\n },\n \"justify\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"between\", \"around\", \"evenly\"]).optional(),\n design: \"knob\",\n description: \"main-axis distribution\",\n default: \"start\",\n },\n \"wrap\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"allow children to wrap onto additional lines when they overflow\",\n default: false,\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ScreenAnimatorContract = contract({\n name: \"ScreenAnimator\",\n description: \"Wrap ANY screen or section in a directed camera — a \\\"live demo\",\n import: \"@gradeui/ui\",\n aliases: [\"screen animator\",\"camera\",\"camera tour\",\"director\",\"demo\",\"product demo\",\"zoom pan\",\"spotlight\",\"ken burns\",\"presenter\"],\n composesWith: [\"AppShell\",\"ThreeScene\",\"Card\",\"Grid\",\"the whole component set (it wraps a screen)\"],\n styleDefaults: {\"ScreenAnimator\":\"gds-screen-animator\"},\n props: {\n \"shots\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"the tour. Each\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ScrollAreaContract = contract({\n name: \"ScrollArea\",\n description: \"Bounded content that needs custom scroll chrome — sidebars with long item lists, chat transcripts, table panels inside a dashboard, anywhere the OS scrollbar would feel out of place against the design tokens. The wrapping element has to have a height constraint (`h-`, `max-h-`, or grid row sizing) or nothing scrolls — scroll-area can't infer a bound on its own. For body-level scrolling, leave the document to the browser.\",\n import: \"@gradeui/ui\",\n aliases: [\"scroll area\",\"scroll container\",\"custom scrollbar\",\"sidebar scroll\",\"panel scroll\",\"scroll view\",\"scrollview\",\"react native scrollview\"],\n subcomponents: [\"ScrollBar\"],\n composesWith: [\"Card (long card body)\",\"AppShellNav (long sidebar)\",\"Sheet (long modal body)\",\"Table (sticky-header scrolling list)\"],\n styleDefaults: {\"ScrollArea\":\"relative overflow-hidden\",\"ScrollBar\":\"flex touch-none select-none transition-colors\"},\n props: {\n \"type\": {\n schema: z.enum([\"auto\", \"always\", \"scroll\", \"hover\"]).optional(),\n design: \"knob\",\n description: \"when the scrollbar shows\",\n },\n \"scrollHideDelay\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"ms before \\\"scroll\\\"/\\\"hover\\\" scrollbars fade\",\n },\n \"dir\": {\n schema: z.enum([\"ltr\", \"rtl\"]).optional(),\n design: \"plumbing\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"set a height/max-height here, otherwise nothing scrolls\",\n },\n \"orientation\": {\n schema: z.enum([\"vertical\", \"horizontal\"]).optional(),\n design: \"knob\",\n default: \"vertical\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SectionBlockContract = contract({\n name: \"SectionBlock\",\n description: \"The top-level container for a marketing page section — hero, feature row, pricing table, testimonial strip, FAQ section. Always reach for SectionBlock over a hand-rolled `<section>` so vertical rhythm, container width, and tonal background stay consistent across the page. Pair `background=\\\"gradient\\\"` + `surface=\\\"glass\\\"` inner Cards for the \\\"modern marketing hero\\\" pattern.\",\n import: \"@gradeui/ui\",\n aliases: [\"section\",\"section block\",\"hero section\",\"marketing section\",\"page section\",\"content section\",\"container section\",\"feature section\",\"hero\",\"page hero\",\"marketing hero\",\"glass section\",\"gradient section\",\"mesh hero\"],\n composesWith: [\"Card (the most common child — especially with surface=\\\"glass\\\")\",\"Grid (feature rows)\",\"Stack (hero column)\",\"MediaSurface (hero imagery)\",\"Code (developer hero)\",\"Carousel (logo strips)\"],\n styleDefaults: {\"SectionBlock\":\"relative w-full py-16 md:py-24 bg-transparent\"},\n variantDefaults: {\"padding\":\"lg\",\"background\":\"transparent\"},\n props: {\n \"padding\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n description: \"vertical rhythm. Defaults to `lg`.\",\n },\n \"background\": {\n schema: z.enum([\"transparent\", \"muted\", \"card\", \"primary\", \"gradient\"]).optional(),\n design: \"knob\",\n description: \"tonal direction of the section bg.\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the section is *made of*. Orthogonal to `background`. Use `glass` for hero sections that float over a generative backdrop / image / dot grid.\",\n },\n \"container\": {\n schema: z.enum([\"default\", \"wide\", \"narrow\", \"full\"]).optional(),\n design: \"knob\",\n description: \"max-width of the inner content.\",\n },\n \"alignment\": {\n schema: z.enum([\"left\", \"center\", \"right\"]).optional(),\n design: \"knob\",\n description: \"header / CTA alignment.\",\n },\n \"titleSize\": {\n schema: z.enum([\"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n },\n \"title\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"subtitle\": {\n schema: z.string().optional(),\n design: \"content\",\n },\n \"cta1\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"string or `{ text, variant, href, onClick }` config\",\n },\n \"backgroundImage\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"direct CSS background image url\",\n },\n \"as\": {\n schema: z.enum([\"section\", \"div\", \"article\"]).optional(),\n design: \"knob\",\n description: \"semantic root\",\n },\n \"fullBleed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SelectContract = contract({\n name: \"Select\",\n description: \"Single-choice from 3+ known options. Fewer than 3 → RadioGroup. Huge list with search → use a Combobox (not in DS yet). Multi-select → not supported by this primitive. In dense tool panels, set size=\\\"xs\\\" on BOTH the trigger and the content so the closed control and open menu match.\",\n import: \"@gradeui/ui\",\n aliases: [\"dropdown\",\"combobox\",\"picker\",\"select\",\"pop-up button\",\"popup button\",\"popup picker\",\"picker view\",\"rnpickerselect\",\"react native picker\",\"native picker\"],\n subcomponents: [\"SelectTrigger\",\"SelectValue\",\"SelectContent\",\"SelectItem\",\"SelectGroup\",\"SelectLabel\",\"SelectSeparator\"],\n composesWith: [\"Label (above SelectTrigger)\",\"Form\",\"Card\"],\n styleDefaults: {\"SelectTrigger\":\"flex w-full items-center justify-between rounded-md border border-input bg-background ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1 h-10 px-3 py-2 text-sm\",\"SelectScrollUpButton\":\"flex cursor-default items-center justify-center py-1\",\"SelectScrollDownButton\":\"flex cursor-default items-center justify-center py-1\",\"SelectContent\":\"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\"SelectLabel\":\"py-1.5 pl-8 pr-2 text-sm font-semibold\",\"SelectItem\":\"relative flex w-full cursor-default select-none items-center rounded-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 py-1.5 pl-8 pr-2 text-sm\",\"SelectSeparator\":\"-mx-1 my-1 h-px bg-muted\"},\n props: {\n \"value\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"Radix root\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"control density; wraps the clickable control, nest SelectValue inside\",\n },\n \"placeholder\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"text when nothing is selected\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SeparatorContract = contract({\n name: \"Separator\",\n description: \"Light divider between sibling blocks in a Card, list, or header. For section-level partition use extra spacing instead.\",\n import: \"@gradeui/ui\",\n aliases: [\"divider\",\"rule\",\"hr\",\"line\",\"horizontal rule\"],\n composesWith: [\"Card (between CardHeader/Content/Footer)\",\"navigation menus\",\"any vertical stacks\"],\n styleDefaults: {\"Separator\":\"shrink-0 bg-border\"},\n props: {\n \"orientation\": {\n schema: z.enum([\"horizontal\", \"vertical\"]).optional(),\n design: \"knob\",\n description: \"default \\\"horizontal\\\"\",\n },\n \"decorative\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide from a11y tree\",\n default: true,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ShaderPresetPickerContract = contract({\n name: \"ShaderPresetPicker\",\n description: \"Runtime gallery of shader presets — click to select. Use with ThreeScene as a controlled input so the user can pick a background shader. For a single preview card, use ShaderPresetPreview directly.\",\n import: \"@gradeui/ui\",\n aliases: [\"shader picker\",\"preset picker\",\"shader gallery\",\"preset gallery\"],\n composesWith: [\"ShaderPresetPreview (internal)\",\"ThreeScene (the typical downstream consumer)\"],\n styleDefaults: {\"ShaderPresetPicker\":\"grid grid-cols-2 gap-3\"},\n props: {\n \"value\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"currently selected preset id (controlled)\",\n },\n \"onChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"called when the user clicks a preset card\",\n },\n \"filterTags\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"only show presets matching at least one tag (\\\"space\\\" | \\\"retro\\\" | \\\"motion\\\" | \\\"hero\\\" | \\\"background\\\" …)\",\n },\n \"live\": {\n schema: z.enum([\"never\", \"hover\", \"always\"]).optional(),\n design: \"knob\",\n description: \"thumbnail render mode\",\n default: \"hover\",\n },\n \"postPreset\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"shared post-FX preset applied to every thumbnail\",\n },\n \"palette\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"shared palette applied to every thumbnail\",\n },\n \"columns\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"grid columns at md+ breakpoint\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ShaderPresetPreviewContract = contract({\n name: \"ShaderPresetPreview\",\n description: \"Thumbnail-sized preview card for a shader preset. Defaults to a cheap static placeholder until hovered, at which point the live WebGL render kicks in. Use directly when you want a single preset card; use ShaderPresetPicker for a filterable grid.\",\n import: \"@gradeui/ui\",\n aliases: [\"shader preview\",\"preset preview\",\"shader card\"],\n composesWith: [\"ThreeScene (internal)\",\"ShaderPresetPicker (wraps this)\"],\n styleDefaults: {\"ShaderPresetPreview\":\"group cursor-pointer flex flex-col gap-2\"},\n props: {\n \"preset\": {\n schema: z.string(),\n design: \"content\",\n description: \"shader preset id from the registry\",\n },\n \"live\": {\n schema: z.enum([\"never\", \"hover\", \"always\"]).optional(),\n design: \"knob\",\n description: \"when to run the live WebGL render\",\n default: \"hover\",\n },\n \"postPreset\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"override the preset's default post-FX\",\n },\n \"palette\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"palette overrides for the preview\",\n },\n \"aspect\": {\n schema: z.enum([\"video\", \"square\", \"portrait\", \"wide\"]).optional(),\n design: \"knob\",\n default: \"video\",\n },\n \"hideLabel\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the label strip under the preview\",\n default: false,\n },\n \"onClick\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SheetContract = contract({\n name: \"Sheet\",\n description: \"A panel that slides in from a screen edge — mobile nav drawers, side panels for editing a single record without leaving the list, filter trays on small viewports, Studio-style inspector panels. For a centered focus modal use Dialog. For a transient announcement use Toast (Sonner). For inline reveals use Collapsible.\",\n import: \"@gradeui/ui\",\n aliases: [\"sheet\",\"drawer\",\"side panel\",\"slide-in\",\"nav drawer\",\"mobile drawer\",\"slide-over\",\"action sheet\",\"modal sheet\",\"bottom sheet\",\"side sheet\",\"react native modal sheet\",\"bottom-sheet\",\"ios action sheet\",\"inspector panel\",\"glass sheet\",\"frosted drawer\"],\n subcomponents: [\"SheetTrigger\",\"SheetContent\",\"SheetHeader\",\"SheetTitle\",\"SheetDescription\",\"SheetFooter\",\"SheetClose\"],\n composesWith: [\"Form controls (an inline edit sheet)\",\"Button (trigger + close)\",\"AppShellNav (mobile-only swap)\",\"Code (changelog drawers)\",\"MediaSurface (image-detail sheets)\"],\n styleDefaults: {\"SheetOverlay\":\"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\"SheetContent\":\"fixed z-50 gap-4 p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500 inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\"SheetHeader\":\"flex flex-col space-y-2 text-center sm:text-left\",\"SheetFooter\":\"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\"SheetTitle\":\"text-lg font-semibold text-foreground\",\"SheetDescription\":\"text-sm text-muted-foreground\"},\n props: {\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n },\n \"side\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\"]).optional(),\n design: \"knob\",\n default: \"right\",\n },\n \"surface\": {\n schema: z.enum([\"solid\", \"translucent\", \"glass\", \"glass-strong\"]).optional(),\n design: \"knob\",\n description: \"what the sheet panel is *made of*. `solid` is the default opaque `bg-background`. Reach for `glass` whenever the canvas behind the sheet (a layout in progress, a media gallery, a dashboard) should remain visible.\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"usually set a width (right/left) or height (top/bottom)\",\n },\n \"SheetTitle\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SidebarContract = contract({\n name: \"Sidebar\",\n description: \"Vertical app navigation. Drop inside `<AppShellNav placement=\\\"side\\\">` for full-page layouts. Compound API — `<SidebarHeader>` for brand, `<SidebarContent>` for the scrollable body of `<SidebarSection>` + `<SidebarItem>` rows, `<SidebarFooter>` for user / settings chrome. For top nav reach for TopMenu; for command-palette style search reach for Command.\",\n import: \"@gradeui/ui\",\n aliases: [\"sidebar\",\"side menu\",\"sidemenu\",\"navigation sidebar\",\"app sidebar\",\"side nav\",\"side nav rail\",\"master pane\",\"sidebarmenu\",\"navigation rail\",\"react native drawer\"],\n subcomponents: [\"SidebarHeader\",\"SidebarContent\",\"SidebarFooter\",\"SidebarSection\",\"SidebarItem\"],\n composesWith: [\"AppShell (inside AppShellNav)\",\"Avatar (in Footer)\",\"Tooltip (auto-wrapped on collapsed items)\",\"Button (asChild for custom routing)\"],\n styleDefaults: {\"Sidebar\":\"relative flex h-full flex-col bg-card text-card-foreground\",\"SidebarHeader\":\"flex shrink-0 items-center border-b border-border\",\"SidebarContent\":\"flex-1 overflow-y-auto overflow-x-hidden\",\"SidebarFooter\":\"shrink-0 border-t border-border\",\"SidebarSection\":\"px-[var(--gds-sidebar-section-px,0.5rem)] space-y-[var(--gds-sidebar-section-gap,0.125rem)]\",\"SidebarItem\":\"group flex items-center gap-2.5 rounded-md transition-colors\",\"SidebarTreeItem\":\"group flex w-full items-center gap-1.5 rounded-md py-1 text-sm font-medium transition-colors\"},\n props: {\n \"collapsed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"controlled collapsed state (wire onCollapsedChange when set)\",\n },\n \"defaultCollapsed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"uncontrolled initial value (default false)\",\n },\n \"onCollapsedChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"collapsible\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show the affordance for the user to collapse (default true)\",\n },\n \"variant\": {\n schema: z.enum([\"rail\", \"panel\"]).optional(),\n design: \"knob\",\n description: \"outer chrome treatment. `rail` (default) is the classic nav rail with a single right-border + tracked width via `--gds-sidebar-width`; drops cleanly into `<AppShellNav placement=\\\"side\\\">`. `panel` is a card-style floating sidebar with full border + rounded corners + parent-controlled width; use when the sidebar is one of several adjacent panes in a body row (e.g. Projects | Canvas | Settings). The compound children (Header/Content/Footer/Section/Item) are identical in both treatments.\",\n },\n \"any\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"brand / logo / org switcher; hides nothing when collapsed (centred)\",\n },\n \"title\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"group label; **uppercase tracking-wide muted** styling auto-applied (Notion / Linear / Slack-style \\\"GAMES\\\", \\\"FAVORITES\\\", \\\"WORKSPACE\\\" headers); hidden when sidebar is collapsed\",\n },\n \"icon\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"optional icon beside the title\",\n },\n \"trailing\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"**action(s) on the right edge of the header** — the canonical \\\"+\\\" / \\\"...\\\" slot (Notion's \\\"+ Add page\\\" next to Pages, Linear's \\\"+\\\" next to Favorites, Slack's \\\"+\\\" next to Channels). Pointer events isolated so a Button here doesn't toggle collapse.\",\n },\n \"defaultExpanded\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"initial open state (default true)\",\n },\n \"badge\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"trailing count / label (hidden when collapsed)\",\n },\n \"active\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"current route; adds aria-current=\\\"page\\\"\",\n },\n \"href\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"renders as <a>; for routing use `asChild` with your link component\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"wrap a custom link (<Link href> from Next.js etc.) via Radix Slot\",\n },\n \"asButton\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"render as <button> for action rows (open dialog, log out)\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"collapsedLabel\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"tooltip override when sidebar is collapsed (defaults to children text)\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\"]).optional(),\n design: \"knob\",\n description: \"row size. `md` (default) is the standard `text-sm font-medium` nav row; `sm` is `text-xs` + lighter weight + tighter padding for visually subordinate rows (nested screens under a project, sub-pages under a section). Active state still wins on color + weight so the current row pops at either size.\",\n },\n \"description\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"secondary line beneath the label (metadata like 'Edited 2m ago', '12 items', a brief description). Row layout adapts: label + description stacked vertically; icon vertically-centered against the stack; badge stays on trailing edge. Hidden when sidebar collapsed.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SkeletonContract = contract({\n name: \"Skeleton\",\n description: \"Loading placeholder for content whose shape you know. Set width/height via className to mimic the real content (e.g. \\\"h-4 w-32\\\"). Not a spinner — use it where the real thing will drop in.\",\n import: \"@gradeui/ui\",\n aliases: [\"placeholder\",\"shimmer\",\"loader\",\"loading state\",\"redacted\",\"redacted placeholder\",\"shimmer placeholder\",\"content placeholder\",\"lottie placeholder\"],\n composesWith: [\"Card\",\"Avatar (inside a Skeleton for avatar loading)\",\"any layout\"],\n styleDefaults: {\"Skeleton\":\"animate-pulse rounded-md bg-muted\"},\n props: {\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n description: \"required in practice; supply width/height utilities\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SliderContract = contract({\n name: \"Slider\",\n description: \"A continuous-ish numeric pick — volume, opacity, font size, price-range filters. Use a single-thumb slider for one value, two-thumb for a range. For a small set of discrete options (1-5 stars, sm/md/lg) prefer ToggleGroup. For free-text numeric entry use an Input type=\\\"number\\\".\",\n import: \"@gradeui/ui\",\n aliases: [\"slider\",\"range slider\",\"range input\",\"volume\",\"opacity slider\",\"scrub\",\"drag value\",\"slider control\",\"value slider\",\"react native slider\"],\n composesWith: [\"Label (mandatory above)\",\"Row (label + current value display)\",\"Card (settings rows)\"],\n styleDefaults: {\"Slider\":\"relative flex w-full touch-none select-none items-center\"},\n props: {\n \"value\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"controlled value; ALWAYS an array even for a single-thumb slider (`[50]`)\",\n },\n \"defaultValue\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"uncontrolled initial; `[20, 80]` for a two-thumb range\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"min\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"max\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"step\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"orientation\": {\n schema: z.enum([\"horizontal\", \"vertical\"]).optional(),\n design: \"knob\",\n default: \"horizontal\",\n },\n \"dir\": {\n schema: z.enum([\"ltr\", \"rtl\"]).optional(),\n design: \"plumbing\",\n },\n \"inverted\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"flip the visual direction\",\n },\n \"name\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"form name when posting natively\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SortableContract = contract({\n name: \"Sortable\",\n description: \"Drag-to-reorder lists, kanban-column reordering, sortable shelves, tab strips the user can rearrange. Pairs with any layout primitive — Stack for vertical lists, Row for horizontal strips, Grid for 2D card walls. For cross-container drag (drag a card from one column to another) hand-roll DndContext at the page level — Sortable v1 covers single-list reorder; Sortable.Group for cross-container is a planned follow-up. Reach for raw `@dnd-kit/core` if you need custom collision detection, drag overlays with arbitrary chrome, or non-list use cases (kanban swimlanes, draggable canvas nodes).\",\n import: \"@gradeui/ui\",\n aliases: [\"sortable\",\"reorder\",\"drag and drop\",\"dnd\",\"draggable list\",\"sortable list\",\"kanban\",\"drag to reorder\",\"drag-drop\",\"dragdroplist\",\"drag handle\",\"react native draggable flatlist\"],\n subcomponents: [\"Sortable.Item\",\"Sortable.Handle\"],\n composesWith: [\"Stack (vertical lists)\",\"Row (horizontal strips)\",\"Grid (2D card walls)\",\"Card (typical item content)\",\"Button (as Sortable.Handle asChild)\"],\n styleDefaults: {\"SortableHandle\":\"cursor-grab touch-none select-none\"},\n props: {\n \"values\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"ordered list of unique ids; the source of truth for the order\",\n },\n \"onReorder\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires with the new order after a drag that changed it\",\n },\n \"strategy\": {\n schema: z.enum([\"vertical\", \"horizontal\", \"grid\"]).optional(),\n design: \"knob\",\n description: \"match the layout your items render in\",\n default: \"vertical\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"disable drag on every item\",\n },\n \"Sortable\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"must match one entry in the parent `values` array (identity, not React key)\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const StackContract = contract({\n name: \"Stack\",\n description: \"Default top-level layout inside the main slot when composing two or more stacked regions (hero + content + footer, auth card + subtext, etc.). Prefer Stack over hand-rolled `flex flex-col gap-*` so the vertical rhythm is editable through the settings panel.\",\n import: \"@gradeui/ui\",\n aliases: [\"stack\",\"vstack\",\"vertical\",\"column\",\"vertical layout\",\"v-stack\",\"vertical stack\",\"lazyvstack\"],\n composesWith: [\"Section\",\"Row\",\"Split\",\"Hero\",\"any content component\"],\n props: {\n \"gap\": {\n schema: z.enum([\"none\", \"xs\", \"sm\", \"md\", \"lg\", \"xl\", \"2xl\"]).optional(),\n design: \"knob\",\n description: \"vertical gap between children\",\n default: \"md\",\n },\n \"align\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"stretch\"]).optional(),\n design: \"knob\",\n description: \"cross-axis (horizontal) alignment of children\",\n default: \"stretch\",\n },\n \"justify\": {\n schema: z.enum([\"start\", \"center\", \"end\", \"between\", \"around\", \"evenly\"]).optional(),\n design: \"knob\",\n description: \"main-axis (vertical) distribution. Reach for this on absolute-positioned overlays (`justify=\\\"end\\\"` pins children to the bottom) and split footers (`justify=\\\"between\\\"`).\",\n default: \"start\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"render as the child element via Slot, so `<Stack asChild><section>…</section></Stack>` stamps Stack's classes onto the `<section>` rather than nesting a wrapper div\",\n default: false,\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SwitchContract = contract({\n name: \"Switch\",\n description: \"Instant on/off setting (\\\"Enable notifications\\\", \\\"Dark mode\\\"). Commits on toggle — no submit button needed. For selecting-from-a-list use Checkbox. For a settings row (label + description on the left, Switch on the right) use Field layout=\\\"setting\\\". For a prominent on/off presented as a whole selectable card, use SwitchCard.\",\n import: \"@gradeui/ui\",\n aliases: [\"toggle\",\"switch\",\"on/off switch\",\"ios toggle\",\"toggle switch\",\"switch control\",\"react native switch\"],\n composesWith: [\"Label (via htmlFor)\",\"Field (layout=\\\"setting\\\" settings row)\",\"SwitchCard (whole-card toggle)\",\"Card (settings rows)\"],\n styleDefaults: {\"Switch\":\"peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input h-6 w-11\"},\n variantDefaults: {\"size\":\"default\"},\n props: {\n \"checked\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"onCheckedChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"defaultChecked\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"id\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const SwitchCardContract = contract({\n name: \"SwitchCard\",\n description: \"A prominent on/off setting presented as a whole selectable card. The whole card is the switch, so the toggled state lives on the card surface. Standalone. For a row of compact settings (label left, small Switch right) use Field layout=\\\"setting\\\" instead — SwitchCard is for the heavier, card-sized toggle.\",\n import: \"@gradeui/ui\",\n aliases: [\"switch card\",\"toggle card\",\"setting card\",\"feature toggle card\"],\n composesWith: [\"Badge (in aside)\",\"Stack (stacking several)\"],\n props: {\n \"checked\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"standard switch state\",\n },\n \"label\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"title line\",\n },\n \"description\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"secondary line\",\n },\n \"aside\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"slot before the indicator (a Badge, price, hint)\",\n },\n \"hideIndicator\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"hide the switch glyph; state shown by the card border + background\",\n },\n \"indicatorPosition\": {\n schema: z.enum([\"leading\", \"trailing\"]).optional(),\n design: \"knob\",\n description: \"default trailing\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"arbitrary static content instead of label/description\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const TableContract = contract({\n name: \"Table\",\n description: \"Structured tabular data — rows × columns with alignment requirements. NOT a layout grid — for that use div+Tailwind grid utilities. Keep to <100 rows; larger datasets need virtualisation (not in DS).\",\n import: \"@gradeui/ui\",\n aliases: [\"table\",\"table view\",\"data table\",\"datatable\",\"grid view\",\"data grid\",\"rows and columns\"],\n subcomponents: [\"TableHeader\",\"TableBody\",\"TableFooter\",\"TableRow\",\"TableHead\",\"TableCell\",\"TableCaption\"],\n composesWith: [\"Card (wrap the table)\",\"Badge (inside TableCell for status)\",\"Checkbox (row selection)\",\"Button (row actions)\"],\n styleDefaults: {\"Table\":\"w-full caption-bottom text-sm\",\"TableHeader\":\"[&_tr]:border-b\",\"TableBody\":\"[&_tr:last-child]:border-0\",\"TableFooter\":\"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\"TableRow\":\"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\"TableHead\":\"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\"TableCell\":\"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\"TableCaption\":\"mt-4 text-sm text-muted-foreground\"},\n props: {\n \"Each\": {\n schema: z.unknown(),\n design: \"plumbing\",\n },\n \"No\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"styling follows the active theme tokens\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const TabsContract = contract({\n name: \"Tabs\",\n description: \"A small set of peer views within one surface (2–5 tabs). For primary nav use Side Menu/routing. For filters use a filter control, not tabs. Pick `variant=\\\"pill\\\"` for app chrome (settings panels, in-card tab strips). Pick `variant=\\\"underlined\\\"` for marketing/docs pages and browser-tab-style treatments.\",\n import: \"@gradeui/ui\",\n aliases: [\"tabs\",\"tab strip\",\"tab bar\",\"tab view\",\"tabbed interface\",\"pageviewcontroller\",\"react native tab view\",\"underlined tabs\",\"page tabs\",\"segment switcher\",\"simple tabs\"],\n subcomponents: [\"TabsList\",\"TabsTrigger\",\"TabsContent\"],\n composesWith: [\"Card (tabs inside a card body)\",\"Dialog\",\"TooltipProvider (required for tooltip prop)\"],\n styleDefaults: {\"TabsList\":\"inline-flex items-center text-muted-foreground justify-center rounded-lg bg-muted\",\"TabsContent\":\"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\"},\n props: {\n \"defaultValue\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\", \"lg, default md\"]).optional(),\n design: \"knob\",\n description: \"t-shirt scale aligned with Button/ToggleGroup heights; cascades to every TabsTrigger via context so set it once on the list\",\n },\n \"variant\": {\n schema: z.enum([\"pill\", \"underlined, default pill\"]).optional(),\n design: \"knob\",\n description: \"`pill` is the shadcn chip-on-muted look; `underlined` is the minimal text + bottom-border treatment (formerly the separate SimpleTabs component, collapsed into Tabs in May 2026). Cascades to triggers.\",\n },\n \"value\": {\n schema: z.string(),\n design: \"content\",\n description: \"matches a TabsContent value; tooltip?: string — when set, wraps the trigger in the design-system Tooltip and auto-applies aria-label (useful for icon-only triggers); requires a TooltipProvider somewhere above the tabs\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const TextareaContract = contract({\n name: \"Textarea\",\n description: \"Multi-line text entry (descriptions, messages, comments). Pair with a Label. Single-line input → use Input instead. Use size=\\\"sm\\\"/\\\"xs\\\" in dense tool panels.\",\n import: \"@gradeui/ui\",\n aliases: [\"text area\",\"multiline\",\"comment box\",\"message field\",\"text editor\",\"multi-line text\",\"multiline input\",\"multiline text field\",\"comments box\",\"multiline textinput\"],\n composesWith: [\"Label\",\"Form\",\"Card (in CardContent)\"],\n styleDefaults: {\"Textarea\":\"flex w-full rounded-md border border-input bg-background ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 min-h-[80px] px-3 py-2 text-sm\"},\n variantDefaults: {\"size\":\"default\"},\n props: {\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"xs\"]).optional(),\n design: \"knob\",\n description: \"control density, mirrors Input. default = min-h-80 / text-sm; sm and xs shrink the min-height + padding for dense panels.\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ThreeSceneContract = contract({\n name: \"ThreeScene\",\n description: \"WebGL primitive for shader backgrounds, generative visuals, and bespoke three.js scenes. Three authoring paths, in order of preference — (1) pick a `preset` id; (2) if nothing in the registry fits, write a `fragmentShader` against the fixed uniform contract; (3) only as a last resort, pass a full `createScene` factory. For looping video, use VideoPlayer; for interactive animations, use RivePlayer.\",\n import: \"@gradeui/ui\",\n aliases: [\"three\",\"threejs\",\"webgl\",\"shader\",\"scene\",\"3d\",\"generative\",\"hero background\",\"fragment shader\",\"glsl\"],\n composesWith: [\"MediaSurface (internal)\",\"foreground content stacked above with `position: absolute/relative z-10`\"],\n styleDefaults: {\"ThreeScene\":\"absolute inset-0 flex items-end justify-end p-2\"},\n props: {\n \"preset\": {\n schema: z.enum([\"mesh\", \"waves\", \"space\", \"plasma\", \"voronoi\", \"synthwave\"]).optional(),\n design: \"knob\",\n description: \"shader preset id from the registry\",\n },\n \"fragmentShader\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"user-authored GLSL body; takes precedence over preset\",\n },\n \"onShaderError\": {\n schema: z.unknown().optional(),\n design: \"event\",\n description: \"fires on compile failure; scene falls back to `preset=\\\"space\\\"`\",\n },\n \"postPreset\": {\n schema: z.enum([\"none\", \"vhs\", \"cinematic\", \"synthwave\", \"crt\"]).optional(),\n design: \"knob\",\n description: \"post-processing pass\",\n default: \"vhs\",\n },\n \"palette\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"any CSS-legal colour string per slot. Re-tints automatically when the theme changes. Unset slots fall back to defaults.\",\n },\n \"createScene\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"custom full scene factory; takes precedence over preset AND fragmentShader\",\n },\n \"controls\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"play/pause overlay\",\n default: false,\n },\n \"autoPlay\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"respects reduced-motion\",\n default: true,\n },\n \"pauseOffscreen\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"big win for WebGL battery life\",\n default: true,\n },\n \"aspect\": {\n schema: z.enum([\"video\", \"square\", \"portrait\", \"wide\", \"auto\"]).optional(),\n design: \"knob\",\n default: \"video\",\n },\n \"maxDpr\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"lower for thumbnails / low-end devices\",\n },\n \"radius\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n default: \"lg\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ToastContract = contract({\n name: \"Toast\",\n description: \"Transient, non-blocking feedback that confirms or warns about an action — \\\"Saved\\\", \\\"Failed to upload\\\", \\\"Copied to clipboard\\\", \\\"Invitation sent\\\". For permanent inline messages reach for Callout. For confirmations that block until acknowledged use Dialog. Mount <Toaster /> ONCE at the root of the app; everywhere else, call the `toast` helper.\",\n import: \"@gradeui/ui\",\n aliases: [\"toast\",\"toaster\",\"sonner\",\"notification\",\"snackbar\",\"alert toast\",\"transient alert\",\"transient banner\",\"banner notification\",\"toastandroid\"],\n composesWith: [\"App root layout (single <Toaster /> mount)\",\"Form submit handlers (success/error toasts)\",\"Async actions\"],\n props: {\n \"position\": {\n schema: z.enum([\"top-left\", \"top-center\", \"top-right\", \"bottom-left\", \"bottom-center\", \"bottom-right\"]).optional(),\n design: \"knob\",\n default: \"bottom-right\",\n },\n \"theme\": {\n schema: z.enum([\"light\", \"dark\", \"system\"]).optional(),\n design: \"knob\",\n },\n \"richColors\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"colored variants for success/error/warning/info\",\n },\n \"expand\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"keep multiple toasts visually separated rather than stacked\",\n },\n \"visibleToasts\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"max concurrent toasts on screen (default 3)\",\n },\n \"duration\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"default ms before auto-dismiss\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ToggleContract = contract({\n name: \"Toggle\",\n description: \"A standalone on/off button — Bold/Italic in a toolbar, \\\"Show grid\\\" in a header, single binary toggle that doesn't belong inside a Switch row. For two-or-more mutually-exclusive options use ToggleGroup. For a labeled settings switch (\\\"Active: on/off\\\") use Switch.\",\n import: \"@gradeui/ui\",\n aliases: [\"toggle\",\"toggle button\",\"press button\",\"bold button\",\"italic button\"],\n composesWith: [\"Tooltip (wrap an icon-only Toggle)\",\"Row\",\"TabsList (sibling)\"],\n styleDefaults: {\"Toggle\":\"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 bg-transparent h-9 px-2 min-w-9\"},\n variantDefaults: {\"variant\":\"default\",\"size\":\"default\"},\n props: {\n \"variant\": {\n schema: z.enum([\"default\", \"outline\"]).optional(),\n design: \"knob\",\n description: \"outline adds a border, default is borderless and ghost-like\",\n },\n \"size\": {\n schema: z.enum([\"default\", \"sm\", \"lg\"]).optional(),\n design: \"knob\",\n },\n \"pressed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"controlled pressed state\",\n },\n \"defaultPressed\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"uncontrolled initial state\",\n },\n \"onPressedChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"disabled\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n },\n \"children\": {\n schema: z.unknown(),\n design: \"plumbing\",\n description: \"usually an icon or short label\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ToggleGroupContract = contract({\n name: \"ToggleGroup\",\n description: \"A small set of mutually-exclusive (`type=\\\"single\\\"`) or independent (`type=\\\"multiple\\\"`) binary options that live side-by-side as a segmented control — viewport size picker (Mobile/Tablet/Desktop), text alignment, view density. Reads identically to a TabsList of the same size; reach for ToggleGroup when each option emits a value (like a form input) rather than swapping panels. Use Tabs for panel switching, Toggle for a single on/off.\",\n import: \"@gradeui/ui\",\n aliases: [\"toggle group\",\"segmented control\",\"segmented buttons\",\"button group\",\"pill group\",\"view selector\",\"segmented picker\",\"segmentedcontrolios\",\"segmented buttons group\",\"rn segmented control\"],\n subcomponents: [\"ToggleGroupItem\"],\n composesWith: [\"Card (header controls)\",\"Row\",\"AppShellHeader chrome\",\"settings panels\"],\n styleDefaults: {\"ToggleGroup\":\"inline-flex items-center justify-center rounded-lg bg-muted text-muted-foreground h-8 p-0.5\",\"ToggleGroupItem\":\"inline-flex items-center justify-center whitespace-nowrap rounded-md font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 data-[state=on]:bg-background data-[state=on]:text-foreground h-7 px-2 text-xs gap-1.5 [&_svg]:size-3.5\"},\n variantDefaults: {\"size\":\"md\"},\n props: {\n \"type\": {\n schema: z.enum([\"single\", \"multiple\"]),\n design: \"knob\",\n description: \"single picks one, multiple picks any number\",\n },\n \"value\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"controlled; matches `type` (string for single, string[] for multiple)\",\n },\n \"defaultValue\": {\n schema: z.union([z.string(), z.array(z.string())]).optional(),\n design: \"knob\",\n description: \"uncontrolled initial\",\n },\n \"onValueChange\": {\n schema: z.unknown().optional(),\n design: \"event\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\", \"lg, default md\"]).optional(),\n design: \"knob\",\n description: \"cascades to every ToggleGroupItem via context, matches Tabs/Button heights\",\n },\n \"variant\": {\n schema: z.enum([\"default\", \"outline\"]).optional(),\n design: \"knob\",\n },\n \"tooltip\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"when set, wraps the item in a Tooltip; required for icon-only items where the visible chrome doesn't carry a label\",\n },\n \"tooltipSide\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\\\", default \\\"top\"]).optional(),\n design: \"knob\",\n description: \"side the tooltip renders on\",\n },\n \"tooltipDelay\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"per-item delay override; falls back to the upstream TooltipProvider's delayDuration\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const ToolbarContract = contract({\n name: \"Toolbar\",\n description: \"ANY three-region chrome bar — the leading/center/trailing pattern Apple HIG\\ndescribes as a \\\"Toolbar.\\\" App window chrome (Reddit, Twitter, GitHub, Linear,\\nmost desktop apps), section toolbars inside Cards or panels, bottom action\\nbars on mobile layouts, persistent footer toolbars.\\n\\nDon't hand-roll `<Row justify=\\\"between\\\">` with a flex-1 on a middle child and\\nmanual min-width juggling — Toolbar gives you the canonical `auto 1fr auto`\\ngrid for free, with `role=\\\"toolbar\\\"`, `data-gds-part` markers, position\\nvariants for top/bottom borders, and sticky sizing.\\n\\nSlot semantics:\\n leading — Logo + nav rail (e.g. a `<Row>` of Buttons or Link components)\\n center — Search input, page title chip, segmented Tab strip\\n trailing — Icon buttons, notification bell, avatar, primary CTA\\n\\nWhen a slot is omitted, its column collapses cleanly. Center stays visually\\ncentered in the bar regardless of leading/trailing widths because the grid\\ntemplate is `auto 1fr auto` (the center column absorbs available width).\\n\\nUse as the top child of `<AppShellHeader>` for window-level chrome:\\n <AppShellHeader>\\n <Toolbar leading={<Logo/>} center={<Search/>} trailing={<Avatar/>} />\\n </AppShellHeader>\\n\\nUse directly inside a Card or page section for section-scoped toolbars:\\n <Card>\\n <Toolbar size=\\\"sm\\\" variant=\\\"subtle\\\" leading={...} trailing={...} />\\n {content}\\n </Card>\",\n import: \"@gradeui/ui\",\n subcomponents: [\"ToolbarSlot\"],\n composesWith: [\"Button\",\"Avatar\",\"Input\",\"Logo\",\"Badge\",\"AppShellHeader\",\"Card\",\"Row\",\"Stack\"],\n styleDefaults: {\"ToolbarSlot\":\"flex items-center min-w-0\"},\n props: {\n \"leading\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"left-aligned region (logo + primary nav)\",\n },\n \"center\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"center region (search, page title, segmented control)\",\n },\n \"trailing\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"right-aligned region (action icons, avatar, primary CTA)\",\n },\n \"children\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n description: \"escape hatch; bypasses slot layout\",\n },\n \"position\": {\n schema: z.enum([\"top\", \"bottom\", \"inline\"]).optional(),\n design: \"knob\",\n description: \"border placement\",\n default: \"top\",\n },\n \"variant\": {\n schema: z.enum([\"default\", \"subtle\", \"transparent\"]).optional(),\n design: \"knob\",\n default: \"default\",\n },\n \"size\": {\n schema: z.enum([\"sm\", \"md\", \"lg\"]).optional(),\n design: \"knob\",\n description: \"height + padding\",\n default: \"md\",\n },\n \"sticky\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"pin to top/bottom of scroll container\",\n default: false,\n },\n \"aria-label\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"required by WAI-ARIA toolbar pattern\",\n default: \"Toolbar\",\n },\n \"className\": {\n schema: z.string().optional(),\n design: \"plumbing\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const TooltipContract = contract({\n name: \"Tooltip\",\n description: \"A short, non-essential label that explains a control on hover/focus — icon-only buttons in toolbars, abbreviated column headers, status dots. NEVER hide critical info inside a tooltip — they're invisible on touch and can be skipped by screen readers if implemented carelessly. For richer hover content use HoverCard. For inline help text that's always visible, use a description paragraph.\",\n import: \"@gradeui/ui\",\n aliases: [\"tooltip\",\"tip\",\"hover tip\",\"hint\",\"label on hover\",\"help tag\",\"hint\",\"helper text bubble\",\"info tip\"],\n subcomponents: [\"TooltipTrigger\",\"TooltipContent\",\"TooltipProvider\"],\n composesWith: [\"Button (icon-only)\",\"Toggle\",\"TabsTrigger (the canonical tabs already have a `tooltip` prop that wraps this)\",\"Avatar (status badge meaning)\"],\n styleDefaults: {\"TooltipContent\":\"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]\"},\n props: {\n \"delayDuration\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"ms hover before show; mount ONCE near the app root\",\n },\n \"skipDelayDuration\": {\n schema: z.number().optional(),\n design: \"knob\",\n description: \"ms gap that still feels like \\\"same hover\\\"\",\n },\n \"open\": {\n schema: z.unknown().optional(),\n design: \"plumbing\",\n },\n \"asChild\": {\n schema: z.boolean().optional(),\n design: \"plumbing\",\n description: \"usually wraps a Button or icon\",\n },\n \"side\": {\n schema: z.enum([\"top\", \"right\", \"bottom\", \"left\", \"start\", \"center\", \"end\"]).optional(),\n design: \"knob\",\n default: \"top\",\n },\n },\n});\n","// AUTO-GENERATED by scripts/generate-contracts.mjs from the .md sidecar.\n// Hand edits will be overwritten on the next run. To customise this\n// component's contract (add actions, structured props, custom control\n// kinds, glyph pickers), remove this file's auto-generated marker and\n// hand-author it — the generator skips files without the marker.\n\nimport { z } from \"zod\";\nimport { contract } from \"@gradeui/contracts\";\n\nexport const VideoPlayerContract = contract({\n name: \"VideoPlayer\",\n description: \"HTML5 video wrapped in the shared media surface. Controls-on for a standard player, controls-off (+ autoplay/muted/loop) for hero / background video. Prefer Rive for anything interactive, Three Scene for shader backgrounds.\",\n import: \"@gradeui/ui\",\n aliases: [\"video\",\"mp4\",\"movie\",\"webm\",\"clip\",\"video view\",\"av player\",\"react native video\",\"video element\"],\n composesWith: [\"MediaSurface (internal)\",\"Card (wrap for thumbnail grids)\"],\n styleDefaults: {\"VideoPlayer\":\"w-full h-full\"},\n props: {\n \"src\": {\n schema: z.string(),\n design: \"content\",\n description: \"video URL\",\n },\n \"controls\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"show native controls; false for chromeless hero/background video\",\n default: true,\n },\n \"autoPlay\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"forces muted=true (browser restriction)\",\n default: false,\n },\n \"loop\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n default: false,\n },\n \"muted\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n default: false,\n },\n \"pauseOffscreen\": {\n schema: z.boolean().optional(),\n design: \"knob\",\n description: \"pause when scrolled out of viewport\",\n default: true,\n },\n \"aspect\": {\n schema: z.enum([\"video\", \"square\", \"portrait\", \"wide\", \"auto\"]).optional(),\n design: \"knob\",\n default: \"video\",\n },\n \"radius\": {\n schema: z.enum([\"none\", \"sm\", \"md\", \"lg\", \"xl\"]).optional(),\n design: \"knob\",\n description: \"driven by `--gds-media-radius`\",\n default: \"lg\",\n },\n \"objectFit\": {\n schema: z.enum([\"cover\", \"contain\", \"fill\"]).optional(),\n design: \"knob\",\n default: \"cover\",\n },\n \"poster\": {\n schema: z.string().optional(),\n design: \"content\",\n description: \"image shown before playback. Always rendered as a `loading=\\\"lazy\\\"` `<img>` overlay (not the native `poster` attribute, which fetches eagerly).\",\n },\n \"playbackRate\": {\n schema: z.number().optional(),\n design: \"knob\",\n },\n },\n});\n","/**\n * Component contract registry — auto-managed by\n * scripts/generate-contracts.mjs. Hand-authored contracts (MediaSurface,\n * etc.) are also wired in here; the generator preserves them on each\n * run.\n */\n\nimport type { ComponentContract } from \"@gradeui/contracts\";\nimport { AccordionContract } from \"../components/ui/accordion.contract\";\nimport { AiChatContract } from \"../components/ui/ai-chat.contract\";\nimport { AiChatComposerContract } from \"../components/ui/ai-chat-composer.contract\";\nimport { AppShellContract } from \"../components/ui/app-shell.contract\";\nimport { AvatarContract } from \"../components/ui/avatar.contract\";\nimport { BackgroundFillContract } from \"../components/ui/background-fill.contract\";\nimport { BadgeContract } from \"../components/ui/badge.contract\";\nimport { BannerContract } from \"../components/ui/banner.contract\";\nimport { BreadcrumbContract } from \"../components/ui/breadcrumb.contract\";\nimport { ButtonContract } from \"../components/ui/button.contract\";\nimport { CalendarContract } from \"../components/ui/calendar.contract\";\nimport { CalloutContract } from \"../components/ui/callout.contract\";\nimport { CardContract } from \"../components/ui/card.contract\";\nimport { CarouselContract } from \"../components/ui/carousel.contract\";\nimport { ChartContract } from \"../components/ui/chart.contract\";\nimport { CheckboxContract } from \"../components/ui/checkbox.contract\";\nimport { CheckboxCardContract } from \"../components/ui/checkbox-card.contract\";\nimport { CodeContract } from \"../components/ui/code.contract\";\nimport { CollapsibleContract } from \"../components/ui/collapsible.contract\";\nimport { CommandContract } from \"../components/ui/command.contract\";\nimport { ComposerContract } from \"../components/ui/composer.contract\";\nimport { DatePickerContract } from \"../components/ui/date-picker.contract\";\nimport { DialogContract } from \"../components/ui/dialog.contract\";\nimport { DropdownMenuContract } from \"../components/ui/dropdown-menu.contract\";\nimport { FieldContract } from \"../components/ui/field.contract\";\nimport { FillPickerContract } from \"../components/ui/fill-picker.contract\";\nimport { FlexContract } from \"../components/ui/flex.contract\";\nimport { GridContract } from \"../components/ui/grid.contract\";\nimport { HoverCardContract } from \"../components/ui/hover-card.contract\";\nimport { InputContract } from \"../components/ui/input.contract\";\nimport { LabelContract } from \"../components/ui/label.contract\";\nimport { LogoContract } from \"../components/ui/logo.contract\";\nimport { MapContract } from \"../components/ui/map.contract\";\nimport { MediaSurfaceContract } from \"../components/ui/media-surface.contract\";\nimport { MessageContract } from \"../components/ui/message.contract\";\nimport { MotionContract } from \"../components/ui/motion.contract\";\nimport { MultiSelectContract } from \"../components/ui/multi-select.contract\";\nimport { PopoverContract } from \"../components/ui/popover.contract\";\nimport { ProgressContract } from \"../components/ui/progress.contract\";\nimport { RadioCardContract } from \"../components/ui/radio-card.contract\";\nimport { RadioGroupContract } from \"../components/ui/radio-group.contract\";\nimport { ResizableContract } from \"../components/ui/resizable.contract\";\nimport { RivePlayerContract } from \"../components/ui/rive-player.contract\";\nimport { RowContract } from \"../components/ui/row.contract\";\nimport { ScreenAnimatorContract } from \"../components/ui/screen-animator.contract\";\nimport { ScrollAreaContract } from \"../components/ui/scroll-area.contract\";\nimport { SectionBlockContract } from \"../components/ui/section-block.contract\";\nimport { SelectContract } from \"../components/ui/select.contract\";\nimport { SeparatorContract } from \"../components/ui/separator.contract\";\nimport { ShaderPresetPickerContract } from \"../components/ui/shader-preset-picker.contract\";\nimport { ShaderPresetPreviewContract } from \"../components/ui/shader-preset-preview.contract\";\nimport { SheetContract } from \"../components/ui/sheet.contract\";\nimport { SidebarContract } from \"../components/ui/sidebar.contract\";\nimport { SkeletonContract } from \"../components/ui/skeleton.contract\";\nimport { SliderContract } from \"../components/ui/slider.contract\";\nimport { SortableContract } from \"../components/ui/sortable.contract\";\nimport { StackContract } from \"../components/ui/stack.contract\";\nimport { SwitchContract } from \"../components/ui/switch.contract\";\nimport { SwitchCardContract } from \"../components/ui/switch-card.contract\";\nimport { TableContract } from \"../components/ui/table.contract\";\nimport { TabsContract } from \"../components/ui/tabs.contract\";\nimport { TextareaContract } from \"../components/ui/textarea.contract\";\nimport { ThreeSceneContract } from \"../components/ui/three-scene.contract\";\nimport { ToastContract } from \"../components/ui/toast.contract\";\nimport { ToggleContract } from \"../components/ui/toggle.contract\";\nimport { ToggleGroupContract } from \"../components/ui/toggle-group.contract\";\nimport { ToolbarContract } from \"../components/ui/toolbar.contract\";\nimport { TooltipContract } from \"../components/ui/tooltip.contract\";\nimport { VideoPlayerContract } from \"../components/ui/video-player.contract\";\n\nexport const COMPONENT_CONTRACTS: Readonly<Record<string, ComponentContract>> = {\n Accordion: AccordionContract,\n AiChat: AiChatContract,\n AiChatComposer: AiChatComposerContract,\n AppShell: AppShellContract,\n Avatar: AvatarContract,\n BackgroundFill: BackgroundFillContract,\n Badge: BadgeContract,\n Banner: BannerContract,\n Breadcrumb: BreadcrumbContract,\n Button: ButtonContract,\n Calendar: CalendarContract,\n Callout: CalloutContract,\n Card: CardContract,\n Carousel: CarouselContract,\n Chart: ChartContract,\n Checkbox: CheckboxContract,\n CheckboxCard: CheckboxCardContract,\n Code: CodeContract,\n Collapsible: CollapsibleContract,\n Command: CommandContract,\n Composer: ComposerContract,\n DatePicker: DatePickerContract,\n Dialog: DialogContract,\n DropdownMenu: DropdownMenuContract,\n Field: FieldContract,\n FillPicker: FillPickerContract,\n Flex: FlexContract,\n Grid: GridContract,\n HoverCard: HoverCardContract,\n Input: InputContract,\n Label: LabelContract,\n Logo: LogoContract,\n Map: MapContract,\n MediaSurface: MediaSurfaceContract,\n Message: MessageContract,\n Motion: MotionContract,\n MultiSelect: MultiSelectContract,\n Popover: PopoverContract,\n Progress: ProgressContract,\n RadioCard: RadioCardContract,\n RadioGroup: RadioGroupContract,\n Resizable: ResizableContract,\n RivePlayer: RivePlayerContract,\n Row: RowContract,\n ScreenAnimator: ScreenAnimatorContract,\n ScrollArea: ScrollAreaContract,\n SectionBlock: SectionBlockContract,\n Select: SelectContract,\n Separator: SeparatorContract,\n ShaderPresetPicker: ShaderPresetPickerContract,\n ShaderPresetPreview: ShaderPresetPreviewContract,\n Sheet: SheetContract,\n Sidebar: SidebarContract,\n Skeleton: SkeletonContract,\n Slider: SliderContract,\n Sortable: SortableContract,\n Stack: StackContract,\n Switch: SwitchContract,\n SwitchCard: SwitchCardContract,\n Table: TableContract,\n Tabs: TabsContract,\n Textarea: TextareaContract,\n ThreeScene: ThreeSceneContract,\n Toast: ToastContract,\n Toggle: ToggleContract,\n ToggleGroup: ToggleGroupContract,\n Toolbar: ToolbarContract,\n Tooltip: TooltipContract,\n VideoPlayer: VideoPlayerContract,\n};\n\nexport function getComponentContract(\n componentName: string | null | undefined,\n): ComponentContract | null {\n if (!componentName) return null;\n return COMPONENT_CONTRACTS[componentName] ?? null;\n}\n\nexport function listContractedComponents(): string[] {\n return Object.keys(COMPONENT_CONTRACTS);\n}\n"]}
|