@dowel-ui/registry 0.7.0 → 0.8.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/dist/build.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","names":["meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta$1","meta$2","meta$3","meta$4","meta$5","meta$6","meta$7","meta$9","meta$10","meta$11","meta$12","meta$13","meta$14","meta$15","meta$16","meta","meta$1","meta$2","meta$3","meta$4","meta$5","meta$6","meta$7","meta$8","meta$9","meta$10","meta$11","meta$12","meta$13","meta$14","meta$15","meta$16","meta$17","meta$18","meta$19","meta$20","meta$21","meta$22","meta$23","meta$24","meta$25","meta$26","meta$27","meta$28","meta$29","meta$30","meta$31","meta$32","meta$33","meta$34","meta$35","meta$37","meta$36","meta$38","meta$39","meta$40","meta$41","meta$42","meta$43","meta$44","meta$45","meta$46","meta$47","meta$48","meta$49","meta$50","meta$51","meta$52","meta$53","meta$54","meta$55","meta$56","meta$57","meta$58","meta$59","meta$61","meta$60","meta$62","meta$63","meta$64","meta$65","meta$66","meta$67","meta$68","meta$69","meta$70","meta$71","meta$72","meta$73","meta$74"],"sources":["../../ui/dist/registry/schema.js","../../ui/dist/components/accordion/meta.js","../../ui/dist/components/activity-feed/meta.js","../../ui/dist/components/ai-action-ledger/meta.js","../../ui/dist/components/ai-agent-plan/meta.js","../../ui/dist/components/ai-agent-status/meta.js","../../ui/dist/components/ai-approval-request/meta.js","../../ui/dist/components/ai-conversation/meta.js","../../ui/dist/components/ai-disclosure/meta.js","../../ui/dist/components/ai-extraction-review/meta.js","../../ui/dist/components/ai-inline-completion/meta.js","../../ui/dist/components/ai-message/meta.js","../../ui/dist/components/ai-model-selector/meta.js","../../ui/dist/components/ai-prompt-input/meta.js","../../ui/dist/components/ai-reasoning/meta.js","../../ui/dist/components/ai-response/meta.js","../../ui/dist/components/ai-sources/meta.js","../../ui/dist/components/ai-structured-output/meta.js","../../ui/dist/components/ai-suggested-value/meta.js","../../ui/dist/components/ai-token-usage/meta.js","../../ui/dist/components/ai-tool/meta.js","../../ui/dist/components/alert/meta.js","../../ui/dist/components/avatar/meta.js","../../ui/dist/components/badge/meta.js","../../ui/dist/components/breadcrumb/meta.js","../../ui/dist/components/button/meta.js","../../ui/dist/components/calendar/meta.js","../../ui/dist/components/card/meta.js","../../ui/dist/components/checkbox/meta.js","../../ui/dist/components/code-block/meta.js","../../ui/dist/components/collapsible/meta.js","../../ui/dist/components/combobox/meta.js","../../ui/dist/components/command/meta.js","../../ui/dist/components/confirm-typed/meta.js","../../ui/dist/components/cron-editor/meta.js","../../ui/dist/components/data-table/meta.js","../../ui/dist/components/date-picker/meta.js","../../ui/dist/components/direction/meta.js","../../ui/dist/components/dialog/meta.js","../../ui/dist/components/diff-viewer/meta.js","../../ui/dist/components/dns-record/meta.js","../../ui/dist/components/drawer/meta.js","../../ui/dist/components/dropdown-menu/meta.js","../../ui/dist/components/empty-state/meta.js","../../ui/dist/components/file-upload/meta.js","../../ui/dist/components/form/meta.js","../../ui/dist/components/input/meta.js","../../ui/dist/components/label/meta.js","../../ui/dist/components/log-viewer/meta.js","../../ui/dist/components/meter/meta.js","../../ui/dist/components/metric-delta/meta.js","../../ui/dist/components/pagination/meta.js","../../ui/dist/components/permission-matrix/meta.js","../../ui/dist/components/popover/meta.js","../../ui/dist/components/progress/meta.js","../../ui/dist/components/radio-group/meta.js","../../ui/dist/components/record-diff/meta.js","../../ui/dist/components/secret-field/meta.js","../../ui/dist/components/select/meta.js","../../ui/dist/components/separator/meta.js","../../ui/dist/components/session-expiry/meta.js","../../ui/dist/components/sidebar/meta.js","../../ui/dist/components/sheet/meta.js","../../ui/dist/components/shortcut-recorder/meta.js","../../ui/dist/components/skeleton/meta.js","../../ui/dist/components/slider/meta.js","../../ui/dist/components/spinner/meta.js","../../ui/dist/components/switch/meta.js","../../ui/dist/components/sync-status/meta.js","../../ui/dist/components/table/meta.js","../../ui/dist/components/tabs/meta.js","../../ui/dist/components/tags-input/meta.js","../../ui/dist/components/time-range-picker/meta.js","../../ui/dist/components/textarea/meta.js","../../ui/dist/components/toast/meta.js","../../ui/dist/components/tooltip/meta.js","../../ui/dist/blocks/admin-dashboard/meta.js","../../ui/dist/blocks/admin-users/meta.js","../../ui/dist/blocks/agent-console/meta.js","../../ui/dist/blocks/ai-chat/meta.js","../../ui/dist/blocks/ai-dashboard/meta.js","../../ui/dist/blocks/ai-workspace/meta.js","../../ui/dist/blocks/analytics/meta.js","../../ui/dist/blocks/billing/meta.js","../../ui/dist/blocks/command-center/meta.js","../../ui/dist/blocks/crm/meta.js","../../ui/dist/blocks/dashboard/meta.js","../../ui/dist/blocks/forgot-password/meta.js","../../ui/dist/blocks/login/meta.js","../../ui/dist/blocks/onboarding/meta.js","../../ui/dist/blocks/pricing/meta.js","../../ui/dist/blocks/settings/meta.js","../../ui/dist/blocks/signup/meta.js","../../ui/dist/registry/blocks.js","../../ui/dist/registry/components.js","../src/build.ts"],"sourcesContent":["//#region src/registry/schema.ts\n/**\n* Registry metadata contract.\n*\n* Every component ships a `meta.ts` describing what the CLI must install\n* alongside it. This file defines the *type* only; `meta.test.ts` validates\n* every declaration against the source's real imports, so metadata cannot drift\n* from the code it describes. See docs/architecture/0003-registry-metadata.md.\n*/\nconst COMPONENT_CATEGORIES = [\n\t\"foundation\",\n\t\"display\",\n\t\"navigation\",\n\t\"overlay\",\n\t\"layout\",\n\t\"form\",\n\t\"feedback\",\n\t\"data\",\n\t\"ai\"\n];\nconst COMPONENT_STATUSES = [\n\t\"stable\",\n\t\"beta\",\n\t\"experimental\"\n];\n/** Identity helper that gives editors autocomplete inside `meta.ts`. */\nfunction defineMeta(meta) {\n\treturn meta;\n}\n//#endregion\nexport { COMPONENT_CATEGORIES, COMPONENT_STATUSES, defineMeta };\n\n//# sourceMappingURL=schema.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/accordion/meta.ts\nconst meta = defineMeta({\n\tname: \"accordion\",\n\ttitle: \"Accordion\",\n\tdescription: \"Vertically stacked sections that expand to reveal their content.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"accordion.tsx\"],\n\ta11y: \"Each trigger is a button inside a heading, so screen reader users can navigate the sections by heading. aria-expanded and aria-controls tie the trigger to its panel, and arrow keys move between triggers.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/activity-feed/meta.ts\nconst meta = defineMeta({\n\tname: \"activity-feed\",\n\ttitle: \"Activity Feed\",\n\tdescription: \"A chronological list of events, with a connecting timeline rail.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"activity-feed.tsx\"],\n\ta11y: \"An ordered list, so position and count are announced — the order is the meaning here. The rail and the indicators are decorative; the item text has to say what happened. ActivityTime requires a machine-readable dateTime, because a relative label like \\\"2 hours ago\\\" is ambiguous outside the moment it was rendered.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-action-ledger/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-action-ledger\",\n\ttitle: \"AI Action Ledger\",\n\tdescription: \"What an agent actually did, classified by what can be undone.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-action-ledger.tsx\"],\n\ta11y: \"Reversibility is stated in words on every entry, never by colour or icon alone — it decides whether the undo control means anything, so it cannot be decoration. Selection uses native checkboxes with real labels, and the revert button carries the count in its accessible name so it says what pressing it will do. The selection summary is an aria-live region because the wording changes as the choice changes, and warns before the click when something can only be offset rather than undone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-agent-plan/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-agent-plan\",\n\ttitle: \"AI Agent Plan\",\n\tdescription: \"What an agent intends to do — including when it changes its mind mid-run.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-agent-plan.tsx\"],\n\ta11y: \"An ordered list, because a plan is a sequence and the order carries meaning an unordered list would discard. The running step carries aria-current=\\\"step\\\", which marks the reader's place without moving focus and fighting anyone reading ahead. Every status is stated in text as well as drawn, and the markers are aria-hidden so the status is not heard twice per step. The live region reports structural revisions only — announcing every status transition would talk over the reader continuously on a plan of any length.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-agent-status/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-agent-status\",\n\ttitle: \"AI Agent Status\",\n\tdescription: \"A pill showing what an agent is doing, in words as well as colour.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-agent-status.tsx\"],\n\ta11y: \"The state is always text. Agent states matter most when something has failed, which is exactly when a colour-only signal fails the people who most need to see it. Live announcements are off by default — several agents each announcing their transitions turns a dashboard into noise; enable it for the one agent being watched.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-approval-request/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-approval-request\",\n\ttitle: \"AI Approval Request\",\n\tdescription: \"Approve a tool call — after correcting the arguments the model got wrong.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-approval-request.tsx\"],\n\ta11y: \"The proposed arguments are a description list of real labelled form controls, so each value is associated with its name and editable ones are reachable by keyboard. A corrected argument is marked in text rather than by border colour alone, because an audit trail has to distinguish the model's proposal from the human's edit. The request is aria-busy while arguments are still arriving and the decision controls stay disabled until it is whole — rendering nothing until then, as the common implementation does, means nothing is on screen at the moment approval becomes relevant. Irreversibility is stated as a sentence, never as a severity colour.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-conversation/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-conversation\",\n\ttitle: \"AI Conversation\",\n\tdescription: \"The scrolling transcript container, with follow-on-new-content and a status region.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-conversation.tsx\"],\n\ta11y: \"The transcript is an ordered list, NOT a live region. A live region that updates on every streamed token is unusable with a screen reader, and is the most common accessibility failure in chat interfaces. Announce state — \\\"generating\\\", \\\"response complete\\\" — through ConversationStatus instead, and let the reader navigate the transcript at their own pace. Auto-scroll stops the moment the reader scrolls up, and ConversationScrollButton is the explicit way back.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-disclosure/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-disclosure\",\n\ttitle: \"AI Disclosure\",\n\tdescription: \"Tells a reader they are looking at AI, and what is actually known about it.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"popover\"],\n\tfiles: [\"ai-disclosure.tsx\"],\n\ta11y: \"The text is the disclosure and the icon is decoration, marked aria-hidden — a sparkle alone is a mark a sighted reader may not decode and a screen reader passes over in silence, which is the exact failure this component exists to prevent. Each of the four kinds carries wording of its own, so the distinction between generated, manipulated and human-reviewed survives for anyone who cannot see the styling. The provenance panel states in words whether anyone checked the claims and who, rather than implying it with a tick, and its three states are told apart by their sentences rather than by colour. Scope: this renders the human-visible disclosures of EU AI Act Article 50(1) and 50(4). It cannot satisfy 50(2), which requires machine-readable marking inside the artifact by whoever generated it, and no React component can. Not legal advice.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-extraction-review/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-extraction-review\",\n\ttitle: \"AI Extraction Review\",\n\tdescription: \"Check extracted fields against the document they came from, and decide each one.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"extraction-model.ts\", \"ai-extraction-review.tsx\"],\n\ta11y: \"Every field quotes its evidence in text under the value, so a reviewer who cannot see the highlight in the source still has what the model read. A value with no evidence is said in words — never left to look like a good one. The source is a focusable named region because it scrolls, and its highlights are mark elements with nothing spliced into the text, since a document read aloud with field names inserted is no longer the document. Focus anywhere in a field brings its evidence into view without moving focus, so a keyboard user is shown the source rather than sent into it. Each control's name carries the field it belongs to, so ten Accept buttons are ten different buttons. Status is a word, outside the label so editing never renames the control, and the running count is a polite live region present from the start. Enter accepts, except while an IME is composing.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-inline-completion/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-inline-completion\",\n\ttitle: \"AI Inline Completion\",\n\tdescription: \"Ghost-text suggestion inside a real textarea, accepted with Tab.\",\n\tcategory: \"ai\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-inline-completion.tsx\"],\n\ta11y: \"No WAI-ARIA pattern covers generative ghost text — combobox is the nearest and does not fit, because the suggestion is not one of a known set of options and a listbox would misdescribe it. So the suggestion is announced through a polite live description that names the keys, since a gesture nobody knows about is not an affordance, and the grey text itself is aria-hidden. Escape always dismisses and restores plain Tab, so the keyboard is never trapped in the field. The ghost hides during IME composition and whenever the caret is not at the end, rather than rendering somewhere it does not belong.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-message/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-message\",\n\ttitle: \"AI Message\",\n\tdescription: \"One turn in a conversation, with role, avatar, actions and footer slots.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-message.tsx\"],\n\ta11y: \"Every message carries a visually hidden label naming the speaker. Alignment and colour tell a sighted reader who is talking and tell a screen reader user nothing, so the role is always in text. Message actions fade in on hover but stay in the DOM and in the tab order — a control that only exists on hover is unreachable by keyboard and invisible on touch.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-model-selector/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-model-selector\",\n\ttitle: \"AI Model Selector\",\n\tdescription: \"Picks the model a conversation runs on, with descriptions and availability.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"select\"],\n\tfiles: [\"ai-model-selector.tsx\"],\n\ta11y: \"Inherits Select's listbox keyboard model. Each option sets textValue to the model name so typeahead matches the name rather than the description. A disabled model shows and announces why it is unavailable — a disabled option with no reason reads as a broken interface.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-prompt-input/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-prompt-input\",\n\ttitle: \"AI Prompt Input\",\n\tdescription: \"The composer: auto-growing textarea, send-on-Enter, and a send/stop control.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-prompt-input.tsx\"],\n\ta11y: \"Enter sends and Shift+Enter inserts a newline, but never while an IME composition is active — for Japanese, Chinese and Korean input Enter confirms a candidate, and sending there truncates the sentence mid-word. The submit control renames itself to \\\"Stop generating\\\" while busy, so its accessible name always matches what it does. The character counter stays silent until it nears the limit; announcing every keystroke would be unusable.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-reasoning/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-reasoning\",\n\ttitle: \"AI Reasoning\",\n\tdescription: \"A collapsible disclosure for the model's reasoning.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-reasoning.tsx\"],\n\ta11y: \"A standard disclosure with aria-expanded on the trigger. Collapsed by default because reasoning is supporting material — giving it the same weight as the answer buries the answer. The trigger's label changes while reasoning streams, so its accessible name matches what is happening.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-response/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-response\",\n\ttitle: \"AI Response\",\n\tdescription: \"Assistant response text, with a streaming caret and a thinking indicator.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-response.tsx\"],\n\ta11y: \"Deliberately not a live region: announcing streamed text as it arrives interrupts a screen reader user on every token. Announce state through ConversationStatus and let them read the response when it settles. The caret is decorative; ThinkingIndicator carries a label because it is the only thing on screen while waiting for the first token.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-sources/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-sources\",\n\ttitle: \"AI Sources\",\n\tdescription: \"Inline citation markers and the source list they refer to.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-sources.tsx\"],\n\ta11y: \"An inline marker shows a bare number, which conveys nothing on its own, so the source title is carried in its accessible name. A marker with no href renders as text rather than as a link that goes nowhere. The source list is ordered, because the marker numbers refer to positions in it.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-structured-output/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-structured-output\",\n\ttitle: \"AI Structured Output\",\n\tdescription: \"An object arriving field by field from the model, without the layout jumping.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-structured-output.tsx\"],\n\ta11y: \"A description list, so each value is associated with its label rather than floating beside it. The region is aria-live=\\\"polite\\\" with aria-busy while streaming, so fields are announced as they settle instead of re-reading the whole object on every token. Height is reserved from the declared field list, which keeps focus and reading position stable as values arrive. Confidence is stated as a number in words, never as a colour alone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-suggested-value/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-suggested-value\",\n\ttitle: \"AI Suggested Value\",\n\tdescription: \"An AI-proposed value for any form control, pending until accepted and marked afterwards.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-suggested-value.tsx\"],\n\ta11y: \"The suggestion is the control's description, so a reader who lands on the field hears it without any announcement — and announcing is opt-in, because a form filling twenty fields at once would narrate all twenty. The row that holds it is rendered from the start and never display:none, so when announcing is on, a suggestion arriving after mount is actually heard. Each button's name carries the field it belongs to, so a page of Accepts is a page of different buttons. Provenance and confidence are words with a number, never a colour. Acceptance is reported, not performed: the control is the consumer's, so its value, its label and its own keyboard behaviour are untouched — there is no shortcut hijacked from a select or a date field. The id and ARIA a FormControl passes down are forwarded to the control, and an existing aria-describedby is merged rather than replaced.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-token-usage/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-token-usage\",\n\ttitle: \"AI Token Usage\",\n\tdescription: \"A gauge showing how much of the context window a conversation has used.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-token-usage.tsx\"],\n\ta11y: \"The numbers are the content and the bar only summarises them, so the bar is aria-hidden rather than a second progressbar to read past. Counts are formatted for the locale. Warning and over-limit states change the wording's colour but never remove the figures.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-tool/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-tool\",\n\ttitle: \"AI Tool Call\",\n\tdescription: \"A collapsible record of a tool the model called, its arguments and its result.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-tool.tsx\"],\n\ta11y: \"A disclosure: the trigger exposes aria-expanded and controls the panel. Status is stated in words, not by a coloured dot — colour alone is unavailable to a screen reader and to anyone who cannot distinguish it. Payload blocks are focusable named regions, since JSON scrolls and an unfocusable scroll box is unreachable by keyboard.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/alert/meta.ts\nconst meta = defineMeta({\n\tname: \"alert\",\n\ttitle: \"Alert\",\n\tdescription: \"A callout that draws attention to an important message.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"alert.tsx\"],\n\ta11y: \"Not a live region by default. Pass live=\\\"polite\\\" for alerts that appear in response to a user action, or live=\\\"assertive\\\" for errors that must interrupt. Variant colour is never the only signal — the title carries the meaning.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/avatar/meta.ts\nconst meta = defineMeta({\n\tname: \"avatar\",\n\ttitle: \"Avatar\",\n\tdescription: \"An image representation of a user or entity with a graceful text fallback.\",\n\tcategory: \"display\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"avatar.tsx\"],\n\ta11y: \"Give AvatarImage a meaningful alt, or alt=\\\"\\\" when the adjacent text already names the person. Fallback initials are decorative and are not announced separately.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/badge/meta.ts\nconst meta = defineMeta({\n\tname: \"badge\",\n\ttitle: \"Badge\",\n\tdescription: \"A compact marker for status, counts and categories.\",\n\tcategory: \"display\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"badge.tsx\"],\n\ta11y: \"The badge label must convey the meaning on its own; variant colour is decoration. Use asChild to render an interactive badge as a link or button rather than adding handlers.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/breadcrumb/meta.ts\nconst meta = defineMeta({\n\tname: \"breadcrumb\",\n\ttitle: \"Breadcrumb\",\n\tdescription: \"Where the current page sits in the hierarchy, and how to get back up it.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"breadcrumb.tsx\"],\n\ta11y: \"The current page is a span carrying aria-current=\\\"page\\\", not a link: a link to the page you are already on does nothing, and in a list of links it is indistinguishable from the ones that go somewhere. Separators are hidden from assistive technology, because the list already conveys the sequence and reading \\\"slash\\\" between every item is the design's punctuation leaking into the content. The ellipsis is the exception and is named, because it is content: it says levels have been left out.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/button/meta.ts\nconst meta = defineMeta({\n\tname: \"button\",\n\ttitle: \"Button\",\n\tdescription: \"Triggers an action or event, with variants for every level of emphasis.\",\n\tcategory: \"foundation\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [\"spinner\"],\n\tfiles: [\"button.tsx\"],\n\ta11y: \"Keyboard activatable via Enter and Space. The loading state uses aria-disabled and aria-busy rather than the disabled attribute, so focus is never stranded mid-action. Use `size=\\\"icon\\\"` only with an accessible name from aria-label or visually hidden text.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/calendar/meta.ts\nconst meta = defineMeta({\n\tname: \"calendar\",\n\ttitle: \"Calendar\",\n\tdescription: \"A date grid for selecting a day, several days or a range.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"react-day-picker\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"calendar.tsx\"],\n\ta11y: \"A real grid with roving focus: arrows move by day, Page Up/Down by month, Home/End to the ends of a week. Selection is announced through aria-selected, and the month caption is a live region so moving between months is announced. Give the calendar an accessible name when more than one is on the page.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/card/meta.ts\nconst meta = defineMeta({\n\tname: \"card\",\n\ttitle: \"Card\",\n\tdescription: \"A surface that groups related content and actions into a single block.\",\n\tcategory: \"display\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"card.tsx\"],\n\ta11y: \"Card renders a plain div with no implicit landmark. CardTitle is an h3 by default — use asChild to set the level the page actually needs, since heading levels must increase by one, or to render something that is not a heading at all.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/checkbox/meta.ts\nconst meta = defineMeta({\n\tname: \"checkbox\",\n\ttitle: \"Checkbox\",\n\tdescription: \"A control for an on/off choice, with support for an indeterminate state.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"checkbox.tsx\"],\n\ta11y: \"Toggles with Space, matching the native control. Always pair with a Label via htmlFor/id — the box alone has no accessible name. Indeterminate is announced as \\\"mixed\\\" and is a state the application sets, not one the user can reach by clicking.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/code-block/meta.ts\nconst meta = defineMeta({\n\tname: \"code-block\",\n\ttitle: \"Code Block\",\n\tdescription: \"A block of code with a copy control, ready for any highlighter.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"code-block.tsx\"],\n\ta11y: \"The pre is a focusable named region, since code overflows horizontally and an unfocusable scroll box is unreachable by keyboard. Copying is announced through a polite live region as well as shown, and a refused clipboard write reports failure rather than looking like success.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/collapsible/meta.ts\nconst meta = defineMeta({\n\tname: \"collapsible\",\n\ttitle: \"Collapsible\",\n\tdescription: \"A single section that opens and closes, without an accordion's set semantics.\",\n\tcategory: \"layout\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"collapsible.tsx\"],\n\ta11y: \"The trigger carries aria-expanded and points at the region it controls, both from the primitive. Reach for this rather than an Accordion of one item: a single-item Accordion gives its trigger a heading role and a position in a list of one, neither of which is true.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/combobox/meta.ts\nconst meta = defineMeta({\n\tname: \"combobox\",\n\ttitle: \"Combobox\",\n\tdescription: \"A searchable single-select built on the ARIA combobox pattern.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"combobox.tsx\"],\n\ta11y: \"The input owns role=\\\"combobox\\\" with aria-expanded, aria-controls and aria-autocomplete; the list owns role=\\\"listbox\\\" and each option role=\\\"option\\\" with aria-selected. Focus stays in the input while arrow keys move aria-activedescendant, so typing is never interrupted. Arrow navigation wraps, Home/End jump, Enter selects the active option and Escape closes.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/command/meta.ts\nconst meta = defineMeta({\n\tname: \"command\",\n\ttitle: \"Command\",\n\tdescription: \"A searchable command palette, with groups and a ⌘K dialog variant.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"dialog\"],\n\tfiles: [\"command.tsx\"],\n\ta11y: \"The input owns role=\\\"combobox\\\" and the list role=\\\"listbox\\\"; focus stays in the input while arrow keys move aria-activedescendant, so typing is never interrupted. Enter runs the active item through the same path as a click. A group whose items are all filtered out hides its heading rather than labelling nothing. CommandDialog always renders a title and description, visually hidden, so the dialog is never unnamed.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/confirm-typed/meta.ts\nconst meta = defineMeta({\n\tname: \"confirm-typed\",\n\ttitle: \"Confirm Typed\",\n\tdescription: \"Type the name to confirm — and be told, not ignored, when it does not match.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"input\"],\n\tfiles: [\"confirm-typed.tsx\"],\n\ta11y: \"The button stays reachable while the text does not match, dimmed rather than disabled, and pressing it or Enter announces what was expected, marks the field invalid and returns focus to it — the common version disables the button and says nothing, so a keyboard user cannot tell whether anything happened. The match is announced once, on the transition, naming the action that became available, so nobody has to watch the button change colour. Typing itself stays silent, because a verdict on every keystroke is noise. The hint is the field's description and the button's, and the status region exists from the first render so the first announcement is heard. Pasting is allowed: blocking it punishes people who cannot type a long name easily and stops nobody who can select-all and copy.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/cron-editor/meta.ts\nconst meta = defineMeta({\n\tname: \"cron-editor\",\n\ttitle: \"Cron Editor\",\n\tdescription: \"A schedule as a cron expression, with a plain-language reading and the next runs.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"input\", \"select\"],\n\tfiles: [\"cron-expression.ts\", \"cron-editor.tsx\"],\n\ta11y: \"The expression field is described by one element that holds either the plain-language reading or the reason the expression is invalid, so a reader hears the error replace the reading rather than both at once; an invalid expression is never applied. The builder's day buttons are a named group of aria-pressed toggles with the full day name as the accessible name, and the last selected day cannot be removed silently — the group says why. Days 29 to 31 say in text that shorter months skip them. Next runs are a list of time elements with machine-readable datetimes, headed by the zone they are in, because a time with no zone is the classic scheduling mistake. Nothing clock-dependent renders until the clock is known, so server and client cannot disagree.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/data-table/meta.ts\nconst meta = defineMeta({\n\tname: \"data-table\",\n\ttitle: \"Data Table\",\n\tdescription: \"Presentation for a TanStack Table instance: sorting, column visibility and pagination.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"@tanstack/react-table\"],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"dropdown-menu\",\n\t\t\"select\",\n\t\t\"table\"\n\t],\n\tfiles: [\"data-table.tsx\"],\n\ta11y: \"Sortable headers carry aria-sort, so the current sort is announced rather than being conveyed by an arrow icon alone, and each sort button has visually hidden text stating the column and its direction. The pagination status is a polite live region, because paging swaps the rows in place with no other signal. A column that cannot be sorted renders as text, not as a button that does nothing.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/date-picker/meta.ts\nconst meta = defineMeta({\n\tname: \"date-picker\",\n\ttitle: \"Date Picker\",\n\tdescription: \"A button that opens a calendar to pick a date or a date range.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"react-day-picker\"],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"calendar\",\n\t\t\"popover\"\n\t],\n\tfiles: [\"date-picker.tsx\"],\n\ta11y: \"The trigger states the selected date, formatted for the locale, so its accessible name changes with the value. The popover is named because it carries role=\\\"dialog\\\". Selecting a single date closes the popover and returns focus to the trigger; a range stays open, since one click is only half an answer. Offer a typed input alongside it for dates the user already knows.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/direction/meta.ts\nconst meta = defineMeta({\n\tname: \"direction\",\n\ttitle: \"Direction Provider\",\n\tdescription: \"Tells the component primitives which way the writing runs, so menus and sliders mirror with the rest of the page.\",\n\tcategory: \"foundation\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"direction.tsx\"],\n\ta11y: \"Needed only for right-to-left languages, and needed in addition to `dir` on the document rather than instead of it. The styling here is written with logical properties and follows `dir` by itself; the primitives underneath read direction from React context and assume left-to-right without a provider, which mirrors a page correctly except for its menus, selects and sliders — worse than not mirroring at all, because it looks deliberate.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dialog/meta.ts\nconst meta = defineMeta({\n\tname: \"dialog\",\n\ttitle: \"Dialog\",\n\tdescription: \"A modal window that interrupts the user to gather a response.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"dialog.tsx\"],\n\ta11y: \"Focus is trapped while open and restored to the trigger on close; Escape and an overlay click dismiss. Always render a DialogTitle — it names the dialog for screen readers. Use DialogDescription, or aria-describedby, to explain consequential actions.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/diff-viewer/meta.ts\nconst meta = defineMeta({\n\tname: \"diff-viewer\",\n\ttitle: \"Diff Viewer\",\n\tdescription: \"A diff you can style, and accept or reject hunk by hunk.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"diff\"],\n\tregistryDependencies: [],\n\tfiles: [\"diff-model.ts\", \"diff-viewer.tsx\"],\n\ta11y: \"A semantic table, not a grid. role=\\\"grid\\\" would promise cell-by-cell arrow navigation that does not exist here and makes no sense for reading code. Every row states added, removed or unchanged in text, because a plus sign and a green tint are not information — a diff read aloud without it is just the same file twice. Line numbers are aria-hidden: they orient a sighted reader, and announcing two numbers before every line makes the diff unlistenable. Changed words are marked with mark elements so they survive as structure, and the empty half of a split pair is hidden rather than read as a blank line of code.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dns-record/meta.ts\nconst meta = defineMeta({\n\tname: \"dns-record\",\n\ttitle: \"DNS Record\",\n\tdescription: \"Add this record at your provider: parts copied separately, checked with what was found.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"spinner\"],\n\tfiles: [\"dns-record.tsx\"],\n\ta11y: \"The card is a region named by the record's type and purpose. Each part is a definition with its own copy button, named by the part it copies, so five Copy buttons are five different buttons. Verification status is a word in a polite live region, so the answer to a check arrives where it was asked for, and the card is aria-busy while checking. Copy results are announced in a separate region, present from the start, so a copy never replaces a check result mid-sentence; failure is announced with what to do instead. What the check found is a list, not a colour.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/drawer/meta.ts\nconst meta = defineMeta({\n\tname: \"drawer\",\n\ttitle: \"Drawer\",\n\tdescription: \"A bottom sheet that can be dismissed by dragging it down.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"drawer.tsx\"],\n\ta11y: \"Drag is pointer-only and never the sole way out: Escape, the overlay and DrawerCancel all dismiss. The grab handle is aria-hidden because it duplicates those affordances. Always render a DrawerTitle.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dropdown-menu/meta.ts\nconst meta = defineMeta({\n\tname: \"dropdown-menu\",\n\ttitle: \"Dropdown Menu\",\n\tdescription: \"A menu of actions revealed from a trigger, with submenus and selectable items.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"dropdown-menu.tsx\"],\n\ta11y: \"Full menu keyboard model: arrows move, Home/End jump, typeahead searches, Escape closes and restores focus, Right/Left open and close submenus. Highlight is driven by data-highlighted so pointer and keyboard focus never diverge. Use it for actions — links belong in a nav, and value selection belongs in Select.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/empty-state/meta.ts\nconst meta = defineMeta({\n\tname: \"empty-state\",\n\ttitle: \"Empty State\",\n\tdescription: \"Shown where content would be, explaining why it is empty and what to do next.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"empty-state.tsx\"],\n\ta11y: \"A plain container with no implicit landmark or live region. When it replaces content after a search, put aria-live on the results region so the change is announced. The icon is decorative — the title has to carry the message on its own.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/file-upload/meta.ts\nconst meta = defineMeta({\n\tname: \"file-upload\",\n\ttitle: \"File Upload\",\n\tdescription: \"A dropzone over a real file input, plus the upload queue nobody ships.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"upload-queue.ts\", \"file-upload.tsx\"],\n\ta11y: \"The APG has no dropzone pattern, and inventing one is the usual failure — a div with role=\\\"button\\\", a keydown handler, and a picker keyboard users never reach. The control here is a real input[type=file] with a real label, which is already operable, already announced, and opens the picker on Enter and Space with nothing added. Drag and drop is a pointer convenience layered on top; every drop can also be done from the input. Each uploading file gets a progressbar named after it, status is always stated in words as well as drawn, and one polite live region summarises the whole queue rather than six per-file regions talking over each other.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/form/meta.ts\nconst meta = defineMeta({\n\tname: \"form\",\n\ttitle: \"Form\",\n\tdescription: \"Accessible field wiring that works with any form library, or none.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"form.tsx\"],\n\ta11y: \"FormField generates the id, points the Label at the control, and assembles aria-describedby from whichever of the description and error are actually present — a dangling reference announces nothing and is flagged by axe. aria-invalid follows the error. FormMessage is a polite live region, so a late validation message is announced without interrupting.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/input/meta.ts\nconst meta = defineMeta({\n\tname: \"input\",\n\ttitle: \"Input\",\n\tdescription: \"A single-line text field with size variants and native validation styling.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"input.tsx\"],\n\ta11y: \"Always pair with a Label via htmlFor/id. Error state is driven by aria-invalid so assistive technology and styling stay in sync; describe the error with aria-describedby.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/label/meta.ts\nconst meta = defineMeta({\n\tname: \"label\",\n\ttitle: \"Label\",\n\tdescription: \"An accessible caption that associates text with a form control.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"label.tsx\"],\n\ta11y: \"Set htmlFor to the id of the control it labels. Clicking the label moves focus to that control, including composite widgets that are not native inputs.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/log-viewer/meta.ts\nconst meta = defineMeta({\n\tname: \"log-viewer\",\n\ttitle: \"Log Viewer\",\n\tdescription: \"A streaming console with filtering, level facets and follow mode.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"@tanstack/react-virtual\"],\n\tregistryDependencies: [],\n\tfiles: [\"log-stream.ts\", \"log-viewer.tsx\"],\n\ta11y: \"role=\\\"log\\\" implies aria-live=\\\"polite\\\", which is right for a few events and unusable for a console — a screen reader would read every line of a build and nothing else would be audible. Announcing is off by default and opt-in. Virtualization is the harder trade: most rows are not in the DOM, so assistive technology cannot reach them, which is why the component takes an onDownload escape rather than pretending the virtual window is the whole log. Levels are written in text as well as coloured, matches use mark elements rather than a background colour, and an invalid pattern is announced instead of silently showing an empty log that reads as \\\"nothing matched\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/meter/meta.ts\nconst meta = defineMeta({\n\tname: \"meter\",\n\ttitle: \"Meter\",\n\tdescription: \"A measurement against a capacity — quota, seats, spend — segmented by category.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"meter.tsx\"],\n\ta11y: \"Uses role=\\\"meter\\\", not role=\\\"progressbar\\\": a meter reports a level with no expectation of reaching the end, and screen readers phrase the two differently. The bar is one meter and the segments inside it are decoration — making each its own widget would put several unlabelled meters in the tab order to describe one quantity. aria-valuetext carries the unit and the capacity, because a bare \\\"4\\\" says nothing about 4 of what. Per-segment detail lives in MeterLegend as text, where it can be read.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/metric-delta/meta.ts\nconst meta = defineMeta({\n\tname: \"metric-delta\",\n\ttitle: \"Metric Delta\",\n\tdescription: \"A headline number with a change indicator that knows which direction is good.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"metric-delta.tsx\"],\n\ta11y: \"The meaning is never carried by colour and an arrow alone, which fails WCAG 1.4.1 — the direction and the comparison are always stated in text. The tile reads as one sentence rather than three fragments: the visible number and delta are aria-hidden and a single screen-reader description carries value, direction, comparison and, where given, sample size. A zero baseline is announced as having no percentage rather than as an infinite one.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/pagination/meta.ts\nconst meta = defineMeta({\n\tname: \"pagination\",\n\ttitle: \"Pagination\",\n\tdescription: \"Navigation between pages of a list.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"pagination.tsx\"],\n\ta11y: \"A named nav landmark. The current page carries aria-current=\\\"page\\\" — styling it differently conveys nothing on its own. Links by default, since a page of results is a place worth sharing; use asChild for your router's link, or render buttons when paging only changes client state.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/permission-matrix/meta.ts\nconst meta = defineMeta({\n\tname: \"permission-matrix\",\n\ttitle: \"Permission Matrix\",\n\tdescription: \"Roles across, permissions down, with inheritance, locked roles and one tab stop.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"checkbox\"],\n\tfiles: [\"permission-model.ts\", \"permission-matrix.tsx\"],\n\ta11y: \"A grid in the WAI-ARIA sense: role=\\\"grid\\\" with one tab stop, arrow keys between cells, Home and End along a row and Ctrl with them across the whole matrix — the right call for a matrix that is operated, where it was the wrong one for a diff that is read. Every checkbox is named by both coordinates, \\\"Delete projects for Editor\\\", so a reader arriving by arrow key knows where they are without re-reading the headers. An inherited grant is a checked box that cannot be changed here, marked aria-disabled rather than disabled so it stays in the keyboard path, with the role it came from as its description. A locked role says in each cell's description that nothing can be changed. Group toggles are tri-state, and the column header counts each role's grants in text.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/popover/meta.ts\nconst meta = defineMeta({\n\tname: \"popover\",\n\ttitle: \"Popover\",\n\tdescription: \"Rich floating content anchored to a trigger.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"popover.tsx\"],\n\ta11y: \"The content has role=\\\"dialog\\\" and therefore REQUIRES an accessible name — pass aria-label, or aria-labelledby pointing at a heading inside it. A development-only warning fires if neither is present. The trigger exposes aria-expanded and aria-controls; Escape closes and returns focus to it. Non-modal by default, so the rest of the page stays reachable; pass `modal` only when the content is a task the user must finish or abandon.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/progress/meta.ts\nconst meta = defineMeta({\n\tname: \"progress\",\n\ttitle: \"Progress\",\n\tdescription: \"Shows how far along a task is, or that one is running at all.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"progress.tsx\"],\n\ta11y: \"Exposed as role=\\\"progressbar\\\" with aria-valuenow, and give it a name with aria-label or aria-labelledby. Omitting `value` marks it indeterminate, which is announced differently from zero. Show the percentage in text as well — the bar alone is not readable at a glance for everyone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/radio-group/meta.ts\nconst meta = defineMeta({\n\tname: \"radio-group\",\n\ttitle: \"Radio Group\",\n\tdescription: \"A set of mutually exclusive options.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"radio-group.tsx\"],\n\ta11y: \"Arrow keys move between options and select as they go, and the group is a single tab stop — the standard radio model. Give the group an accessible name with aria-labelledby, and each item a Label tied by htmlFor/id.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/record-diff/meta.ts\nconst meta = defineMeta({\n\tname: \"record-diff\",\n\ttitle: \"Record Diff\",\n\tdescription: \"Field-level before and after, for audit entries, settings history and revisions.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"record-diff.tsx\"],\n\ta11y: \"A real table, not a grid of divs. Each field name is a th with scope=\\\"row\\\", so a value is announced with the field it belongs to rather than as a loose cell. The kind of change is never carried by row colour alone — every row states added, removed or changed in text for screen readers, satisfying WCAG 1.4.1. The unchanged-field toggle is a real button with aria-expanded. Redacted values never reach the DOM at all.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/secret-field/meta.ts\nconst meta = defineMeta({\n\tname: \"secret-field\",\n\ttitle: \"Secret Field\",\n\tdescription: \"An API key in its three states: shown once, hidden but revealable, and gone.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"input\"],\n\tfiles: [\"secret-field.tsx\"],\n\ta11y: \"The value sits in a read-only input rather than a disabled one, so it can be focused, selected and read, and focusing a shown value selects all of it for copying by hand. The field's state — shown once, hidden, revealed, gone — is a sentence attached as its description, never a colour or an icon. Copying is announced through a status region that exists before the first copy, and failure is announced too, with what to do instead, because the clipboard can be refused. Every button carries the field's label in its name, so a settings page with several keys has several distinct Copy buttons. Regenerating is confirmed inline in a named group that states the consequence, since it revokes the current key.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/select/meta.ts\nconst meta = defineMeta({\n\tname: \"select\",\n\ttitle: \"Select\",\n\tdescription: \"Picks one value from a short list of options.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"select.tsx\"],\n\ta11y: \"Full listbox keyboard model: arrows move, typeahead jumps, Enter selects, Escape closes and restores focus. Give the trigger a name with aria-labelledby or a Label. Past about a dozen options prefer Combobox — scrolling a long listbox by keyboard is slow.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/separator/meta.ts\nconst meta = defineMeta({\n\tname: \"separator\",\n\ttitle: \"Separator\",\n\tdescription: \"A horizontal or vertical rule that divides content.\",\n\tcategory: \"layout\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"separator.tsx\"],\n\ta11y: \"Decorative by default and hidden from assistive technology. Set decorative={false} to expose it as a semantic separator when it divides meaningfully distinct groups.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/session-expiry/meta.ts\nconst meta = defineMeta({\n\tname: \"session-expiry\",\n\ttitle: \"Session Expiry\",\n\tdescription: \"The idle-timeout warning WCAG 2.2.1 asks for: warned, extendable, and not dismissable by accident.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"dialog\"],\n\tfiles: [\"session-expiry.tsx\"],\n\ta11y: \"An alert dialog, named by its heading and described by the sentence that says how long is left. Escape and the backdrop do nothing, because dismissing a session warning without choosing is choosing nothing; the two buttons are the way out, and focus opens on the safe one. The visible countdown is not live — a number every second for two minutes drowns the question — and a separate status region speaks four times: when the warning opens, at one minute, thirty seconds and ten, still saying a threshold a slow tick skipped over. The clock is read in an effect, so the server renders nothing rather than a countdown from the wrong instant. This satisfies the warn-and-extend half of WCAG 2.2.1 Timing Adjustable; the twenty-second minimum is the default window's business and the application's.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/sidebar/meta.ts\nconst meta = defineMeta({\n\tname: \"sidebar\",\n\ttitle: \"Sidebar\",\n\tdescription: \"The application's own navigation: a collapsible rail on a wide screen, an overlay on a narrow one.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [\"sheet\"],\n\tfiles: [\"sidebar.tsx\"],\n\ta11y: \"The navigation landmark must be named — a page has several, and three regions all called \\\"navigation\\\" is a list nobody can choose from. The active entry carries aria-current=\\\"page\\\" rather than only a background colour. On a narrow screen it is a Sheet, not a styled div: an overlay needs a focus trap and an Escape key, and without them the page behind stays reachable by Tab while the menu covers it. When the rail collapses, labels are visually hidden rather than removed — removing them leaves controls whose only content is an icon, which is how a collapsed sidebar becomes a column of links all announced as \\\"link\\\". The trigger says what pressing it will do, not what the state currently is. The overlay is mounted only on a narrow screen and has its own open state: a modal dialog that CSS hides is still modal, and mounting it always made every wide screen aria-hidden and unclickable whenever the rail was open.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/sheet/meta.ts\nconst meta = defineMeta({\n\tname: \"sheet\",\n\ttitle: \"Sheet\",\n\tdescription: \"A panel that enters from an edge of the viewport for secondary content.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"sheet.tsx\"],\n\ta11y: \"Modal, with the same focus trapping and restoration as Dialog. Always render a SheetTitle. For a side navigation sheet, put a nav landmark inside rather than relying on placement to convey the role.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/shortcut-recorder/meta.ts\nconst meta = defineMeta({\n\tname: \"shortcut-recorder\",\n\ttitle: \"Shortcut Recorder\",\n\tdescription: \"Press the keys you want: records a chord, platform-aware, and says when it clashes.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"shortcut-model.ts\", \"shortcut-recorder.tsx\"],\n\ta11y: \"The recorder is a button named by what the shortcut does and described by its value in words — Command Shift K — while the key caps on it are hidden from assistive technology, since ⌘⇧K read aloud is noise. While recording it is aria-pressed and its description says what to do; Tab always leaves and Escape always cancels, so it is never a keyboard trap. Every outcome is announced through a status region present from the start: recorded, refused with the reason, clashing with which command, cancelled, cleared. Symbols are shown on a Mac and words elsewhere, and the description uses the platform's own names for its keys.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/skeleton/meta.ts\nconst meta = defineMeta({\n\tname: \"skeleton\",\n\ttitle: \"Skeleton\",\n\tdescription: \"A shaped placeholder that holds layout while content loads.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"skeleton.tsx\"],\n\ta11y: \"Hidden from assistive technology. Put aria-busy on the container that owns the loading data so the state is announced once instead of once per placeholder.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/slider/meta.ts\nconst meta = defineMeta({\n\tname: \"slider\",\n\ttitle: \"Slider\",\n\tdescription: \"Selects a value, or a range, from a continuous span.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"slider.tsx\"],\n\ta11y: \"Each thumb is a role=\\\"slider\\\" with arrow keys, Home/End and Page Up/Down. The name is forwarded onto the thumbs, since the root has no role — a range slider should name each thumb separately with thumbLabels. A development-only warning fires if a thumb would be unnamed. Pass aria-valuetext when the raw number is not meaningful on its own (a price, a duration). Show the current value on screen too — a slider is imprecise, so pair it with a numeric input when exactness matters.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/spinner/meta.ts\nconst meta = defineMeta({\n\tname: \"spinner\",\n\ttitle: \"Spinner\",\n\tdescription: \"An indeterminate loading indicator for buttons, panels and inline content.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"spinner.tsx\"],\n\ta11y: \"Renders aria-hidden by default so it does not announce inside controls that already expose a busy state. Pass `label` to announce it standalone via role=\\\"status\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/switch/meta.ts\nconst meta = defineMeta({\n\tname: \"switch\",\n\ttitle: \"Switch\",\n\tdescription: \"An immediate on/off toggle for settings that apply straight away.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"switch.tsx\"],\n\ta11y: \"Exposed as role=\\\"switch\\\" and toggled with Space or Enter. Needs a visible label tied with htmlFor/id. Do not rely on colour alone to show state — position and the label carry it too.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/sync-status/meta.ts\nconst meta = defineMeta({\n\tname: \"sync-status\",\n\ttitle: \"Sync Status\",\n\tdescription: \"Offline, saving, saved or failed — with the count of changes being held.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"sync-status.tsx\"],\n\ta11y: \"The word is the status and the coloured dot is decoration, hidden from assistive technology. The visible text is not a live region: every save flips it and a region on it would narrate the whole session. A separate region, present from the first render, announces transitions only — went offline with what will happen to the changes, came back with what is being saved, could not save, saved after a failure — and never the churn of saving itself. Announcing is on by default because going offline is the one thing a reader who is typing has to be told, and it can be turned off. The server render assumes online, since a page with no interface to report has no business saying offline.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/table/meta.ts\nconst meta = defineMeta({\n\tname: \"table\",\n\ttitle: \"Table\",\n\tdescription: \"Semantic table primitives for tabular data.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"table.tsx\"],\n\ta11y: \"A native table, so row and column position, header association and dimensions are all announced without ARIA. Give it a name with TableCaption or aria-label. The scrolling wrapper is focusable so an overflowing table can be scrolled by keyboard — without that, columns past the edge are unreachable. Use scope=\\\"row\\\" on th elements inside tbody.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/tabs/meta.ts\nconst meta = defineMeta({\n\tname: \"tabs\",\n\ttitle: \"Tabs\",\n\tdescription: \"Switches between panels of related content.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"tabs.tsx\"],\n\ta11y: \"Implements the ARIA tabs pattern: arrows move between tabs, Home/End jump to the ends, and only the active tab is in the tab sequence. Panels are focusable so keyboard users reach their content directly. Use activationMode=\\\"manual\\\" when showing a panel is expensive, so arrowing past it does not load it.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/tags-input/meta.ts\nconst meta = defineMeta({\n\tname: \"tags-input\",\n\ttitle: \"Tags Input\",\n\tdescription: \"A list of short values, where invalid entries stay visible instead of vanishing.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"tags-input.tsx\"],\n\ta11y: \"No WAI-ARIA pattern covers a token field, and the near misses misdescribe it — these are committed values, not options being chosen, so calling the container a listbox would promise navigation that does not exist. It is a labelled group holding a list, with a remove button per token carrying the tag in its accessible name. An invalid token's reason is inside the token, so it is announced with it rather than as a detached error. Additions, removals and refusals all reach a polite live region, because a refusal that looks like nothing happening is the failure this component exists to prevent. Remove buttons sit in the natural tab order rather than behind a roving tabindex: it costs a tab stop per token, and buys a pattern every assistive technology already understands.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/time-range-picker/meta.ts\nconst meta = defineMeta({\n\tname: \"time-range-picker\",\n\ttitle: \"Time Range Picker\",\n\tdescription: \"A time range whose value is an expression, so it stays relative across a reload.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"react-day-picker\"],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"calendar\",\n\t\t\"input\",\n\t\t\"popover\"\n\t],\n\tfiles: [\"time-expression.ts\", \"time-range-picker.tsx\"],\n\ta11y: \"The trigger is named by the range it holds — \\\"Last 6 hours\\\" — and the window that resolves to is read after it, so the relative choice is not replaced by two timestamps. The popover carries role=\\\"dialog\\\" and is named. Presets are buttons rather than radios because choosing one both selects and dismisses, with aria-pressed carrying which matches the current expression. The expression field reports why an unparseable entry is invalid through one aria-describedby element that the preview and the error share, so a reader hears the error replace the preview rather than both at once; an invalid expression is never applied, because a chart silently re-scoping itself is worse than one that refuses.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/textarea/meta.ts\nconst meta = defineMeta({\n\tname: \"textarea\",\n\ttitle: \"Textarea\",\n\tdescription: \"A multi-line text field, with optional auto-resize and a character count that knows when to stay quiet.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"textarea.tsx\"],\n\ta11y: \"Pair with a Label via htmlFor/id. The error state is driven by aria-invalid, so assistive technology and styling stay in sync. The character count is described by the field rather than announced on every keystroke — a permanently live counter reads the remaining number between every letter typed, which is unusable — so it goes live only once the limit is close, and states the remainder in words rather than as a bare ratio that is read aloud as two unlabelled numbers. Horizontal resizing is off by default, because a field dragged wider than its container is a broken layout.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/toast/meta.ts\nconst meta = defineMeta({\n\tname: \"toast\",\n\ttitle: \"Toast\",\n\tdescription: \"Brief, non-blocking messages with an imperative API callable from anywhere.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"toast-store.ts\", \"toast.tsx\"],\n\ta11y: \"Toasts are announced through a live region: destructive and warning variants interrupt (foreground), the rest wait for a pause (background). Auto-dismiss timers pause on hover, focus and window blur, and F8 moves focus into the toast list from anywhere. An action must carry altText describing how to do the same thing without the toast, since it may be gone before a screen reader user reaches it.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/tooltip/meta.ts\nconst meta = defineMeta({\n\tname: \"tooltip\",\n\ttitle: \"Tooltip\",\n\tdescription: \"A short label revealed on hover or keyboard focus.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"tooltip.tsx\"],\n\ta11y: \"Opens on focus as well as hover, and Escape dismisses it. Never put essential or interactive content in a tooltip: it is unreachable on touch and vanishes on blur. For an icon-only button, prefer aria-label for the name and use the tooltip only to repeat it visually.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/admin-dashboard/meta.ts\nconst meta = defineMeta({\n\tname: \"admin-dashboard\",\n\tkind: \"block\",\n\ttitle: \"Admin dashboard\",\n\tdescription: \"An administration console: the shell every admin page shares — navigation, breadcrumb, account menu — and the overview that is its front page, with what needs attention first.\",\n\tcategory: \"layout\",\n\tstatus: \"stable\",\n\taccess: \"pro\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"alert\",\n\t\t\"avatar\",\n\t\t\"badge\",\n\t\t\"breadcrumb\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"dropdown-menu\",\n\t\t\"empty-state\",\n\t\t\"metric-delta\",\n\t\t\"sidebar\",\n\t\t\"table\"\n\t],\n\tfiles: [\"admin-dashboard.tsx\"],\n\ta11y: \"What needs attention comes first and is the only loud part of the page; it is not a live region, because the list is there on load and re-announcing it on every refresh would make the console unusable. The navigation is a landmark called Admin, the breadcrumb another, so neither is one more thing called 'navigation'. The current page carries aria-current, a count beside a nav item says what it counts, the account menu is named after its owner, and each Open button is named after its account. Every status is a word, with colour agreeing rather than replacing.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/admin-users/meta.ts\nconst meta = defineMeta({\n\tname: \"admin-users\",\n\tkind: \"block\",\n\ttitle: \"Admin — users\",\n\tdescription: \"A team administration table with filtering, sorting and per-row actions.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"@tanstack/react-table\"],\n\tregistryDependencies: [\n\t\t\"avatar\",\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"data-table\",\n\t\t\"dropdown-menu\",\n\t\t\"empty-state\",\n\t\t\"input\",\n\t\t\"label\"\n\t],\n\tfiles: [\"admin-users.tsx\"],\n\ta11y: \"Filtering changes the results without the user asking, so the matching count is announced politely. The filter has a real label rather than only a placeholder, which disappears the moment anyone types. Each row's action button is named after its row — four identical \\\"Actions\\\" buttons say nothing about which row you are on.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/agent-console/meta.ts\nconst meta = defineMeta({\n\tname: \"agent-console\",\n\tkind: \"block\",\n\ttitle: \"Agent console\",\n\tdescription: \"One agent run, watched: the plan it is working from, the approval it is blocked on, and the ledger of what it has already done.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"ai-action-ledger\",\n\t\t\"ai-agent-plan\",\n\t\t\"ai-agent-status\",\n\t\t\"ai-approval-request\",\n\t\t\"ai-token-usage\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"empty-state\"\n\t],\n\tfiles: [\"agent-console.tsx\"],\n\ta11y: \"Whatever the run is blocked on is rendered first rather than below a scrolling plan, because it is the only part of the page waiting on a person. This is the one agent on the page, so its status announces its own transitions — a list of runs each doing that would be noise, which is why the underlying component makes it opt in. Every completed action states whether it can be undone, offset or not taken back at all, in words, since presenting all three behind one Undo is a lie discovered after the click.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/ai-chat/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-chat\",\n\tkind: \"block\",\n\ttitle: \"AI Chat\",\n\tdescription: \"A complete chat surface: transcript, reasoning, tool calls, sources and composer.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"ai-conversation\",\n\t\t\"ai-message\",\n\t\t\"ai-model-selector\",\n\t\t\"ai-prompt-input\",\n\t\t\"ai-reasoning\",\n\t\t\"ai-response\",\n\t\t\"ai-sources\",\n\t\t\"ai-token-usage\",\n\t\t\"ai-tool\",\n\t\t\"button\",\n\t\t\"empty-state\"\n\t],\n\tfiles: [\"ai-chat.tsx\"],\n\ta11y: \"Assembled from the AI components rather than reimplementing them, so their decisions still hold: the transcript is a list and not a live region, state is announced separately through ConversationStatus, and the composer will not send while an IME composition is active. Tool payloads are named per tool, so two open tool calls do not present two regions called \\\"Result\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/ai-dashboard/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-dashboard\",\n\tkind: \"block\",\n\ttitle: \"AI dashboard\",\n\tdescription: \"What the AI features cost and whether they worked: tokens, spend, failure rate, a breakdown by model, and the runs still going.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"ai-agent-status\",\n\t\t\"ai-token-usage\",\n\t\t\"card\",\n\t\t\"empty-state\",\n\t\t\"metric-delta\",\n\t\t\"table\"\n\t],\n\tfiles: [\"ai-dashboard.tsx\"],\n\ta11y: \"Spend and failure rate are declared lower-is-better, so a rising bill is not painted green — which is the mistake most usage dashboards make. The totals row is a real table footer rather than a last body row that looks like one, because inside the body it is announced as another model and there is no model called Total. Statuses in the run list do not announce their own changes: several runs each doing that turns a list into a stream of interruptions, and watching one run is the agent console's job.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/ai-workspace/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-workspace\",\n\tkind: \"block\",\n\ttitle: \"AI workspace\",\n\tdescription: \"A whole AI application surface: conversations down one side, the active transcript with reasoning, tool calls and sources in the middle, and the context — window usage, attachments and a structured result — on the other.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\taccess: \"pro\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"ai-conversation\",\n\t\t\"ai-message\",\n\t\t\"ai-model-selector\",\n\t\t\"ai-prompt-input\",\n\t\t\"ai-reasoning\",\n\t\t\"ai-response\",\n\t\t\"ai-sources\",\n\t\t\"ai-structured-output\",\n\t\t\"ai-token-usage\",\n\t\t\"ai-tool\",\n\t\t\"button\",\n\t\t\"empty-state\",\n\t\t\"sidebar\"\n\t],\n\tfiles: [\"ai-workspace.tsx\"],\n\ta11y: \"Three landmarks, each named: the conversation list is a navigation called Conversations, the transcript is the main content, and the context is a complementary region called Context, so a screen reader user can jump between them and skip the one they do not want. The transcript is a list and never a live region; the response state is announced from a separate status line, so a streaming answer does not read itself aloud token by token. Each attachment's remove button is named after its file. On a narrow screen the conversation list becomes a sheet with a focus trap and an Escape key, not a div slid over content that stays reachable by Tab.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/analytics/meta.ts\nconst meta = defineMeta({\n\tname: \"analytics\",\n\tkind: \"block\",\n\ttitle: \"Analytics\",\n\tdescription: \"An analytics page: headline metrics against the previous period, a series over time, and the breakdown that made it up.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"metric-delta\",\n\t\t\"select\",\n\t\t\"table\"\n\t],\n\tfiles: [\"analytics.tsx\"],\n\ta11y: \"The bars are declared as a single image with a one-sentence summary — where the series started, where it ended, and where its extremes were — rather than as forty separately labelled elements, which reads as noise instead of a shape. The exact numbers live in a real table that is collapsed for everyone and revealed for everyone from a control on the page, rather than in a visually-hidden copy only screen readers can reach, because the hidden copy is the one that goes stale. The range selector is a select rather than a tab set: tabs promise panels, and a range selector has none — it changes the data behind the whole page, so styled-as-tabs it points every tab at a panel that does not exist.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/billing/meta.ts\nconst meta = defineMeta({\n\tname: \"billing\",\n\tkind: \"block\",\n\ttitle: \"Billing\",\n\tdescription: \"A billing page: the current plan, metered usage against its limits, the payment method and the invoice history.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"empty-state\",\n\t\t\"progress\",\n\t\t\"table\"\n\t],\n\tfiles: [\"billing.tsx\"],\n\ta11y: \"Every usage meter states where it stands in words — \\\"8 of 10 seats used, 2 left\\\", or how far over the limit it is — because a bar that turns red says nothing to a screen reader and nothing to anyone who cannot tell the colours apart; the bar itself is hidden from the accessibility tree so the same fact is not announced twice. Each invoice download is named after its invoice rather than being one of ten identical \\\"Download\\\" links, which is all a links list would show. A card's last four digits are spoken as digits instead of as a four-figure number. Dates carry a machine-readable time element.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/command-center/meta.ts\nconst meta = defineMeta({\n\tname: \"command-center\",\n\tkind: \"block\",\n\ttitle: \"Command center\",\n\tdescription: \"Operations at a glance: service health worst-first, open incidents by severity, capacity meters, a filterable log stream, and a command palette for every action an operator reaches for.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\taccess: \"pro\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"alert\",\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"command\",\n\t\t\"empty-state\",\n\t\t\"log-viewer\",\n\t\t\"meter\"\n\t],\n\tfiles: [\"command-center.tsx\"],\n\ta11y: \"The overall status is one sentence computed from the worst service, and it comes first — 'one service is down' rather than a wall of tiles to scan. It is not a live region: the page is refreshed by the application, and a status that re-announces on every poll is one nobody can work beside. Health and severity are words on every row, sorted on, with colour agreeing rather than replacing. ⌘K opens the palette but the Actions button is always visible, so the shortcut is an accelerator and not the only way in. New log lines are not read aloud unless asked.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/crm/meta.ts\nconst meta = defineMeta({\n\tname: \"crm\",\n\tkind: \"block\",\n\ttitle: \"CRM\",\n\tdescription: \"A sales pipeline: open value by stage, the deals in it with filtering and sorting, the win rate and cycle length, and the last few touches.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\taccess: \"pro\",\n\tdependencies: [\"@tanstack/react-table\"],\n\tregistryDependencies: [\n\t\t\"activity-feed\",\n\t\t\"avatar\",\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"data-table\",\n\t\t\"empty-state\",\n\t\t\"input\",\n\t\t\"label\",\n\t\t\"meter\",\n\t\t\"metric-delta\",\n\t\t\"select\"\n\t],\n\tfiles: [\"crm.tsx\"],\n\ta11y: \"The pipeline is one bar split by stage, with the same figures listed beside it as numbers, so nobody reads a proportion off a coloured segment; the meter announces the total and its legend names every stage. Sales cycle is declared lower-is-better, so a slowing pipeline is not painted green. The deal filter has a real label and announces the matching count politely, and each Open button is named after its deal rather than being one of ten identical buttons.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/dashboard/meta.ts\nconst meta = defineMeta({\n\tname: \"dashboard\",\n\tkind: \"block\",\n\ttitle: \"Dashboard\",\n\tdescription: \"An overview page with headline metrics and a recent activity feed.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"activity-feed\",\n\t\t\"badge\",\n\t\t\"card\",\n\t\t\"skeleton\"\n\t],\n\tfiles: [\"dashboard.tsx\"],\n\ta11y: \"Each metric states its change in words — \\\"up 12.4%\\\" — rather than by a coloured arrow, which is unreadable to a screen reader and ambiguous to anyone who cannot distinguish the colours. Whether a rise is good is configurable, since churn going up is not. The metrics sit in a named region so they can be jumped to.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/forgot-password/meta.ts\nconst meta = defineMeta({\n\tname: \"forgot-password\",\n\tkind: \"block\",\n\ttitle: \"Forgot password\",\n\tdescription: \"A password reset request, with a confirmation that does not leak account existence.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"empty-state\",\n\t\t\"form\",\n\t\t\"input\"\n\t],\n\tfiles: [\"forgot-password.tsx\"],\n\ta11y: \"The confirmation replaces the form, so it is a polite live region — otherwise a screen reader user submits and hears nothing. The wording is deliberately neutral about whether the address exists: confirming it would turn this form into an account enumeration oracle.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/login/meta.ts\nconst meta = defineMeta({\n\tname: \"login\",\n\tkind: \"block\",\n\ttitle: \"Login\",\n\tdescription: \"A sign-in form with validation, social providers and a busy state.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"checkbox\",\n\t\t\"form\",\n\t\t\"input\",\n\t\t\"label\",\n\t\t\"separator\"\n\t],\n\tfiles: [\"login.tsx\"],\n\ta11y: \"Email and password fields carry the right type and autocomplete, so password managers and mobile keyboards behave. Field errors are tied to their inputs through the Form wiring; a server error is an assertive alert, because it arrived after the user acted and explains why nothing happened. The submit button reports its own busy state rather than going quiet.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/onboarding/meta.ts\nconst meta = defineMeta({\n\tname: \"onboarding\",\n\tkind: \"block\",\n\ttitle: \"Onboarding\",\n\tdescription: \"A setup checklist: what is done, which step is current, and what is blocked and why.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"progress\"\n\t],\n\tfiles: [\"onboarding.tsx\"],\n\ta11y: \"Every step states its state in a word — Done, In progress, Not started, Blocked — because a green tick announces nothing and means nothing to a reader who cannot tell the colours apart; the tick and the step number are decoration on top of that. Progress is given as a count rather than only as a bar, and the bar is hidden so the same fact is not announced twice. The current step carries aria-current, so it can be found rather than merely seen. Blocked is a distinct state from not-started and says why. Each step's action is named after its step, so six buttons are not six identical \\\"Start\\\" entries in a controls list.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/pricing/meta.ts\nconst meta = defineMeta({\n\tname: \"pricing\",\n\tkind: \"block\",\n\ttitle: \"Pricing\",\n\tdescription: \"A pricing section with plan cards and a monthly/yearly toggle.\",\n\tcategory: \"layout\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"label\",\n\t\t\"switch\"\n\t],\n\tfiles: [\"pricing.tsx\"],\n\ta11y: \"Switching the billing period rewrites every price on the page, so the change is announced politely rather than happening silently. Each plan's call to action names the plan — three buttons all reading \\\"Choose\\\" are indistinguishable out of context. Feature ticks are decorative; the feature text carries the meaning.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/settings/meta.ts\nconst meta = defineMeta({\n\tname: \"settings\",\n\tkind: \"block\",\n\ttitle: \"Settings\",\n\tdescription: \"A settings page with a profile form, immediate toggles and a danger zone.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"avatar\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"dialog\",\n\t\t\"form\",\n\t\t\"input\",\n\t\t\"label\",\n\t\t\"separator\",\n\t\t\"switch\",\n\t\t\"tabs\"\n\t],\n\tfiles: [\"settings.tsx\"],\n\ta11y: \"Switches apply immediately and have no Save button — a switch that needs saving is a broken promise, so staged changes live in the form instead. The delete confirmation names what will be destroyed and requires typing the account's email, so the destructive button cannot be reached by muscle memory.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/signup/meta.ts\nconst meta = defineMeta({\n\tname: \"signup\",\n\tkind: \"block\",\n\ttitle: \"Sign up\",\n\tdescription: \"An account creation form with a password strength hint and terms acceptance.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"checkbox\",\n\t\t\"form\",\n\t\t\"input\",\n\t\t\"progress\"\n\t],\n\tfiles: [\"signup.tsx\"],\n\ta11y: \"The strength label is text and the bar beside it is aria-hidden, so the estimate is not announced twice. autoComplete=\\\"new-password\\\" tells password managers to offer a generated password rather than an existing one. Strength is a hint, never a gate: the form is validated on length alone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { meta } from \"../blocks/admin-dashboard/meta.js\";\nimport { meta as meta$1 } from \"../blocks/admin-users/meta.js\";\nimport { meta as meta$2 } from \"../blocks/agent-console/meta.js\";\nimport { meta as meta$3 } from \"../blocks/ai-chat/meta.js\";\nimport { meta as meta$4 } from \"../blocks/ai-dashboard/meta.js\";\nimport { meta as meta$5 } from \"../blocks/ai-workspace/meta.js\";\nimport { meta as meta$6 } from \"../blocks/analytics/meta.js\";\nimport { meta as meta$7 } from \"../blocks/billing/meta.js\";\nimport { meta as meta$8 } from \"../blocks/command-center/meta.js\";\nimport { meta as meta$9 } from \"../blocks/crm/meta.js\";\nimport { meta as meta$10 } from \"../blocks/dashboard/meta.js\";\nimport { meta as meta$11 } from \"../blocks/forgot-password/meta.js\";\nimport { meta as meta$12 } from \"../blocks/login/meta.js\";\nimport { meta as meta$13 } from \"../blocks/onboarding/meta.js\";\nimport { meta as meta$14 } from \"../blocks/pricing/meta.js\";\nimport { meta as meta$15 } from \"../blocks/settings/meta.js\";\nimport { meta as meta$16 } from \"../blocks/signup/meta.js\";\n//#region src/registry/blocks.ts\n/**\n* Every block in the registry.\n*\n* Kept separate from `componentMetas` for the same reason blocks install into a\n* different directory: they are whole page sections, browsed and used\n* differently from the components they are assembled out of.\n*\n* `meta.test.ts` fails if a block directory exists that is missing from here.\n*/\nconst blockMetas = [\n\tmeta,\n\tmeta$1,\n\tmeta$2,\n\tmeta$3,\n\tmeta$4,\n\tmeta$5,\n\tmeta$6,\n\tmeta$7,\n\tmeta$8,\n\tmeta$9,\n\tmeta$10,\n\tmeta$11,\n\tmeta$12,\n\tmeta$13,\n\tmeta$14,\n\tmeta$15,\n\tmeta$16\n];\n//#endregion\nexport { blockMetas };\n\n//# sourceMappingURL=blocks.js.map","import { COMPONENT_CATEGORIES, COMPONENT_STATUSES } from \"./schema.js\";\nimport { meta } from \"../components/accordion/meta.js\";\nimport { meta as meta$1 } from \"../components/activity-feed/meta.js\";\nimport { meta as meta$2 } from \"../components/ai-action-ledger/meta.js\";\nimport { meta as meta$3 } from \"../components/ai-agent-plan/meta.js\";\nimport { meta as meta$4 } from \"../components/ai-agent-status/meta.js\";\nimport { meta as meta$5 } from \"../components/ai-approval-request/meta.js\";\nimport { meta as meta$6 } from \"../components/ai-conversation/meta.js\";\nimport { meta as meta$7 } from \"../components/ai-disclosure/meta.js\";\nimport { meta as meta$8 } from \"../components/ai-extraction-review/meta.js\";\nimport { meta as meta$9 } from \"../components/ai-inline-completion/meta.js\";\nimport { meta as meta$10 } from \"../components/ai-message/meta.js\";\nimport { meta as meta$11 } from \"../components/ai-model-selector/meta.js\";\nimport { meta as meta$12 } from \"../components/ai-prompt-input/meta.js\";\nimport { meta as meta$13 } from \"../components/ai-reasoning/meta.js\";\nimport { meta as meta$14 } from \"../components/ai-response/meta.js\";\nimport { meta as meta$15 } from \"../components/ai-sources/meta.js\";\nimport { meta as meta$16 } from \"../components/ai-structured-output/meta.js\";\nimport { meta as meta$17 } from \"../components/ai-suggested-value/meta.js\";\nimport { meta as meta$18 } from \"../components/ai-token-usage/meta.js\";\nimport { meta as meta$19 } from \"../components/ai-tool/meta.js\";\nimport { meta as meta$20 } from \"../components/alert/meta.js\";\nimport { meta as meta$21 } from \"../components/avatar/meta.js\";\nimport { meta as meta$22 } from \"../components/badge/meta.js\";\nimport { meta as meta$23 } from \"../components/breadcrumb/meta.js\";\nimport { meta as meta$24 } from \"../components/button/meta.js\";\nimport { meta as meta$25 } from \"../components/calendar/meta.js\";\nimport { meta as meta$26 } from \"../components/card/meta.js\";\nimport { meta as meta$27 } from \"../components/checkbox/meta.js\";\nimport { meta as meta$28 } from \"../components/code-block/meta.js\";\nimport { meta as meta$29 } from \"../components/collapsible/meta.js\";\nimport { meta as meta$30 } from \"../components/combobox/meta.js\";\nimport { meta as meta$31 } from \"../components/command/meta.js\";\nimport { meta as meta$32 } from \"../components/confirm-typed/meta.js\";\nimport { meta as meta$33 } from \"../components/cron-editor/meta.js\";\nimport { meta as meta$34 } from \"../components/data-table/meta.js\";\nimport { meta as meta$35 } from \"../components/date-picker/meta.js\";\nimport { meta as meta$36 } from \"../components/direction/meta.js\";\nimport { meta as meta$37 } from \"../components/dialog/meta.js\";\nimport { meta as meta$38 } from \"../components/diff-viewer/meta.js\";\nimport { meta as meta$39 } from \"../components/dns-record/meta.js\";\nimport { meta as meta$40 } from \"../components/drawer/meta.js\";\nimport { meta as meta$41 } from \"../components/dropdown-menu/meta.js\";\nimport { meta as meta$42 } from \"../components/empty-state/meta.js\";\nimport { meta as meta$43 } from \"../components/file-upload/meta.js\";\nimport { meta as meta$44 } from \"../components/form/meta.js\";\nimport { meta as meta$45 } from \"../components/input/meta.js\";\nimport { meta as meta$46 } from \"../components/label/meta.js\";\nimport { meta as meta$47 } from \"../components/log-viewer/meta.js\";\nimport { meta as meta$48 } from \"../components/meter/meta.js\";\nimport { meta as meta$49 } from \"../components/metric-delta/meta.js\";\nimport { meta as meta$50 } from \"../components/pagination/meta.js\";\nimport { meta as meta$51 } from \"../components/permission-matrix/meta.js\";\nimport { meta as meta$52 } from \"../components/popover/meta.js\";\nimport { meta as meta$53 } from \"../components/progress/meta.js\";\nimport { meta as meta$54 } from \"../components/radio-group/meta.js\";\nimport { meta as meta$55 } from \"../components/record-diff/meta.js\";\nimport { meta as meta$56 } from \"../components/secret-field/meta.js\";\nimport { meta as meta$57 } from \"../components/select/meta.js\";\nimport { meta as meta$58 } from \"../components/separator/meta.js\";\nimport { meta as meta$59 } from \"../components/session-expiry/meta.js\";\nimport { meta as meta$60 } from \"../components/sidebar/meta.js\";\nimport { meta as meta$61 } from \"../components/sheet/meta.js\";\nimport { meta as meta$62 } from \"../components/shortcut-recorder/meta.js\";\nimport { meta as meta$63 } from \"../components/skeleton/meta.js\";\nimport { meta as meta$64 } from \"../components/slider/meta.js\";\nimport { meta as meta$65 } from \"../components/spinner/meta.js\";\nimport { meta as meta$66 } from \"../components/switch/meta.js\";\nimport { meta as meta$67 } from \"../components/sync-status/meta.js\";\nimport { meta as meta$68 } from \"../components/table/meta.js\";\nimport { meta as meta$69 } from \"../components/tabs/meta.js\";\nimport { meta as meta$70 } from \"../components/tags-input/meta.js\";\nimport { meta as meta$71 } from \"../components/time-range-picker/meta.js\";\nimport { meta as meta$72 } from \"../components/textarea/meta.js\";\nimport { meta as meta$73 } from \"../components/toast/meta.js\";\nimport { meta as meta$74 } from \"../components/tooltip/meta.js\";\nimport { blockMetas } from \"./blocks.js\";\n//#region src/registry/components.ts\n/**\n* Every component in the registry.\n*\n* An explicit list rather than a glob: the registry build runs in plain Node,\n* where bundler-only globbing is unavailable, and a static list is also what\n* lets the bundle tree-shake. `meta.test.ts` fails if a component directory\n* exists that is missing from here, so it cannot silently fall out of date.\n*\n* Identifiers carry a `Meta` suffix because component names include reserved\n* words — `switch` cannot be a binding name.\n*/\nconst componentMetas = [\n\tmeta,\n\tmeta$1,\n\tmeta$2,\n\tmeta$3,\n\tmeta$4,\n\tmeta$5,\n\tmeta$6,\n\tmeta$7,\n\tmeta$8,\n\tmeta$9,\n\tmeta$10,\n\tmeta$11,\n\tmeta$12,\n\tmeta$13,\n\tmeta$14,\n\tmeta$15,\n\tmeta$16,\n\tmeta$17,\n\tmeta$18,\n\tmeta$19,\n\tmeta$20,\n\tmeta$21,\n\tmeta$22,\n\tmeta$23,\n\tmeta$24,\n\tmeta$25,\n\tmeta$26,\n\tmeta$27,\n\tmeta$28,\n\tmeta$29,\n\tmeta$30,\n\tmeta$31,\n\tmeta$32,\n\tmeta$33,\n\tmeta$34,\n\tmeta$35,\n\tmeta$37,\n\tmeta$36,\n\tmeta$38,\n\tmeta$39,\n\tmeta$40,\n\tmeta$41,\n\tmeta$42,\n\tmeta$43,\n\tmeta$44,\n\tmeta$45,\n\tmeta$46,\n\tmeta$47,\n\tmeta$48,\n\tmeta$49,\n\tmeta$50,\n\tmeta$51,\n\tmeta$52,\n\tmeta$53,\n\tmeta$54,\n\tmeta$55,\n\tmeta$56,\n\tmeta$57,\n\tmeta$58,\n\tmeta$59,\n\tmeta$61,\n\tmeta$60,\n\tmeta$62,\n\tmeta$63,\n\tmeta$64,\n\tmeta$65,\n\tmeta$66,\n\tmeta$67,\n\tmeta$68,\n\tmeta$69,\n\tmeta$70,\n\tmeta$71,\n\tmeta$72,\n\tmeta$73,\n\tmeta$74\n];\n//#endregion\nexport { COMPONENT_CATEGORIES, COMPONENT_STATUSES, blockMetas, componentMetas };\n\n//# sourceMappingURL=components.js.map","import { readFileSync, mkdirSync, writeFileSync, rmSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\nimport { blockMetas, componentMetas, type ComponentMeta } from \"@dowel-ui/react/registry\";\n\nimport { hashContent } from \"./hash\";\nimport {\n REGISTRY_VERSION,\n registryIndexSchema,\n registryItemSchema,\n type RegistryFile,\n type RegistryIndexEntry,\n type RegistryItem,\n} from \"./schema\";\n\n/**\n * Emits the public registry.\n *\n * Everything the CLI installs originates here, from the same source files the\n * library itself builds and tests. There is no second copy of a component to\n * drift out of sync.\n */\n\nconst here = dirname(fileURLToPath(import.meta.url));\nconst uiSrc = join(here, \"..\", \"..\", \"ui\", \"src\");\nconst themesSrc = join(here, \"..\", \"..\", \"themes\", \"src\");\nconst uiPackageJson = JSON.parse(\n readFileSync(join(here, \"..\", \"..\", \"ui\", \"package.json\"), \"utf8\"),\n) as { name: string; version: string };\n\nfunction read(path: string): string {\n return readFileSync(path, \"utf8\");\n}\n\n/**\n * Turns a meta into a registry item.\n *\n * Components and blocks differ only in where their source lives and where it is\n * installed, so one function covers both rather than two that drift.\n */\nfunction buildSourceItem(meta: ComponentMeta): RegistryItem {\n const isBlock = meta.kind === \"block\";\n const sourceDir = join(uiSrc, isBlock ? \"blocks\" : \"components\", meta.name);\n const group = isBlock ? \"blocks\" : \"ui\";\n const fileType = isBlock ? \"registry:block\" : \"registry:ui\";\n\n const files: RegistryFile[] = meta.files.map((file) => {\n const content = read(join(sourceDir, file));\n return {\n path: `${group}/${file}`,\n type: fileType,\n content,\n hash: hashContent(content),\n };\n });\n\n return registryItemSchema.parse({\n $schema: \"./schema/registry-item.json\",\n registryVersion: REGISTRY_VERSION,\n name: meta.name,\n type: fileType,\n title: meta.title,\n description: meta.description,\n category: meta.category,\n status: meta.status,\n dependencies: meta.dependencies,\n registryDependencies: meta.registryDependencies,\n files,\n a11y: meta.a11y,\n access: meta.access ?? \"free\",\n });\n}\n\n/**\n * The utilities every component imports.\n *\n * Written by `init` rather than by `add`, because a project needs them before\n * the first component and every component assumes they are present.\n */\nfunction buildUtilsItem(): RegistryItem {\n const files: RegistryFile[] = ([\"utils.ts\", \"styles.ts\"] as const).map((file) => {\n const content = read(join(uiSrc, \"lib\", file));\n return {\n path: `lib/${file}`,\n type: \"registry:lib\",\n content,\n hash: hashContent(content),\n };\n });\n\n return registryItemSchema.parse({\n registryVersion: REGISTRY_VERSION,\n name: \"utils\",\n type: \"registry:lib\",\n title: \"Utilities\",\n description:\n \"The cn() class merger and the shared interaction-state fragments every component uses.\",\n category: \"foundation\",\n status: \"stable\",\n dependencies: [\"clsx\", \"tailwind-merge\"],\n registryDependencies: [],\n files,\n });\n}\n\n/**\n * The design tokens, as CSS to append to the project stylesheet.\n *\n * Appended rather than imported from a package: a consumer who cannot edit the\n * tokens does not really own their design system, which is the whole premise.\n */\nfunction buildThemeItem(): RegistryItem {\n const content = [\n \"/* Design tokens. Safe to edit — this is your copy. */\",\n read(join(themesSrc, \"tokens.css\")),\n read(join(themesSrc, \"base.css\")),\n ].join(\"\\n\\n\");\n\n return registryItemSchema.parse({\n registryVersion: REGISTRY_VERSION,\n name: \"theme\",\n type: \"registry:theme\",\n title: \"Theme\",\n description:\n \"Design tokens: colour, radius, typography, elevation and motion, in light and dark.\",\n category: \"foundation\",\n status: \"stable\",\n dependencies: [],\n registryDependencies: [],\n files: [\n {\n path: \"theme.css\",\n type: \"registry:style\",\n content,\n hash: hashContent(content),\n },\n ],\n });\n}\n\nexport function buildRegistry(): RegistryItem[] {\n return [\n buildUtilsItem(),\n buildThemeItem(),\n ...componentMetas.map(buildSourceItem),\n ...blockMetas.map(buildSourceItem),\n ];\n}\n\n/** Items whose source anyone may fetch. */\nexport function freeItems(items: RegistryItem[]): RegistryItem[] {\n return items.filter((item) => item.access !== \"pro\");\n}\n\n/** Items whose source requires a licence. */\nexport function proItems(items: RegistryItem[]): RegistryItem[] {\n return items.filter((item) => item.access === \"pro\");\n}\n\nexport function buildIndex(items: RegistryItem[]) {\n const entries: RegistryIndexEntry[] = items.map((item) => ({\n name: item.name,\n type: item.type,\n title: item.title,\n description: item.description,\n category: item.category,\n status: item.status,\n dependencies: item.dependencies,\n registryDependencies: item.registryDependencies,\n access: item.access,\n fileCount: item.files.length,\n }));\n\n return registryIndexSchema.parse({\n $schema: \"./schema/registry-index.json\",\n registryVersion: REGISTRY_VERSION,\n // The package version, not a timestamp: the same source must always produce\n // byte-identical output, or every build shows as a change.\n generatedFrom: `${uiPackageJson.name}@${uiPackageJson.version}`,\n items: entries,\n });\n}\n\nexport interface WriteResult {\n items: number;\n files: number;\n /** Items whose body was withheld from the public directory. */\n licensed: number;\n}\n\n/**\n * Writes the public registry.\n *\n * The index lists everything, including licensed items — that is the catalogue,\n * and an item nobody can see is an item nobody buys. What it does *not* write is\n * a licensed item's body: those files never touch the directory a CDN serves,\n * because a paywall that can be stepped around by fetching the JSON directly is\n * not a paywall. Their bodies go to `writeLicensedModule` instead, behind a\n * request the server can refuse.\n */\nexport function writeRegistry(outDir: string): WriteResult {\n const items = buildRegistry();\n const index = buildIndex(items);\n const free = freeItems(items);\n\n rmSync(outDir, { recursive: true, force: true });\n mkdirSync(outDir, { recursive: true });\n\n writeFileSync(join(outDir, \"index.json\"), `${JSON.stringify(index, null, 2)}\\n`);\n for (const item of free) {\n writeFileSync(join(outDir, `${item.name}.json`), `${JSON.stringify(item, null, 2)}\\n`);\n }\n\n return {\n items: items.length,\n files: free.reduce((total, item) => total + item.files.length, 0),\n licensed: items.length - free.length,\n };\n}\n\n/**\n * Writes the licensed item bodies as a TypeScript module.\n *\n * A module rather than a directory of JSON, because the server that serves\n * these runs on a platform that traces imports to decide what to deploy. A file\n * read at runtime from a path the bundler never saw is a file that is not there\n * in production — and the failure appears only once someone with a valid\n * licence tries to install something.\n */\nexport function writeLicensedModule(outFile: string): number {\n const licensed = proItems(buildRegistry());\n const byName = Object.fromEntries(licensed.map((item) => [item.name, item]));\n\n mkdirSync(dirname(outFile), { recursive: true });\n writeFileSync(\n outFile,\n `// Generated by @dowel-ui/registry. Do not edit.\n//\n// The bodies of licensed registry items. Imported by the route that serves them\n// so the platform's dependency tracing includes them in the deployment; they are\n// deliberately absent from the public registry directory.\nimport type { RegistryItem } from \"@dowel-ui/registry\";\n\nexport const licensedItems: Record<string, RegistryItem> = ${JSON.stringify(byName, null, 2)};\n`,\n );\n\n return licensed.length;\n}\n\n// Run directly: `tsx src/build.ts [--out <dir>]`\nconst invokedDirectly =\n process.argv[1] !== undefined && import.meta.url === pathToFileURL(process.argv[1]).href;\n\nif (invokedDirectly) {\n const outIndex = process.argv.indexOf(\"--out\");\n const outDir =\n outIndex === -1\n ? join(here, \"..\", \"r\")\n : (process.argv[outIndex + 1] ?? join(here, \"..\", \"r\"));\n\n const result = writeRegistry(outDir);\n console.log(\n `Registry written to ${outDir}: ${String(result.items)} items, ${String(result.files)} files` +\n (result.licensed > 0 ? `, ${String(result.licensed)} licensed item(s) withheld.` : \".\"),\n );\n}\n"],"mappings":"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GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,qBAAqB;EAC7B,MAAM;CACP,CiBECiB;ChB1BY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC,uBAAuB;EACtC,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,iBAAiB;EACzB,MAAM;CACP,CgBOCC;Cf3BY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,mBAAmB;EAC3B,MAAM;CACP,CeQCC;Cd5BY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,aAAa;EACrB,MAAM;CACP,CcMCC;Cb7BY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,kBAAkB;EAC1B,MAAM;CACP,CaYCC;CZ9BY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,kBAAkB;EAC1B,MAAM;CACP,CYKCC;CX/BY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,eAAe;EACvB,MAAM;CACP,CWeCC;CVhCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,aAAa;EACrB,MAAM;CACP,CUeCC;CTjCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,oBAAoB;EAC5B,MAAM;CACP,CSaC;CRlCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,QAAQ;EACR,cAAc,CAAC,uBAAuB;EACtC,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,SAAS;EACjB,MAAM;CACP,CQUCC;CPnCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,eAAe;EACvB,MAAM;CACP,COoBCC;CNpCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,qBAAqB;EAC7B,MAAM;CACP,CMoBCC;CLrCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,WAAW;EACnB,MAAM;CACP,CKmBCC;CJtCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,gBAAgB;EACxB,MAAM;CACP,CIuBCC;CHvCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,aAAa;EACrB,MAAM;CACP,CGuBCC;CFxCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,cAAc;EACtB,MAAM;CACP,CEmBCC;CDzCY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,YAAY;EACpB,MAAM;CACP,CCwBCC;AACD;;;;;;;;;;;;;;AC4CA,MAAM,iBAAiB;CACtBC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;AACD;;;;;;;;;;AC7IA,MAAM,OA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"}
1
+ {"version":3,"file":"build.js","names":["meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta","meta$1","meta$2","meta$3","meta$4","meta$5","meta$6","meta$7","meta$8","meta$9","meta$10","meta$11","meta$12","meta$13","meta$14","meta$15","meta$16","meta$17","meta$18","meta$19","meta$20","meta$21","meta$22","meta$23","meta$24","meta$26","meta$27","meta$28","meta$29","meta$30","meta$31","meta$32","meta$33","meta$34","meta$35","meta$36","meta$37","meta$38","meta$39","meta$40","meta$41","meta$42","meta$43","meta$44","meta$45","meta$46","meta$47","meta$48","meta$49","meta$50","meta","meta$1","meta$2","meta$3","meta$4","meta$5","meta$6","meta$7","meta$8","meta$9","meta$10","meta$11","meta$12","meta$13","meta$14","meta$15","meta$16","meta$17","meta$18","meta$19","meta$20","meta$21","meta$22","meta$23","meta$24","meta$25","meta$26","meta$27","meta$28","meta$29","meta$30","meta$31","meta$32","meta$33","meta$34","meta$35","meta$37","meta$36","meta$38","meta$39","meta$40","meta$41","meta$42","meta$43","meta$44","meta$45","meta$46","meta$47","meta$48","meta$49","meta$50","meta$51","meta$52","meta$53","meta$54","meta$55","meta$56","meta$57","meta$58","meta$59","meta$61","meta$60","meta$62","meta$63","meta$64","meta$65","meta$66","meta$67","meta$68","meta$69","meta$70","meta$71","meta$72","meta$73","meta$74","meta$75","meta$76","meta$77","meta$78","meta$79","meta$80","meta$81","meta$82","meta$83","meta$84","meta$85","meta$86","meta$87","meta$88","meta$89","meta$90","meta$91","meta$92","meta$93","meta$94","meta$95","meta$96","meta$97","meta$98","meta$99","meta$100","meta$101","meta$102","meta$103","meta$104","meta$105","meta$106","meta$107","meta$108","meta$109","meta$110","meta$111","meta$112","meta$113","meta$114","meta$115","meta$116","meta$118","meta$119","meta$120","meta$121","meta$122","meta$123","meta$124","meta$125","meta$126","meta$127","meta$128","meta$129","meta$130","meta$131","meta$132","meta$133","meta$134","meta$135","meta$136","meta$137","meta$138","meta$139","meta$140","meta$141","meta$142","meta$143","meta$144","meta$145","meta$146","meta$147","meta$148","meta$149","meta$150","meta$151","meta$152","meta$153","meta$154","meta$155","meta$156","meta$157","meta$158","meta$159","meta$160","meta$161","meta$162","meta$163","meta$164","meta$165","meta$166","meta$167","meta$168","meta$169","meta$170","meta$171","meta$172","meta$173","meta$174","meta$175","meta$176","meta$177","meta$178","meta$179","meta$180","meta$181","meta$182","meta$183"],"sources":["../../ui/dist/registry/schema.js","../../ui/dist/components/accordion/meta.js","../../ui/dist/components/activity-feed/meta.js","../../ui/dist/components/ai-action-ledger/meta.js","../../ui/dist/components/ai-agent-plan/meta.js","../../ui/dist/components/ai-agent-status/meta.js","../../ui/dist/components/ai-approval-request/meta.js","../../ui/dist/components/ai-conversation/meta.js","../../ui/dist/components/ai-disclosure/meta.js","../../ui/dist/components/ai-extraction-review/meta.js","../../ui/dist/components/ai-inline-completion/meta.js","../../ui/dist/components/ai-message/meta.js","../../ui/dist/components/ai-model-selector/meta.js","../../ui/dist/components/ai-prompt-input/meta.js","../../ui/dist/components/ai-reasoning/meta.js","../../ui/dist/components/ai-response/meta.js","../../ui/dist/components/ai-sources/meta.js","../../ui/dist/components/ai-structured-output/meta.js","../../ui/dist/components/ai-suggested-value/meta.js","../../ui/dist/components/ai-token-usage/meta.js","../../ui/dist/components/ai-tool/meta.js","../../ui/dist/components/alert/meta.js","../../ui/dist/components/avatar/meta.js","../../ui/dist/components/badge/meta.js","../../ui/dist/components/breadcrumb/meta.js","../../ui/dist/components/button/meta.js","../../ui/dist/components/calendar/meta.js","../../ui/dist/components/card/meta.js","../../ui/dist/components/checkbox/meta.js","../../ui/dist/components/code-block/meta.js","../../ui/dist/components/collapsible/meta.js","../../ui/dist/components/combobox/meta.js","../../ui/dist/components/command/meta.js","../../ui/dist/components/confirm-typed/meta.js","../../ui/dist/components/cron-editor/meta.js","../../ui/dist/components/data-table/meta.js","../../ui/dist/components/date-picker/meta.js","../../ui/dist/components/direction/meta.js","../../ui/dist/components/dialog/meta.js","../../ui/dist/components/diff-viewer/meta.js","../../ui/dist/components/dns-record/meta.js","../../ui/dist/components/drawer/meta.js","../../ui/dist/components/dropdown-menu/meta.js","../../ui/dist/components/empty-state/meta.js","../../ui/dist/components/file-upload/meta.js","../../ui/dist/components/form/meta.js","../../ui/dist/components/input/meta.js","../../ui/dist/components/label/meta.js","../../ui/dist/components/log-viewer/meta.js","../../ui/dist/components/meter/meta.js","../../ui/dist/components/metric-delta/meta.js","../../ui/dist/components/pagination/meta.js","../../ui/dist/components/permission-matrix/meta.js","../../ui/dist/components/popover/meta.js","../../ui/dist/components/progress/meta.js","../../ui/dist/components/radio-group/meta.js","../../ui/dist/components/record-diff/meta.js","../../ui/dist/components/secret-field/meta.js","../../ui/dist/components/select/meta.js","../../ui/dist/components/separator/meta.js","../../ui/dist/components/session-expiry/meta.js","../../ui/dist/components/sidebar/meta.js","../../ui/dist/components/sheet/meta.js","../../ui/dist/components/shortcut-recorder/meta.js","../../ui/dist/components/skeleton/meta.js","../../ui/dist/components/slider/meta.js","../../ui/dist/components/spinner/meta.js","../../ui/dist/components/switch/meta.js","../../ui/dist/components/sync-status/meta.js","../../ui/dist/components/table/meta.js","../../ui/dist/components/tabs/meta.js","../../ui/dist/components/tags-input/meta.js","../../ui/dist/components/time-range-picker/meta.js","../../ui/dist/components/textarea/meta.js","../../ui/dist/components/toast/meta.js","../../ui/dist/components/tooltip/meta.js","../../ui/dist/components/dots-loader/meta.js","../../ui/dist/components/ring-loader/meta.js","../../ui/dist/components/bar-loader/meta.js","../../ui/dist/components/shape-loader/meta.js","../../ui/dist/components/text-loader/meta.js","../../ui/dist/components/grid-loader/meta.js","../../ui/dist/components/morph-button/meta.js","../../ui/dist/components/effect-button/meta.js","../../ui/dist/components/magnetic-button/meta.js","../../ui/dist/components/dot-morph-button/meta.js","../../ui/dist/components/focus-blur-links/meta.js","../../ui/dist/components/copy-button/meta.js","../../ui/dist/components/text-effect/meta.js","../../ui/dist/components/text-swap/meta.js","../../ui/dist/components/shimmer-text/meta.js","../../ui/dist/components/scramble-text/meta.js","../../ui/dist/components/typewriter-text/meta.js","../../ui/dist/components/scroll-reveal-text/meta.js","../../ui/dist/components/number-flow/meta.js","../../ui/dist/components/card-spread/meta.js","../../ui/dist/components/carousel-3d/meta.js","../../ui/dist/components/time-stack/meta.js","../../ui/dist/components/expandable-cards/meta.js","../../ui/dist/components/glow-card/meta.js","../../ui/dist/components/photo-stack/meta.js","../../ui/dist/components/card-stack/meta.js","../../ui/dist/components/book/meta.js","../../ui/dist/components/product-card/meta.js","../../ui/dist/components/marquee/meta.js","../../ui/dist/components/reviews-carousel/meta.js","../../ui/dist/components/invite-carousel/meta.js","../../ui/dist/components/swipe-carousel/meta.js","../../ui/dist/components/image-accordion/meta.js","../../ui/dist/components/tilt-card/meta.js","../../ui/dist/components/dither-canvas/meta.js","../../ui/dist/components/dither-donut/meta.js","../../ui/dist/components/dither-bar/meta.js","../../ui/dist/components/dither-area/meta.js","../../ui/dist/components/dither-line/meta.js","../../ui/dist/components/dither-heatmap/meta.js","../../ui/dist/components/dither-gauge/meta.js","../../ui/dist/components/dither-scatter/meta.js","../../ui/dist/components/dither-funnel/meta.js","../../ui/dist/components/dither-meter/meta.js","../../ui/dist/components/uptime-matrix/meta.js","../../ui/dist/components/avatar-group/meta.js","../../ui/dist/components/app-stack/meta.js","../../ui/dist/components/contribution-graph/meta.js","../../ui/dist/components/star-count/meta.js","../../ui/dist/components/notification-badge/meta.js","../../ui/dist/components/switchboard-card/meta.js","../../ui/dist/components/island/meta.js","../../ui/dist/components/morph-surface/meta.js","../../ui/dist/components/gooey-popover/meta.js","../../ui/dist/components/rich-popover/meta.js","../../ui/dist/components/comment-bubble/meta.js","../../ui/dist/components/account-menu/meta.js","../../ui/dist/components/exposure-slider/meta.js","../../ui/dist/components/scrubber/meta.js","../../ui/dist/components/image-selector/meta.js","../../ui/dist/components/image-metadata/meta.js","../../ui/dist/components/photo-tabs/meta.js","../../ui/dist/components/social-selector/meta.js","../../ui/dist/components/expandable-list/meta.js","../../ui/dist/components/otp-input/meta.js","../../ui/dist/components/stepper/meta.js","../../ui/dist/components/context-menu/meta.js","../../ui/dist/components/tweet-card/meta.js","../../ui/dist/components/cursor-follow/meta.js","../../ui/dist/components/gradient-orb/meta.js","../../ui/dist/components/orb-face/meta.js","../../ui/dist/components/pixel-avatar/meta.js","../../ui/dist/components/ai-loader/meta.js","../../ui/dist/components/ai-suggestions/meta.js","../../ui/dist/components/ai-branch/meta.js","../../ui/dist/components/ai-artifact/meta.js","../../ui/dist/components/shader-transition/meta.js","../../ui/dist/components/magnetic-select/meta.js","../../ui/dist/components/aspect-morph/meta.js","../../ui/dist/components/create-menu/meta.js","../../ui/dist/components/radial-menu/meta.js","../../ui/dist/components/canvas-toolbar/meta.js","../../ui/dist/components/goo-tabs/meta.js","../../ui/dist/components/assignee-picker/meta.js","../../ui/dist/components/selection-list/meta.js","../../ui/dist/components/browser-tabs/meta.js","../../ui/dist/components/action-node/meta.js","../../ui/dist/components/goo-ball/meta.js","../../ui/dist/components/glass-bubble/meta.js","../../ui/dist/components/drag-stepper/meta.js","../../ui/dist/components/slosh-slider/meta.js","../../ui/dist/components/reorder-list/meta.js","../../ui/dist/components/magnify-dock/meta.js","../../ui/dist/components/range-dial/meta.js","../../ui/dist/components/folding-frame/meta.js","../../ui/dist/components/slide-to-confirm/meta.js","../../ui/dist/components/pull-to-refresh/meta.js","../../ui/dist/components/todo-tower/meta.js","../../ui/dist/components/palette-generator/meta.js","../../ui/dist/components/inline-confirm/meta.js","../../ui/dist/components/liquid-toggle/meta.js","../../ui/dist/components/animated-checklist/meta.js","../../ui/dist/components/now-playing/meta.js","../../ui/dist/components/notify-button/meta.js","../../ui/dist/components/tick-progress/meta.js","../../ui/dist/components/escape-button/meta.js","../../ui/dist/components/expanding-search/meta.js","../../ui/dist/components/dial/meta.js","../../ui/dist/components/command-bar/meta.js","../../ui/dist/blocks/admin-dashboard/meta.js","../../ui/dist/blocks/admin-users/meta.js","../../ui/dist/blocks/agent-console/meta.js","../../ui/dist/blocks/ai-chat/meta.js","../../ui/dist/blocks/ai-dashboard/meta.js","../../ui/dist/blocks/ai-workspace/meta.js","../../ui/dist/blocks/analytics/meta.js","../../ui/dist/blocks/billing/meta.js","../../ui/dist/blocks/command-center/meta.js","../../ui/dist/blocks/crm/meta.js","../../ui/dist/blocks/dashboard/meta.js","../../ui/dist/blocks/forgot-password/meta.js","../../ui/dist/blocks/login/meta.js","../../ui/dist/blocks/onboarding/meta.js","../../ui/dist/blocks/pricing/meta.js","../../ui/dist/blocks/settings/meta.js","../../ui/dist/blocks/signup/meta.js","../../ui/dist/blocks/cta-banner/meta.js","../../ui/dist/blocks/cta-centered/meta.js","../../ui/dist/blocks/cta-split-image/meta.js","../../ui/dist/blocks/faq-accordion/meta.js","../../ui/dist/blocks/faq-categorized/meta.js","../../ui/dist/blocks/faq-searchable/meta.js","../../ui/dist/blocks/faq-tabbed-grid/meta.js","../../ui/dist/blocks/features-alternating/meta.js","../../ui/dist/blocks/features-bento/meta.js","../../ui/dist/blocks/features-icon-grid/meta.js","../../ui/dist/blocks/footer-mega/meta.js","../../ui/dist/blocks/footer-minimal/meta.js","../../ui/dist/blocks/footer-newsletter/meta.js","../../ui/dist/blocks/footer-simple/meta.js","../../ui/dist/blocks/hero-grid/meta.js","../../ui/dist/blocks/hero-minimal/meta.js","../../ui/dist/blocks/hero-perspective-grid/meta.js","../../ui/dist/blocks/hero-product/meta.js","../../ui/dist/blocks/hero-split-image/meta.js","../../ui/dist/blocks/hero-spotlight/meta.js","../../ui/dist/blocks/logo-cloud-simple/meta.js","../../ui/dist/blocks/logo-grid-tooltips/meta.js","../../ui/dist/blocks/logo-links-marquee/meta.js","../../ui/dist/blocks/logo-marquee/meta.js","../../ui/dist/blocks/pricing-single-plan/meta.js","../../ui/dist/blocks/pricing-three-tier/meta.js","../../ui/dist/blocks/pricing-two-tier/meta.js","../../ui/dist/blocks/stats-grid/meta.js","../../ui/dist/blocks/stats-trend-cards/meta.js","../../ui/dist/blocks/team-carousel/meta.js","../../ui/dist/blocks/team-grid/meta.js","../../ui/dist/blocks/testimonial-rotator/meta.js","../../ui/dist/blocks/testimonial-spotlight/meta.js","../../ui/dist/blocks/testimonial-star-grid/meta.js","../../ui/dist/registry/blocks.js","../../ui/dist/registry/components.js","../src/build.ts"],"sourcesContent":["//#region src/registry/schema.ts\n/**\n* Registry metadata contract.\n*\n* Every component ships a `meta.ts` describing what the CLI must install\n* alongside it. This file defines the *type* only; `meta.test.ts` validates\n* every declaration against the source's real imports, so metadata cannot drift\n* from the code it describes. See docs/architecture/0003-registry-metadata.md.\n*/\nconst COMPONENT_CATEGORIES = [\n\t\"foundation\",\n\t\"display\",\n\t\"navigation\",\n\t\"overlay\",\n\t\"layout\",\n\t\"form\",\n\t\"feedback\",\n\t\"data\",\n\t\"ai\",\n\t\"effects\"\n];\nconst COMPONENT_STATUSES = [\n\t\"stable\",\n\t\"beta\",\n\t\"experimental\"\n];\n/** Identity helper that gives editors autocomplete inside `meta.ts`. */\nfunction defineMeta(meta) {\n\treturn meta;\n}\n//#endregion\nexport { COMPONENT_CATEGORIES, COMPONENT_STATUSES, defineMeta };\n\n//# sourceMappingURL=schema.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/accordion/meta.ts\nconst meta = defineMeta({\n\tname: \"accordion\",\n\ttitle: \"Accordion\",\n\tdescription: \"Vertically stacked sections that expand to reveal their content.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"accordion.tsx\"],\n\ta11y: \"Each trigger is a button inside a heading, so screen reader users can navigate the sections by heading. aria-expanded and aria-controls tie the trigger to its panel, and arrow keys move between triggers.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/activity-feed/meta.ts\nconst meta = defineMeta({\n\tname: \"activity-feed\",\n\ttitle: \"Activity Feed\",\n\tdescription: \"A chronological list of events, with a connecting timeline rail.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"activity-feed.tsx\"],\n\ta11y: \"An ordered list, so position and count are announced — the order is the meaning here. The rail and the indicators are decorative; the item text has to say what happened. ActivityTime requires a machine-readable dateTime, because a relative label like \\\"2 hours ago\\\" is ambiguous outside the moment it was rendered.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-action-ledger/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-action-ledger\",\n\ttitle: \"AI Action Ledger\",\n\tdescription: \"What an agent actually did, classified by what can be undone.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-action-ledger.tsx\"],\n\ta11y: \"Reversibility is stated in words on every entry, never by colour or icon alone — it decides whether the undo control means anything, so it cannot be decoration. Selection uses native checkboxes with real labels, and the revert button carries the count in its accessible name so it says what pressing it will do. The selection summary is an aria-live region because the wording changes as the choice changes, and warns before the click when something can only be offset rather than undone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-agent-plan/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-agent-plan\",\n\ttitle: \"AI Agent Plan\",\n\tdescription: \"What an agent intends to do — including when it changes its mind mid-run.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-agent-plan.tsx\"],\n\ta11y: \"An ordered list, because a plan is a sequence and the order carries meaning an unordered list would discard. The running step carries aria-current=\\\"step\\\", which marks the reader's place without moving focus and fighting anyone reading ahead. Every status is stated in text as well as drawn, and the markers are aria-hidden so the status is not heard twice per step. The live region reports structural revisions only — announcing every status transition would talk over the reader continuously on a plan of any length. Drawn checks and crosses live inside the hidden markers; quietCompleted dims finished steps with a contrast-audited token, and the optional sweep is decoration that stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-agent-status/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-agent-status\",\n\ttitle: \"AI Agent Status\",\n\tdescription: \"A pill showing what an agent is doing, in words as well as colour.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-agent-status.tsx\"],\n\ta11y: \"The state is always text. Agent states matter most when something has failed, which is exactly when a colour-only signal fails the people who most need to see it. Live announcements are off by default — several agents each announcing their transitions turns a dashboard into noise; enable it for the one agent being watched.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-approval-request/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-approval-request\",\n\ttitle: \"AI Approval Request\",\n\tdescription: \"Approve a tool call — after correcting the arguments the model got wrong.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-approval-request.tsx\"],\n\ta11y: \"The proposed arguments are a description list of real labelled form controls, so each value is associated with its name and editable ones are reachable by keyboard. A corrected argument is marked in text rather than by border colour alone, because an audit trail has to distinguish the model's proposal from the human's edit. The request is aria-busy while arguments are still arriving and the decision controls stay disabled until it is whole — rendering nothing until then, as the common implementation does, means nothing is on screen at the moment approval becomes relevant. Irreversibility is stated as a sentence, never as a severity colour. Focus never falls to the page as controls swap: deciding moves it to the outcome (tabindex -1, never a Tab stop), Deny… moves it into the reason field and Back returns it — but only when focus was already inside, so a replayed or remote decision never steals it (manageFocus={false} opts out).\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-conversation/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-conversation\",\n\ttitle: \"AI Conversation\",\n\tdescription: \"The scrolling transcript container, with follow-on-new-content and a status region.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-conversation.tsx\"],\n\ta11y: \"The transcript is an ordered list, NOT a live region. A live region that updates on every streamed token is unusable with a screen reader, and is the most common accessibility failure in chat interfaces. Announce state — \\\"generating\\\", \\\"response complete\\\" — through ConversationStatus instead, and let the reader navigate the transcript at their own pace. Auto-scroll stops the moment the reader scrolls up, and ConversationScrollButton is the explicit way back.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-disclosure/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-disclosure\",\n\ttitle: \"AI Disclosure\",\n\tdescription: \"Tells a reader they are looking at AI, and what is actually known about it.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"popover\"],\n\tfiles: [\"ai-disclosure.tsx\"],\n\ta11y: \"The text is the disclosure and the icon is decoration, marked aria-hidden — a sparkle alone is a mark a sighted reader may not decode and a screen reader passes over in silence, which is the exact failure this component exists to prevent. Each of the four kinds carries wording of its own, so the distinction between generated, manipulated and human-reviewed survives for anyone who cannot see the styling. The provenance panel states in words whether anyone checked the claims and who, rather than implying it with a tick, and its three states are told apart by their sentences rather than by colour. Scope: this renders the human-visible disclosures of EU AI Act Article 50(1) and 50(4). It cannot satisfy 50(2), which requires machine-readable marking inside the artifact by whoever generated it, and no React component can. Not legal advice.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-extraction-review/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-extraction-review\",\n\ttitle: \"AI Extraction Review\",\n\tdescription: \"Check extracted fields against the document they came from, and decide each one.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"extraction-model.ts\", \"ai-extraction-review.tsx\"],\n\ta11y: \"Every field quotes its evidence in text under the value, so a reviewer who cannot see the highlight in the source still has what the model read. A value with no evidence is said in words — never left to look like a good one. The source is a focusable named region because it scrolls, and its highlights are mark elements with nothing spliced into the text, since a document read aloud with field names inserted is no longer the document. Focus anywhere in a field brings its evidence into view without moving focus, so a keyboard user is shown the source rather than sent into it. Each control's name carries the field it belongs to, so ten Accept buttons are ten different buttons. Status is a word, outside the label so editing never renames the control, and the running count is a polite live region present from the start. Enter accepts, except while an IME is composing.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-inline-completion/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-inline-completion\",\n\ttitle: \"AI Inline Completion\",\n\tdescription: \"Ghost-text suggestion inside a real textarea, accepted with Tab.\",\n\tcategory: \"ai\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-inline-completion.tsx\"],\n\ta11y: \"No WAI-ARIA pattern covers generative ghost text — combobox is the nearest and does not fit, because the suggestion is not one of a known set of options and a listbox would misdescribe it. So the suggestion is announced through a polite live description that names the keys, since a gesture nobody knows about is not an affordance, and the grey text itself is aria-hidden. Escape always dismisses and restores plain Tab, so the keyboard is never trapped in the field. The ghost hides during IME composition and whenever the caret is not at the end, rather than rendering somewhere it does not belong.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-message/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-message\",\n\ttitle: \"AI Message\",\n\tdescription: \"One turn in a conversation, with role, avatar, actions and footer slots.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-message.tsx\"],\n\ta11y: \"Every message carries a visually hidden label naming the speaker. Alignment and colour tell a sighted reader who is talking and tell a screen reader user nothing, so the role is always in text. Message actions fade in on hover but stay in the DOM and in the tab order — a control that only exists on hover is unreachable by keyboard and invisible on touch — and on devices that cannot hover they are always shown. MessageTimestamp is a real <time>.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-model-selector/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-model-selector\",\n\ttitle: \"AI Model Selector\",\n\tdescription: \"Picks the model a conversation runs on, with descriptions and availability.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"select\"],\n\tfiles: [\"ai-model-selector.tsx\"],\n\ta11y: \"Inherits Select's listbox keyboard model. Each option sets textValue to the model name so typeahead matches the name rather than the description. A disabled model shows and announces why it is unavailable — a disabled option with no reason reads as a broken interface.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-prompt-input/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-prompt-input\",\n\ttitle: \"AI Prompt Input\",\n\tdescription: \"The composer: auto-growing textarea, send-on-Enter, and a send/stop control.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-prompt-input.tsx\"],\n\ta11y: \"Enter sends and Shift+Enter inserts a newline, but never while an IME composition is active — for Japanese, Chinese and Korean input Enter confirms a candidate, and sending there truncates the sentence mid-word. The submit control renames itself to \\\"Stop generating\\\" while busy, so its accessible name always matches what it does. The character counter stays silent until it nears the limit; announcing every keystroke would be unusable.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-reasoning/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-reasoning\",\n\ttitle: \"AI Reasoning\",\n\tdescription: \"A collapsible disclosure for the model's reasoning.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [\"shimmer-text\"],\n\tfiles: [\"ai-reasoning.tsx\"],\n\ta11y: \"A standard disclosure with aria-expanded on the trigger. Collapsed by default because reasoning is supporting material — giving it the same weight as the answer buries the answer. The trigger's label changes while reasoning streams, so its accessible name matches what is happening — and to \\\"Thought for 4.2s\\\" when given a duration. autoOpen and autoCollapse are opt-in; auto-collapse never closes the trace while focus or the pointer is inside it. The optional shimmer is decoration and stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-response/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-response\",\n\ttitle: \"AI Response\",\n\tdescription: \"Assistant response text, with a streaming caret and a thinking indicator.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"ai-sources\"],\n\tfiles: [\"ai-response.tsx\", \"response-text.tsx\"],\n\ta11y: \"Deliberately not a live region: announcing streamed text as it arrives interrupts a screen reader user on every token. Announce state through ConversationStatus and let them read the response when it settles. The caret is decorative; ThinkingIndicator carries a label because it is the only thing on screen while waiting for the first token, and it slows rather than stops under reduced motion because a frozen one says the app has hung. ResponseText blurs in only newly arrived words, adds no live region, and leaves the text content unchanged; its [n] markers are InlineCitations named by their source title.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-sources/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-sources\",\n\ttitle: \"AI Sources\",\n\tdescription: \"Inline citation markers and the source list they refer to.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [\"tooltip\"],\n\tfiles: [\"ai-sources.tsx\"],\n\ta11y: \"An inline marker shows a bare number, which conveys nothing on its own, so the source title is carried in its accessible name. A marker with no href renders as text rather than as a link that goes nowhere. The source list is ordered, because the marker numbers refer to positions in it. The optional citation preview is a Radix Tooltip: it opens on hover and on keyboard focus, Escape closes it, and it describes the link (host and excerpt) only while open. Favicon stacks and marks are decorative and hidden; give an <img> favicon alt=\\\"\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-structured-output/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-structured-output\",\n\ttitle: \"AI Structured Output\",\n\tdescription: \"An object arriving field by field from the model, without the layout jumping.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-structured-output.tsx\"],\n\ta11y: \"A description list, so each value is associated with its label rather than floating beside it. The region is aria-live=\\\"polite\\\" with aria-busy while streaming, so fields are announced as they settle instead of re-reading the whole object on every token. Height is reserved from the declared field list, which keeps focus and reading position stable as values arrive. Confidence is stated as a number in words, never as a colour alone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-suggested-value/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-suggested-value\",\n\ttitle: \"AI Suggested Value\",\n\tdescription: \"An AI-proposed value for any form control, pending until accepted and marked afterwards.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"ai-suggested-value.tsx\"],\n\ta11y: \"The suggestion is the control's description, so a reader who lands on the field hears it without any announcement — and announcing is opt-in, because a form filling twenty fields at once would narrate all twenty. The row that holds it is rendered from the start and never display:none, so when announcing is on, a suggestion arriving after mount is actually heard. Each button's name carries the field it belongs to, so a page of Accepts is a page of different buttons. Provenance and confidence are words with a number, never a colour. Acceptance is reported, not performed: the control is the consumer's, so its value, its label and its own keyboard behaviour are untouched — there is no shortcut hijacked from a select or a date field. The id and ARIA a FormControl passes down are forwarded to the control, and an existing aria-describedby is merged rather than replaced.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-token-usage/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-token-usage\",\n\ttitle: \"AI Token Usage\",\n\tdescription: \"A gauge showing how much of the context window a conversation has used.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"popover\"],\n\tfiles: [\"ai-token-usage.tsx\"],\n\ta11y: \"The numbers are the content and the bar only summarises them, so the bar is aria-hidden rather than a second progressbar to read past. Counts are formatted for the locale. Warning and over-limit states change the wording's colour but never remove the figures. The ring variant abbreviates its visible figures, so it carries a visually hidden sentence with the full numbers and percent. Its breakdown trigger is a real, never-disabled button: click, Enter or Space open it and Escape closes it; a mouse hover also opens it without moving focus, and focus alone never does.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-tool/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-tool\",\n\ttitle: \"AI Tool Call\",\n\tdescription: \"A collapsible record of a tool the model called, its arguments and its result.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"ai-tool.tsx\"],\n\ta11y: \"A disclosure: the trigger exposes aria-expanded and controls the panel. Status is stated in words, not by a coloured dot — colour alone is unavailable to a screen reader and to anyone who cannot distinguish it. Payload blocks are focusable named regions, since JSON scrolls and an unfocusable scroll box is unreachable by keyboard. The optional ring indicator is decorative and hidden; the status word stays visible, and the ring stops moving under reduced motion. A summary note is part of the trigger's name, so keep it short.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/alert/meta.ts\nconst meta = defineMeta({\n\tname: \"alert\",\n\ttitle: \"Alert\",\n\tdescription: \"A callout that draws attention to an important message.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"alert.tsx\"],\n\ta11y: \"Not a live region by default. Pass live=\\\"polite\\\" for alerts that appear in response to a user action, or live=\\\"assertive\\\" for errors that must interrupt. Variant colour is never the only signal — the title carries the meaning.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/avatar/meta.ts\nconst meta = defineMeta({\n\tname: \"avatar\",\n\ttitle: \"Avatar\",\n\tdescription: \"An image representation of a user or entity with a graceful text fallback.\",\n\tcategory: \"display\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"avatar.tsx\"],\n\ta11y: \"Give AvatarImage a meaningful alt, or alt=\\\"\\\" when the adjacent text already names the person. Fallback initials are decorative and are not announced separately.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/badge/meta.ts\nconst meta = defineMeta({\n\tname: \"badge\",\n\ttitle: \"Badge\",\n\tdescription: \"A compact marker for status, counts and categories.\",\n\tcategory: \"display\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"badge.tsx\"],\n\ta11y: \"The badge label must convey the meaning on its own; variant colour is decoration. Use asChild to render an interactive badge as a link or button rather than adding handlers.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/breadcrumb/meta.ts\nconst meta = defineMeta({\n\tname: \"breadcrumb\",\n\ttitle: \"Breadcrumb\",\n\tdescription: \"Where the current page sits in the hierarchy, and how to get back up it.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"breadcrumb.tsx\"],\n\ta11y: \"The current page is a span carrying aria-current=\\\"page\\\", not a link: a link to the page you are already on does nothing, and in a list of links it is indistinguishable from the ones that go somewhere. Separators are hidden from assistive technology, because the list already conveys the sequence and reading \\\"slash\\\" between every item is the design's punctuation leaking into the content. The ellipsis is the exception and is named, because it is content: it says levels have been left out. The optional entrance stagger stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/button/meta.ts\nconst meta = defineMeta({\n\tname: \"button\",\n\ttitle: \"Button\",\n\tdescription: \"Triggers an action or event, with variants for every level of emphasis.\",\n\tcategory: \"foundation\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [\"spinner\"],\n\tfiles: [\"button.tsx\"],\n\ta11y: \"Keyboard activatable via Enter and Space. The loading state uses aria-disabled and aria-busy rather than the disabled attribute, so focus is never stranded mid-action. Use `size=\\\"icon\\\"` only with an accessible name from aria-label or visually hidden text.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/calendar/meta.ts\nconst meta = defineMeta({\n\tname: \"calendar\",\n\ttitle: \"Calendar\",\n\tdescription: \"A date grid for selecting a day, several days or a range.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"react-day-picker\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"calendar.tsx\"],\n\ta11y: \"A real grid with roving focus: arrows move by day, Page Up/Down by month, Home/End to the ends of a week. Selection is announced through aria-selected, and the month caption is a live region so moving between months is announced. Give the calendar an accessible name when more than one is on the page.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/card/meta.ts\nconst meta = defineMeta({\n\tname: \"card\",\n\ttitle: \"Card\",\n\tdescription: \"A surface that groups related content and actions into a single block.\",\n\tcategory: \"display\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"card.tsx\"],\n\ta11y: \"Card renders a plain div with no implicit landmark. CardTitle is an h3 by default — use asChild to set the level the page actually needs, since heading levels must increase by one, or to render something that is not a heading at all.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/checkbox/meta.ts\nconst meta = defineMeta({\n\tname: \"checkbox\",\n\ttitle: \"Checkbox\",\n\tdescription: \"A control for an on/off choice, with support for an indeterminate state.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"checkbox.tsx\"],\n\ta11y: \"Toggles with Space, matching the native control. Always pair with a Label via htmlFor/id — the box alone has no accessible name. Indeterminate is announced as \\\"mixed\\\" and is a state the application sets, not one the user can reach by clicking.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/code-block/meta.ts\nconst meta = defineMeta({\n\tname: \"code-block\",\n\ttitle: \"Code Block\",\n\tdescription: \"A block of code with a copy control, ready for any highlighter.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"copy-button\"],\n\tfiles: [\"code-block.tsx\"],\n\ta11y: \"The pre is a focusable named region, since code overflows horizontally and an unfocusable scroll box is unreachable by keyboard. Copying is announced through a polite live region as well as shown, and a refused clipboard write reports failure rather than looking like success.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/collapsible/meta.ts\nconst meta = defineMeta({\n\tname: \"collapsible\",\n\ttitle: \"Collapsible\",\n\tdescription: \"A single section that opens and closes, without an accordion's set semantics.\",\n\tcategory: \"layout\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"collapsible.tsx\"],\n\ta11y: \"The trigger carries aria-expanded and points at the region it controls, both from the primitive. Reach for this rather than an Accordion of one item: a single-item Accordion gives its trigger a heading role and a position in a list of one, neither of which is true.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/combobox/meta.ts\nconst meta = defineMeta({\n\tname: \"combobox\",\n\ttitle: \"Combobox\",\n\tdescription: \"A searchable single-select built on the ARIA combobox pattern.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"combobox.tsx\"],\n\ta11y: \"The input owns role=\\\"combobox\\\" with aria-expanded, aria-controls and aria-autocomplete; the list owns role=\\\"listbox\\\" and each option role=\\\"option\\\" with aria-selected. Focus stays in the input while arrow keys move aria-activedescendant, so typing is never interrupted. Arrow navigation wraps, Home/End jump, Enter selects the active option and Escape closes. With loading set, the listbox is aria-busy, ComboboxLoading is a status and the empty state waits for the answer. The optional clear button is a named button that returns focus to the input.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/command/meta.ts\nconst meta = defineMeta({\n\tname: \"command\",\n\ttitle: \"Command\",\n\tdescription: \"A searchable command palette, with groups and a ⌘K dialog variant.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"dialog\"],\n\tfiles: [\"command.tsx\"],\n\ta11y: \"The input owns role=\\\"combobox\\\" and the list role=\\\"listbox\\\"; focus stays in the input while arrow keys move aria-activedescendant, so typing is never interrupted. Enter runs the active item through the same path as a click. A group whose items are all filtered out hides its heading rather than labelling nothing. CommandDialog always renders a title and description, visually hidden, so the dialog is never unnamed.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/confirm-typed/meta.ts\nconst meta = defineMeta({\n\tname: \"confirm-typed\",\n\ttitle: \"Confirm Typed\",\n\tdescription: \"Type the name to confirm — and be told, not ignored, when it does not match.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"input\"],\n\tfiles: [\"confirm-typed.tsx\"],\n\ta11y: \"The button stays reachable while the text does not match, dimmed rather than disabled, and pressing it or Enter announces what was expected, marks the field invalid and returns focus to it — the common version disables the button and says nothing, so a keyboard user cannot tell whether anything happened. The match is announced once, on the transition, naming the action that became available, so nobody has to watch the button change colour. Typing itself stays silent, because a verdict on every keystroke is noise. The hint is the field's description and the button's, and the status region exists from the first render so the first announcement is heard. Pasting is allowed: blocking it punishes people who cannot type a long name easily and stops nobody who can select-all and copy.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/cron-editor/meta.ts\nconst meta = defineMeta({\n\tname: \"cron-editor\",\n\ttitle: \"Cron Editor\",\n\tdescription: \"A schedule as a cron expression, with a plain-language reading and the next runs.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"input\", \"select\"],\n\tfiles: [\"cron-expression.ts\", \"cron-editor.tsx\"],\n\ta11y: \"The expression field is described by one element that holds either the plain-language reading or the reason the expression is invalid, so a reader hears the error replace the reading rather than both at once; an invalid expression is never applied. The builder's day buttons are a named group of aria-pressed toggles with the full day name as the accessible name, and the last selected day cannot be removed silently — the group says why. Days 29 to 31 say in text that shorter months skip them. Next runs are a list of time elements with machine-readable datetimes, headed by the zone they are in, because a time with no zone is the classic scheduling mistake. Nothing clock-dependent renders until the clock is known, so server and client cannot disagree.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/data-table/meta.ts\nconst meta = defineMeta({\n\tname: \"data-table\",\n\ttitle: \"Data Table\",\n\tdescription: \"Presentation for a TanStack Table instance: sorting, column visibility and pagination.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"@tanstack/react-table\"],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"dropdown-menu\",\n\t\t\"select\",\n\t\t\"table\"\n\t],\n\tfiles: [\"data-table.tsx\"],\n\ta11y: \"Sortable headers carry aria-sort, so the current sort is announced rather than being conveyed by an arrow icon alone, and each sort button has visually hidden text stating the column and its direction. The pagination status is a polite live region, because paging swaps the rows in place with no other signal. A column that cannot be sorted renders as text, not as a button that does nothing.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/date-picker/meta.ts\nconst meta = defineMeta({\n\tname: \"date-picker\",\n\ttitle: \"Date Picker\",\n\tdescription: \"A button that opens a calendar to pick a date or a date range.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"react-day-picker\"],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"calendar\",\n\t\t\"popover\"\n\t],\n\tfiles: [\"date-picker.tsx\"],\n\ta11y: \"The trigger states the selected date, formatted for the locale, so its accessible name changes with the value. The popover is named because it carries role=\\\"dialog\\\". Selecting a single date closes the popover and returns focus to the trigger; a range stays open, since one click is only half an answer. Offer a typed input alongside it for dates the user already knows.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/direction/meta.ts\nconst meta = defineMeta({\n\tname: \"direction\",\n\ttitle: \"Direction Provider\",\n\tdescription: \"Tells the component primitives which way the writing runs, so menus and sliders mirror with the rest of the page.\",\n\tcategory: \"foundation\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"direction.tsx\"],\n\ta11y: \"Needed only for right-to-left languages, and needed in addition to `dir` on the document rather than instead of it. The styling here is written with logical properties and follows `dir` by itself; the primitives underneath read direction from React context and assume left-to-right without a provider, which mirrors a page correctly except for its menus, selects and sliders — worse than not mirroring at all, because it looks deliberate.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dialog/meta.ts\nconst meta = defineMeta({\n\tname: \"dialog\",\n\ttitle: \"Dialog\",\n\tdescription: \"A modal window that interrupts the user to gather a response.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"dialog.tsx\"],\n\ta11y: \"Focus is trapped while open and restored to the trigger on close; Escape and an overlay click dismiss. Always render a DialogTitle — it names the dialog for screen readers. Use DialogDescription, or aria-describedby, to explain consequential actions. The optional spring entrance and section stagger stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/diff-viewer/meta.ts\nconst meta = defineMeta({\n\tname: \"diff-viewer\",\n\ttitle: \"Diff Viewer\",\n\tdescription: \"A diff you can style, and accept or reject hunk by hunk.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"diff\"],\n\tregistryDependencies: [],\n\tfiles: [\"diff-model.ts\", \"diff-viewer.tsx\"],\n\ta11y: \"A semantic table, not a grid. role=\\\"grid\\\" would promise cell-by-cell arrow navigation that does not exist here and makes no sense for reading code. Every row states added, removed or unchanged in text, because a plus sign and a green tint are not information — a diff read aloud without it is just the same file twice. Line numbers are aria-hidden: they orient a sighted reader, and announcing two numbers before every line makes the diff unlistenable. Changed words are marked with mark elements so they survive as structure, and the empty half of a split pair is hidden rather than read as a blank line of code. The optional wipe entrance is visual only — every row is in the DOM and its kind text is never clipped from assistive technology. With collapseRejected, a rejected hunk's lines are inert and hidden, its header says so in words, and Accept stays available so the decision can be reversed.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dns-record/meta.ts\nconst meta = defineMeta({\n\tname: \"dns-record\",\n\ttitle: \"DNS Record\",\n\tdescription: \"Add this record at your provider: parts copied separately, checked with what was found.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"spinner\"],\n\tfiles: [\"dns-record.tsx\"],\n\ta11y: \"The card is a region named by the record's type and purpose. Each part is a definition with its own copy button, named by the part it copies, so five Copy buttons are five different buttons. Verification status is a word in a polite live region, so the answer to a check arrives where it was asked for, and the card is aria-busy while checking. Copy results are announced in a separate region, present from the start, so a copy never replaces a check result mid-sentence; failure is announced with what to do instead. What the check found is a list, not a colour.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/drawer/meta.ts\nconst meta = defineMeta({\n\tname: \"drawer\",\n\ttitle: \"Drawer\",\n\tdescription: \"A bottom sheet that can be dismissed by dragging it down.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"drawer.tsx\"],\n\ta11y: \"Drag is pointer-only and never the sole way out: Escape, the overlay and DrawerCancel all dismiss. The grab handle is aria-hidden because it duplicates those affordances. Always render a DrawerTitle. The optional section stagger stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dropdown-menu/meta.ts\nconst meta = defineMeta({\n\tname: \"dropdown-menu\",\n\ttitle: \"Dropdown Menu\",\n\tdescription: \"A menu of actions revealed from a trigger, with submenus and selectable items.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"dropdown-menu.tsx\"],\n\ta11y: \"Full menu keyboard model: arrows move, Home/End jump, typeahead searches, Escape closes and restores focus, Right/Left open and close submenus. Highlight is driven by data-highlighted so pointer and keyboard focus never diverge. Use it for actions — links belong in a nav, and value selection belongs in Select. The opening pop and item stagger are decoration and stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/empty-state/meta.ts\nconst meta = defineMeta({\n\tname: \"empty-state\",\n\ttitle: \"Empty State\",\n\tdescription: \"Shown where content would be, explaining why it is empty and what to do next.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"empty-state.tsx\"],\n\ta11y: \"A plain container with no implicit landmark or live region. When it replaces content after a search, put aria-live on the results region so the change is announced. The icon is decorative — the title has to carry the message on its own.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/file-upload/meta.ts\nconst meta = defineMeta({\n\tname: \"file-upload\",\n\ttitle: \"File Upload\",\n\tdescription: \"A dropzone over a real file input, plus the upload queue nobody ships.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"upload-queue.ts\", \"file-upload.tsx\"],\n\ta11y: \"The APG has no dropzone pattern, and inventing one is the usual failure — a div with role=\\\"button\\\", a keydown handler, and a picker keyboard users never reach. The control here is a real input[type=file] with a real label, which is already operable, already announced, and opens the picker on Enter and Space with nothing added. Drag and drop is a pointer convenience layered on top; every drop can also be done from the input. Each uploading file gets a progressbar named after it, status is always stated in words as well as drawn, and one polite live region summarises the whole queue rather than six per-file regions talking over each other. The optional dropzone icon is aria-hidden. With animateExit, a removed row lingers only as an aria-hidden, inert copy with no buttons while it animates out.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/form/meta.ts\nconst meta = defineMeta({\n\tname: \"form\",\n\ttitle: \"Form\",\n\tdescription: \"Accessible field wiring that works with any form library, or none.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"form.tsx\"],\n\ta11y: \"FormField generates the id, points the Label at the control, and assembles aria-describedby from whichever of the description and error are actually present — a dangling reference announces nothing and is flagged by axe. aria-invalid follows the error. FormMessage is a polite live region, so a late validation message is announced without interrupting. With animateExit, a cleared message lingers only as an aria-hidden copy with no id, which the control no longer references.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/input/meta.ts\nconst meta = defineMeta({\n\tname: \"input\",\n\ttitle: \"Input\",\n\tdescription: \"A single-line text field with size variants and native validation styling.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"input.tsx\", \"floating-label-input.tsx\"],\n\ta11y: \"Always pair with a Label via htmlFor/id. Error state is driven by aria-invalid so assistive technology and styling stay in sync; describe the error with aria-describedby. FloatingLabelInput keeps a real <label for> as the accessible name whether resting or floated, and floats it with CSS alone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/label/meta.ts\nconst meta = defineMeta({\n\tname: \"label\",\n\ttitle: \"Label\",\n\tdescription: \"An accessible caption that associates text with a form control.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"label.tsx\"],\n\ta11y: \"Set htmlFor to the id of the control it labels. Clicking the label moves focus to that control, including composite widgets that are not native inputs.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/log-viewer/meta.ts\nconst meta = defineMeta({\n\tname: \"log-viewer\",\n\ttitle: \"Log Viewer\",\n\tdescription: \"A streaming console with filtering, level facets and follow mode.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"@tanstack/react-virtual\"],\n\tregistryDependencies: [],\n\tfiles: [\"log-stream.ts\", \"log-viewer.tsx\"],\n\ta11y: \"role=\\\"log\\\" implies aria-live=\\\"polite\\\", which is right for a few events and unusable for a console — a screen reader would read every line of a build and nothing else would be audible. Announcing is off by default and opt-in. Virtualization is the harder trade: most rows are not in the DOM, so assistive technology cannot reach them, which is why the component takes an onDownload escape rather than pretending the virtual window is the whole log. Levels are written in text as well as coloured, matches use mark elements rather than a background colour, and an invalid pattern is announced instead of silently showing an empty log that reads as \\\"nothing matched\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/meter/meta.ts\nconst meta = defineMeta({\n\tname: \"meter\",\n\ttitle: \"Meter\",\n\tdescription: \"A measurement against a capacity — quota, seats, spend — segmented by category.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"meter.tsx\"],\n\ta11y: \"Uses role=\\\"meter\\\", not role=\\\"progressbar\\\": a meter reports a level with no expectation of reaching the end, and screen readers phrase the two differently. The bar is one meter and the segments inside it are decoration — making each its own widget would put several unlabelled meters in the tab order to describe one quantity. aria-valuetext carries the unit and the capacity, because a bare \\\"4\\\" says nothing about 4 of what. Per-segment detail lives in MeterLegend as text, where it can be read.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/metric-delta/meta.ts\nconst meta = defineMeta({\n\tname: \"metric-delta\",\n\ttitle: \"Metric Delta\",\n\tdescription: \"A headline number with a change indicator that knows which direction is good.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"metric-delta.tsx\"],\n\ta11y: \"The meaning is never carried by colour and an arrow alone, which fails WCAG 1.4.1 — the direction and the comparison are always stated in text. The tile reads as one sentence rather than three fragments: the visible number and delta are aria-hidden and a single screen-reader description carries value, direction, comparison and, where given, sample size. A zero baseline is announced as having no percentage rather than as an infinite one.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/pagination/meta.ts\nconst meta = defineMeta({\n\tname: \"pagination\",\n\ttitle: \"Pagination\",\n\tdescription: \"Navigation between pages of a list.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"pagination.tsx\", \"pagination-indicator.tsx\"],\n\ta11y: \"A named nav landmark. The current page carries aria-current=\\\"page\\\" — styling it differently conveys nothing on its own. Links by default, since a page of results is a place worth sharing; use asChild for your router's link, or render buttons when paging only changes client state. The optional sliding pill (indicator=\\\"slide\\\") is an aria-hidden list item, so the list's item count stays the number of pages, and it stops sliding under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/permission-matrix/meta.ts\nconst meta = defineMeta({\n\tname: \"permission-matrix\",\n\ttitle: \"Permission Matrix\",\n\tdescription: \"Roles across, permissions down, with inheritance, locked roles and one tab stop.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"checkbox\"],\n\tfiles: [\"permission-model.ts\", \"permission-matrix.tsx\"],\n\ta11y: \"A grid in the WAI-ARIA sense: role=\\\"grid\\\" with one tab stop, arrow keys between cells, Home and End along a row and Ctrl with them across the whole matrix — the right call for a matrix that is operated, where it was the wrong one for a diff that is read. Every checkbox is named by both coordinates, \\\"Delete projects for Editor\\\", so a reader arriving by arrow key knows where they are without re-reading the headers. An inherited grant is a checked box that cannot be changed here, marked aria-disabled rather than disabled so it stays in the keyboard path, with the role it came from as its description. A locked role says in each cell's description that nothing can be changed. Group toggles are tri-state, and the column header counts each role's grants in text.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/popover/meta.ts\nconst meta = defineMeta({\n\tname: \"popover\",\n\ttitle: \"Popover\",\n\tdescription: \"Rich floating content anchored to a trigger.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"popover.tsx\"],\n\ta11y: \"The content has role=\\\"dialog\\\" and therefore REQUIRES an accessible name — pass aria-label, or aria-labelledby pointing at a heading inside it. A development-only warning fires if neither is present. The trigger exposes aria-expanded and aria-controls; Escape closes and returns focus to it. Non-modal by default, so the rest of the page stays reachable; pass `modal` only when the content is a task the user must finish or abandon.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/progress/meta.ts\nconst meta = defineMeta({\n\tname: \"progress\",\n\ttitle: \"Progress\",\n\tdescription: \"Shows how far along a task is, or that one is running at all.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"progress.tsx\"],\n\ta11y: \"Exposed as role=\\\"progressbar\\\" with aria-valuenow, and give it a name with aria-label or aria-labelledby. Omitting `value` marks it indeterminate, which is announced differently from zero. Show the percentage in text as well — the bar alone is not readable at a glance for everyone. The optional stripe and shine effects are decoration: they stop under reduced motion and never apply to an indeterminate bar.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/radio-group/meta.ts\nconst meta = defineMeta({\n\tname: \"radio-group\",\n\ttitle: \"Radio Group\",\n\tdescription: \"A set of mutually exclusive options.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"radio-group.tsx\"],\n\ta11y: \"Arrow keys move between options and select as they go, and the group is a single tab stop — the standard radio model. Give the group an accessible name with aria-labelledby, and each item a Label tied by htmlFor/id.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/record-diff/meta.ts\nconst meta = defineMeta({\n\tname: \"record-diff\",\n\ttitle: \"Record Diff\",\n\tdescription: \"Field-level before and after, for audit entries, settings history and revisions.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"record-diff.tsx\"],\n\ta11y: \"A real table, not a grid of divs. Each field name is a th with scope=\\\"row\\\", so a value is announced with the field it belongs to rather than as a loose cell. The kind of change is never carried by row colour alone — every row states added, removed or changed in text for screen readers, satisfying WCAG 1.4.1. The unchanged-field toggle is a real button with aria-expanded. Redacted values never reach the DOM at all.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/secret-field/meta.ts\nconst meta = defineMeta({\n\tname: \"secret-field\",\n\ttitle: \"Secret Field\",\n\tdescription: \"An API key in its three states: shown once, hidden but revealable, and gone.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"input\"],\n\tfiles: [\"secret-field.tsx\"],\n\ta11y: \"The value sits in a read-only input rather than a disabled one, so it can be focused, selected and read, and focusing a shown value selects all of it for copying by hand. The field's state — shown once, hidden, revealed, gone — is a sentence attached as its description, never a colour or an icon. Copying is announced through a status region that exists before the first copy, and failure is announced too, with what to do instead, because the clipboard can be refused. Every button carries the field's label in its name, so a settings page with several keys has several distinct Copy buttons. Regenerating is confirmed inline in a named group that states the consequence, since it revokes the current key.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/select/meta.ts\nconst meta = defineMeta({\n\tname: \"select\",\n\ttitle: \"Select\",\n\tdescription: \"Picks one value from a short list of options.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"select.tsx\"],\n\ta11y: \"Full listbox keyboard model: arrows move, typeahead jumps, Enter selects, Escape closes and restores focus. Give the trigger a name with aria-labelledby or a Label. Past about a dozen options prefer Combobox — scrolling a long listbox by keyboard is slow. The opening pop, option stagger and tick pop are decoration and stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/separator/meta.ts\nconst meta = defineMeta({\n\tname: \"separator\",\n\ttitle: \"Separator\",\n\tdescription: \"A horizontal or vertical rule that divides content.\",\n\tcategory: \"layout\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"separator.tsx\"],\n\ta11y: \"Decorative by default and hidden from assistive technology. Set decorative={false} to expose it as a semantic separator when it divides meaningfully distinct groups.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/session-expiry/meta.ts\nconst meta = defineMeta({\n\tname: \"session-expiry\",\n\ttitle: \"Session Expiry\",\n\tdescription: \"The idle-timeout warning WCAG 2.2.1 asks for: warned, extendable, and not dismissable by accident.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"dialog\"],\n\tfiles: [\"session-expiry.tsx\"],\n\ta11y: \"An alert dialog, named by its heading and described by the sentence that says how long is left. Escape and the backdrop do nothing, because dismissing a session warning without choosing is choosing nothing; the two buttons are the way out, and focus opens on the safe one. The visible countdown is not live — a number every second for two minutes drowns the question — and a separate status region speaks four times: when the warning opens, at one minute, thirty seconds and ten, still saying a threshold a slow tick skipped over. The clock is read in an effect, so the server renders nothing rather than a countdown from the wrong instant. This satisfies the warn-and-extend half of WCAG 2.2.1 Timing Adjustable; the twenty-second minimum is the default window's business and the application's.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/sidebar/meta.ts\nconst meta = defineMeta({\n\tname: \"sidebar\",\n\ttitle: \"Sidebar\",\n\tdescription: \"The application's own navigation: a collapsible rail on a wide screen, an overlay on a narrow one.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [\"sheet\"],\n\tfiles: [\"sidebar.tsx\"],\n\ta11y: \"The navigation landmark must be named — a page has several, and three regions all called \\\"navigation\\\" is a list nobody can choose from. The active entry carries aria-current=\\\"page\\\" rather than only a background colour. On a narrow screen it is a Sheet, not a styled div: an overlay needs a focus trap and an Escape key, and without them the page behind stays reachable by Tab while the menu covers it. When the rail collapses, labels are visually hidden rather than removed — removing them leaves controls whose only content is an icon, which is how a collapsed sidebar becomes a column of links all announced as \\\"link\\\". The trigger says what pressing it will do, not what the state currently is. The overlay is mounted only on a narrow screen and has its own open state: a modal dialog that CSS hides is still modal, and mounting it always made every wide screen aria-hidden and unclickable whenever the rail was open.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/sheet/meta.ts\nconst meta = defineMeta({\n\tname: \"sheet\",\n\ttitle: \"Sheet\",\n\tdescription: \"A panel that enters from an edge of the viewport for secondary content.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"sheet.tsx\"],\n\ta11y: \"Modal, with the same focus trapping and restoration as Dialog. Always render a SheetTitle. For a side navigation sheet, put a nav landmark inside rather than relying on placement to convey the role. The optional section stagger stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/shortcut-recorder/meta.ts\nconst meta = defineMeta({\n\tname: \"shortcut-recorder\",\n\ttitle: \"Shortcut Recorder\",\n\tdescription: \"Press the keys you want: records a chord, platform-aware, and says when it clashes.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"shortcut-model.ts\", \"shortcut-recorder.tsx\"],\n\ta11y: \"The recorder is a button named by what the shortcut does and described by its value in words — Command Shift K — while the key caps on it are hidden from assistive technology, since ⌘⇧K read aloud is noise. While recording it is aria-pressed and its description says what to do; Tab always leaves and Escape always cancels, so it is never a keyboard trap. Every outcome is announced through a status region present from the start: recorded, refused with the reason, clashing with which command, cancelled, cleared. Symbols are shown on a Mac and words elsewhere, and the description uses the platform's own names for its keys.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/skeleton/meta.ts\nconst meta = defineMeta({\n\tname: \"skeleton\",\n\ttitle: \"Skeleton\",\n\tdescription: \"A shaped placeholder that holds layout while content loads.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"skeleton.tsx\"],\n\ta11y: \"Hidden from assistive technology. Put aria-busy on the container that owns the loading data so the state is announced once instead of once per placeholder. Pulse and shimmer are decoration and stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/slider/meta.ts\nconst meta = defineMeta({\n\tname: \"slider\",\n\ttitle: \"Slider\",\n\tdescription: \"Selects a value, or a range, from a continuous span.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"slider.tsx\"],\n\ta11y: \"Each thumb is a role=\\\"slider\\\" with arrow keys, Home/End and Page Up/Down. The name is forwarded onto the thumbs, since the root has no role — a range slider should name each thumb separately with thumbLabels. A development-only warning fires if a thumb would be unnamed. Pass aria-valuetext when the raw number is not meaningful on its own (a price, a duration). Show the current value on screen too — a slider is imprecise, so pair it with a numeric input when exactness matters.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/spinner/meta.ts\nconst meta = defineMeta({\n\tname: \"spinner\",\n\ttitle: \"Spinner\",\n\tdescription: \"An indeterminate loading indicator for buttons, panels and inline content.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"spinner.tsx\"],\n\ta11y: \"Renders aria-hidden by default so it does not announce inside controls that already expose a busy state. Pass `label` to announce it standalone via role=\\\"status\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/switch/meta.ts\nconst meta = defineMeta({\n\tname: \"switch\",\n\ttitle: \"Switch\",\n\tdescription: \"An immediate on/off toggle for settings that apply straight away.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"switch.tsx\"],\n\ta11y: \"Exposed as role=\\\"switch\\\" and toggled with Space or Enter. Needs a visible label tied with htmlFor/id. Do not rely on colour alone to show state — position and the label carry it too. Icons passed to `icons` are aria-hidden decoration; the press squash only runs without a reduced-motion preference.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/sync-status/meta.ts\nconst meta = defineMeta({\n\tname: \"sync-status\",\n\ttitle: \"Sync Status\",\n\tdescription: \"Offline, saving, saved or failed — with the count of changes being held.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"sync-status.tsx\"],\n\ta11y: \"The word is the status and the coloured dot is decoration, hidden from assistive technology. The visible text is not a live region: every save flips it and a region on it would narrate the whole session. A separate region, present from the first render, announces transitions only — went offline with what will happen to the changes, came back with what is being saved, could not save, saved after a failure — and never the churn of saving itself. Announcing is on by default because going offline is the one thing a reader who is typing has to be told, and it can be turned off. The server render assumes online, since a page with no interface to report has no business saying offline.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/table/meta.ts\nconst meta = defineMeta({\n\tname: \"table\",\n\ttitle: \"Table\",\n\tdescription: \"Semantic table primitives for tabular data.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"table.tsx\"],\n\ta11y: \"A native table, so row and column position, header association and dimensions are all announced without ARIA. Give it a name with TableCaption or aria-label. The scrolling wrapper is focusable so an overflowing table can be scrolled by keyboard — without that, columns past the edge are unreachable. Use scope=\\\"row\\\" on th elements inside tbody.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/tabs/meta.ts\nconst meta = defineMeta({\n\tname: \"tabs\",\n\ttitle: \"Tabs\",\n\tdescription: \"Switches between panels of related content.\",\n\tcategory: \"navigation\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"tabs.tsx\"],\n\ta11y: \"Implements the ARIA tabs pattern: arrows move between tabs, Home/End jump to the ends, and only the active tab is in the tab sequence. Panels are focusable so keyboard users reach their content directly. Use activationMode=\\\"manual\\\" when showing a panel is expensive, so arrowing past it does not load it. The optional sliding indicator (indicator=\\\"slide\\\") is aria-hidden decoration; selection is still conveyed by aria-selected, and the slide stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/tags-input/meta.ts\nconst meta = defineMeta({\n\tname: \"tags-input\",\n\ttitle: \"Tags Input\",\n\tdescription: \"A list of short values, where invalid entries stay visible instead of vanishing.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"tags-input.tsx\"],\n\ta11y: \"No WAI-ARIA pattern covers a token field, and the near misses misdescribe it — these are committed values, not options being chosen, so calling the container a listbox would promise navigation that does not exist. It is a labelled group holding a list, with a remove button per token carrying the tag in its accessible name. An invalid token's reason is inside the token, so it is announced with it rather than as a detached error. Additions, removals and refusals all reach a polite live region, because a refusal that looks like nothing happening is the failure this component exists to prevent. Remove buttons sit in the natural tab order rather than behind a roving tabindex: it costs a tab stop per token, and buys a pattern every assistive technology already understands. With animateExit, a removed token lingers only as an aria-hidden, inert copy while it animates out.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/time-range-picker/meta.ts\nconst meta = defineMeta({\n\tname: \"time-range-picker\",\n\ttitle: \"Time Range Picker\",\n\tdescription: \"A time range whose value is an expression, so it stays relative across a reload.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"react-day-picker\"],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"calendar\",\n\t\t\"input\",\n\t\t\"popover\"\n\t],\n\tfiles: [\"time-expression.ts\", \"time-range-picker.tsx\"],\n\ta11y: \"The trigger is named by the range it holds — \\\"Last 6 hours\\\" — and the window that resolves to is read after it, so the relative choice is not replaced by two timestamps. The popover carries role=\\\"dialog\\\" and is named. Presets are buttons rather than radios because choosing one both selects and dismisses, with aria-pressed carrying which matches the current expression. The expression field reports why an unparseable entry is invalid through one aria-describedby element that the preview and the error share, so a reader hears the error replace the preview rather than both at once; an invalid expression is never applied, because a chart silently re-scoping itself is worse than one that refuses.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/textarea/meta.ts\nconst meta = defineMeta({\n\tname: \"textarea\",\n\ttitle: \"Textarea\",\n\tdescription: \"A multi-line text field, with optional auto-resize and a character count that knows when to stay quiet.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"textarea.tsx\"],\n\ta11y: \"Pair with a Label via htmlFor/id. The error state is driven by aria-invalid, so assistive technology and styling stay in sync. The character count is described by the field rather than announced on every keystroke — a permanently live counter reads the remaining number between every letter typed, which is unusable — so it goes live only once the limit is close, and states the remainder in words rather than as a bare ratio that is read aloud as two unlabelled numbers. Horizontal resizing is off by default, because a field dragged wider than its container is a broken layout.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/toast/meta.ts\nconst meta = defineMeta({\n\tname: \"toast\",\n\ttitle: \"Toast\",\n\tdescription: \"Brief, non-blocking messages with an imperative API callable from anywhere.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"toast-store.ts\", \"toast.tsx\"],\n\ta11y: \"Toasts are announced through a live region: destructive and warning variants interrupt (foreground), the rest wait for a pause (background). Auto-dismiss timers pause on hover, focus and window blur, and F8 moves focus into the toast list from anywhere. An action must carry altText describing how to do the same thing without the toast, since it may be gone before a screen reader user reaches it. The optional spring entrance stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/tooltip/meta.ts\nconst meta = defineMeta({\n\tname: \"tooltip\",\n\ttitle: \"Tooltip\",\n\tdescription: \"A short label revealed on hover or keyboard focus.\",\n\tcategory: \"overlay\",\n\tstatus: \"stable\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"tooltip.tsx\"],\n\ta11y: \"Opens on focus as well as hover, and Escape dismisses it. Never put essential or interactive content in a tooltip: it is unreachable on touch and vanishes on blur. For an icon-only button, prefer aria-label for the name and use the tooltip only to repeat it visually. The opening pop is decoration and stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dots-loader/meta.ts\nconst meta = defineMeta({\n\tname: \"dots-loader\",\n\ttitle: \"Dots Loader\",\n\tdescription: \"Indeterminate loading indicators made of dots — pulse, bounce, ripple, orbit and 21 more motions.\",\n\tcategory: \"feedback\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"dots-loader.tsx\"],\n\ta11y: \"Renders aria-hidden by default so it does not announce inside controls that already expose a busy state. Pass `label` to announce it standalone via role=\\\"status\\\". Under reduced motion it slows rather than stopping, because a frozen loader reads as a hang.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ring-loader/meta.ts\nconst meta = defineMeta({\n\tname: \"ring-loader\",\n\ttitle: \"Ring Loader\",\n\tdescription: \"Indeterminate loading indicators made of rings and spinners — classic, sweep, radar, gears and 26 more motions.\",\n\tcategory: \"feedback\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"ring-loader.tsx\"],\n\ta11y: \"Renders aria-hidden by default so it does not announce inside controls that already expose a busy state. Pass `label` to announce it standalone via role=\\\"status\\\". Under reduced motion it slows rather than stopping, because a frozen loader reads as a hang.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/bar-loader/meta.ts\nconst meta = defineMeta({\n\tname: \"bar-loader\",\n\ttitle: \"Bar Loader\",\n\tdescription: \"Indeterminate loading indicators made of bars — cascade, equalizer, wave physics, an indeterminate sweep and 17 more motions.\",\n\tcategory: \"feedback\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"bar-loader.tsx\"],\n\ta11y: \"Renders aria-hidden by default so it does not announce inside controls that already expose a busy state. Pass `label` to announce it standalone via role=\\\"status\\\". Under reduced motion it slows rather than stopping, because a frozen loader reads as a hang. The indeterminate sweep never reports a value, so it cannot be mistaken for real progress.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/shape-loader/meta.ts\nconst meta = defineMeta({\n\tname: \"shape-loader\",\n\ttitle: \"Shape Loader\",\n\tdescription: \"Indeterminate loading indicators made of geometric shapes — flipping squares, hexagons, hourglasses, hearts and 31 more motions.\",\n\tcategory: \"feedback\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"shape-loader.tsx\", \"shape-loader-variants.tsx\"],\n\ta11y: \"Renders aria-hidden by default so it does not announce inside controls that already expose a busy state. Pass `label` to announce it standalone via role=\\\"status\\\". Under reduced motion it slows rather than stopping, because a frozen loader reads as a hang.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/text-loader/meta.ts\nconst meta = defineMeta({\n\tname: \"text-loader\",\n\ttitle: \"Text Loader\",\n\tdescription: \"Indeterminate loading indicators made of words and interface shapes — shimmer, typing, skeleton, terminal and 15 more motions.\",\n\tcategory: \"feedback\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"text-loader.tsx\"],\n\ta11y: \"Renders aria-hidden by default so it does not announce inside controls that already expose a busy state; the words it shows are decoration. Pass `label` to announce it standalone via role=\\\"status\\\". Under reduced motion it slows rather than stopping, because a frozen loader reads as a hang.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/grid-loader/meta.ts\nconst meta = defineMeta({\n\tname: \"grid-loader\",\n\ttitle: \"Grid Loader\",\n\tdescription: \"Indeterminate loading indicators on a grid of cells — 48 patterns (and 17 SmoothUI alias names) that pulse or stagger, plus sequence, thinking and matrix.\",\n\tcategory: \"feedback\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"grid-loader.tsx\"],\n\ta11y: \"Renders aria-hidden by default so it does not announce inside controls that already expose a busy state. Pass `label` to announce it standalone via role=\\\"status\\\". Under reduced motion it slows rather than stopping, because a frozen loader reads as a hang.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/morph-button/meta.ts\nconst meta = defineMeta({\n\tname: \"morph-button\",\n\ttitle: \"Morph Button\",\n\tdescription: \"A button whose icon and label morph to an active state — toggles, transient confirmations and hover affordances.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"morph-button.tsx\"],\n\ta11y: \"In `toggle` mode the state is exposed with aria-pressed and the accessible name stays the resting label, so \\\"Mute\\\" never becomes \\\"Unmute, pressed\\\". `transient` confirmations (Copied, Submitted) are announced through a polite live region and revert on a timer. `trigger=\\\"hover\\\"` activates on keyboard focus as well as hover. Icons are aria-hidden: an icon-only button must be named with aria-label or aria-labelledby, and warns in development when it is not. Motion stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/effect-button/meta.ts\nconst meta = defineMeta({\n\tname: \"effect-button\",\n\ttitle: \"Effect Button\",\n\tdescription: \"A Button with a hover and focus micro-interaction — slide-arrow, pulse, rotate, shake, glare, text reveal, expanding ring or clip corners.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"effect-button.tsx\"],\n\ta11y: \"Every effect plays on keyboard focus-visible as well as hover. Icons and decorative layers are aria-hidden, and text-reveal's duplicate label is hidden so the name is read once. Colour (tone) never carries meaning on its own: the label does. Effects stop under reduced motion. Inherits Button's loading and disabled behaviour.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/magnetic-button/meta.ts\nconst meta = defineMeta({\n\tname: \"magnetic-button\",\n\ttitle: \"Magnetic Button\",\n\tdescription: \"A button that drifts toward the pointer — optionally with its label leaning further — and springs back when it leaves.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"magnetic-button.tsx\"],\n\ta11y: \"The drift is decoration on an ordinary Button: name, role and keyboard behaviour are unchanged. It never runs for touch or coarse pointers, or under prefers-reduced-motion, and a disabled or loading button stays put. The `radius` option listens on the window rather than widening the hit area, so it never steals clicks from neighbouring controls.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dot-morph-button/meta.ts\nconst meta = defineMeta({\n\tname: \"dot-morph-button\",\n\ttitle: \"Dot Morph Button\",\n\tdescription: \"A pill button led by a dot that stretches into a bar on hover and keyboard focus.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"dot-morph-button.tsx\"],\n\ta11y: \"The dot is aria-hidden decoration; the button is named by its label. The morph runs on keyboard focus as well as hover, and hover only applies on devices that can hover, so a tap never leaves it stuck. Under reduced motion the change is instant.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/focus-blur-links/meta.ts\nconst meta = defineMeta({\n\tname: \"focus-blur-links\",\n\ttitle: \"Focus Blur Links\",\n\tdescription: \"A row of links where hovering or focusing one blurs and dims the rest, with an optional dashed bracket.\",\n\tcategory: \"navigation\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"focus-blur-links.tsx\"],\n\ta11y: \"Every item is a real link (or your router's link via asChild). Keyboard focus triggers the same emphasis as hover and holds it after the pointer leaves; focus from a click does not. The blur is visual only — dimmed links stay in the accessibility tree and remain focusable. Wrap the row in a <nav aria-label> when it is site navigation.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/copy-button/meta.ts\nconst meta = defineMeta({\n\tname: \"copy-button\",\n\ttitle: \"Copy Button\",\n\tdescription: \"Copies a value to the clipboard and morphs its icon and label into a confirmation that reverts on its own.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"copy-button.tsx\"],\n\ta11y: \"The confirmation is announced through a polite role=\\\"status\\\" region rendered beside the button, so it never becomes part of the button's name. Only the visible label is exposed; the hidden one is aria-hidden. Icon-only buttons are named \\\"Copy\\\" unless given an aria-label. A refused clipboard write is announced as a failure and never shows the check. The button is never disabled while confirming, so keyboard focus stays put.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/text-effect/meta.ts\nconst meta = defineMeta({\n\tname: \"text-effect\",\n\ttitle: \"Text Effect\",\n\tdescription: \"Text that animates in by character, word or line — blur, rise, mask, spring, centre-out, phrase builds and a wave, as 19 presets.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"text-effect.tsx\", \"text-effect-presets.ts\"],\n\ta11y: \"The split pieces are aria-hidden and an sr-only copy carries the whole string, so screen readers read the sentence once, not letter by letter; `as` keeps heading semantics. Nothing is announced on its own: pass aria-live to announce the settled text when `children` changes, never per piece. The motion is decoration — under reduced motion every entrance lands at rest in one frame and the wave stops after one pass, back at rest.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/text-swap/meta.ts\nconst meta = defineMeta({\n\tname: \"text-swap\",\n\ttitle: \"Text Swap\",\n\tdescription: \"Text that animates from the old string to the new one when its value changes — fade through, shared axis X/Y/Z and per-word crossfade — with a TextRotate for cycling phrases.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"text-swap.tsx\", \"text-rotate.tsx\"],\n\ta11y: \"The incoming text is the accessible text from the moment it changes; the outgoing copy is aria-hidden while it animates out and is then removed, and a change mid-transition replaces the pending text rather than stacking copies. Per-word transitions keep the whole string in a visually hidden copy with the word spans aria-hidden. Nothing is a live region unless you pass aria-live, and then only the settled value is added, never per word. Under reduced motion the swap is instant and TextRotate stops rotating; `paused` stops it on demand. shared-axis-x mirrors in RTL so forward always arrives from the inline end.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/shimmer-text/meta.ts\nconst meta = defineMeta({\n\tname: \"shimmer-text\",\n\ttitle: \"Shimmer Text\",\n\tdescription: \"Text with a light band sweeping across it on a loop, or a blur-and-glide entrance as it arrives.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"shimmer-text.tsx\"],\n\ta11y: \"The text is never split, so it reads as one run and copies cleanly. The effect is decoration: under reduced motion the shine becomes plain text in the base colour and the entrance settles at once to its visible end state. In forced-colours mode the clipped gradient is dropped so the text takes the system colour. Pick base and shine colours that both meet contrast against the background.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/scramble-text/meta.ts\nconst meta = defineMeta({\n\tname: \"scramble-text\",\n\ttitle: \"Scramble Text\",\n\tdescription: \"Text whose characters churn through random glyphs and resolve from the inline start, on hover, focus, mount or view.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"scramble-text.tsx\"],\n\ta11y: \"The scrambling glyphs are aria-hidden; an sr-only copy of the real text is what assistive technology reads, so nothing is announced per frame. The server renders the real text. It is not itself interactive: hover and keyboard focus on the nearest link or button that wraps it trigger the effect. No scramble under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/typewriter-text/meta.ts\nconst meta = defineMeta({\n\tname: \"typewriter-text\",\n\ttitle: \"Typewriter Text\",\n\tdescription: \"Types text a character at a time behind a blinking caret — once, on a loop, or cycling through a list.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"typewriter-text.tsx\"],\n\ta11y: \"The typed characters are aria-hidden and an sr-only copy holds the full text (every item, for a list), so a screen reader reads it once and never per character. The server renders the finished text, and the untyped remainder reserves its space so nothing reflows. Under reduced motion the full text shows immediately.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/scroll-reveal-text/meta.ts\nconst meta = defineMeta({\n\tname: \"scroll-reveal-text\",\n\ttitle: \"Scroll Reveal Text\",\n\tdescription: \"A paragraph whose words brighten from dim to full as it scrolls through the viewport.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"scroll-reveal-text.tsx\"],\n\ta11y: \"The words are aria-hidden and the paragraph is read once from an sr-only copy. Driven by CSS scroll-driven animation where supported, with a frame-throttled scroll fallback; without either, and under reduced motion, every word is fully legible. Dimmed words are below contrast by design until revealed, so keep essential content out of it.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/number-flow/meta.ts\nconst meta = defineMeta({\n\tname: \"number-flow\",\n\ttitle: \"Number Flow\",\n\tdescription: \"A number whose digits roll to each new value — counters, prices, percentages and compact figures, formatted by Intl.NumberFormat.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"number-flow.tsx\"],\n\ta11y: \"The formatted value is rendered once as screen-reader text; the rolling reels are aria-hidden, so a reader hears \\\"$1,234.56\\\" rather than thirty digits per place. Nothing is announced when the value changes unless the consumer passes aria-live, and then only the settled value is announced (aria-atomic is set with it), never each digit. Under reduced motion every change snaps.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/card-spread/meta.ts\nconst meta = defineMeta({\n\tname: \"card-spread\",\n\ttitle: \"Card Spread\",\n\tdescription: \"A stack of cards that fans into an arc, row, corner fan, stamp arc, cascade, dealt hand or wheel on hover, focus or click.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"card-spread.tsx\", \"card-spread-layouts.ts\"],\n\ta11y: \"The deck is a role=\\\"group\\\"; name it with aria-label or aria-labelledby. A deck of non-interactive cards gets a real toggle button (aria-pressed, named by `toggleLabel`, default \\\"Spread cards\\\") laid over the stack: it is the tab stop, Enter/Space/click/tap pin the spread open, and Escape closes it. It is a sibling of the cards, so every card's own content stays in the accessibility tree. A deck whose cards are links or buttons (via `asChild`) has no toggle and is reached through them. Keyboard focus anywhere inside opens the spread. Under reduced motion the layout still applies, instantly. In RTL the spread mirrors toward the inline start.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/carousel-3d/meta.ts\nconst meta = defineMeta({\n\tname: \"carousel-3d\",\n\ttitle: \"3D Carousel\",\n\tdescription: \"A 3D carousel of cards — a fanned arc or a CoverFlow path — with buttons, dots, arrow keys and swipe.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"carousel-3d.tsx\"],\n\ta11y: \"Follows the APG tabbed carousel: a region with aria-roledescription=\\\"carousel\\\", slides that are tabpanels with aria-roledescription=\\\"slide\\\" and a position label, named previous/next buttons, and a tablist of dots with a roving tab stop. Arrow keys (mirrored in right-to-left layouts), Home and End move between slides anywhere in the carousel; changes are announced through a polite status. Only the current slide is in the accessibility tree and tab order — the neighbours are inert, and clicking one selects it. Swipe is a pointer convenience with button, dot and key equivalents. It never rotates on its own. Motion stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/time-stack/meta.ts\nconst meta = defineMeta({\n\tname: \"time-stack\",\n\ttitle: \"Time Stack\",\n\tdescription: \"Cards receding in depth, stepped through with a timeline scrubber, the mouse wheel or the arrow keys.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"time-stack.tsx\"],\n\ta11y: \"The scrubber is a vertical role=\\\"slider\\\" whose aria-valuetext names the moment (\\\"1w ago: Forest Trail\\\"). Newest is at the bottom, so ArrowUp/ArrowRight go back in time as a vertical slider requires; ArrowDown/Left, Page Up/Down, Home and End work too. Only the current card is exposed (a labelled group); the cards behind and before it are inert. Wheel steps are announced through a polite status, and the wheel only captures scrolling while there is a card to step to. Motion stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/expandable-cards/meta.ts\nconst meta = defineMeta({\n\tname: \"expandable-cards\",\n\ttitle: \"Expandable Cards\",\n\tdescription: \"Cards that open into a detail view — widening in place in a row, or growing out of a grid into a modal.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"motion\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"expandable-cards.tsx\"],\n\ta11y: \"Every card is a real button. Inline, it is a disclosure (aria-expanded, aria-controls) whose detail is a labelled region: opening moves focus into it, Escape closes it from anywhere inside the card and returns focus to the card, and a closed detail is aria-hidden and inert. As a dialog it is a Radix modal — focus trap, aria-modal, title and description, Escape and a named Close button — and focus returns to the card that opened it. Motion follows MotionConfig reducedMotion=\\\"user\\\": under reduced motion the card still opens, without growing out of its place.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/glow-card/meta.ts\nconst meta = defineMeta({\n\tname: \"glow-card\",\n\ttitle: \"Glow Card\",\n\tdescription: \"Card surfaces with a soft glow that follows the pointer, alone or continuously across a group.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"glow-card.tsx\"],\n\ta11y: \"The glow is a decorative, aria-hidden, pointer-events-none layer, so the card's own content and semantics are untouched; use asChild to make the whole card a link or button. The pointer handler writes custom properties directly and never re-renders. The glow is off for touch input and under prefers-reduced-motion, where the layer is not displayed at all.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/photo-stack/meta.ts\nconst meta = defineMeta({\n\tname: \"photo-stack\",\n\ttitle: \"Photo Stack\",\n\tdescription: \"A pile of photos: flick the top one away and it springs to the back, or tap, key or button through them.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"motion\", \"radix-ui\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"photo-stack.tsx\"],\n\ta11y: \"A carousel region (aria-roledescription=\\\"carousel\\\") of labelled slides; only the top photo is exposed, the rest are aria-hidden and inert. The top photo carries a real button (\\\"Show next photo\\\") so Enter and Space cycle it; arrow keys move either way (mirrored in right-to-left layouts); optional previous/next buttons give a visible pointer-free path; a polite status region announces the new photo. Dragging is a convenience on top of these and is switched off under reduced motion, where cards also move without animating.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/card-stack/meta.ts\nconst meta = defineMeta({\n\tname: \"card-stack\",\n\ttitle: \"Card Stack\",\n\tdescription: \"A pile of cards you step through as a receding deck, or that fans out into an arc on hover and focus.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"card-stack.tsx\", \"card-stack-layout.ts\"],\n\ta11y: \"The deck is a carousel region (aria-roledescription=\\\"carousel\\\") of labelled slides; only the top card is exposed — the others are aria-hidden and inert. Indicator dots are buttons with a roving tabindex and aria-current; arrow keys (mirrored in right-to-left layouts), Home and End step the deck and move focus with it, and a polite status region announces the new card. Wheel and swipe are conveniences on top of that, and the wheel releases the page at either end. The fan is a labelled list that opens on focus as well as hover; its motion is decoration and settles instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/book/meta.ts\nconst meta = defineMeta({\n\tname: \"book\",\n\ttitle: \"Book\",\n\tdescription: \"A 3D book cover drawn in CSS that tilts, or swings open to reveal its first page, on hover and keyboard focus.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"book.tsx\"],\n\ta11y: \"The title is real text; the spine shading, page edges, back cover and inside of the cover are aria-hidden. Keyboard focus anywhere in the book (or on the book itself, when it is rendered as a link with asChild) does what hover does, and the link gets the shared focus ring. The tilt is decoration and does not happen under prefers-reduced-motion; the open effect still reveals its content there, instantly.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/product-card/meta.ts\nconst meta = defineMeta({\n\tname: \"product-card\",\n\ttitle: \"Product Card\",\n\tdescription: \"A shop tile with image zoom, badge, half-star rating, discount pricing, a wishlist toggle and an add-to-cart confirmation.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"badge\", \"morph-button\"],\n\tfiles: [\"product-card.tsx\"],\n\ta11y: \"The card is an article named by its title; with href the title becomes a link stretched over the card while the buttons stay above it. The rating is one image labelled \\\"Rated 4.5 out of 5\\\". Prices read in order (\\\"Now $129.00, was $179.00, 28% off\\\") rather than relying on strikethrough and colour. The wishlist heart is a toggle with aria-pressed and a stable name, always visible rather than revealed on hover. Add to cart morphs to \\\"Added\\\", announces it through a polite status region and reverts, without ever disabling the button. The entrance animation is skipped under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/marquee/meta.ts\nconst meta = defineMeta({\n\tname: \"marquee\",\n\ttitle: \"Marquee\",\n\tdescription: \"Scrolls its children in a seamless, endless loop — horizontal or vertical, at a set speed, pausing on hover and focus.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"marquee.tsx\"],\n\ta11y: \"The content is rendered once for assistive technology: the copy that closes the loop, and any `repeat` copies, are aria-hidden and inert, so nothing is announced or focused twice. It pauses while hovered or while focus is inside it, and `paused` stops it outright for a visible pause control (WCAG 2.2.2). Under prefers-reduced-motion it stops and becomes an ordinary, keyboard-focusable scroller. The loop runs toward the inline start, so it mirrors under dir=\\\"rtl\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/reviews-carousel/meta.ts\nconst meta = defineMeta({\n\tname: \"reviews-carousel\",\n\ttitle: \"Reviews Carousel\",\n\tdescription: \"Testimonials stacked in depth — the active review in front, the next ones receding behind — stepped through with buttons, indicators or arrow keys.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"reviews-carousel.tsx\", \"carousel-controls.tsx\"],\n\ta11y: \"Follows the APG carousel pattern: a section with aria-roledescription=\\\"carousel\\\", each review a labelled group with aria-roledescription=\\\"slide\\\", and only the active one exposed (the rest are aria-hidden and inert). Previous/next buttons and indicator buttons are named, the current indicator carries aria-current, and the end buttons use aria-disabled so focus is never dropped. Arrow keys (mirrored in RTL), Home and End work while focus is inside. `autoPlay` adds a stop/start control, pauses on hover and focus, turns the live region off while rotating, and does not start by itself under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/invite-carousel/meta.ts\nconst meta = defineMeta({\n\tname: \"invite-carousel\",\n\ttitle: \"Invite Carousel\",\n\tdescription: \"Event invitations fanned out as tilted cards — the current one upright in front, its neighbours leaning behind — advancing on a timer or by hand.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"invite-carousel.tsx\", \"carousel-controls.tsx\"],\n\ta11y: \"Follows the APG carousel pattern: a section with aria-roledescription=\\\"carousel\\\", each card a labelled group with aria-roledescription=\\\"slide\\\", and only the current card exposed (the neighbours are aria-hidden and inert). Automatic rotation — on by default, as in the source — has a stop/start control first in the tab order, pauses on hover and focus, turns the live region off while rotating, and does not start by itself under reduced motion. Previous/next buttons are named, arrow keys (mirrored in RTL), Home and End work inside it, and the fan mirrors under dir=\\\"rtl\\\". Background images are decorative unless `imageAlt` is given; participant avatars take their name as alt text.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/swipe-carousel/meta.ts\nconst meta = defineMeta({\n\tname: \"swipe-carousel\",\n\ttitle: \"Swipe Carousel\",\n\tdescription: \"Cards on a ring seen from the front — swipe, tap or step and the ring turns, so nothing ever leaves the frame.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"motion\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"swipe-carousel.tsx\", \"carousel-controls.tsx\"],\n\ta11y: \"Follows the APG carousel pattern: a section with aria-roledescription=\\\"carousel\\\", each card a labelled group with aria-roledescription=\\\"slide\\\", and only the front card exposed (the others are aria-hidden and inert). The swipe is never the only way through: named previous/next buttons, arrow keys (mirrored in RTL), Home and End, and a tap on a card peeking out at either side all turn the ring. A drag that ends over a link in the front card does not follow it. Under reduced motion the ring jumps instead of springing and the idle float stops; the spring is `motion`, wrapped in MotionConfig reducedMotion=\\\"user\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/image-accordion/meta.ts\nconst meta = defineMeta({\n\tname: \"image-accordion\",\n\ttitle: \"Image Accordion\",\n\tdescription: \"Image panels in a row — the open one widens and shows its caption, the rest stand as narrow strips — opened by hover, focus or press.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"image-accordion.tsx\"],\n\ta11y: \"An APG accordion: each panel's header is a button with aria-expanded inside a heading (`headingLevel`), controlling its caption, which is aria-hidden and inert while closed. Exactly one panel is open. Arrow keys move between headers (Left/Right mirrored under dir=\\\"rtl\\\", Up/Down when vertical), Home and End jump to the ends. With `activateOn=\\\"hover\\\"` a header opens on keyboard focus as well as mouse hover, so nothing is pointer-only; touch opens on tap. Images are decorative unless `imageAlt` is given. The widening stops animating under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/tilt-card/meta.ts\nconst meta = defineMeta({\n\tname: \"tilt-card\",\n\ttitle: \"Tilt Card\",\n\tdescription: \"A card that tilts in 3D toward the pointer, with a glare that follows it and layers that float at their own depth, springing back flat on leave.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"card\"],\n\tfiles: [\"tilt-card.tsx\"],\n\ta11y: \"The tilt is decoration on an ordinary Card: it adds no role, name or tab stop, so a card that acts as a link should contain a real link (the stories stretch one over the card). The glare layer is aria-hidden and ignores the pointer. The card stays flat for touch and coarse pointers and under prefers-reduced-motion. Keyboard focus on the card or anything inside it shows a small static lift instead of a tilt, and a focusable card gets the standard focus ring.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-canvas/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-canvas\",\n\ttitle: \"Dither Canvas\",\n\tdescription: \"The engine behind the dither charts: a DPR-capped, self-pausing canvas loop, token colours, a deterministic cell hash, springs, geometry and a keyboard scrubber.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\n\t\t\"dither-canvas.tsx\",\n\t\t\"dither-engine.ts\",\n\t\t\"dither-geometry.ts\",\n\t\t\"dither-scrubber.tsx\"\n\t],\n\ta11y: \"The canvas is aria-hidden by default: a chart built on it names itself with role=\\\"img\\\" and an aria-label summary, and renders its values in DitherTable, which stays in the accessibility tree when visually hidden. useDitherScrubber gives a chart cursor APG slider semantics (arrows, Page keys, Home/End). The loop pauses off-screen and in hidden tabs, and under reduced motion (or --motion-scale near zero) draws a single static frame with springs settled.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-donut/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-donut\",\n\ttitle: \"Dither Donut\",\n\tdescription: \"A donut chart drawn in shimmering dithered cells, with wedges that pop out and sparkle on hover, focus or pin.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"dither-donut.tsx\"],\n\ta11y: \"The plot is role=\\\"img\\\" with an aria-label summarising every entry, its share and the total. Legend entries are buttons named with their value and share: focus or hover previews a wedge, and pressing pins it (aria-pressed). The data is always in a table, visually hidden unless showTable is set. The readout is real text. Under reduced motion the shimmer stops and data changes settle in one frame.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-bar/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-bar\",\n\ttitle: \"Dither Bar\",\n\tdescription: \"Stacked bars drawn in dithered cells that grow on change, with series highlighting on hover and a per-column readout.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"dither-bar.tsx\"],\n\ta11y: \"The plot is role=\\\"img\\\" with an aria-label summarising every stack. Each column is a button named with its full breakdown and total; focus shows the readout and pressing pins it (aria-pressed). Legend entries are buttons that preview a series on hover or focus and pin it when pressed. The data is always in a table, visually hidden unless showTable is set. Series are named in the legend and readout, never by colour alone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-area/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-area\",\n\ttitle: \"Dither Area\",\n\tdescription: \"An area chart filled with dithered cells over a cell grid, with a date scrubber that swells the cells around it.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"dither-area.tsx\"],\n\ta11y: \"The plot is role=\\\"img\\\" with an aria-label giving the range, start, end and peak. The scrubber over it is a slider: arrow keys step a point, Page keys jump a tenth, Home/End go to the ends, Escape hides the cursor, and aria-valuetext announces the date and value shown in the readout. Axis ticks are aria-hidden; the data is always in a table, visually hidden unless showTable is set.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-line/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-line\",\n\ttitle: \"Dither Line\",\n\tdescription: \"A smooth monotone line over a drifting dithered gradient fill, with a keyboard-operable point scrubber.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"dither-line.tsx\"],\n\ta11y: \"The plot is role=\\\"img\\\" with an aria-label giving the range, high and low. The scrubber over it is a slider: arrow keys step a point, Page keys jump, Home/End go to the ends, Escape hides the cursor, and aria-valuetext announces the point and value shown in the readout. The data is always in a table, visually hidden unless showTable is set.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-heatmap/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-heatmap\",\n\ttitle: \"Dither Heatmap\",\n\tdescription: \"A rows × columns intensity grid drawn in dithered tiles that morph between periods, with a keyboard-navigable cell readout.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"dither-heatmap.tsx\"],\n\ta11y: \"The plot is role=\\\"img\\\" with an aria-label giving its size, total and peak. Over it sits a role=\\\"grid\\\" of real gridcells with one roving tab stop: arrow keys move a cell, Home/End go to the row's ends, Ctrl+Home/End to the corners, Escape hides the readout. Each cell's text is its readout, so focus announces what the pointer tooltip shows. Axis labels and the scale legend are aria-hidden; the data is always in a table, visually hidden unless showTable is set.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-gauge/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-gauge\",\n\ttitle: \"Dither Gauge\",\n\tdescription: \"A half-circle gauge drawn in dithered cells, one sweeping ring per metric, with a centre reading and metric switch.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"dither-gauge.tsx\"],\n\ta11y: \"The rings are role=\\\"img\\\" with an aria-label listing every metric's reading. The centre reading is a role=\\\"meter\\\" with aria-valuemin, aria-valuemax, aria-valuenow and a formatted aria-valuetext. With several metrics, legend buttons (named with label and reading) preview a ring on hover or focus and choose the centre's metric when pressed (aria-pressed). The data is always in a table, visually hidden unless showTable is set.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-scatter/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-scatter\",\n\ttitle: \"Dither Scatter\",\n\tdescription: \"A bubble scatter drawn in dithered cells: floating bubbles sized by value that glide between data sets, with a per-point readout.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"dither-scatter.tsx\"],\n\ta11y: \"The plot is role=\\\"img\\\" with an aria-label listing every point's x, y and size. Each bubble is a button over the plot, its visible short label first in a name that carries all three values; hover or focus shows the readout and pressing pins it (aria-pressed). The float stops under reduced motion. The data is always in a table, visually hidden unless showTable is set.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-funnel/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-funnel\",\n\ttitle: \"Dither Funnel\",\n\tdescription: \"A conversion funnel of dithered stage bars that morph between periods, with overall and step conversion per stage.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"dither-funnel.tsx\"],\n\ta11y: \"The bars are role=\\\"img\\\" with an aria-label giving every stage's value and conversion. Each stage is a button over its bar, showing its name and overall conversion and named with the full breakdown (share of the first stage, step conversion, drop-off); hover or focus fills the text readout and pressing pins it (aria-pressed). The data is always in a table, visually hidden unless showTable is set.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dither-meter/meta.ts\nconst meta = defineMeta({\n\tname: \"dither-meter\",\n\ttitle: \"Dither Meter\",\n\tdescription: \"A capacity bar drawn in dithered cells, split into categories that fill with a spring, with a category legend.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"dither-meter.tsx\"],\n\ta11y: \"The bar is a role=\\\"meter\\\" named by label, with used over capacity as aria-valuenow / aria-valuemax and the per-category breakdown as aria-valuetext (or `description`). Legend entries are buttons, named with category and value, that preview a segment on hover or focus and pin it when pressed (aria-pressed). The visible used-of-capacity line is aria-hidden as it repeats the meter. The data is always in a table, visually hidden unless showTable is set.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/uptime-matrix/meta.ts\nconst meta = defineMeta({\n\tname: \"uptime-matrix\",\n\ttitle: \"Uptime Matrix\",\n\tdescription: \"A day-by-day status history drawn in dithered tiles — operational, degraded, outage — with a keyboard-navigable readout and legend.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"dither-canvas\"],\n\tfiles: [\"uptime-matrix.tsx\"],\n\ta11y: \"The tiles are role=\\\"img\\\" with an aria-label counting each state and the average uptime. Over them sits a role=\\\"grid\\\" of gridcells with one roving tab stop: arrow keys move a day, Home/End go to the row's ends, Ctrl+Home/End to the first and last day, Escape hides the readout; each cell's text is its readout. State is never colour alone: degraded tiles are striped, outages solid, and the legend, readout and table name every state. Axis labels are aria-hidden; the data is always in a table, visually hidden unless showTable is set.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/avatar-group/meta.ts\nconst meta = defineMeta({\n\tname: \"avatar-group\",\n\ttitle: \"Avatar Group\",\n\tdescription: \"Overlapping avatars that spread apart on hover or keyboard focus, collapsing the rest into a \\\"+N\\\" count.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"avatar\"],\n\tfiles: [\"avatar-group.tsx\"],\n\ta11y: \"A list of people: each avatar's image carries the person's name as alt text, and the initials fallback is aria-hidden with the name beside it as screen-reader text. The \\\"+N\\\" overflow reads as \\\"and N more\\\" (overflowLabel). Linked avatars are real links with a focus ring, and keyboard focus spreads the group just as hover does. Name the group with aria-label when the context does not. The spread stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/app-stack/meta.ts\nconst meta = defineMeta({\n\tname: \"app-stack\",\n\ttitle: \"App Stack\",\n\tdescription: \"A pile of app icons that fans out on hover and opens into a multi-select picker whose icons fly to their tiles.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"motion\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"app-stack.tsx\"],\n\ta11y: \"The collapsed stack is a button (aria-expanded=\\\"false\\\", named \\\"Choose from {title}\\\" or triggerLabel); opening moves focus to the picker's header button (aria-expanded=\\\"true\\\"), which closes it and returns focus. Each app is a toggle button (aria-pressed) named by the app; icons and check marks are decorative. The download button is disabled until something is selected. Progress, completion and failure are announced through a polite status region, and the stack is aria-disabled while busy. Under reduced motion the icons move without animating (MotionConfig) and the fan, float and shine stop.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/contribution-graph/meta.ts\nconst meta = defineMeta({\n\tname: \"contribution-graph\",\n\ttitle: \"Contribution Graph\",\n\tdescription: \"A GitHub-style year heatmap of daily counts — a keyboard-navigable grid with a tooltip per day.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"tooltip\"],\n\tfiles: [\"contribution-graph.tsx\"],\n\ta11y: \"A table with role=\\\"grid\\\", named by its caption (\\\"1,234 contributions in 2025\\\" or `label`). Weekdays are row headers and months column headers; every day is a gridcell whose screen-reader text states the count and the full date, so colour never carries the value. One day is tabbable (roving tabindex): arrows move by day and week (mirrored in RTL), Home/End to the ends of the weekday row, Ctrl+Home/End to the ends of the year, PageUp/PageDown by four weeks. The tooltip follows keyboard focus as well as hover and Escape dismisses it.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/star-count/meta.ts\nconst meta = defineMeta({\n\tname: \"star-count\",\n\ttitle: \"Star Count\",\n\tdescription: \"An animated star counter — plain or as a star button — with the stargazers' avatars beside it. The count is a prop; nothing is fetched.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"avatar-group\", \"number-flow\"],\n\tfiles: [\"star-count.tsx\"],\n\ta11y: \"The settled count is screen-reader text (\\\"1,234 stars\\\") while the rolling digits and the star icon are aria-hidden, so a reader never hears the count-up. With href the counter is a real link with a focus ring. Stargazers are an AvatarGroup list named by stargazersLabel. Under reduced motion the count appears settled and the star does not pop.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/notification-badge/meta.ts\nconst meta = defineMeta({\n\tname: \"notification-badge\",\n\ttitle: \"Notification Badge\",\n\tdescription: \"A dot, rolling count or presence badge pinned to the corner of an icon, button or avatar.\",\n\tcategory: \"feedback\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"badge\", \"number-flow\"],\n\tfiles: [\"notification-badge.tsx\"],\n\ta11y: \"Colour never carries the meaning alone: every badge has screen-reader text (\\\"3 notifications\\\", \\\"More than 99 notifications\\\", \\\"New\\\", \\\"Online\\\"…), overridable with `label`, while the visible digits are aria-hidden. A hidden count badge (zero, without showZero) is aria-hidden and empty. Changes are only announced when `live` is set. The text follows the wrapped element in reading order, so a wrapped icon button should still have its own name. The ping ring is not rendered under reduced motion, and the pop-in snaps.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/switchboard-card/meta.ts\nconst meta = defineMeta({\n\tname: \"switchboard-card\",\n\ttitle: \"Switchboard Card\",\n\tdescription: \"A feature card illustrated by a grid of tiny lights — a lit pattern such as a word, or random flicker.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"switchboard-card.tsx\"],\n\ta11y: \"The lights are decorative and aria-hidden unless illustrationLabel describes them (a pattern spelling a word), in which case the grid is a single role=\\\"img\\\". The heading level is set with headingAs. With href the whole card is one link, or use asChild to render a router link or a button; the focus ring is shared. The flicker pauses off-screen and in hidden tabs, and under reduced motion it never starts: a still frame is shown instead.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/island/meta.ts\nconst meta = defineMeta({\n\tname: \"island\",\n\ttitle: \"Island\",\n\tdescription: \"A pill that morphs between views — idle, a call, a timer, a player — resizing around whatever it shows.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"island.tsx\"],\n\ta11y: \"The island is a container: the controls inside a view (play, skip, answer) are ordinary buttons and must be named by the consumer. Pass `live=\\\"polite\\\"` to announce each new view — it is off by default, since an island that announces every change is noise. The resize and the incoming view's blur stop under reduced motion; the pill takes its new size immediately.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/morph-surface/meta.ts\nconst meta = defineMeta({\n\tname: \"morph-surface\",\n\ttitle: \"Morph Surface\",\n\tdescription: \"A dock that grows in place into a panel — a feedback form or a quick prompt — and shrinks back when done.\",\n\tcategory: \"overlay\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"morph-surface.tsx\"],\n\ta11y: \"Behaves as a non-modal popover. The trigger is a disclosure button (aria-expanded, aria-controls) and the panel a named role=\\\"dialog\\\". Opening moves focus into the panel (the message box in MorphSurfaceForm); Escape collapses it and returns focus to the trigger; pressing or tabbing outside collapses it without moving focus. A collapsed panel is inert and invisible; an expanded surface's dock is inert. MorphSurfaceForm's message box is labelled by the panel label, submits with ⌘/Ctrl + Enter (aria-keyshortcuts) or a named submit button, and a successful send is announced through a polite status region. The resize and fades stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/gooey-popover/meta.ts\nconst meta = defineMeta({\n\tname: \"gooey-popover\",\n\ttitle: \"Gooey Popover\",\n\tdescription: \"A round trigger whose popover pours out of it, melted together by an SVG goo filter.\",\n\tcategory: \"overlay\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"popover\"],\n\tfiles: [\"gooey-popover.tsx\"],\n\ta11y: \"Built on Dowel's Popover (Radix): the icon-only trigger is named by `triggerLabel` and exposes aria-expanded; the content is a role=\\\"dialog\\\" named by `triggerLabel` unless given aria-label or aria-labelledby. Opens from pointer or keyboard, moves focus into the content, closes on Escape or an outside press, and returns focus to the trigger. The blob, goo layer and the copy of the trigger icon drawn over it are aria-hidden and ignore the pointer. Under reduced motion the goo layer is dropped and the panel appears in place.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/rich-popover/meta.ts\nconst meta = defineMeta({\n\tname: \"rich-popover\",\n\ttitle: \"Rich Popover\",\n\tdescription: \"A popover card for an inline reference — heading or link, description, a meta chip and one call to action.\",\n\tcategory: \"overlay\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"popover\"],\n\tfiles: [\"rich-popover.tsx\"],\n\ta11y: \"Built on Dowel's Popover: the content is a role=\\\"dialog\\\" labelled by its heading, opens from pointer or keyboard, closes on Escape or an outside press and returns focus to the trigger. The trigger must be a focusable element with an accessible name (an icon-only trigger needs aria-label). Links open in a new tab with rel=noopener; the leading icon, chip icon and arrow are decorative. The blur-in stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/comment-bubble/meta.ts\nconst meta = defineMeta({\n\tname: \"comment-bubble\",\n\ttitle: \"Comment Bubble\",\n\tdescription: \"A canvas comment pin — an avatar in a speech-bubble corner that grows into the thread and a reply composer.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"avatar\"],\n\tfiles: [\"comment-bubble.tsx\"],\n\ta11y: \"The avatar is a disclosure button (\\\"Comment by <name>, N replies\\\") with aria-expanded and aria-controls. The thread is a labelled group and an ordered list; while collapsed it is invisible and inert. Opening moves focus to the reply field when there is one; Escape collapses the thread and returns focus to the avatar; a press outside collapses it. The reply field and send button are named. The grow and blur stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/account-menu/meta.ts\nconst meta = defineMeta({\n\tname: \"account-menu\",\n\ttitle: \"Account Menu\",\n\tdescription: \"An avatar that opens an account panel of collapsible sections — edit the profile, check recent orders.\",\n\tcategory: \"overlay\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"avatar\",\n\t\t\"button\",\n\t\t\"input\",\n\t\t\"label\",\n\t\t\"popover\",\n\t\t\"progress\"\n\t],\n\tfiles: [\"account-menu.tsx\"],\n\ta11y: \"The avatar trigger is named \\\"Account menu for <name>\\\" and opens Dowel's Popover: a role=\\\"dialog\\\" labelled by the user's name, with focus moved inside, Escape and outside-press dismissal and focus returned to the trigger. It is deliberately not role=\\\"menu\\\": sections contain form fields. Each section is a disclosure button (aria-expanded, aria-controls) revealing a named region that is inert while collapsed. Form fields are labelled; order progress bars and view buttons name their order. Transitions stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/exposure-slider/meta.ts\nconst meta = defineMeta({\n\tname: \"exposure-slider\",\n\ttitle: \"Exposure Slider\",\n\tdescription: \"A camera-style exposure dial: a draggable ruler of notches under a fixed centre mark, with a value ring.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"exposure-slider.tsx\"],\n\ta11y: \"The ruler is a focusable role=\\\"slider\\\" with aria-valuenow, -valuemin, -valuemax and an aria-valuetext taken from formatValue. Arrow keys move one step (Left/Right follow the reading direction), Page Up/Down move largeStep, Home/End jump to the ends — so the drag is never the only way to set it. aria-label and aria-labelledby passed to the component land on the slider, and a development warning fires when it has no name. The ring and notches are aria-hidden: the slider already reports the value. The settle animation is a CSS transition and stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/scrubber/meta.ts\nconst meta = defineMeta({\n\tname: \"scrubber\",\n\ttitle: \"Scrubber\",\n\tdescription: \"A design-tool number field: drag across a labelled bar to scrub a value, step it from the keyboard, or type it.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"scrubber.tsx\"],\n\ta11y: \"The bar is a focusable role=\\\"slider\\\" named by its visible label, with aria-valuenow, -valuemin, -valuemax and an aria-valuetext matching the number on screen. Arrow keys step (Left/Right follow the reading direction), Shift + arrow and Page Up/Down take large steps, Home/End jump to the ends. Enter or a double-click opens a text field for an exact value (advertised with aria-keyshortcuts); Enter or blur commits, Escape cancels, and focus returns to the slider. Ticks, fill and thumb are aria-hidden. The thumb's transitions stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/image-selector/meta.ts\nconst meta = defineMeta({\n\tname: \"image-selector\",\n\ttitle: \"Image Selector\",\n\tdescription: \"A photo grid with a Select mode: tick photos, see the count, share or delete them, and reset.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"motion\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"image-selector.tsx\"],\n\ta11y: \"The grid is a list named by `label`. In Select mode each photo is a native checkbox named by the image's alt text — Tab reaches each, Space ticks it — with a visible focus ring on the photo. The Select toggle exposes aria-pressed; the selection count is a polite live region. Share and Delete are named icon buttons that become aria-disabled (not disabled) with nothing selected, so focus stays put after a delete. Tick marks are aria-hidden. The reflow after a delete uses motion inside MotionConfig reducedMotion=\\\"user\\\"; the rest is CSS and stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/image-metadata/meta.ts\nconst meta = defineMeta({\n\tname: \"image-metadata\",\n\ttitle: \"Image Metadata\",\n\tdescription: \"An image with a row of actions and a details button that opens a metadata panel, lifting the image to make room.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"image-metadata.tsx\"],\n\ta11y: \"A disclosure: the details toggle has aria-expanded and aria-controls, and the panel is a region named by the file name. Opening moves focus to the panel's Close button (the toggle it replaces is hidden); closing, with that button or Escape, returns focus to the toggle. Whichever of the action row and the panel is not shown is inert and aria-hidden. Metadata is a description list. The image needs real alt text. The lift and blur transitions stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/photo-tabs/meta.ts\nconst meta = defineMeta({\n\tname: \"photo-tabs\",\n\ttitle: \"Photo Tabs\",\n\tdescription: \"A photo with a floating bar of icon tabs; each tab swaps the photo.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"tabs\"],\n\tfiles: [\"photo-tabs.tsx\"],\n\ta11y: \"Built on Dowel's Tabs: the ARIA tabs pattern with roving focus, arrow keys, Home/End and focusable panels. The tab list is named by `listLabel`; each icon-only tab carries its label as visually hidden text and the icon is aria-hidden. Each panel's image has alt text (defaulting to the label). With a fine pointer the bar hides until the photo is hovered or anything inside it has focus, so keyboard users always see it; on touch it is always visible. The hover pill is aria-hidden and its movement stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/social-selector/meta.ts\nconst meta = defineMeta({\n\tname: \"social-selector\",\n\ttitle: \"Social Selector\",\n\tdescription: \"Pick a social platform from a row of icons — a pill slides behind the choice and the caption links to the profile.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"social-selector.tsx\"],\n\ta11y: \"A Radix radio group named by `label`: one tab stop, arrow keys move and select (following the reading direction), and the value submits with a form under `name`. Each icon-only radio is named by the platform's `name`; icons and the sliding pill are aria-hidden. Caption links say when they open in a new tab. The pill's slide and the caption's blur-in stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/expandable-list/meta.ts\nconst meta = defineMeta({\n\tname: \"expandable-list\",\n\ttitle: \"Expandable List\",\n\tdescription: \"A list of compact rows — jobs, releases, people — each growing into a detail dialog out of its place in the list.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\n\t\t\"class-variance-authority\",\n\t\t\"motion\",\n\t\t\"radix-ui\"\n\t],\n\tregistryDependencies: [],\n\tfiles: [\"expandable-list.tsx\"],\n\ta11y: \"Each row is a button with aria-haspopup=\\\"dialog\\\" and aria-expanded. The detail is a Radix modal dialog: focus moves in and is trapped, the page behind is inert, it is named by the item's title and described by its content, and Escape, the backdrop or the named Close button dismiss it — after which focus returns to the row that opened it. Row media is aria-hidden. The grow-from-row animation uses motion's layoutId inside MotionConfig reducedMotion=\\\"user\\\", so under reduced motion the dialog appears in place.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/otp-input/meta.ts\nconst meta = defineMeta({\n\tname: \"otp-input\",\n\ttitle: \"OTP Input\",\n\tdescription: \"A one-time-code field drawn as a row of animated slots — paste, SMS autofill, masking and grouping included.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"otp-input.tsx\"],\n\ta11y: \"One real text input with autocomplete=\\\"one-time-code\\\" and a numeric inputmode sits over the slots, so paste, SMS autofill, password managers and screen readers all meet a single labelled field holding the code; the painted slots are aria-hidden. Every prop except className lands on that input, so FormField's id, aria-describedby and aria-invalid wire up through FormControl. It is named \\\"One-time code\\\" only when given no aria-label, aria-labelledby or id. Arrow keys, Home and End move between slots; typing over a filled slot replaces it. The slots stay left-to-right in RTL, as codes are read. Slot, digit and caret motion is decoration and stops under reduced motion, leaving the caret visible.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/stepper/meta.ts\nconst meta = defineMeta({\n\tname: \"stepper\",\n\ttitle: \"Stepper\",\n\tdescription: \"A multi-step wizard's progress — connectors fill, finished steps draw a check, and each step's content slides in from the side it comes from.\",\n\tcategory: \"navigation\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"stepper.tsx\"],\n\ta11y: \"An ordered list named \\\"Progress\\\", with aria-current=\\\"step\\\" on the current step and finished steps named with a visually hidden \\\"completed\\\". Steps are plain list items unless `navigation` makes them choosable; then they are buttons sharing one tab stop, moved between with the arrow keys (mirrored in RTL, Up/Down when vertical), Home and End, and chosen with Enter or Space. The content area is a group labelled by the current step. Horizontal labels collapse to screen-reader-only text on narrow screens. All motion is CSS decoration and stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/context-menu/meta.ts\nconst meta = defineMeta({\n\tname: \"context-menu\",\n\ttitle: \"Context Menu\",\n\tdescription: \"A right-click menu that pops from the pointer with a spring and staggers its items in — same parts as Dropdown Menu.\",\n\tcategory: \"overlay\",\n\tstatus: \"beta\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"context-menu.tsx\"],\n\ta11y: \"Opens on right-click, long press, Shift+F10 or the Menu key — the keyboard paths need a focusable trigger. Full menu keyboard model: arrows move, Home/End jump, typeahead searches, Escape closes and returns focus, Right/Left open and close submenus (mirrored in RTL). Checkbox and radio items expose aria-checked; shortcuts are aria-hidden hints. A context menu is invisible until summoned, so its actions should also be reachable elsewhere. The pop and stagger stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/tweet-card/meta.ts\nconst meta = defineMeta({\n\tname: \"tweet-card\",\n\ttitle: \"Tweet Card\",\n\tdescription: \"A social post drawn from props — author, text, photos, date and counts — with a link out to the original. No network, no embed script.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"avatar\", \"skeleton\"],\n\tfiles: [\"tweet-card.tsx\"],\n\ta11y: \"An article named by its author, with the post in a blockquote citing its URL. URLs, @mentions and #hashtags in string text become real links. The link to the post is a real, named link revealed on hover and on keyboard focus, and always shown on devices that cannot hover. The avatar is decorative (the name beside it is the link); verification is announced as text, counts are read in full (\\\"1200 likes\\\", not \\\"1.2K\\\"), and the date is a <time> element. Photos need alt text.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/cursor-follow/meta.ts\nconst meta = defineMeta({\n\tname: \"cursor-follow\",\n\ttitle: \"Cursor Follow\",\n\tdescription: \"A dot that trails the pointer on a spring inside a container and swells into a label over marked elements.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"motion\"],\n\tregistryDependencies: [],\n\tfiles: [\"cursor-follow.tsx\"],\n\ta11y: \"Purely decorative: the follower is aria-hidden and ignores the pointer, and the container adds no role or tab stop (the source's role=\\\"application\\\" and tabIndex are dropped). A `data-cursor-text` label is shown only by the follower, so the same words must also be in the element's alt text or visible text. Nothing renders for touch input or under reduced motion. Hiding the system cursor is opt-in (`hideCursor`). The spring is `motion`, wrapped in MotionConfig reducedMotion=\\\"user\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/gradient-orb/meta.ts\nconst meta = defineMeta({\n\tname: \"gradient-orb\",\n\ttitle: \"Gradient Orb\",\n\tdescription: \"An animated gradient orb — a rotating conic mesh with a dot screen, sheen and bloom — that can follow an AI state and a live audio level.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"gradient-orb.tsx\"],\n\ta11y: \"Decorative: aria-hidden unless given aria-label or aria-labelledby, when it becomes role=\\\"img\\\". It never reports state on its own — pair it with a text status. Pure CSS; under reduced motion every loop stops and the orb shows its settled first frame.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/orb-face/meta.ts\nconst meta = defineMeta({\n\tname: \"orb-face\",\n\ttitle: \"Orb Face\",\n\tdescription: \"A cartoon assistant orb whose gaze follows the pointer, who blinks, and whose expression tells its state — listening, thinking, speaking, done or broken.\",\n\tcategory: \"ai\",\n\tstatus: \"beta\",\n\tdependencies: [\"motion\"],\n\tregistryDependencies: [],\n\tfiles: [\"orb-face.tsx\"],\n\ta11y: \"Decorative: aria-hidden unless given aria-label or aria-labelledby, when it becomes role=\\\"img\\\" — keep that label in step with `state`, and keep a text status nearby, because an expression is not a word. It is never a live region. Under reduced motion the gaze, blinking and thinking glances are switched off and every keyframe stops, leaving each state's settled face; the gaze spring is the only use of `motion`.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/pixel-avatar/meta.ts\nconst meta = defineMeta({\n\tname: \"pixel-avatar\",\n\ttitle: \"Pixel Avatar\",\n\tdescription: \"A deterministic pixel avatar generated from a seed — crisp SVG, coloured from theme tokens, with a gentle shimmer.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"pixel-avatar.tsx\"],\n\ta11y: \"Decorative by default (aria-hidden), for the usual case of an avatar beside a visible name. Pass aria-label — the agent's name, not the seed — to make it role=\\\"img\\\". The shimmer is decoration and stops under reduced motion, leaving the resting grid.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-loader/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-loader\",\n\ttitle: \"AI Loader\",\n\tdescription: \"A labelled AI waiting indicator — thinking dots, an indeterminate bar or a thinking grid — with an optional elapsed-seconds counter.\",\n\tcategory: \"ai\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\n\t\t\"bar-loader\",\n\t\t\"dots-loader\",\n\t\t\"grid-loader\"\n\t],\n\tfiles: [\"ai-loader.tsx\"],\n\ta11y: \"The root is a single role=\\\"status\\\" region announcing the label (or `srLabel`, \\\"Loading\\\" by default). The loader inside it and the elapsed counter are aria-hidden — a counter ticking ten times a second inside a live region would announce continuously. The loaders are indicators: under reduced motion they slow rather than stop. None fakes determinate progress.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-suggestions/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-suggestions\",\n\ttitle: \"Suggestions\",\n\tdescription: \"Prompt suggestion chips for a chat's empty state or follow-ups, arriving from the centre of the row outwards.\",\n\tcategory: \"ai\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"ai-suggestions.tsx\"],\n\ta11y: \"A list of real buttons, named by the visible heading (aria-labelledby) or \\\"Suggestions\\\". Every chip is in the tab order with the shared focus ring. The entrance stagger is decoration and does not run under reduced motion. Selecting hands the suggestion back; filling the composer rather than sending keeps it editable.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-branch/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-branch\",\n\ttitle: \"Branch\",\n\tdescription: \"Alternative versions of a conversation turn — regenerated answers, edited prompts — with a wrapping pager between them.\",\n\tcategory: \"ai\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"ai-branch.tsx\"],\n\ta11y: \"The pager is a group named \\\"Versions\\\" with real Previous/Next buttons (their chevrons mirror in right-to-left layouts) and a polite, atomic \\\"2 of 3\\\" indicator, so paging says where it went. Inactive versions are hidden rather than unmounted, keeping their state. The pager disappears when there is only one version. The entrance is decoration and stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/ai-artifact/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-artifact\",\n\ttitle: \"Artifact\",\n\tdescription: \"A titled frame for something the model produced, with preview and code panes that slide along one axis and a copy action.\",\n\tcategory: \"ai\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"copy-button\", \"tabs\"],\n\tfiles: [\"ai-artifact.tsx\"],\n\ta11y: \"A group named by its title. With both panes it is a real tablist (arrow keys move between Preview and Code, each panel focusable and named by its tab); with one code pane, the scrolling source is a focusable region named by the title. Copying announces success and failure through Copy Button. The pane slide mirrors in right-to-left layouts, never plays on mount, and stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/shader-transition/meta.ts\nconst meta = defineMeta({\n\tname: \"shader-transition\",\n\ttitle: \"Shader Transition\",\n\tdescription: \"Transitions a frame between two states under a full-frame WebGL reveal — one raw-WebGL engine and sixteen presets (aperture, chroma, prism, SDF blobs and circles, noise, wipe, stripes, spiral…).\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\n\t\t\"shader-transition.tsx\",\n\t\t\"shader-transition-engine.ts\",\n\t\t\"shader-transition-presets.ts\"\n\t],\n\ta11y: \"Both states are real DOM; the shader only paints a decorative, aria-hidden cover over the frame. While a run is in progress the outgoing state is aria-hidden and inert, the incoming state is in the accessibility tree from the first frame, and focus inside the outgoing state moves to the incoming one. The root is aria-busy while running. Reduced motion (OS setting or --motion-scale 0) swaps instantly; without WebGL, or if the context is lost mid-run, the states cross-fade instead.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/magnetic-select/meta.ts\nconst meta = defineMeta({\n\tname: \"magnetic-select\",\n\ttitle: \"Magnetic Select\",\n\tdescription: \"A honeycomb of round chips: choosing one grows it and magnetically shoves the rest apart, tilted, with a springy settle.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"magnetic-select.tsx\", \"magnetic-select-spring.ts\"],\n\ta11y: \"A role=\\\"radiogroup\\\" of native buttons with role=\\\"radio\\\" and aria-checked, named by each option's `label`; the group needs aria-label or aria-labelledby and warns in development without one. Roving tabindex: Tab reaches the selected chip (or the first), arrow keys move focus and select with wrap-around (Left/Right follow the reading direction in RTL), Home/End jump to the ends. Images and skins are decorative. The spring is a CSS transition, so under reduced motion every chip settles at its final pose immediately; cursor parallax is mouse-only.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/aspect-morph/meta.ts\nconst meta = defineMeta({\n\tname: \"aspect-morph\",\n\ttitle: \"Aspect Morph\",\n\tdescription: \"A picture that smoothly reshapes between aspect ratios, picked from a segmented control with a sliding thumb.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"aspect-morph.tsx\"],\n\ta11y: \"The picker is a role=\\\"radiogroup\\\" (named \\\"Aspect ratio\\\" unless `label` is given) of buttons with role=\\\"radio\\\", aria-checked and a spoken name per shape; the outline icons and sliding thumb are aria-hidden. Roving tabindex: Tab reaches the checked option, arrow keys move focus and select with wrap-around (Left/Right follow the reading direction in RTL), Home/End jump to the ends. A `src` picture is role=\\\"img\\\" named by `alt`, or hidden when no `alt` is given. The reshape and thumb are CSS transitions and snap to the final state under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/create-menu/meta.ts\nconst meta = defineMeta({\n\tname: \"create-menu\",\n\ttitle: \"Create Menu\",\n\tdescription: \"A DropdownMenu with a morph flourish: a \\\"+ Create\\\" pill that grows in place into its menu panel.\",\n\tcategory: \"navigation\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"create-menu.tsx\"],\n\ta11y: \"Built directly on the Radix DropdownMenu primitive (not portalled, so the panel can grow over the pill): the trigger exposes aria-haspopup=\\\"menu\\\" and aria-expanded, the panel is a role=\\\"menu\\\" named by the trigger, and items are role=\\\"menuitem\\\". Opening from the keyboard moves focus to the first item; Up/Down move, Home/End jump, typeahead searches, Enter/Space select, Escape and an outside press close and return focus to the trigger. The morphing surface and the highlight pill are aria-hidden; the pill follows data-highlighted, so pointer and keyboard never disagree. The grow, stagger and pill slide are decoration and settle instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/radial-menu/meta.ts\nconst meta = defineMeta({\n\tname: \"radial-menu\",\n\ttitle: \"Radial Menu\",\n\tdescription: \"A round button whose options fan out along an arc: press and drag onto one, click, or walk the ring with the keyboard.\",\n\tcategory: \"navigation\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"radial-menu.tsx\"],\n\ta11y: \"The core is a menu button (aria-haspopup=\\\"menu\\\", aria-expanded, aria-controls) named by `label`; the options are role=\\\"menuitem\\\" buttons named by their labels, in a role=\\\"menu\\\" that is inert and aria-hidden while closed. Enter/Space opens and focuses the first option (Down/Up open onto the first or last); Left/Right and Up/Down walk around the ring with wrap-around (Left/Right follow the visual order in RTL), Home/End jump, Enter/Space select and return focus to the core, Escape closes and refocuses the core, Tab and an outside press close. The press-and-drag marking gesture is a pointer shortcut only; clicking and the keyboard reach every option. Captions are aria-hidden duplicates of the names. The fly-out settles instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/canvas-toolbar/meta.ts\nconst meta = defineMeta({\n\tname: \"canvas-toolbar\",\n\ttitle: \"Canvas Toolbar\",\n\tdescription: \"A Figma-style tool rail: one active tool with a springy fill, a shape slot that swaps its tool from a flyout, and single-key shortcuts.\",\n\tcategory: \"navigation\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [\"dropdown-menu\", \"tooltip\"],\n\tfiles: [\"canvas-toolbar.tsx\"],\n\ta11y: \"Built on Radix Toolbar: role=\\\"toolbar\\\" (name it with aria-label; it warns in development when unnamed) with one tab stop, arrow keys that follow the reading direction, Home/End and wrap-around. Tools are toggle buttons named by their label, with aria-pressed on the single active tool and aria-keyshortcuts when a shortcut is set; a tooltip repeats the name and key. The slot is a named group; its notch is a menu button (aria-haspopup=\\\"menu\\\", aria-expanded) opening Dowel's DropdownMenu, where shapes are menuitemradio items reachable with Left/Right as well as Up/Down. Escape closes the flyout and returns focus to the notch; picking a shape returns focus to the slot's tool. Shortcuts work while focus is in the toolbar, or on the whole document with globalShortcuts, and are ignored in inputs, textareas, contenteditable and open menus. The fill pop and the flyout entrance are decoration and stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/goo-tabs/meta.ts\nconst meta = defineMeta({\n\tname: \"goo-tabs\",\n\ttitle: \"Goo Tabs\",\n\tdescription: \"Dowel Tabs with a motion flourish: an icon bar whose pill stretches over the old and new tab, then snaps onto the new one, melted together by an SVG goo filter.\",\n\tcategory: \"navigation\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"tabs\"],\n\tfiles: [\"goo-tabs.tsx\"],\n\ta11y: \"A thin composition on Dowel's Tabs (Radix): role=\\\"tablist\\\" (name it with aria-label) with one tab stop, arrow keys along the orientation that follow the reading direction, Home/End, wrap-around and automatic activation; tabs carry aria-selected and aria-controls, and panels are focusable. Icon-only tabs must be named with aria-label and warn in development when they are not; icons are decoration. The pill, trailing blob and goo filter are one aria-hidden layer that ignores the pointer, and the filter never applies to the icons. Under reduced motion (or without SVG filter support, or with goo={false}) the goo is dropped and the pill moves straight to the new tab.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/assignee-picker/meta.ts\nconst meta = defineMeta({\n\tname: \"assignee-picker\",\n\ttitle: \"Assignee Picker\",\n\tdescription: \"A pill of overlapping faces that opens a multi-select list of people; new faces fly into the stack.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"avatar\", \"popover\"],\n\tfiles: [\"assignee-picker.tsx\", \"assignee-picker-spring.ts\"],\n\ta11y: \"The trigger exposes aria-haspopup=\\\"listbox\\\" and aria-expanded, and is named by `label` plus who is assigned (\\\"Assignees: Adam Marsh, Priya Raman\\\", or the placeholder when nobody is). The popup is a role=\\\"listbox\\\" aria-multiselectable=\\\"true\\\" named by `label`, with role=\\\"option\\\" rows carrying aria-selected. Opening moves focus onto the first assigned person (or the first row); ArrowUp/ArrowDown rove with wrap-around, Home/End jump, Space/Enter toggle, and Escape or Tab close it and return focus to the trigger. Faces, avatars and the check marks are aria-hidden: the option text and aria-selected carry the meaning. Under reduced motion the card, rows and faces appear in place.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/selection-list/meta.ts\nconst meta = defineMeta({\n\tname: \"selection-list\",\n\ttitle: \"Selection List\",\n\tdescription: \"A multi-select list of people with a liquid tick and an action that springs out from under it once someone is picked.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"avatar\", \"button\"],\n\tfiles: [\"selection-list.tsx\", \"selection-list-spring.ts\"],\n\ta11y: \"The list is a role=\\\"listbox\\\" aria-multiselectable=\\\"true\\\" with a single tab stop; name it with aria-label (default \\\"Select people\\\") or aria-labelledby. Rows are role=\\\"option\\\" with aria-selected. ArrowUp/ArrowDown rove with wrap-around, Home/End jump, Space/Enter toggle and Ctrl/Cmd+A selects or clears everything. The hover highlight follows keyboard focus as well as the pointer. The action button is disabled, inert and aria-hidden while tucked away (nothing selected); a pending action shows aria-busy, and the done label is announced through a polite live region. When the action tucks away again focus returns to the list. The tick, avatars and highlight are aria-hidden; under reduced motion the goo fill becomes a plain fill.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/browser-tabs/meta.ts\nconst meta = defineMeta({\n\tname: \"browser-tabs\",\n\ttitle: \"Browser Tabs\",\n\tdescription: \"A miniature browser window whose tabs are a real tablist: a card-coloured leaf springs under the active tab, and tabs reorder by drag or keyboard.\",\n\tcategory: \"navigation\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"browser-tabs.tsx\", \"browser-tabs-spring.ts\"],\n\ta11y: \"The strip is role=\\\"tablist\\\" (named by labels.tabList) of role=\\\"tab\\\" buttons with aria-selected, aria-controls and aria-posinset/aria-setsize reporting each tab's visual position; one role=\\\"tabpanel\\\" is labelled by the active tab. Left/Right (mirrored in right-to-left layouts) move focus and select with wrap-around, Home/End jump to the ends. Alt+Left/Right and Ctrl+Shift+PageUp/PageDown move the focused tab one slot, and every move — keyboard or drag — is announced through a polite live region (\\\"Moved Finds to position 1 of 2\\\"), so dragging is never the only way to reorder. Back, forward and reload are decorative (aria-hidden) unless onBack/onForward/onReload are given, when they become named buttons. The leaf and its ears are aria-hidden; the springs are CSS transitions that settle at once under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/action-node/meta.ts\nconst meta = defineMeta({\n\tname: \"action-node\",\n\ttitle: \"Action Node\",\n\tdescription: \"A workflow node card whose round action buttons spring out in an arc around its top-end corner on hover or from a More actions trigger.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"avatar\", \"tooltip\"],\n\tfiles: [\"action-node.tsx\", \"action-node-spring.ts\"],\n\ta11y: \"Hover opens the fan, and so does the \\\"More actions\\\" trigger (aria-expanded, aria-controls), which is revealed on hover and keyboard focus and always shown on devices without hover. Enter, Space or ArrowDown on it open the fan and focus the first action. The fan is role=\\\"toolbar\\\" (named by toolbarLabel) with a roving tab stop: the arrow keys move along the arc (Left/Right mirrored in right-to-left layouts) with wrap-around, Home/End jump to the ends, and Escape closes it and returns focus to the trigger. Closed, the fan is inert and aria-hidden, so tucked buttons are neither focusable nor announced. Every action is an icon button named by aria-label and repeated in a tooltip. The hover bridge is aria-hidden; the springs are CSS transitions that settle at once under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/goo-ball/meta.ts\nconst meta = defineMeta({\n\tname: \"goo-ball\",\n\ttitle: \"Goo Ball\",\n\tdescription: \"A decorative jelly ball you drag around a well: it stretches along its velocity and squashes against the walls.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\n\t\t\"class-variance-authority\",\n\t\t\"motion\",\n\t\t\"radix-ui\"\n\t],\n\tregistryDependencies: [],\n\tfiles: [\"goo-ball.tsx\"],\n\ta11y: \"The handle is a 2D slider (role=\\\"slider\\\", aria-roledescription \\\"draggable ball\\\") labelled as decorative by default (\\\"Goo ball (decorative)\\\"), with aria-valuetext \\\"<x>% across, <y>% down\\\". Arrow keys nudge it 2% (Shift: 10%), mirrored in right-to-left layouts; Home centres it; it has the shared focus ring. The gooey blob is an aria-hidden SVG drawn behind the handle. Under reduced motion the spring is skipped: the ball sits exactly at the handle with no stretch or wobble.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/glass-bubble/meta.ts\nconst meta = defineMeta({\n\tname: \"glass-bubble\",\n\ttitle: \"Glass Bubble\",\n\tdescription: \"A draggable glass lens that refracts the content under it, with a specular highlight and chromatic fringing.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"glass-bubble.tsx\"],\n\ta11y: \"The bubble is a 2D slider (role=\\\"slider\\\", default name \\\"Glass bubble\\\") with aria-valuetext \\\"<x> across, <y> down\\\" in percent of travel. Arrow keys move it 2% (Shift: 6%), mirrored in right-to-left layouts; Home centres it; it has the shared focus ring. Highlight and rim layers are aria-hidden. The refracting lens is an SVG backdrop-filter that only Chromium supports; other engines get a blur-and-saturate bubble instead, and data-lens=\\\"svg\\\" | \\\"fallback\\\" on the root reports which. Nothing moves on its own; the shadow transition while held runs on the duration tokens, so reduced motion stops it.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/drag-stepper/meta.ts\nconst meta = defineMeta({\n\tname: \"drag-stepper\",\n\ttitle: \"Drag Stepper\",\n\tdescription: \"A pill number stepper: tap − or + to step, or hold either one to stretch into a sweep and drag to scrub.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"drag-stepper.tsx\"],\n\ta11y: \"The value is a text input with role=\\\"spinbutton\\\", aria-valuenow, -valuemin, -valuemax and an optional aria-valuetext from formatValue. Up/Right step up and Down/Left step down (Left/Right mirror in right-to-left layouts, and leave the caret alone while a number is being typed), Page Up/Down take large steps, Home/End jump to the bounds. Typing commits on Enter or blur, clamped to the range; Escape discards the draft. The − and + side buttons are real, named buttons (\\\"Decrease\\\", \\\"Increase\\\") that step on click, so Enter and Space work; they report aria-disabled at the bounds but stay focusable. Holding one to sweep is a pointer convenience with no keyboard-only behaviour behind it. The fill is aria-hidden, and the sweep's stretch and swell are CSS transitions that stop under reduced motion. A development warning fires when the value is unnamed.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/slosh-slider/meta.ts\nconst meta = defineMeta({\n\tname: \"slosh-slider\",\n\ttitle: \"Slosh Slider\",\n\tdescription: \"A slider whose fill behaves like liquid: the knob jumps to the value while the fill springs after it, leaning as it moves.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\n\t\t\"class-variance-authority\",\n\t\t\"motion\",\n\t\t\"radix-ui\"\n\t],\n\tregistryDependencies: [],\n\tfiles: [\"slosh-slider.tsx\"],\n\ta11y: \"Built on the Radix slider: the knob is a focusable role=\\\"slider\\\" with aria-valuenow, -valuemin and -valuemax, pointer jump-to-value, arrow keys (mirrored in right-to-left layouts), Home/End, and Page Up/Down moving by largeStep. aria-label, aria-labelledby and aria-valuetext (or formatValue) are forwarded onto the thumb, and a development warning fires when it is unnamed — no default name is baked in. The focus ring is drawn around the whole bar. The liquid fill is aria-hidden decoration; under reduced motion it jumps with the knob and never leans.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/reorder-list/meta.ts\nconst meta = defineMeta({\n\tname: \"reorder-list\",\n\ttitle: \"Reorder List\",\n\tdescription: \"A short list of people or things you put in order by dragging liquid pills, or with Space and the arrow keys.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"motion\"],\n\tregistryDependencies: [\"avatar\"],\n\tfiles: [\"reorder-list.tsx\"],\n\ta11y: \"A real list (ol, role=list, named by aria-label) whose rows are buttons named by their label and described by the keyboard instructions. Space or Enter picks a row up (aria-pressed), ArrowUp/ArrowDown or Home/End move it, Space or Enter drops it and Escape (or leaving the row) cancels and restores the original order; without a grab the arrows move focus between rows. Focus stays on the moved row. A polite, visually hidden status region announces each grab, move, drop and cancel (messages overridable for i18n), including drops made by pointer. The goo layer of pill backgrounds is aria-hidden and separate from the text, and avatars are decorative. Under reduced motion nothing deforms and rows jump to their slots.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/magnify-dock/meta.ts\nconst meta = defineMeta({\n\tname: \"magnify-dock\",\n\ttitle: \"Magnify Dock\",\n\tdescription: \"A macOS-style dock whose icons grow, lift and show a label as the pointer or keyboard focus passes over them.\",\n\tcategory: \"navigation\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"magnify-dock.tsx\"],\n\ta11y: \"A toolbar (role=\\\"toolbar\\\", named \\\"Dock\\\" by default, aria-orientation horizontal) with one roving tab stop: ArrowLeft/ArrowRight move between items (mirrored in right-to-left layouts, wrapping), Home/End jump to the ends, and disabled items are skipped. Items are real buttons, or links when given an href, named by their label; icons and the tooltip pill are aria-hidden. The active item carries aria-current=\\\"page\\\" rather than aria-pressed: the dock marks where you are, like a nav bar, and only one item is ever current, so it is not a set of toggles. Magnification and the tooltip follow keyboard focus as well as hover, so keyboard users get the same feedback. Under reduced motion items still magnify, without animating.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/range-dial/meta.ts\nconst meta = defineMeta({\n\tname: \"range-dial\",\n\ttitle: \"Range Dial\",\n\tdescription: \"A 24-hour circular two-thumb range — drag or key the start and end round a ticked clock face, with the duration in the middle.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"range-dial.tsx\"],\n\ta11y: \"A labelled role=\\\"group\\\" (default \\\"Time range\\\") holding two focusable role=\\\"slider\\\" thumbs (\\\"Start time\\\", \\\"End time\\\"), each with aria-valuemin 0, aria-valuemax 1439, aria-valuenow in minutes and an aria-valuetext time such as \\\"10:30 PM\\\" (locale-aware, overridable). Arrow keys step by the snap, Page Up/Down by an hour, Home/End jump to midnight and the last step of the day, all wrapping round midnight; up/right always add time because a clock face does not mirror. The centre readout has a spoken equivalent, and a polite live region announces the new duration only after a change. Ticks and knobs are aria-hidden; the pointer grabs the nearest thumb and moves focus to it. Tick draw-in runs through --motion-scale and is instant under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/folding-frame/meta.ts\nconst meta = defineMeta({\n\tname: \"folding-frame\",\n\ttitle: \"Folding Frame\",\n\tdescription: \"A photo folded shut like a book in 3D — drag across it (or use the keys) to open the cover until it lies flat.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"radix-ui\"],\n\tregistryDependencies: [],\n\tfiles: [\"folding-frame.tsx\"],\n\ta11y: \"The photo is exposed once, as role=\\\"img\\\" named by `alt`; halves, spine, shading and the hinge band are presentational inside it. A focusable role=\\\"slider\\\" overlay (default name \\\"Unfold\\\", 0–100) carries the openness with aria-valuetext \\\"Closed\\\", \\\"40% open\\\" or \\\"Open\\\". Arrows step by 5 (left/right follow the reading direction), Page Up/Down by 25, Home shuts and End opens. The drag follows pointer position rather than momentum and mirrors in right-to-left layouts. Key steps and the optional release snap ease with a CSS transition that is instant under reduced motion. The liquid refraction is Chromium-only; other engines get the blur alone (data-liquid=\\\"fallback\\\").\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/slide-to-confirm/meta.ts\nconst meta = defineMeta({\n\tname: \"slide-to-confirm\",\n\ttitle: \"Slide to Confirm\",\n\tdescription: \"A track whose grip you slide to the end to confirm — bencho's wash-and-morph pill or SmoothUI's power-off slide — with a press-and-hold path.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\n\t\t\"class-variance-authority\",\n\t\t\"motion\",\n\t\t\"radix-ui\"\n\t],\n\tregistryDependencies: [],\n\tfiles: [\"slide-to-confirm.tsx\"],\n\ta11y: \"The grip is a real button named by the label and described by a hint. Pressing and holding Enter or Space (or holding the pointer still on it) carries the grip across over holdDuration and confirms; letting go early sends it back, so dragging is never the only way through. The result (\\\"Confirmed\\\" / \\\"Shutting down…\\\") is announced through a polite status region. The grip travels toward the inline end and its arrow mirrors in right-to-left layouts. Under reduced motion the springs are instant, the shimmer stops and the hold still works.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/pull-to-refresh/meta.ts\nconst meta = defineMeta({\n\tname: \"pull-to-refresh\",\n\ttitle: \"Pull to Refresh\",\n\tdescription: \"A sheet you pull down to refresh, with rubber-band resistance, a dot ring that fills as you pull and springs that carry the pull's velocity.\",\n\tcategory: \"feedback\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"motion\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"pull-to-refresh.tsx\"],\n\ta11y: \"The sheet is a named, focusable group described by a hint; Enter on it refreshes, and a visible Refresh button (showRefreshButton, on by default) gives a pointer-free path for touch and screen reader users, so pulling is never the only way. While refreshing the sheet is aria-busy and a polite status region announces \\\"Refreshing…\\\" then \\\"Refreshed\\\". The dot ring is aria-hidden decoration and stops under reduced motion, where the springs are also instant; the refresh itself still works. A pull only starts when the sheet is scrolled to the top, and the click a pull leaves behind is swallowed.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/todo-tower/meta.ts\nconst meta = defineMeta({\n\tname: \"todo-tower\",\n\ttitle: \"Todo Tower\",\n\tdescription: \"To-do cards stacked like bricks: tick one and it flicks away as the cards above drop; drag one and the stack sways.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\", \"motion\"],\n\tregistryDependencies: [],\n\tfiles: [\"todo-tower.tsx\"],\n\ta11y: \"A labelled list. Each card's check is a real button named \\\"Done: <task>\\\", so Tab and Enter/Space complete tasks; completion is announced politely and focus moves to the card that drops into the gap. Dragging and swaying the stack is decoration with no keyboard equivalent because it does nothing. Under reduced motion there is no sway, flick or drop.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/palette-generator/meta.ts\nconst meta = defineMeta({\n\tname: \"palette-generator\",\n\ttitle: \"Palette Generator\",\n\tdescription: \"A row of swatches that melt together through a goo filter and pop back out in a new palette.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"palette-generator.tsx\"],\n\ta11y: \"The refresh control is a named button (\\\"Generate a new palette\\\") with a focus ring. The swatches are a labelled list of images named by colour, and each new palette is announced through a polite live region (missing in the source). The melt is decoration: under reduced motion the colours swap at once.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/inline-confirm/meta.ts\nconst meta = defineMeta({\n\tname: \"inline-confirm\",\n\ttitle: \"Inline Confirm\",\n\tdescription: \"A destructive button that asks in place — it widens into Keep / Delete, then offers a timed Undo.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"inline-confirm.tsx\"],\n\ta11y: \"A labelled group of real buttons. Asking moves focus to \\\"Keep\\\", the safe answer; Escape cancels and returns focus to the trigger. Confirming moves focus to \\\"Undo\\\" and announces the done label through a polite live region. The undo window pauses while keyboard focus is inside it, and its fuse stays still under reduced motion. When the window closes, focus returns to the trigger if it was inside.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/liquid-toggle/meta.ts\nconst meta = defineMeta({\n\tname: \"liquid-toggle\",\n\ttitle: \"Liquid Toggle\",\n\tdescription: \"A switch whose knob squashes like a droplet as it travels, and can be dragged across.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\n\t\t\"class-variance-authority\",\n\t\t\"motion\",\n\t\t\"radix-ui\"\n\t],\n\tregistryDependencies: [],\n\tfiles: [\"liquid-toggle.tsx\"],\n\ta11y: \"Built on the Radix switch primitive: role=\\\"switch\\\" with aria-checked, toggled by click, Space or Enter, with a visible focus ring (missing in the source) and a hidden input inside forms. It has no visible label, so name it with aria-label or a <label>. Dragging the knob is a pointer convenience; releasing a drag never also counts as a click. Under reduced motion the knob jumps and never deforms.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/animated-checklist/meta.ts\nconst meta = defineMeta({\n\tname: \"animated-checklist\",\n\ttitle: \"Animated Checklist\",\n\tdescription: \"A task list whose boxes fill with a bounce and whose done tasks fade and strike through, with an add row.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"checkbox\"],\n\tfiles: [\"animated-checklist.tsx\"],\n\ta11y: \"A labelled group holding a real list. Each row is Dowel's Checkbox inside a <label>, so the whole row toggles with a click and the box with Space. The add row is a button that becomes a text field: Enter adds, Escape cancels and returns focus to \\\"Add new task\\\". Optional remove buttons are named per task and move focus to a neighbour. Additions and removals are announced politely. Name the group with aria-label.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/now-playing/meta.ts\nconst meta = defineMeta({\n\tname: \"now-playing\",\n\ttitle: \"Now Playing\",\n\tdescription: \"A compact music mini-player that expands in place, with a morphing play button, a like and a seek slider.\",\n\tcategory: \"display\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"now-playing.tsx\"],\n\ta11y: \"The track itself is the expand control: a button named by track and artist with aria-expanded. Restart, Play/Pause (its name follows the state), Next and a Like toggle (aria-pressed) are real buttons. Progress is a role=\\\"slider\\\" with \\\"0:52 of 3:34\\\" value text: arrows seek 5 seconds (mirrored in right-to-left layouts), PageUp/PageDown 30, Home/End the ends, and Space plays or pauses while it has focus. Controls that are hidden while collapsed leave the tab order. Album art is decorative unless artworkAlt is given. Motion stops under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/notify-button/meta.ts\nconst meta = defineMeta({\n\tname: \"notify-button\",\n\ttitle: \"Notify Button\",\n\tdescription: \"A “notify me” toggle: the bell rings and the label grows elastically into the confirmation.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"notify-button.tsx\"],\n\ta11y: \"A toggle button exposed with aria-pressed. Its accessible name stays the resting label — the confirmation label is aria-hidden — and the confirmation is announced once through a polite live region when it turns on. The bell is decorative; its ring and the width spring stop under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/tick-progress/meta.ts\nconst meta = defineMeta({\n\tname: \"tick-progress\",\n\ttitle: \"Tick Progress\",\n\tdescription: \"A percentage drawn as a row of waveform ticks under a big figure — a progress bar, or a slider with hover preview.\",\n\tcategory: \"data\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"tick-progress.tsx\"],\n\ta11y: \"Display mode is a role=\\\"progressbar\\\" with aria-valuenow and a \\\"%\\\" value text. `interactive` makes it a role=\\\"slider\\\": focusable, with a focus ring; arrows step one tick (mirrored in right-to-left layouts), PageUp/PageDown five, Home/End the ends, and keys commit immediately as the APG slider pattern requires. Hover preview and click-to-commit are pointer conveniences over that. The ticks and the figure are aria-hidden because the role already carries the value; name it with aria-label or aria-labelledby.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/escape-button/meta.ts\nconst meta = defineMeta({\n\tname: \"escape-button\",\n\ttitle: \"Escape Button\",\n\tdescription: \"A novelty button that scoots away from an approaching mouse, then gives up after a few escapes.\",\n\tcategory: \"effects\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"escape-button.tsx\"],\n\ta11y: \"The dodging is a mouse-and-pen game only: it never moves for touch, a coarse pointer, reduced motion, or while the button has focus, so keyboard users can Tab to it and press it at once. It gives up after `patience` escapes (4 by default) and stays put, and a press always goes through in every state — the movement is visual, never a lock. It is a real button with its visible label as its name.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/expanding-search/meta.ts\nconst meta = defineMeta({\n\tname: \"expanding-search\",\n\ttitle: \"Expanding Search\",\n\tdescription: \"A search button that opens into a field, clears, and collapses back with Escape — ready for a combobox.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"expanding-search.tsx\"],\n\ta11y: \"A labelled search landmark. The trigger is a button with aria-expanded and aria-controls; opening moves focus into the field. Escape clears the text first, then collapses and returns focus to the trigger; leaving an empty field collapses it without moving focus. The collapsed field is visibility-hidden, so it is out of the tab order. `inputProps` reaches the input for combobox wiring, and its onKeyDown can preventDefault to keep Escape for its own listbox.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/dial/meta.ts\nconst meta = defineMeta({\n\tname: \"dial\",\n\ttitle: \"Dial\",\n\tdescription: \"A rotary dial input — a knob inside a filling arc with detent ticks — turned by drag, wheel or keys.\",\n\tcategory: \"form\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [],\n\tfiles: [\"dial.tsx\"],\n\ta11y: \"The dial is the role=\\\"slider\\\" element (name it with aria-label or aria-labelledby), with aria-valuetext from `format`. Arrow keys step, PageUp/PageDown move a page, Home/End go to the ends. Dragging points the notch at the pointer; the wheel turns it only while it has focus, so it never steals page scroll. Clockwise means more in every language, so neither the dial nor its arrow keys mirror in right-to-left layouts. The knob's rotation settles instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/components/command-bar/meta.ts\nconst meta = defineMeta({\n\tname: \"command-bar\",\n\ttitle: \"Command Bar\",\n\tdescription: \"A compact one-row prompt bar — auto-growing field, dictate toggle and send — composed from AI Prompt Input.\",\n\tcategory: \"ai\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"ai-prompt-input\"],\n\tfiles: [\"command-bar.tsx\"],\n\ta11y: \"Inherits AI Prompt Input's behaviour: Enter sends, Shift+Enter adds a newline, never mid-IME-composition, and the submit control renames itself to \\\"Stop\\\" while sending. The field is named by `label`. Send is disabled while the field is empty. Dictate is a toggle button (aria-pressed); the consumer owns the microphone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/admin-dashboard/meta.ts\nconst meta = defineMeta({\n\tname: \"admin-dashboard\",\n\tkind: \"block\",\n\ttitle: \"Admin dashboard\",\n\tdescription: \"An administration console: the shell every admin page shares — navigation, breadcrumb, account menu — and the overview that is its front page, with what needs attention first.\",\n\tcategory: \"layout\",\n\tstatus: \"stable\",\n\taccess: \"pro\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"alert\",\n\t\t\"avatar\",\n\t\t\"badge\",\n\t\t\"breadcrumb\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"dropdown-menu\",\n\t\t\"empty-state\",\n\t\t\"metric-delta\",\n\t\t\"sidebar\",\n\t\t\"table\"\n\t],\n\tfiles: [\"admin-dashboard.tsx\"],\n\ta11y: \"What needs attention comes first and is the only loud part of the page; it is not a live region, because the list is there on load and re-announcing it on every refresh would make the console unusable. The navigation is a landmark called Admin, the breadcrumb another, so neither is one more thing called 'navigation'. The current page carries aria-current, a count beside a nav item says what it counts, the account menu is named after its owner, and each Open button is named after its account. Every status is a word, with colour agreeing rather than replacing.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/admin-users/meta.ts\nconst meta = defineMeta({\n\tname: \"admin-users\",\n\tkind: \"block\",\n\ttitle: \"Admin — users\",\n\tdescription: \"A team administration table with filtering, sorting and per-row actions.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [\"@tanstack/react-table\"],\n\tregistryDependencies: [\n\t\t\"avatar\",\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"data-table\",\n\t\t\"dropdown-menu\",\n\t\t\"empty-state\",\n\t\t\"input\",\n\t\t\"label\"\n\t],\n\tfiles: [\"admin-users.tsx\"],\n\ta11y: \"Filtering changes the results without the user asking, so the matching count is announced politely. The filter has a real label rather than only a placeholder, which disappears the moment anyone types. Each row's action button is named after its row — four identical \\\"Actions\\\" buttons say nothing about which row you are on.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/agent-console/meta.ts\nconst meta = defineMeta({\n\tname: \"agent-console\",\n\tkind: \"block\",\n\ttitle: \"Agent console\",\n\tdescription: \"One agent run, watched: the plan it is working from, the approval it is blocked on, and the ledger of what it has already done.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"ai-action-ledger\",\n\t\t\"ai-agent-plan\",\n\t\t\"ai-agent-status\",\n\t\t\"ai-approval-request\",\n\t\t\"ai-token-usage\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"empty-state\"\n\t],\n\tfiles: [\"agent-console.tsx\"],\n\ta11y: \"Whatever the run is blocked on is rendered first rather than below a scrolling plan, because it is the only part of the page waiting on a person. This is the one agent on the page, so its status announces its own transitions — a list of runs each doing that would be noise, which is why the underlying component makes it opt in. Every completed action states whether it can be undone, offset or not taken back at all, in words, since presenting all three behind one Undo is a lie discovered after the click.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/ai-chat/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-chat\",\n\tkind: \"block\",\n\ttitle: \"AI Chat\",\n\tdescription: \"A complete chat surface: transcript, reasoning, tool calls, sources and composer.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"ai-conversation\",\n\t\t\"ai-message\",\n\t\t\"ai-model-selector\",\n\t\t\"ai-prompt-input\",\n\t\t\"ai-reasoning\",\n\t\t\"ai-response\",\n\t\t\"ai-sources\",\n\t\t\"ai-token-usage\",\n\t\t\"ai-tool\",\n\t\t\"button\",\n\t\t\"empty-state\"\n\t],\n\tfiles: [\"ai-chat.tsx\"],\n\ta11y: \"Assembled from the AI components rather than reimplementing them, so their decisions still hold: the transcript is a list and not a live region, state is announced separately through ConversationStatus, and the composer will not send while an IME composition is active. Tool payloads are named per tool, so two open tool calls do not present two regions called \\\"Result\\\".\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/ai-dashboard/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-dashboard\",\n\tkind: \"block\",\n\ttitle: \"AI dashboard\",\n\tdescription: \"What the AI features cost and whether they worked: tokens, spend, failure rate, a breakdown by model, and the runs still going.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"ai-agent-status\",\n\t\t\"ai-token-usage\",\n\t\t\"card\",\n\t\t\"empty-state\",\n\t\t\"metric-delta\",\n\t\t\"table\"\n\t],\n\tfiles: [\"ai-dashboard.tsx\"],\n\ta11y: \"Spend and failure rate are declared lower-is-better, so a rising bill is not painted green — which is the mistake most usage dashboards make. The totals row is a real table footer rather than a last body row that looks like one, because inside the body it is announced as another model and there is no model called Total. Statuses in the run list do not announce their own changes: several runs each doing that turns a list into a stream of interruptions, and watching one run is the agent console's job.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/ai-workspace/meta.ts\nconst meta = defineMeta({\n\tname: \"ai-workspace\",\n\tkind: \"block\",\n\ttitle: \"AI workspace\",\n\tdescription: \"A whole AI application surface: conversations down one side, the active transcript with reasoning, tool calls and sources in the middle, and the context — window usage, attachments and a structured result — on the other.\",\n\tcategory: \"ai\",\n\tstatus: \"stable\",\n\taccess: \"pro\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"ai-conversation\",\n\t\t\"ai-message\",\n\t\t\"ai-model-selector\",\n\t\t\"ai-prompt-input\",\n\t\t\"ai-reasoning\",\n\t\t\"ai-response\",\n\t\t\"ai-sources\",\n\t\t\"ai-structured-output\",\n\t\t\"ai-token-usage\",\n\t\t\"ai-tool\",\n\t\t\"button\",\n\t\t\"empty-state\",\n\t\t\"sidebar\"\n\t],\n\tfiles: [\"ai-workspace.tsx\"],\n\ta11y: \"Three landmarks, each named: the conversation list is a navigation called Conversations, the transcript is the main content, and the context is a complementary region called Context, so a screen reader user can jump between them and skip the one they do not want. The transcript is a list and never a live region; the response state is announced from a separate status line, so a streaming answer does not read itself aloud token by token. Each attachment's remove button is named after its file. On a narrow screen the conversation list becomes a sheet with a focus trap and an Escape key, not a div slid over content that stays reachable by Tab.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/analytics/meta.ts\nconst meta = defineMeta({\n\tname: \"analytics\",\n\tkind: \"block\",\n\ttitle: \"Analytics\",\n\tdescription: \"An analytics page: headline metrics against the previous period, a series over time, and the breakdown that made it up.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"metric-delta\",\n\t\t\"select\",\n\t\t\"table\"\n\t],\n\tfiles: [\"analytics.tsx\"],\n\ta11y: \"The bars are declared as a single image with a one-sentence summary — where the series started, where it ended, and where its extremes were — rather than as forty separately labelled elements, which reads as noise instead of a shape. The exact numbers live in a real table that is collapsed for everyone and revealed for everyone from a control on the page, rather than in a visually-hidden copy only screen readers can reach, because the hidden copy is the one that goes stale. The range selector is a select rather than a tab set: tabs promise panels, and a range selector has none — it changes the data behind the whole page, so styled-as-tabs it points every tab at a panel that does not exist.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/billing/meta.ts\nconst meta = defineMeta({\n\tname: \"billing\",\n\tkind: \"block\",\n\ttitle: \"Billing\",\n\tdescription: \"A billing page: the current plan, metered usage against its limits, the payment method and the invoice history.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"empty-state\",\n\t\t\"progress\",\n\t\t\"table\"\n\t],\n\tfiles: [\"billing.tsx\"],\n\ta11y: \"Every usage meter states where it stands in words — \\\"8 of 10 seats used, 2 left\\\", or how far over the limit it is — because a bar that turns red says nothing to a screen reader and nothing to anyone who cannot tell the colours apart; the bar itself is hidden from the accessibility tree so the same fact is not announced twice. Each invoice download is named after its invoice rather than being one of ten identical \\\"Download\\\" links, which is all a links list would show. A card's last four digits are spoken as digits instead of as a four-figure number. Dates carry a machine-readable time element.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/command-center/meta.ts\nconst meta = defineMeta({\n\tname: \"command-center\",\n\tkind: \"block\",\n\ttitle: \"Command center\",\n\tdescription: \"Operations at a glance: service health worst-first, open incidents by severity, capacity meters, a filterable log stream, and a command palette for every action an operator reaches for.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\taccess: \"pro\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"alert\",\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"command\",\n\t\t\"empty-state\",\n\t\t\"log-viewer\",\n\t\t\"meter\"\n\t],\n\tfiles: [\"command-center.tsx\"],\n\ta11y: \"The overall status is one sentence computed from the worst service, and it comes first — 'one service is down' rather than a wall of tiles to scan. It is not a live region: the page is refreshed by the application, and a status that re-announces on every poll is one nobody can work beside. Health and severity are words on every row, sorted on, with colour agreeing rather than replacing. ⌘K opens the palette but the Actions button is always visible, so the shortcut is an accelerator and not the only way in. New log lines are not read aloud unless asked.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/crm/meta.ts\nconst meta = defineMeta({\n\tname: \"crm\",\n\tkind: \"block\",\n\ttitle: \"CRM\",\n\tdescription: \"A sales pipeline: open value by stage, the deals in it with filtering and sorting, the win rate and cycle length, and the last few touches.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\taccess: \"pro\",\n\tdependencies: [\"@tanstack/react-table\"],\n\tregistryDependencies: [\n\t\t\"activity-feed\",\n\t\t\"avatar\",\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"data-table\",\n\t\t\"empty-state\",\n\t\t\"input\",\n\t\t\"label\",\n\t\t\"meter\",\n\t\t\"metric-delta\",\n\t\t\"select\"\n\t],\n\tfiles: [\"crm.tsx\"],\n\ta11y: \"The pipeline is one bar split by stage, with the same figures listed beside it as numbers, so nobody reads a proportion off a coloured segment; the meter announces the total and its legend names every stage. Sales cycle is declared lower-is-better, so a slowing pipeline is not painted green. The deal filter has a real label and announces the matching count politely, and each Open button is named after its deal rather than being one of ten identical buttons.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/dashboard/meta.ts\nconst meta = defineMeta({\n\tname: \"dashboard\",\n\tkind: \"block\",\n\ttitle: \"Dashboard\",\n\tdescription: \"An overview page with headline metrics and a recent activity feed.\",\n\tcategory: \"data\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"activity-feed\",\n\t\t\"badge\",\n\t\t\"card\",\n\t\t\"skeleton\"\n\t],\n\tfiles: [\"dashboard.tsx\"],\n\ta11y: \"Each metric states its change in words — \\\"up 12.4%\\\" — rather than by a coloured arrow, which is unreadable to a screen reader and ambiguous to anyone who cannot distinguish the colours. Whether a rise is good is configurable, since churn going up is not. The metrics sit in a named region so they can be jumped to.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/forgot-password/meta.ts\nconst meta = defineMeta({\n\tname: \"forgot-password\",\n\tkind: \"block\",\n\ttitle: \"Forgot password\",\n\tdescription: \"A password reset request, with a confirmation that does not leak account existence.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"empty-state\",\n\t\t\"form\",\n\t\t\"input\"\n\t],\n\tfiles: [\"forgot-password.tsx\"],\n\ta11y: \"The confirmation replaces the form, so it is a polite live region — otherwise a screen reader user submits and hears nothing. The wording is deliberately neutral about whether the address exists: confirming it would turn this form into an account enumeration oracle.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/login/meta.ts\nconst meta = defineMeta({\n\tname: \"login\",\n\tkind: \"block\",\n\ttitle: \"Login\",\n\tdescription: \"A sign-in form with validation, social providers and a busy state.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"checkbox\",\n\t\t\"form\",\n\t\t\"input\",\n\t\t\"label\",\n\t\t\"separator\"\n\t],\n\tfiles: [\"login.tsx\"],\n\ta11y: \"Email and password fields carry the right type and autocomplete, so password managers and mobile keyboards behave. Field errors are tied to their inputs through the Form wiring; a server error is an assertive alert, because it arrived after the user acted and explains why nothing happened. The submit button reports its own busy state rather than going quiet.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/onboarding/meta.ts\nconst meta = defineMeta({\n\tname: \"onboarding\",\n\tkind: \"block\",\n\ttitle: \"Onboarding\",\n\tdescription: \"A setup checklist: what is done, which step is current, and what is blocked and why.\",\n\tcategory: \"feedback\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"progress\"\n\t],\n\tfiles: [\"onboarding.tsx\"],\n\ta11y: \"Every step states its state in a word — Done, In progress, Not started, Blocked — because a green tick announces nothing and means nothing to a reader who cannot tell the colours apart; the tick and the step number are decoration on top of that. Progress is given as a count rather than only as a bar, and the bar is hidden so the same fact is not announced twice. The current step carries aria-current, so it can be found rather than merely seen. Blocked is a distinct state from not-started and says why. Each step's action is named after its step, so six buttons are not six identical \\\"Start\\\" entries in a controls list.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/pricing/meta.ts\nconst meta = defineMeta({\n\tname: \"pricing\",\n\tkind: \"block\",\n\ttitle: \"Pricing\",\n\tdescription: \"A pricing section with plan cards and a monthly/yearly toggle.\",\n\tcategory: \"layout\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"label\",\n\t\t\"switch\"\n\t],\n\tfiles: [\"pricing.tsx\"],\n\ta11y: \"Switching the billing period rewrites every price on the page, so the change is announced politely rather than happening silently. Each plan's call to action names the plan — three buttons all reading \\\"Choose\\\" are indistinguishable out of context. Feature ticks are decorative; the feature text carries the meaning.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/settings/meta.ts\nconst meta = defineMeta({\n\tname: \"settings\",\n\tkind: \"block\",\n\ttitle: \"Settings\",\n\tdescription: \"A settings page with a profile form, immediate toggles and a danger zone.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"avatar\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"dialog\",\n\t\t\"form\",\n\t\t\"input\",\n\t\t\"label\",\n\t\t\"separator\",\n\t\t\"switch\",\n\t\t\"tabs\"\n\t],\n\tfiles: [\"settings.tsx\"],\n\ta11y: \"Switches apply immediately and have no Save button — a switch that needs saving is a broken promise, so staged changes live in the form instead. The delete confirmation names what will be destroyed and requires typing the account's email, so the destructive button cannot be reached by muscle memory.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/signup/meta.ts\nconst meta = defineMeta({\n\tname: \"signup\",\n\tkind: \"block\",\n\ttitle: \"Sign up\",\n\tdescription: \"An account creation form with a password strength hint and terms acceptance.\",\n\tcategory: \"form\",\n\tstatus: \"stable\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"checkbox\",\n\t\t\"form\",\n\t\t\"input\",\n\t\t\"progress\"\n\t],\n\tfiles: [\"signup.tsx\"],\n\ta11y: \"The strength label is text and the bar beside it is aria-hidden, so the estimate is not announced twice. autoComplete=\\\"new-password\\\" tells password managers to offer a generated password rather than an existing one. Strength is a hint, never a gate: the form is validated on length alone.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/cta-banner/meta.ts\nconst meta = defineMeta({\n\tname: \"cta-banner\",\n\tkind: \"block\",\n\ttitle: \"CTA banner\",\n\tdescription: \"A compact banner call to action: headline, one line of copy and a single action.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"card\"],\n\tfiles: [\"cta-banner.tsx\"],\n\ta11y: \"One section landmark named by its headline, whose level is a prop (default 2). The action is a real link whose arrow mirrors in right-to-left text. The banner settles in once, on first scroll into view, and instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/cta-centered/meta.ts\nconst meta = defineMeta({\n\tname: \"cta-centered\",\n\tkind: \"block\",\n\ttitle: \"CTA centered\",\n\tdescription: \"A centred call to action with two actions on a muted band with a soft glow.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"cta-centered.tsx\"],\n\ta11y: \"One section landmark named by its headline, whose level is a prop (default 2). Both actions are real links. The glow is aria-hidden decoration. The copy rises in once, on first scroll into view, and settles instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/cta-split-image/meta.ts\nconst meta = defineMeta({\n\tname: \"cta-split-image\",\n\tkind: \"block\",\n\ttitle: \"CTA split image\",\n\tdescription: \"A two-column call to action whose copy and image slide in from either side.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"cta-split-image.tsx\"],\n\ta11y: \"One section landmark named by its headline, whose level is a prop (default 2). Actions are real links. The image is content and requires alt text; the placeholder shown without one is aria-hidden. The slide-in follows reading direction, plays once on first scroll into view and settles instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/faq-accordion/meta.ts\nconst meta = defineMeta({\n\tname: \"faq-accordion\",\n\tkind: \"block\",\n\ttitle: \"FAQ Accordion\",\n\tdescription: \"Frequently asked questions as bordered cards, one answer open at a time.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"accordion\"],\n\tfiles: [\"faq-accordion.tsx\"],\n\ta11y: \"A section named by its heading. Each question is the accordion's button inside a heading, so questions are reachable by heading navigation, carry aria-expanded, and arrow keys move between them. The staggered entrance only hides a list that starts below the fold, and never under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/faq-categorized/meta.ts\nconst meta = defineMeta({\n\tname: \"faq-categorized\",\n\tkind: \"block\",\n\ttitle: \"FAQ Categorized\",\n\tdescription: \"Frequently asked questions in topic tabs, each topic an accordion of answers.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"accordion\", \"tabs\"],\n\tfiles: [\"faq-categorized.tsx\"],\n\ta11y: \"Topics are real tabs — a named tablist with arrow keys and a panel each — where the source had buttons with role=tab and no panels. Each question is an accordion button inside a heading. Changing topic closes the open answer, since it belongs to the topic being left. The staggered entrance collapses to nothing under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/faq-searchable/meta.ts\nconst meta = defineMeta({\n\tname: \"faq-searchable\",\n\tkind: \"block\",\n\ttitle: \"FAQ Searchable\",\n\tdescription: \"Frequently asked questions filtered by a search field as you type.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"accordion\",\n\t\t\"input\",\n\t\t\"label\"\n\t],\n\tfiles: [\"faq-searchable.tsx\"],\n\ta11y: \"The search field has a real (visually hidden) label, not only a placeholder that disappears once someone types. Filtering replaces the list, so the number of matches — or the no-results message — is a polite live region. Questions are accordion buttons inside headings; a new search closes the open answer, since it may no longer be in the list.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/faq-tabbed-grid/meta.ts\nconst meta = defineMeta({\n\tname: \"faq-tabbed-grid\",\n\tkind: \"block\",\n\ttitle: \"FAQ Tabbed Grid\",\n\tdescription: \"Frequently asked questions in category tabs, each category a grid of always-visible answers.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"tabs\"],\n\tfiles: [\"faq-tabbed-grid.tsx\"],\n\ta11y: \"Categories are real tabs (a named tablist, arrow keys, one panel each) whose underline slides between them. Each panel is a description list — questions as terms, answers as details — so the pairing is announced. Icons are decorative. The staggered rise of a newly shown panel collapses to nothing under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/features-alternating/meta.ts\nconst meta = defineMeta({\n\tname: \"features-alternating\",\n\tkind: \"block\",\n\ttitle: \"Features alternating\",\n\tdescription: \"Feature rows that alternate copy and media from side to side, each sliding in from its own side as it scrolls into view.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"features-alternating.tsx\"],\n\ta11y: \"One section landmark named by its heading (level set with `headingLevel`, row titles one below); the rows are a list. Sides swap with grid order rather than `direction: rtl`, so reading order always follows the source order and the layout mirrors correctly on a right-to-left page, as does the slide. Media is a prop — pass an image with real alt text; the fallback panel is decorative. Rows starting below the fold are hidden until they scroll in, never under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/features-bento/meta.ts\nconst meta = defineMeta({\n\tname: \"features-bento\",\n\tkind: \"block\",\n\ttitle: \"Features bento\",\n\tdescription: \"A bento grid of features: a two-by-two lead cell carrying a visual — by default a small analytics panel whose bars grow in — among smaller cells.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"badge\", \"card\"],\n\tfiles: [\"features-bento.tsx\"],\n\ta11y: \"One section landmark named by its heading (level set with `headingLevel`, cell titles one below). The cells are a list. The analytics panel states its figure and change in text; its bars are decorative and aria-hidden. Only a grid starting below the fold is hidden before it scrolls in, and never under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/features-icon-grid/meta.ts\nconst meta = defineMeta({\n\tname: \"features-icon-grid\",\n\tkind: \"block\",\n\ttitle: \"Features icon grid\",\n\tdescription: \"A features section: a grid of cards, each an icon, a title and a sentence, rising into view as the page scrolls.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"card\"],\n\tfiles: [\"features-icon-grid.tsx\"],\n\ta11y: \"One section landmark, named by its heading, whose level is set with `headingLevel`; feature titles sit one level below it so the block fits any page outline. The features are a real list, and icons are decorative (aria-hidden) — the title carries the meaning. Only a grid that starts below the fold is hidden before it scrolls in, so nothing on screen flashes, and under reduced motion or without IntersectionObserver nothing is hidden at all.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/footer-mega/meta.ts\nconst meta = defineMeta({\n\tname: \"footer-mega\",\n\tkind: \"block\",\n\ttitle: \"Footer Mega\",\n\tdescription: \"A mega footer: logo, four link columns and a newsletter sign-up, over a copyright and social bar.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"input\",\n\t\t\"label\"\n\t],\n\tfiles: [\"footer-mega.tsx\"],\n\ta11y: \"A footer landmark with its link columns in a named nav, each titled by a heading of configurable level. The newsletter is a form named by its heading, with a labelled email field (autocomplete=email); an invalid address marks the field aria-invalid and ties the message to it, and a successful sign-up is confirmed in a status region. Social links always carry their name as text, and external ones say they open a new tab.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/footer-minimal/meta.ts\nconst meta = defineMeta({\n\tname: \"footer-minimal\",\n\tkind: \"block\",\n\ttitle: \"Footer Minimal\",\n\tdescription: \"A one-row footer: logo and copyright, a few links, and social links.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"footer-minimal.tsx\"],\n\ta11y: \"A footer landmark with its links in a named nav. The hover underline grows from the inline start and is also drawn on keyboard focus. Social links are a named list and always carry their name as text; external ones say they open a new tab. The separator between logo and copyright is decorative. The entrance only hides a footer below the fold, never under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/footer-newsletter/meta.ts\nconst meta = defineMeta({\n\tname: \"footer-newsletter\",\n\tkind: \"block\",\n\ttitle: \"Footer Newsletter\",\n\tdescription: \"A site footer with a newsletter sign-up and social links beside four columns of links.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"button\",\n\t\t\"input\",\n\t\t\"label\"\n\t],\n\tfiles: [\"footer-newsletter.tsx\"],\n\ta11y: \"A footer landmark with its link columns in a named nav, each titled by a heading of configurable level. The newsletter is a form named by its heading, with a labelled email field (autocomplete=email); an invalid address marks the field aria-invalid and ties the message to it, and a successful sign-up is confirmed in a status region. Social links always carry their name as text, and external ones say they open a new tab.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/footer-simple/meta.ts\nconst meta = defineMeta({\n\tname: \"footer-simple\",\n\tkind: \"block\",\n\ttitle: \"Footer Simple\",\n\tdescription: \"A site footer with the brand and social links beside three columns of links.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"footer-simple.tsx\"],\n\ta11y: \"A footer landmark whose link columns sit in a named nav, each column titled by a heading whose level is configurable. Social links are a named list and always carry their name as text — visually hidden when an icon is shown — and external ones say they open a new tab. The entrance only hides a footer that starts below the fold, and never under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/hero-grid/meta.ts\nconst meta = defineMeta({\n\tname: \"hero-grid\",\n\tkind: \"block\",\n\ttitle: \"Hero grid\",\n\tdescription: \"A centred hero over a grid of squares that light up under the pointer.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"text-effect\"],\n\tfiles: [\"hero-grid.tsx\"],\n\ta11y: \"One section landmark named by its headline, whose level is a prop so the block fits any page outline. The hover grid is aria-hidden decoration made of plain elements, not buttons, so it adds no tab stops. Calls to action are real links. The entrance and the hover fade run on the motion scale and settle at rest under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/hero-minimal/meta.ts\nconst meta = defineMeta({\n\tname: \"hero-minimal\",\n\tkind: \"block\",\n\ttitle: \"Hero minimal\",\n\tdescription: \"A quiet hero: a headline whose letters draw together, one line of copy and a text link.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"hero-minimal.tsx\"],\n\ta11y: \"One section landmark named by its headline, whose level is a prop. The link is a real link with a visible underline, not colour alone, and its arrow mirrors in right-to-left text. The fade and letter-spacing entrance play once, on first scroll into view, and settle instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/hero-perspective-grid/meta.ts\nconst meta = defineMeta({\n\tname: \"hero-perspective-grid\",\n\tkind: \"block\",\n\ttitle: \"Hero perspective grid\",\n\tdescription: \"A centred hero over a tilted 3D plane of tiles that light up under the pointer.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"text-effect\"],\n\tfiles: [\"hero-perspective-grid.tsx\"],\n\ta11y: \"One section landmark named by its headline, whose level is a prop. The tile plane is aria-hidden decoration with no focusable parts. Calls to action are real links. Under reduced motion the entrance and the tile fade settle instantly and the plane lies flat instead of tilting in perspective.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/hero-product/meta.ts\nconst meta = defineMeta({\n\tname: \"hero-product\",\n\tkind: \"block\",\n\ttitle: \"Hero product\",\n\tdescription: \"A centred hero with an announcement, headline and two calls to action over a large product screenshot.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"text-effect\"\n\t],\n\tfiles: [\"hero-product.tsx\"],\n\ta11y: \"One section landmark named by its headline, whose level is a prop. The announcement and calls to action are real links. The screenshot is content and requires alt text; the placeholder shown without one is aria-hidden. The staged entrance runs on the motion scale and the hover lift and tilt are motion-safe only, so under reduced motion nothing moves.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/hero-split-image/meta.ts\nconst meta = defineMeta({\n\tname: \"hero-split-image\",\n\tkind: \"block\",\n\ttitle: \"Hero split image\",\n\tdescription: \"A two-column hero with a headline, reviewer avatars, a star rating and calls to action beside an image.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"avatar-group\",\n\t\t\"button\",\n\t\t\"text-effect\"\n\t],\n\tfiles: [\"hero-split-image.tsx\"],\n\ta11y: \"One section landmark named by its headline, whose level is a prop. The star rating is one image named in words (\\\"Rated 4.9 out of 5\\\"), and the visible figure beside it is hidden so it is not read twice. Reviewer avatars carry their names. The image is content and requires alt text; the placeholder shown without one is aria-hidden. The entrance runs on the motion scale and settles at rest under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/hero-spotlight/meta.ts\nconst meta = defineMeta({\n\tname: \"hero-spotlight\",\n\tkind: \"block\",\n\ttitle: \"Hero spotlight\",\n\tdescription: \"A dark hero lit by a spotlight beam that opens as it scrolls into view.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\"],\n\tfiles: [\"hero-spotlight.tsx\"],\n\ta11y: \"One section landmark named by its headline, whose level is a prop. It is dark in every theme through the theme's own dark tokens, so contrast holds. The beam and dust are aria-hidden decoration; the dust twinkles three times and rests rather than looping forever. The entrance plays once, on first scroll into view, and settles instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/logo-cloud-simple/meta.ts\nconst meta = defineMeta({\n\tname: \"logo-cloud-simple\",\n\tkind: \"block\",\n\ttitle: \"Logo cloud simple\",\n\tdescription: \"A heading, a line of copy and a still grid of customer logos, dimmed until hovered or focused.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [],\n\tfiles: [\"logo-cloud-simple.tsx\"],\n\ta11y: \"One section landmark named by its heading (level set with `headingLevel`). The logos are a list; each is named by its organisation's `name`, announced once — the logo graphic itself is aria-hidden so an SVG with no title or an image with a stray alt cannot double or garble it. Linked entries are real links with the shared focus ring, and focus brightens an entry exactly as hover does.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/logo-grid-tooltips/meta.ts\nconst meta = defineMeta({\n\tname: \"logo-grid-tooltips\",\n\tkind: \"block\",\n\ttitle: \"Logo grid tooltips\",\n\tdescription: \"A panel of grayscale logos that lift into colour and name themselves in a tooltip on hover or focus, in three to six columns.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [\"class-variance-authority\"],\n\tregistryDependencies: [\"tooltip\"],\n\tfiles: [\"logo-grid-tooltips.tsx\"],\n\ta11y: \"One section landmark named by its heading (level set with `headingLevel`); the logos are a list. Each entry is named by its organisation and the graphic is aria-hidden; the tooltip only repeats that name, so nothing depends on it. The source's hover state and tooltip were pointer-only — here linked logos show both on keyboard focus too, with the shared focus ring.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/logo-links-marquee/meta.ts\nconst meta = defineMeta({\n\tname: \"logo-links-marquee\",\n\tkind: \"block\",\n\ttitle: \"Logo links marquee\",\n\tdescription: \"A heading over an endless row of large, linked logos that pop in one after another and tilt on hover, with a pause control.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"marquee\"],\n\tfiles: [\"logo-links-marquee.tsx\"],\n\ta11y: \"One section landmark named by its heading (level set with `headingLevel`). The row is Marquee, so each logo link exists once for assistive technology and the keyboard — the copies that close the loop are aria-hidden and inert — and it pauses on hover and focus. A visible Pause button stops it outright (WCAG 2.2.2); under reduced motion the row stops and becomes a scrollable region, and the button is hidden because there is nothing to pause. Each entry is named by its organisation; the graphic is aria-hidden.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/logo-marquee/meta.ts\nconst meta = defineMeta({\n\tname: \"logo-marquee\",\n\tkind: \"block\",\n\ttitle: \"Logo marquee\",\n\tdescription: \"A heading over a quiet, dimmed marquee of logos with a named speed, a direction and a pause control.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"button\", \"marquee\"],\n\tfiles: [\"logo-marquee.tsx\"],\n\ta11y: \"One section landmark named by its heading (level set with `headingLevel`). Built on Marquee: each logo exists once for assistive technology and the keyboard, the row pauses on hover and focus, runs mirrored on right-to-left pages, and stops under reduced motion. A visible Pause button stops it outright (WCAG 2.2.2). Each entry is named by its organisation; the graphic is aria-hidden, and focus brightens an entry as hover does.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/pricing-single-plan/meta.ts\nconst meta = defineMeta({\n\tname: \"pricing-single-plan\",\n\tkind: \"block\",\n\ttitle: \"Pricing Single Plan\",\n\tdescription: \"One plan with every feature, under a monthly/annual switch with a price that rolls.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"label\",\n\t\t\"number-flow\",\n\t\t\"radio-group\"\n\t],\n\tfiles: [\"pricing-single-plan.tsx\"],\n\ta11y: \"The billing period is a named radio group (arrow keys move between Monthly and Annually); switching it rewrites the price, so the change is announced politely, and the price is read once as its settled value. The call to action names the plan (\\\"Get started, Pro plan\\\") and is a real link. The accent stripe and feature ticks are decorative. The entrance and the rolling digits settle instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/pricing-three-tier/meta.ts\nconst meta = defineMeta({\n\tname: \"pricing-three-tier\",\n\tkind: \"block\",\n\ttitle: \"Pricing Three Tier\",\n\tdescription: \"Three plans side by side, the middle one featured, under a monthly/annual switch with prices that roll.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"label\",\n\t\t\"number-flow\",\n\t\t\"radio-group\"\n\t],\n\tfiles: [\"pricing-three-tier.tsx\"],\n\ta11y: \"The billing period is a named radio group (arrow keys move between Monthly and Annually); switching it rewrites every price, so the change is announced politely. Each price is read once, as its settled value, not digit by digit. Each call to action names its plan (\\\"Get started, Pro plan\\\"), links are real links, the recommended plan is marked in text, and feature ticks are decorative. The cards' entrance and the rolling digits settle instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/pricing-two-tier/meta.ts\nconst meta = defineMeta({\n\tname: \"pricing-two-tier\",\n\tkind: \"block\",\n\ttitle: \"Pricing Two Tier\",\n\tdescription: \"A free plan beside a featured paid one, under a monthly/annual switch with prices that roll.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"button\",\n\t\t\"card\",\n\t\t\"label\",\n\t\t\"number-flow\",\n\t\t\"radio-group\"\n\t],\n\tfiles: [\"pricing-two-tier.tsx\"],\n\ta11y: \"The billing period is a named radio group (arrow keys move between Monthly and Annually); switching it rewrites every price, so the change is announced politely. Each price is read once, as its settled value. Each call to action names its plan (\\\"Get started, Pro plan\\\"), links are real links, the recommended plan is marked in text, and feature ticks are decorative. The cards' entrance and the rolling digits settle instantly under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/stats-grid/meta.ts\nconst meta = defineMeta({\n\tname: \"stats-grid\",\n\tkind: \"block\",\n\ttitle: \"Stats grid\",\n\tdescription: \"A heading over a row of big figures, each with a label and a line of context, whose digits roll up from zero as the row scrolls into view.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"card\", \"number-flow\"],\n\tfiles: [\"stats-grid.tsx\"],\n\ta11y: \"One section landmark named by its heading (level set with `headingLevel`). A stat is data, not a heading, so the grid is a description list — label as term, figure as definition. The rolling digits are aria-hidden and each figure's settled, locale-formatted value is read once, so a screen reader never hears the zero the roll starts from. Only a row below the fold is held back to animate; under reduced motion values appear at once.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/stats-trend-cards/meta.ts\nconst meta = defineMeta({\n\tname: \"stats-trend-cards\",\n\tkind: \"block\",\n\ttitle: \"Stats trend cards\",\n\tdescription: \"Metric cards with an icon, a figure that rolls up from zero, a label, a line of context and a trend stated in words.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"badge\",\n\t\t\"card\",\n\t\t\"number-flow\"\n\t],\n\tfiles: [\"stats-trend-cards.tsx\"],\n\ta11y: \"One section landmark named by its heading (level set with `headingLevel`); the cards are a description list. Trends are stated in words (\\\"up 12%\\\") with the arrow hidden, and `polarity` decides whether a rise is good news, so rising churn is never painted green. The rolling digits are aria-hidden and the settled value is read once; icons are decorative. The trend slides in from the inline start, mirrored on right-to-left pages; under reduced motion everything appears at once.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/team-carousel/meta.ts\nconst meta = defineMeta({\n\tname: \"team-carousel\",\n\tkind: \"block\",\n\ttitle: \"Team carousel\",\n\tdescription: \"A large two-tone heading over a swipeable carousel of team member cards — avatar, name, role and a line under a divider — with previous and next buttons.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"avatar\",\n\t\t\"button\",\n\t\t\"separator\"\n\t],\n\tfiles: [\"team-carousel.tsx\"],\n\ta11y: \"Follows the APG carousel pattern: the section is a carousel named by its heading, each card a group with the \\\"slide\\\" role description and a position name (\\\"2 of 6\\\"). The track is a native scroll-snap scroller — swipeable on touch, and once it overflows a focusable, named region the keyboard can scroll — and the previous/next buttons are named, disabled at the ends, mirrored for right-to-left pages and visible at every width. The source's five-second autoplay is removed (WCAG 2.2.2); a button press announces the new position politely. Portraits have empty alt because the name is read next.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/team-grid/meta.ts\nconst meta = defineMeta({\n\tname: \"team-grid\",\n\tkind: \"block\",\n\ttitle: \"Team grid\",\n\tdescription: \"A heading over a grid of team members — a large portrait, name, role, location and bio — rising in one after another.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"avatar\"],\n\tfiles: [\"team-grid.tsx\"],\n\ta11y: \"One section landmark named by its heading (level set with `headingLevel`); members are a list and each name is a heading one level below, so a screen reader can jump person to person. Portraits have empty alt text because the name is read next — a described photo would say the name twice — and the initials fallback is aria-hidden for the same reason. Only a grid starting below the fold is held back to animate, never under reduced motion.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/testimonial-rotator/meta.ts\nconst meta = defineMeta({\n\tname: \"testimonial-rotator\",\n\tkind: \"block\",\n\ttitle: \"Testimonial Rotator\",\n\tdescription: \"One large quotation at a time, rotating on a timer shown by a filling indicator, with a stop/start control.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"avatar\", \"button\"],\n\tfiles: [\"testimonial-rotator.tsx\"],\n\ta11y: \"Follows the APG carousel's rotation rules, which the source (a timer with no way to stop it) did not: a named stop/start button, a pause while the pointer is over the block or focus is inside it, the live region off while rotating and polite otherwise, and no automatic start under reduced motion (WCAG 2.2.2). The section is named by a heading — visually hidden by default — and carries aria-roledescription=\\\"carousel\\\"; the quote is a labelled slide. Indicators are named buttons with aria-current and arrow keys (mirrored in RTL), Home and End. The avatar is hidden, since the name is beside it.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/testimonial-spotlight/meta.ts\nconst meta = defineMeta({\n\tname: \"testimonial-spotlight\",\n\tkind: \"block\",\n\ttitle: \"Testimonial Spotlight\",\n\tdescription: \"A heading beside one testimonial at a time, stepped through with previous and next.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\n\t\t\"avatar\",\n\t\t\"reviews-carousel\",\n\t\t\"text-effect\"\n\t],\n\tfiles: [\"testimonial-spotlight.tsx\"],\n\ta11y: \"A section named by its heading, containing the reviews carousel: a named carousel whose testimonials are labelled slides, only the front one exposed, with named previous/next buttons and arrow keys (mirrored in RTL). The quote's word-by-word blur-in is decorative — an sr-only copy reads it as one sentence — and settles at once under reduced motion. Avatars are hidden, since the name is beside them.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { defineMeta } from \"../../registry/schema.js\";\n//#region src/blocks/testimonial-star-grid/meta.ts\nconst meta = defineMeta({\n\tname: \"testimonial-star-grid\",\n\tkind: \"block\",\n\ttitle: \"Testimonial Star Grid\",\n\tdescription: \"Reviews in a grid, each with a star rating, the quotation and its author.\",\n\tcategory: \"layout\",\n\tstatus: \"beta\",\n\tdependencies: [],\n\tregistryDependencies: [\"avatar\"],\n\tfiles: [\"testimonial-star-grid.tsx\"],\n\ta11y: \"A section named by its heading, with the reviews as a list of figures: a blockquote and a figcaption naming its author. A rating is one image named in words (\\\"Rated 4 out of 5\\\") rather than five unlabelled stars, and colour is not the only difference between filled and empty stars. Avatars are hidden, since the name is beside them. The cascade collapses to nothing under reduced motion, and the hover lift only happens when motion is allowed.\"\n});\n//#endregion\nexport { meta };\n\n//# sourceMappingURL=meta.js.map","import { meta } from \"../blocks/admin-dashboard/meta.js\";\nimport { meta as meta$1 } from \"../blocks/admin-users/meta.js\";\nimport { meta as meta$2 } from \"../blocks/agent-console/meta.js\";\nimport { meta as meta$3 } from \"../blocks/ai-chat/meta.js\";\nimport { meta as meta$4 } from \"../blocks/ai-dashboard/meta.js\";\nimport { meta as meta$5 } from \"../blocks/ai-workspace/meta.js\";\nimport { meta as meta$6 } from \"../blocks/analytics/meta.js\";\nimport { meta as meta$7 } from \"../blocks/billing/meta.js\";\nimport { meta as meta$8 } from \"../blocks/command-center/meta.js\";\nimport { meta as meta$9 } from \"../blocks/crm/meta.js\";\nimport { meta as meta$10 } from \"../blocks/dashboard/meta.js\";\nimport { meta as meta$11 } from \"../blocks/forgot-password/meta.js\";\nimport { meta as meta$12 } from \"../blocks/login/meta.js\";\nimport { meta as meta$13 } from \"../blocks/onboarding/meta.js\";\nimport { meta as meta$14 } from \"../blocks/pricing/meta.js\";\nimport { meta as meta$15 } from \"../blocks/settings/meta.js\";\nimport { meta as meta$16 } from \"../blocks/signup/meta.js\";\nimport { meta as meta$17 } from \"../blocks/cta-banner/meta.js\";\nimport { meta as meta$18 } from \"../blocks/cta-centered/meta.js\";\nimport { meta as meta$19 } from \"../blocks/cta-split-image/meta.js\";\nimport { meta as meta$20 } from \"../blocks/faq-accordion/meta.js\";\nimport { meta as meta$21 } from \"../blocks/faq-categorized/meta.js\";\nimport { meta as meta$22 } from \"../blocks/faq-searchable/meta.js\";\nimport { meta as meta$23 } from \"../blocks/faq-tabbed-grid/meta.js\";\nimport { meta as meta$24 } from \"../blocks/features-alternating/meta.js\";\nimport { meta as meta$25 } from \"../blocks/features-bento/meta.js\";\nimport { meta as meta$26 } from \"../blocks/features-icon-grid/meta.js\";\nimport { meta as meta$27 } from \"../blocks/footer-mega/meta.js\";\nimport { meta as meta$28 } from \"../blocks/footer-minimal/meta.js\";\nimport { meta as meta$29 } from \"../blocks/footer-newsletter/meta.js\";\nimport { meta as meta$30 } from \"../blocks/footer-simple/meta.js\";\nimport { meta as meta$31 } from \"../blocks/hero-grid/meta.js\";\nimport { meta as meta$32 } from \"../blocks/hero-minimal/meta.js\";\nimport { meta as meta$33 } from \"../blocks/hero-perspective-grid/meta.js\";\nimport { meta as meta$34 } from \"../blocks/hero-product/meta.js\";\nimport { meta as meta$35 } from \"../blocks/hero-split-image/meta.js\";\nimport { meta as meta$36 } from \"../blocks/hero-spotlight/meta.js\";\nimport { meta as meta$37 } from \"../blocks/logo-cloud-simple/meta.js\";\nimport { meta as meta$38 } from \"../blocks/logo-grid-tooltips/meta.js\";\nimport { meta as meta$39 } from \"../blocks/logo-links-marquee/meta.js\";\nimport { meta as meta$40 } from \"../blocks/logo-marquee/meta.js\";\nimport { meta as meta$41 } from \"../blocks/pricing-single-plan/meta.js\";\nimport { meta as meta$42 } from \"../blocks/pricing-three-tier/meta.js\";\nimport { meta as meta$43 } from \"../blocks/pricing-two-tier/meta.js\";\nimport { meta as meta$44 } from \"../blocks/stats-grid/meta.js\";\nimport { meta as meta$45 } from \"../blocks/stats-trend-cards/meta.js\";\nimport { meta as meta$46 } from \"../blocks/team-carousel/meta.js\";\nimport { meta as meta$47 } from \"../blocks/team-grid/meta.js\";\nimport { meta as meta$48 } from \"../blocks/testimonial-rotator/meta.js\";\nimport { meta as meta$49 } from \"../blocks/testimonial-spotlight/meta.js\";\nimport { meta as meta$50 } from \"../blocks/testimonial-star-grid/meta.js\";\n//#region src/registry/blocks.ts\n/**\n* Every block in the registry.\n*\n* Kept separate from `componentMetas` for the same reason blocks install into a\n* different directory: they are whole page sections, browsed and used\n* differently from the components they are assembled out of.\n*\n* `meta.test.ts` fails if a block directory exists that is missing from here.\n*/\nconst blockMetas = [\n\tmeta,\n\tmeta$1,\n\tmeta$2,\n\tmeta$3,\n\tmeta$4,\n\tmeta$5,\n\tmeta$6,\n\tmeta$7,\n\tmeta$8,\n\tmeta$9,\n\tmeta$10,\n\tmeta$11,\n\tmeta$12,\n\tmeta$13,\n\tmeta$14,\n\tmeta$15,\n\tmeta$16,\n\tmeta$17,\n\tmeta$18,\n\tmeta$19,\n\tmeta$20,\n\tmeta$21,\n\tmeta$22,\n\tmeta$23,\n\tmeta$24,\n\tmeta$25,\n\tmeta$26,\n\tmeta$27,\n\tmeta$28,\n\tmeta$29,\n\tmeta$30,\n\tmeta$31,\n\tmeta$32,\n\tmeta$33,\n\tmeta$34,\n\tmeta$35,\n\tmeta$36,\n\tmeta$37,\n\tmeta$38,\n\tmeta$39,\n\tmeta$40,\n\tmeta$41,\n\tmeta$42,\n\tmeta$43,\n\tmeta$44,\n\tmeta$45,\n\tmeta$46,\n\tmeta$47,\n\tmeta$48,\n\tmeta$49,\n\tmeta$50\n];\n//#endregion\nexport { blockMetas };\n\n//# sourceMappingURL=blocks.js.map","import { COMPONENT_CATEGORIES, COMPONENT_STATUSES } from \"./schema.js\";\nimport { meta } from \"../components/accordion/meta.js\";\nimport { meta as meta$1 } from \"../components/activity-feed/meta.js\";\nimport { meta as meta$2 } from \"../components/ai-action-ledger/meta.js\";\nimport { meta as meta$3 } from \"../components/ai-agent-plan/meta.js\";\nimport { meta as meta$4 } from \"../components/ai-agent-status/meta.js\";\nimport { meta as meta$5 } from \"../components/ai-approval-request/meta.js\";\nimport { meta as meta$6 } from \"../components/ai-conversation/meta.js\";\nimport { meta as meta$7 } from \"../components/ai-disclosure/meta.js\";\nimport { meta as meta$8 } from \"../components/ai-extraction-review/meta.js\";\nimport { meta as meta$9 } from \"../components/ai-inline-completion/meta.js\";\nimport { meta as meta$10 } from \"../components/ai-message/meta.js\";\nimport { meta as meta$11 } from \"../components/ai-model-selector/meta.js\";\nimport { meta as meta$12 } from \"../components/ai-prompt-input/meta.js\";\nimport { meta as meta$13 } from \"../components/ai-reasoning/meta.js\";\nimport { meta as meta$14 } from \"../components/ai-response/meta.js\";\nimport { meta as meta$15 } from \"../components/ai-sources/meta.js\";\nimport { meta as meta$16 } from \"../components/ai-structured-output/meta.js\";\nimport { meta as meta$17 } from \"../components/ai-suggested-value/meta.js\";\nimport { meta as meta$18 } from \"../components/ai-token-usage/meta.js\";\nimport { meta as meta$19 } from \"../components/ai-tool/meta.js\";\nimport { meta as meta$20 } from \"../components/alert/meta.js\";\nimport { meta as meta$21 } from \"../components/avatar/meta.js\";\nimport { meta as meta$22 } from \"../components/badge/meta.js\";\nimport { meta as meta$23 } from \"../components/breadcrumb/meta.js\";\nimport { meta as meta$24 } from \"../components/button/meta.js\";\nimport { meta as meta$25 } from \"../components/calendar/meta.js\";\nimport { meta as meta$26 } from \"../components/card/meta.js\";\nimport { meta as meta$27 } from \"../components/checkbox/meta.js\";\nimport { meta as meta$28 } from \"../components/code-block/meta.js\";\nimport { meta as meta$29 } from \"../components/collapsible/meta.js\";\nimport { meta as meta$30 } from \"../components/combobox/meta.js\";\nimport { meta as meta$31 } from \"../components/command/meta.js\";\nimport { meta as meta$32 } from \"../components/confirm-typed/meta.js\";\nimport { meta as meta$33 } from \"../components/cron-editor/meta.js\";\nimport { meta as meta$34 } from \"../components/data-table/meta.js\";\nimport { meta as meta$35 } from \"../components/date-picker/meta.js\";\nimport { meta as meta$36 } from \"../components/direction/meta.js\";\nimport { meta as meta$37 } from \"../components/dialog/meta.js\";\nimport { meta as meta$38 } from \"../components/diff-viewer/meta.js\";\nimport { meta as meta$39 } from \"../components/dns-record/meta.js\";\nimport { meta as meta$40 } from \"../components/drawer/meta.js\";\nimport { meta as meta$41 } from \"../components/dropdown-menu/meta.js\";\nimport { meta as meta$42 } from \"../components/empty-state/meta.js\";\nimport { meta as meta$43 } from \"../components/file-upload/meta.js\";\nimport { meta as meta$44 } from \"../components/form/meta.js\";\nimport { meta as meta$45 } from \"../components/input/meta.js\";\nimport { meta as meta$46 } from \"../components/label/meta.js\";\nimport { meta as meta$47 } from \"../components/log-viewer/meta.js\";\nimport { meta as meta$48 } from \"../components/meter/meta.js\";\nimport { meta as meta$49 } from \"../components/metric-delta/meta.js\";\nimport { meta as meta$50 } from \"../components/pagination/meta.js\";\nimport { meta as meta$51 } from \"../components/permission-matrix/meta.js\";\nimport { meta as meta$52 } from \"../components/popover/meta.js\";\nimport { meta as meta$53 } from \"../components/progress/meta.js\";\nimport { meta as meta$54 } from \"../components/radio-group/meta.js\";\nimport { meta as meta$55 } from \"../components/record-diff/meta.js\";\nimport { meta as meta$56 } from \"../components/secret-field/meta.js\";\nimport { meta as meta$57 } from \"../components/select/meta.js\";\nimport { meta as meta$58 } from \"../components/separator/meta.js\";\nimport { meta as meta$59 } from \"../components/session-expiry/meta.js\";\nimport { meta as meta$60 } from \"../components/sidebar/meta.js\";\nimport { meta as meta$61 } from \"../components/sheet/meta.js\";\nimport { meta as meta$62 } from \"../components/shortcut-recorder/meta.js\";\nimport { meta as meta$63 } from \"../components/skeleton/meta.js\";\nimport { meta as meta$64 } from \"../components/slider/meta.js\";\nimport { meta as meta$65 } from \"../components/spinner/meta.js\";\nimport { meta as meta$66 } from \"../components/switch/meta.js\";\nimport { meta as meta$67 } from \"../components/sync-status/meta.js\";\nimport { meta as meta$68 } from \"../components/table/meta.js\";\nimport { meta as meta$69 } from \"../components/tabs/meta.js\";\nimport { meta as meta$70 } from \"../components/tags-input/meta.js\";\nimport { meta as meta$71 } from \"../components/time-range-picker/meta.js\";\nimport { meta as meta$72 } from \"../components/textarea/meta.js\";\nimport { meta as meta$73 } from \"../components/toast/meta.js\";\nimport { meta as meta$74 } from \"../components/tooltip/meta.js\";\nimport { meta as meta$75 } from \"../components/dots-loader/meta.js\";\nimport { meta as meta$76 } from \"../components/ring-loader/meta.js\";\nimport { meta as meta$77 } from \"../components/bar-loader/meta.js\";\nimport { meta as meta$78 } from \"../components/shape-loader/meta.js\";\nimport { meta as meta$79 } from \"../components/text-loader/meta.js\";\nimport { meta as meta$80 } from \"../components/grid-loader/meta.js\";\nimport { meta as meta$81 } from \"../components/morph-button/meta.js\";\nimport { meta as meta$82 } from \"../components/effect-button/meta.js\";\nimport { meta as meta$83 } from \"../components/magnetic-button/meta.js\";\nimport { meta as meta$84 } from \"../components/dot-morph-button/meta.js\";\nimport { meta as meta$85 } from \"../components/focus-blur-links/meta.js\";\nimport { meta as meta$86 } from \"../components/copy-button/meta.js\";\nimport { meta as meta$87 } from \"../components/text-effect/meta.js\";\nimport { meta as meta$88 } from \"../components/text-swap/meta.js\";\nimport { meta as meta$89 } from \"../components/shimmer-text/meta.js\";\nimport { meta as meta$90 } from \"../components/scramble-text/meta.js\";\nimport { meta as meta$91 } from \"../components/typewriter-text/meta.js\";\nimport { meta as meta$92 } from \"../components/scroll-reveal-text/meta.js\";\nimport { meta as meta$93 } from \"../components/number-flow/meta.js\";\nimport { meta as meta$94 } from \"../components/card-spread/meta.js\";\nimport { meta as meta$95 } from \"../components/carousel-3d/meta.js\";\nimport { meta as meta$96 } from \"../components/time-stack/meta.js\";\nimport { meta as meta$97 } from \"../components/expandable-cards/meta.js\";\nimport { meta as meta$98 } from \"../components/glow-card/meta.js\";\nimport { meta as meta$99 } from \"../components/photo-stack/meta.js\";\nimport { meta as meta$100 } from \"../components/card-stack/meta.js\";\nimport { meta as meta$101 } from \"../components/book/meta.js\";\nimport { meta as meta$102 } from \"../components/product-card/meta.js\";\nimport { meta as meta$103 } from \"../components/marquee/meta.js\";\nimport { meta as meta$104 } from \"../components/reviews-carousel/meta.js\";\nimport { meta as meta$105 } from \"../components/invite-carousel/meta.js\";\nimport { meta as meta$106 } from \"../components/swipe-carousel/meta.js\";\nimport { meta as meta$107 } from \"../components/image-accordion/meta.js\";\nimport { meta as meta$108 } from \"../components/tilt-card/meta.js\";\nimport { meta as meta$109 } from \"../components/dither-canvas/meta.js\";\nimport { meta as meta$110 } from \"../components/dither-donut/meta.js\";\nimport { meta as meta$111 } from \"../components/dither-bar/meta.js\";\nimport { meta as meta$112 } from \"../components/dither-area/meta.js\";\nimport { meta as meta$113 } from \"../components/dither-line/meta.js\";\nimport { meta as meta$114 } from \"../components/dither-heatmap/meta.js\";\nimport { meta as meta$115 } from \"../components/dither-gauge/meta.js\";\nimport { meta as meta$116 } from \"../components/dither-scatter/meta.js\";\nimport { meta as meta$117 } from \"../components/dither-funnel/meta.js\";\nimport { meta as meta$118 } from \"../components/dither-meter/meta.js\";\nimport { meta as meta$119 } from \"../components/uptime-matrix/meta.js\";\nimport { meta as meta$120 } from \"../components/avatar-group/meta.js\";\nimport { meta as meta$121 } from \"../components/app-stack/meta.js\";\nimport { meta as meta$122 } from \"../components/contribution-graph/meta.js\";\nimport { meta as meta$123 } from \"../components/star-count/meta.js\";\nimport { meta as meta$124 } from \"../components/notification-badge/meta.js\";\nimport { meta as meta$125 } from \"../components/switchboard-card/meta.js\";\nimport { meta as meta$126 } from \"../components/island/meta.js\";\nimport { meta as meta$127 } from \"../components/morph-surface/meta.js\";\nimport { meta as meta$128 } from \"../components/gooey-popover/meta.js\";\nimport { meta as meta$129 } from \"../components/rich-popover/meta.js\";\nimport { meta as meta$130 } from \"../components/comment-bubble/meta.js\";\nimport { meta as meta$131 } from \"../components/account-menu/meta.js\";\nimport { meta as meta$132 } from \"../components/exposure-slider/meta.js\";\nimport { meta as meta$133 } from \"../components/scrubber/meta.js\";\nimport { meta as meta$134 } from \"../components/image-selector/meta.js\";\nimport { meta as meta$135 } from \"../components/image-metadata/meta.js\";\nimport { meta as meta$136 } from \"../components/photo-tabs/meta.js\";\nimport { meta as meta$137 } from \"../components/social-selector/meta.js\";\nimport { meta as meta$138 } from \"../components/expandable-list/meta.js\";\nimport { meta as meta$139 } from \"../components/otp-input/meta.js\";\nimport { meta as meta$140 } from \"../components/stepper/meta.js\";\nimport { meta as meta$141 } from \"../components/context-menu/meta.js\";\nimport { meta as meta$142 } from \"../components/tweet-card/meta.js\";\nimport { meta as meta$143 } from \"../components/cursor-follow/meta.js\";\nimport { meta as meta$144 } from \"../components/gradient-orb/meta.js\";\nimport { meta as meta$145 } from \"../components/orb-face/meta.js\";\nimport { meta as meta$146 } from \"../components/pixel-avatar/meta.js\";\nimport { meta as meta$147 } from \"../components/ai-loader/meta.js\";\nimport { meta as meta$148 } from \"../components/ai-suggestions/meta.js\";\nimport { meta as meta$149 } from \"../components/ai-branch/meta.js\";\nimport { meta as meta$150 } from \"../components/ai-artifact/meta.js\";\nimport { meta as meta$151 } from \"../components/shader-transition/meta.js\";\nimport { meta as meta$152 } from \"../components/magnetic-select/meta.js\";\nimport { meta as meta$153 } from \"../components/aspect-morph/meta.js\";\nimport { meta as meta$154 } from \"../components/create-menu/meta.js\";\nimport { meta as meta$155 } from \"../components/radial-menu/meta.js\";\nimport { meta as meta$156 } from \"../components/canvas-toolbar/meta.js\";\nimport { meta as meta$157 } from \"../components/goo-tabs/meta.js\";\nimport { meta as meta$158 } from \"../components/assignee-picker/meta.js\";\nimport { meta as meta$159 } from \"../components/selection-list/meta.js\";\nimport { meta as meta$160 } from \"../components/browser-tabs/meta.js\";\nimport { meta as meta$161 } from \"../components/action-node/meta.js\";\nimport { meta as meta$162 } from \"../components/goo-ball/meta.js\";\nimport { meta as meta$163 } from \"../components/glass-bubble/meta.js\";\nimport { meta as meta$164 } from \"../components/drag-stepper/meta.js\";\nimport { meta as meta$165 } from \"../components/slosh-slider/meta.js\";\nimport { meta as meta$166 } from \"../components/reorder-list/meta.js\";\nimport { meta as meta$167 } from \"../components/magnify-dock/meta.js\";\nimport { meta as meta$168 } from \"../components/range-dial/meta.js\";\nimport { meta as meta$169 } from \"../components/folding-frame/meta.js\";\nimport { meta as meta$170 } from \"../components/slide-to-confirm/meta.js\";\nimport { meta as meta$171 } from \"../components/pull-to-refresh/meta.js\";\nimport { meta as meta$172 } from \"../components/todo-tower/meta.js\";\nimport { meta as meta$173 } from \"../components/palette-generator/meta.js\";\nimport { meta as meta$174 } from \"../components/inline-confirm/meta.js\";\nimport { meta as meta$175 } from \"../components/liquid-toggle/meta.js\";\nimport { meta as meta$176 } from \"../components/animated-checklist/meta.js\";\nimport { meta as meta$177 } from \"../components/now-playing/meta.js\";\nimport { meta as meta$178 } from \"../components/notify-button/meta.js\";\nimport { meta as meta$179 } from \"../components/tick-progress/meta.js\";\nimport { meta as meta$180 } from \"../components/escape-button/meta.js\";\nimport { meta as meta$181 } from \"../components/expanding-search/meta.js\";\nimport { meta as meta$182 } from \"../components/dial/meta.js\";\nimport { meta as meta$183 } from \"../components/command-bar/meta.js\";\nimport { blockMetas } from \"./blocks.js\";\n//#region src/registry/components.ts\n/**\n* Every component in the registry.\n*\n* An explicit list rather than a glob: the registry build runs in plain Node,\n* where bundler-only globbing is unavailable, and a static list is also what\n* lets the bundle tree-shake. `meta.test.ts` fails if a component directory\n* exists that is missing from here, so it cannot silently fall out of date.\n*\n* Identifiers carry a `Meta` suffix because component names include reserved\n* words — `switch` cannot be a binding name.\n*/\nconst componentMetas = [\n\tmeta,\n\tmeta$1,\n\tmeta$2,\n\tmeta$3,\n\tmeta$4,\n\tmeta$5,\n\tmeta$6,\n\tmeta$7,\n\tmeta$8,\n\tmeta$9,\n\tmeta$10,\n\tmeta$11,\n\tmeta$12,\n\tmeta$13,\n\tmeta$14,\n\tmeta$15,\n\tmeta$16,\n\tmeta$17,\n\tmeta$18,\n\tmeta$19,\n\tmeta$20,\n\tmeta$21,\n\tmeta$22,\n\tmeta$23,\n\tmeta$24,\n\tmeta$25,\n\tmeta$26,\n\tmeta$27,\n\tmeta$28,\n\tmeta$29,\n\tmeta$30,\n\tmeta$31,\n\tmeta$32,\n\tmeta$33,\n\tmeta$34,\n\tmeta$35,\n\tmeta$37,\n\tmeta$36,\n\tmeta$38,\n\tmeta$39,\n\tmeta$40,\n\tmeta$41,\n\tmeta$42,\n\tmeta$43,\n\tmeta$44,\n\tmeta$45,\n\tmeta$46,\n\tmeta$47,\n\tmeta$48,\n\tmeta$49,\n\tmeta$50,\n\tmeta$51,\n\tmeta$52,\n\tmeta$53,\n\tmeta$54,\n\tmeta$55,\n\tmeta$56,\n\tmeta$57,\n\tmeta$58,\n\tmeta$59,\n\tmeta$61,\n\tmeta$60,\n\tmeta$62,\n\tmeta$63,\n\tmeta$64,\n\tmeta$65,\n\tmeta$66,\n\tmeta$67,\n\tmeta$68,\n\tmeta$69,\n\tmeta$70,\n\tmeta$71,\n\tmeta$72,\n\tmeta$73,\n\tmeta$74,\n\tmeta$75,\n\tmeta$76,\n\tmeta$77,\n\tmeta$78,\n\tmeta$79,\n\tmeta$80,\n\tmeta$81,\n\tmeta$82,\n\tmeta$83,\n\tmeta$84,\n\tmeta$85,\n\tmeta$86,\n\tmeta$87,\n\tmeta$88,\n\tmeta$89,\n\tmeta$90,\n\tmeta$91,\n\tmeta$92,\n\tmeta$93,\n\tmeta$94,\n\tmeta$95,\n\tmeta$96,\n\tmeta$97,\n\tmeta$98,\n\tmeta$99,\n\tmeta$100,\n\tmeta$101,\n\tmeta$102,\n\tmeta$103,\n\tmeta$104,\n\tmeta$105,\n\tmeta$106,\n\tmeta$107,\n\tmeta$108,\n\tmeta$109,\n\tmeta$110,\n\tmeta$111,\n\tmeta$112,\n\tmeta$113,\n\tmeta$114,\n\tmeta$115,\n\tmeta$116,\n\tmeta$117,\n\tmeta$118,\n\tmeta$119,\n\tmeta$120,\n\tmeta$121,\n\tmeta$122,\n\tmeta$123,\n\tmeta$124,\n\tmeta$125,\n\tmeta$126,\n\tmeta$127,\n\tmeta$128,\n\tmeta$129,\n\tmeta$130,\n\tmeta$131,\n\tmeta$132,\n\tmeta$133,\n\tmeta$134,\n\tmeta$135,\n\tmeta$136,\n\tmeta$137,\n\tmeta$138,\n\tmeta$139,\n\tmeta$140,\n\tmeta$141,\n\tmeta$142,\n\tmeta$143,\n\tmeta$144,\n\tmeta$145,\n\tmeta$146,\n\tmeta$147,\n\tmeta$148,\n\tmeta$149,\n\tmeta$150,\n\tmeta$151,\n\tmeta$152,\n\tmeta$153,\n\tmeta$154,\n\tmeta$155,\n\tmeta$156,\n\tmeta$157,\n\tmeta$158,\n\tmeta$159,\n\tmeta$160,\n\tmeta$161,\n\tmeta$162,\n\tmeta$163,\n\tmeta$164,\n\tmeta$165,\n\tmeta$166,\n\tmeta$167,\n\tmeta$168,\n\tmeta$169,\n\tmeta$170,\n\tmeta$171,\n\tmeta$172,\n\tmeta$173,\n\tmeta$174,\n\tmeta$175,\n\tmeta$176,\n\tmeta$177,\n\tmeta$178,\n\tmeta$179,\n\tmeta$180,\n\tmeta$181,\n\tmeta$182,\n\tmeta$183\n];\n//#endregion\nexport { COMPONENT_CATEGORIES, COMPONENT_STATUSES, blockMetas, componentMetas };\n\n//# sourceMappingURL=components.js.map","import { readFileSync, mkdirSync, writeFileSync, rmSync } from \"node:fs\";\nimport { dirname, join } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\nimport { blockMetas, componentMetas, type ComponentMeta } from \"@dowel-ui/react/registry\";\n\nimport { hashContent } from \"./hash\";\nimport {\n REGISTRY_VERSION,\n registryIndexSchema,\n registryItemSchema,\n type RegistryFile,\n type RegistryIndexEntry,\n type RegistryItem,\n} from \"./schema\";\n\n/**\n * Emits the public registry.\n *\n * Everything the CLI installs originates here, from the same source files the\n * library itself builds and tests. There is no second copy of a component to\n * drift out of sync.\n */\n\nconst here = dirname(fileURLToPath(import.meta.url));\nconst uiSrc = join(here, \"..\", \"..\", \"ui\", \"src\");\nconst themesSrc = join(here, \"..\", \"..\", \"themes\", \"src\");\nconst uiPackageJson = JSON.parse(\n readFileSync(join(here, \"..\", \"..\", \"ui\", \"package.json\"), \"utf8\"),\n) as { name: string; version: string };\n\nfunction read(path: string): string {\n return readFileSync(path, \"utf8\");\n}\n\n/**\n * Turns a meta into a registry item.\n *\n * Components and blocks differ only in where their source lives and where it is\n * installed, so one function covers both rather than two that drift.\n */\nfunction buildSourceItem(meta: ComponentMeta): RegistryItem {\n const isBlock = meta.kind === \"block\";\n const sourceDir = join(uiSrc, isBlock ? \"blocks\" : \"components\", meta.name);\n const group = isBlock ? \"blocks\" : \"ui\";\n const fileType = isBlock ? \"registry:block\" : \"registry:ui\";\n\n const files: RegistryFile[] = meta.files.map((file) => {\n const content = read(join(sourceDir, file));\n return {\n path: `${group}/${file}`,\n type: fileType,\n content,\n hash: hashContent(content),\n };\n });\n\n return registryItemSchema.parse({\n $schema: \"./schema/registry-item.json\",\n registryVersion: REGISTRY_VERSION,\n name: meta.name,\n type: fileType,\n title: meta.title,\n description: meta.description,\n category: meta.category,\n status: meta.status,\n dependencies: meta.dependencies,\n registryDependencies: meta.registryDependencies,\n files,\n a11y: meta.a11y,\n access: meta.access ?? \"free\",\n });\n}\n\n/**\n * The utilities every component imports.\n *\n * Written by `init` rather than by `add`, because a project needs them before\n * the first component and every component assumes they are present.\n */\nfunction buildUtilsItem(): RegistryItem {\n const files: RegistryFile[] = ([\"utils.ts\", \"styles.ts\"] as const).map((file) => {\n const content = read(join(uiSrc, \"lib\", file));\n return {\n path: `lib/${file}`,\n type: \"registry:lib\",\n content,\n hash: hashContent(content),\n };\n });\n\n return registryItemSchema.parse({\n registryVersion: REGISTRY_VERSION,\n name: \"utils\",\n type: \"registry:lib\",\n title: \"Utilities\",\n description:\n \"The cn() class merger and the shared interaction-state fragments every component uses.\",\n category: \"foundation\",\n status: \"stable\",\n dependencies: [\"clsx\", \"tailwind-merge\"],\n registryDependencies: [],\n files,\n });\n}\n\n/**\n * The design tokens, as CSS to append to the project stylesheet.\n *\n * Appended rather than imported from a package: a consumer who cannot edit the\n * tokens does not really own their design system, which is the whole premise.\n */\nfunction buildThemeItem(): RegistryItem {\n const content = [\n \"/* Design tokens. Safe to edit — this is your copy. */\",\n read(join(themesSrc, \"tokens.css\")),\n read(join(themesSrc, \"base.css\")),\n ].join(\"\\n\\n\");\n\n return registryItemSchema.parse({\n registryVersion: REGISTRY_VERSION,\n name: \"theme\",\n type: \"registry:theme\",\n title: \"Theme\",\n description:\n \"Design tokens: colour, radius, typography, elevation and motion, in light and dark.\",\n category: \"foundation\",\n status: \"stable\",\n dependencies: [],\n registryDependencies: [],\n files: [\n {\n path: \"theme.css\",\n type: \"registry:style\",\n content,\n hash: hashContent(content),\n },\n ],\n });\n}\n\nexport function buildRegistry(): RegistryItem[] {\n return [\n buildUtilsItem(),\n buildThemeItem(),\n ...componentMetas.map(buildSourceItem),\n ...blockMetas.map(buildSourceItem),\n ];\n}\n\n/** Items whose source anyone may fetch. */\nexport function freeItems(items: RegistryItem[]): RegistryItem[] {\n return items.filter((item) => item.access !== \"pro\");\n}\n\n/** Items whose source requires a licence. */\nexport function proItems(items: RegistryItem[]): RegistryItem[] {\n return items.filter((item) => item.access === \"pro\");\n}\n\nexport function buildIndex(items: RegistryItem[]) {\n const entries: RegistryIndexEntry[] = items.map((item) => ({\n name: item.name,\n type: item.type,\n title: item.title,\n description: item.description,\n category: item.category,\n status: item.status,\n dependencies: item.dependencies,\n registryDependencies: item.registryDependencies,\n access: item.access,\n fileCount: item.files.length,\n }));\n\n return registryIndexSchema.parse({\n $schema: \"./schema/registry-index.json\",\n registryVersion: REGISTRY_VERSION,\n // The package version, not a timestamp: the same source must always produce\n // byte-identical output, or every build shows as a change.\n generatedFrom: `${uiPackageJson.name}@${uiPackageJson.version}`,\n items: entries,\n });\n}\n\nexport interface WriteResult {\n items: number;\n files: number;\n /** Items whose body was withheld from the public directory. */\n licensed: number;\n}\n\n/**\n * Writes the public registry.\n *\n * The index lists everything, including licensed items — that is the catalogue,\n * and an item nobody can see is an item nobody buys. What it does *not* write is\n * a licensed item's body: those files never touch the directory a CDN serves,\n * because a paywall that can be stepped around by fetching the JSON directly is\n * not a paywall. Their bodies go to `writeLicensedModule` instead, behind a\n * request the server can refuse.\n */\nexport function writeRegistry(outDir: string): WriteResult {\n const items = buildRegistry();\n const index = buildIndex(items);\n const free = freeItems(items);\n\n rmSync(outDir, { recursive: true, force: true });\n mkdirSync(outDir, { recursive: true });\n\n writeFileSync(join(outDir, \"index.json\"), `${JSON.stringify(index, null, 2)}\\n`);\n for (const item of free) {\n writeFileSync(join(outDir, `${item.name}.json`), `${JSON.stringify(item, null, 2)}\\n`);\n }\n\n return {\n items: items.length,\n files: free.reduce((total, item) => total + item.files.length, 0),\n licensed: items.length - free.length,\n };\n}\n\n/**\n * Writes the licensed item bodies as a TypeScript module.\n *\n * A module rather than a directory of JSON, because the server that serves\n * these runs on a platform that traces imports to decide what to deploy. A file\n * read at runtime from a path the bundler never saw is a file that is not there\n * in production — and the failure appears only once someone with a valid\n * licence tries to install something.\n */\nexport function writeLicensedModule(outFile: string): number {\n const licensed = proItems(buildRegistry());\n const byName = Object.fromEntries(licensed.map((item) => [item.name, item]));\n\n mkdirSync(dirname(outFile), { recursive: true });\n writeFileSync(\n outFile,\n `// Generated by @dowel-ui/registry. Do not edit.\n//\n// The bodies of licensed registry items. Imported by the route that serves them\n// so the platform's dependency tracing includes them in the deployment; they are\n// deliberately absent from the public registry directory.\nimport type { RegistryItem } from \"@dowel-ui/registry\";\n\nexport const licensedItems: Record<string, RegistryItem> = ${JSON.stringify(byName, null, 2)};\n`,\n );\n\n return licensed.length;\n}\n\n// Run directly: `tsx src/build.ts [--out <dir>]`\nconst invokedDirectly =\n process.argv[1] !== undefined && import.meta.url === pathToFileURL(process.argv[1]).href;\n\nif (invokedDirectly) {\n const outIndex = process.argv.indexOf(\"--out\");\n const outDir =\n outIndex === -1\n ? join(here, \"..\", \"r\")\n : (process.argv[outIndex + 1] ?? join(here, \"..\", \"r\"));\n\n const result = writeRegistry(outDir);\n console.log(\n `Registry written to ${outDir}: ${String(result.items)} items, ${String(result.files)} files` +\n (result.licensed > 0 ? `, ${String(result.licensed)} licensed item(s) withheld.` : \".\"),\n );\n}\n"],"mappings":"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M;CACP,CkDyCCC;CjD7DY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,mBAAmB;EAC3B,MAAM;CACP,CiD0CCC;ChD9DY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,aAAa;EACrB,MAAM;CACP,CgDwCCC;C/C/DY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,kBAAkB;EAC1B,MAAM;CACP,C+C8CCC;C9ChEY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,kBAAkB;EAC1B,MAAM;CACP,C8CuCCC;C7CjEY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,eAAe;EACvB,MAAM;CACP,C6CiDCC;C5ClEY,WAAW;EACvB,MAAM;EACN,MAAM;EACN,OAAO;EACP,aAAa;EACb,UAAU;EACV,QAAQ;EACR,cAAc,CAAC;EACf,sBAAsB;GACrB;GACA;GACA;GACA;GACA;GACA;EACD;EACA,OAAO,CAAC,aAAa;EACrB,MAAM;CACP,C4CiDCC;C3CnEY,WAAW;EACvB,MAAM;E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ACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACA;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;CACAC;AACD;;;;;;;;;;ACvWA,MAAM,OAAO,QAAQ,cAAc,YAAY,GAAG,CAAC;AACnD,MAAM,QAAQ,KAAK,MAAM,MAAM,MAAM,MAAM,KAAK;AAC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"}