@gunkin/uiify 0.0.26-alpha → 0.0.27-alpha
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/README.md +59 -0
- package/agents/components.md +2 -0
- package/agents/index.md +1 -0
- package/dist/ai/UiDocument.d.ts +16 -0
- package/dist/ai/UiDocument.d.ts.map +1 -0
- package/dist/ai/UiDocument.js +33 -0
- package/dist/ai/UiDocument.js.map +1 -0
- package/dist/ai/catalog.generated.d.ts +2766 -0
- package/dist/ai/catalog.generated.d.ts.map +1 -0
- package/dist/ai/catalog.generated.js +214 -0
- package/dist/ai/catalog.generated.js.map +1 -0
- package/dist/ai/index.d.ts +9 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +13 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/ai/issues.d.ts +10 -0
- package/dist/ai/issues.d.ts.map +1 -0
- package/dist/ai/issues.js +178 -0
- package/dist/ai/issues.js.map +1 -0
- package/dist/ai/layout.d.ts +26 -0
- package/dist/ai/layout.d.ts.map +1 -0
- package/dist/ai/layout.js +46 -0
- package/dist/ai/layout.js.map +1 -0
- package/dist/ai/limits.d.ts +16 -0
- package/dist/ai/limits.d.ts.map +1 -0
- package/dist/ai/limits.js +99 -0
- package/dist/ai/limits.js.map +1 -0
- package/dist/ai/load.d.ts +16 -0
- package/dist/ai/load.d.ts.map +1 -0
- package/dist/ai/load.js +69 -0
- package/dist/ai/load.js.map +1 -0
- package/dist/ai/loaders.generated.d.ts +5 -0
- package/dist/ai/loaders.generated.d.ts.map +1 -0
- package/dist/ai/loaders.generated.js +122 -0
- package/dist/ai/loaders.generated.js.map +1 -0
- package/dist/ai/rules.d.ts +11 -0
- package/dist/ai/rules.d.ts.map +1 -0
- package/dist/ai/rules.js +126 -0
- package/dist/ai/rules.js.map +1 -0
- package/dist/ai/schema.generated.d.ts +8 -0
- package/dist/ai/schema.generated.d.ts.map +1 -0
- package/dist/ai/schema.generated.js +3316 -0
- package/dist/ai/schema.generated.js.map +1 -0
- package/dist/ai/types.d.ts +33 -0
- package/dist/ai/types.d.ts.map +1 -0
- package/dist/ai/types.js +14 -0
- package/dist/ai/types.js.map +1 -0
- package/dist/ai/validate.d.ts +15 -0
- package/dist/ai/validate.d.ts.map +1 -0
- package/dist/ai/validate.js +32 -0
- package/dist/ai/validate.js.map +1 -0
- package/dist/ai/validator.generated.d.ts +13 -0
- package/dist/ai/validator.generated.d.ts.map +1 -0
- package/dist/ai/validator.generated.js +49133 -0
- package/dist/ai/validator.generated.js.map +1 -0
- package/dist/components/virtual-scroll/VirtualScroll.d.ts.map +1 -1
- package/dist/components/virtual-scroll/VirtualScroll.js +1 -1
- package/dist/components/virtual-scroll/VirtualScroll.js.map +1 -1
- package/dist/styles/index.css +1 -1
- package/package.json +10 -1
- package/skills/uiify/SKILL.md +14 -10
- package/skills/uiify/references/guides/verification.md +13 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ai/catalog.generated.ts"],"sourcesContent":["// Generated by packages/catalog/src/build/ai-catalog.ts: run `npm run ai:catalog`. Do not edit.\n\n/** Every part type a UI document may use. */\nexport type UiType =\n | \"Alert\"\n | \"AlertDescription\"\n | \"AlertTitle\"\n | \"AlertModal\"\n | \"AlertModalAction\"\n | \"AlertModalCancel\"\n | \"AlertModalContent\"\n | \"AlertModalTrigger\"\n | \"AspectRatio\"\n | \"Avatar\"\n | \"Badge\"\n | \"Breadcrumb.Item\"\n | \"Breadcrumb.Link\"\n | \"Breadcrumb.List\"\n | \"Breadcrumb.Root\"\n | \"Breadcrumb.Separator\"\n | \"Button\"\n | \"Card\"\n | \"Checkbox\"\n | \"ColorPicker\"\n | \"DatePicker\"\n | \"DescriptionDetails\"\n | \"DescriptionList\"\n | \"DescriptionTerm\"\n | \"Drawer.Close\"\n | \"Drawer.Content\"\n | \"Drawer.Description\"\n | \"Drawer.Handle\"\n | \"Drawer.Root\"\n | \"Drawer.Title\"\n | \"Drawer.Trigger\"\n | \"DrawerPanel\"\n | \"DrawerNativeTrigger\"\n | \"DrawerNativeClose\"\n | \"DrawerNativeContent\"\n | \"Empty\"\n | \"EmptyContent\"\n | \"EmptyDescription\"\n | \"EmptyTitle\"\n | \"Field.Root\"\n | \"Field.Label\"\n | \"Field.Control\"\n | \"Field.Description\"\n | \"Field.Error\"\n | \"Fieldset\"\n | \"FieldsetLegend\"\n | \"FileUpload.Dropzone\"\n | \"FileUpload.HiddenInput\"\n | \"FileUpload.Item\"\n | \"FileUpload.ItemRemove\"\n | \"FileUpload.List\"\n | \"FileUpload.Root\"\n | \"FileUpload.Trigger\"\n | \"Form\"\n | \"Header.Root\"\n | \"Input\"\n | \"InputGroup\"\n | \"InputGroupAddon\"\n | \"Item\"\n | \"ItemActions\"\n | \"ItemContent\"\n | \"ItemMedia\"\n | \"ItemMetadata\"\n | \"Modal\"\n | \"ModalBody\"\n | \"ModalClose\"\n | \"ModalContent\"\n | \"ModalDescription\"\n | \"ModalFooter\"\n | \"ModalGrabber\"\n | \"ModalHeader\"\n | \"ModalTitle\"\n | \"ModalTrigger\"\n | \"NumberField.Root\"\n | \"NumberField.Group\"\n | \"NumberField.Input\"\n | \"NumberField.Increment\"\n | \"NumberField.Decrement\"\n | \"Pagination.Ellipsis\"\n | \"Pagination.Item\"\n | \"Pagination.Link\"\n | \"Pagination.List\"\n | \"Pagination.Root\"\n | \"Popup.Close\"\n | \"Popup.Content\"\n | \"Popup.Root\"\n | \"Popup.Trigger\"\n | \"PopupClose\"\n | \"PopupContent\"\n | \"PopupTrigger\"\n | \"Progress\"\n | \"Rating\"\n | \"Select.Content\"\n | \"Select.Group\"\n | \"Select.Item\"\n | \"Select.Root\"\n | \"Select.Separator\"\n | \"Skeleton\"\n | \"Slider\"\n | \"Spinner\"\n | \"Switch\"\n | \"Table.Footer\"\n | \"Table.RowHeader\"\n | \"Table.Body\"\n | \"Table.Caption\"\n | \"Table.Cell\"\n | \"Table.ColumnHeader\"\n | \"Table.Header\"\n | \"Table.Root\"\n | \"Table.Row\"\n | \"Textarea\"\n | \"Toggle\"\n | \"Tooltip.Content\"\n | \"Tooltip.Provider\"\n | \"Tooltip.Root\"\n | \"Tooltip.Trigger\"\n | \"Stack\"\n | \"Grid\"\n | \"Section\"\n | \"form\"\n | \"fieldset\"\n | \"section\"\n | \"header\"\n | \"main\"\n | \"nav\"\n | \"footer\"\n | \"aside\"\n | \"ul\"\n | \"ol\"\n | \"li\"\n | \"dl\"\n | \"dt\"\n | \"dd\"\n | \"p\"\n | \"strong\"\n | \"em\"\n | \"legend\"\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"h5\"\n | \"h6\"\n | \"a\"\n | \"label\";\n\n/**\n * Give a short persistent message context beside the content it affects.\n * Use when: A persistent message explains an issue, result, or status beside the content it affects.\n * Avoid when: The task does not need this pattern; do not add it for catalog coverage.\n * Avoid when: A routine initial message does not need an assertive announcement or transient toast behavior.\n */\nexport interface AlertProps {\n readonly variant?: \"secondary\" | \"success\" | \"warning\" | \"destructive\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface AlertDescriptionProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface AlertTitleProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * A short, important message requires an immediate response, especially confirmation before a consequential action\n * Use when: The demonstrated destructive-confirmation relationship is present.\n * Avoid when: The task does not need this element; do not add it for coverage.\n */\nexport interface AlertModalProps {\n readonly id: string;\n readonly trigger: string;\n readonly title: string;\n readonly description?: string;\n readonly actionLabel?: string;\n readonly cancelLabel?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface AlertModalActionProps {\n readonly target: string;\n readonly command?: string;\n readonly commandfor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\nexport interface AlertModalCancelProps {\n readonly target: string;\n readonly command?: string;\n readonly commandfor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\nexport interface AlertModalContentProps {\n readonly id: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface AlertModalTriggerProps {\n readonly target: string;\n readonly command?: string;\n readonly commandfor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Frame media at a preferred proportion as available inline size changes.\n * Use when: An image or embed needs a consistent frame shape at different available widths\n * Avoid when: Text or controls need to determine their own height or must not be cropped\n */\nexport interface AspectRatioProps {\n readonly ratio?: number;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Identify a person or account with a compact image and fallback.\n * Use when: A compact identity image helps distinguish a person or account near related content.\n * Avoid when: The image is decorative or a visible name already provides all needed context.\n */\nexport interface AvatarProps {\n readonly name: string;\n readonly fallback: string;\n readonly src?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n readonly size?: \"sm\" | \"md\" | \"lg\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Mark a short status or category beside related content.\n * Use when: A short status or category qualifies nearby content and helps people scan it.\n * Avoid when: The task does not need this pattern; do not add it for catalog coverage.\n * Avoid when: The text is a control, a long explanation, or repeats an adjacent heading without adding meaning.\n */\nexport interface BadgeProps {\n readonly size?: \"sm\" | \"md\" | \"lg\";\n readonly variant?: \"secondary\" | \"success\" | \"warning\" | \"destructive\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Breadcrumb.Root`.\n */\nexport interface BreadcrumbItemProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Breadcrumb.Root`.\n */\nexport interface BreadcrumbLinkProps {\n readonly current?: boolean;\n readonly href?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly target?: \"_self\" | \"_blank\";\n}\n\n/**\n * Place inside `Breadcrumb.Root`.\n */\nexport interface BreadcrumbListProps {\n readonly itemsAfterCollapse?: number;\n readonly itemsBeforeCollapse?: number;\n readonly maxItems?: number;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Show the current page within a hierarchy of parent pages.\n * Use when: Show the current page within a hierarchy of parent pages.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface BreadcrumbRootProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Breadcrumb.Root`.\n */\nexport interface BreadcrumbSeparatorProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Expose a clear action with its native interaction semantics.\n * Use when: The demonstrated hero-actions relationship is present.\n * Avoid when: The task does not need this element; do not add it for coverage.\n */\nexport interface ButtonProps {\n readonly disabled?: boolean;\n readonly selected?: boolean;\n readonly type?: \"button\" | \"submit\" | \"reset\";\n readonly size?: \"sm\" | \"md\" | \"lg\" | \"icon-sm\" | \"icon\" | \"icon-lg\";\n readonly variant?: \"secondary\" | \"outline\" | \"ghost\" | \"destructive\" | \"link\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Group one feature heading and its explanation.\n * Use when: Related content benefits from a visible boundary and clear grouping.\n * Avoid when: The task does not need this element; do not add it for coverage.\n * Avoid when: The card would wrap every paragraph or create a whole-surface control around independent actions.\n */\nexport interface CardProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Select one or more independent options.\n * Use when: Select one or more independent options.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface CheckboxProps {\n readonly id: string;\n readonly label?: string;\n readonly defaultChecked?: boolean;\n readonly disabled?: boolean;\n readonly name?: string;\n readonly value?: string;\n readonly \"aria-label\"?: string;\n}\n\n/**\n * Let people choose a color value for a specific purpose.\n * Use when: Let people choose a color value for a specific purpose.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface ColorPickerProps {\n readonly alpha?: boolean;\n readonly colorSpace?: \"limited-srgb\" | \"display-p3\";\n readonly defaultValue?: `#${string}`;\n readonly label: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly placeholder?: string;\n readonly autoComplete?: string;\n readonly pattern?: string;\n readonly accept?: string;\n readonly hidden?: boolean;\n readonly required?: boolean;\n readonly disabled?: boolean;\n readonly readOnly?: boolean;\n readonly multiple?: boolean;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly min?: number;\n readonly max?: number;\n readonly step?: number;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly src?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Collect one calendar date with the browser’s native date input.\n * Use when: Collect one date without a time, using native browser selection and validation.\n * Avoid when: Time, date ranges, or a tested custom calendar interaction is required.\n */\nexport interface DatePickerProps {\n readonly invalid?: boolean;\n readonly size?: \"sm\" | \"md\" | \"lg\";\n readonly disabled?: boolean;\n readonly readOnly?: boolean;\n readonly required?: boolean;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly placeholder?: string;\n readonly autoComplete?: string;\n readonly pattern?: string;\n readonly accept?: string;\n readonly hidden?: boolean;\n readonly multiple?: boolean;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly src?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\nexport interface DescriptionDetailsProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Present descriptive terms and their associated values.\n * Use when: Present descriptive metadata as term and value pairs.\n * Avoid when: The content is tabular data, a task list, or has no term/value relationship.\n */\nexport interface DescriptionListProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface DescriptionTermProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Drawer.Root`.\n */\nexport interface DrawerCloseProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Place inside `Drawer.Root`.\n */\nexport interface DrawerContentProps {\n readonly size?: \"sm\" | \"md\" | \"lg\" | \"full\";\n readonly dismiss?: \"any\" | \"closerequest\" | \"none\";\n readonly backdrop?: \"opaque\" | \"transparent\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Drawer.Root`.\n */\nexport interface DrawerDescriptionProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Drawer.Root`.\n */\nexport interface DrawerHandleProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * A focused secondary task or navigation surface should enter from an edge and temporarily cover or accompany the page\n * Use when: The described drawer interaction is present; keep it focused on the user's current task.\n * Avoid when: The task does not need drawer; do not add it for coverage.\n */\nexport interface DrawerRootProps {\n readonly closeOnOverlayClick?: boolean;\n readonly defaultActiveSnapPoint?: number;\n readonly defaultOpen?: boolean;\n readonly dismissible?: boolean;\n readonly modal?: boolean;\n readonly side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n}\n\n/**\n * Place inside `Drawer.Root`.\n */\nexport interface DrawerTitleProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Drawer.Root`.\n */\nexport interface DrawerTriggerProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\nexport interface DrawerPanelProps {\n readonly id: string;\n readonly trigger: string;\n readonly title: string;\n readonly description?: string;\n readonly closeLabel?: string;\n readonly side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n readonly size?: \"sm\" | \"md\" | \"lg\" | \"full\";\n readonly dismiss?: \"any\" | \"closerequest\" | \"none\";\n readonly backdrop?: \"opaque\" | \"transparent\";\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface DrawerNativeTriggerProps {\n readonly target: string;\n readonly command?: string;\n readonly commandfor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\nexport interface DrawerNativeCloseProps {\n readonly target: string;\n readonly command?: string;\n readonly commandfor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\nexport interface DrawerNativeContentProps {\n readonly id: string;\n readonly side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n readonly size?: \"sm\" | \"md\" | \"lg\" | \"full\";\n readonly dismiss?: \"any\" | \"closerequest\" | \"none\";\n readonly backdrop?: \"opaque\" | \"transparent\";\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Explain an empty collection and offer a relevant next step.\n * Use when: Show a static empty collection or result state with a useful next step.\n * Avoid when: The state is loading, an error, access denial, or no filter matches; explain that actual state.\n */\nexport interface EmptyProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface EmptyContentProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface EmptyDescriptionProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface EmptyTitleProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Keep a label and its form control together.\n * Use when: The demonstrated form-grouping relationship is present.\n * Avoid when: The task does not need this element; do not add it for coverage.\n */\nexport interface FieldRootProps {\n readonly id: string;\n readonly invalid?: boolean;\n readonly required?: boolean;\n readonly disabled?: boolean;\n readonly name?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Field.Root`.\n */\nexport interface FieldLabelProps {\n readonly disabled?: boolean;\n readonly required?: boolean;\n readonly fieldId: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Field.Root`.\n */\nexport interface FieldControlProps {\n readonly disabled?: boolean;\n readonly invalid?: boolean;\n readonly required?: boolean;\n readonly fieldId: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Field.Root`.\n */\nexport interface FieldDescriptionProps {\n readonly disabled?: boolean;\n readonly fieldId: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Field.Root`.\n */\nexport interface FieldErrorProps {\n readonly invalid?: boolean;\n readonly fieldId: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Give related form controls a native group name with a legend.\n * Use when: Related controls need a shared group name, such as a set of preferences.\n * Avoid when: There is only one unrelated field or a generic wrapper would imply a false group.\n */\nexport interface FieldsetProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface FieldsetLegendProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `FileUpload.Root`.\n */\nexport interface FileUploadDropzoneProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `FileUpload.Root`.\n */\nexport interface FileUploadHiddenInputProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly placeholder?: string;\n readonly autoComplete?: string;\n readonly pattern?: string;\n readonly hidden?: boolean;\n readonly required?: boolean;\n readonly readOnly?: boolean;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly min?: number;\n readonly max?: number;\n readonly step?: number;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly src?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Place inside `FileUpload.Root`.\n */\nexport interface FileUploadItemProps {\n readonly index: number;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `FileUpload.Root`.\n */\nexport interface FileUploadItemRemoveProps {\n readonly index: number;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Place inside `FileUpload.Root`.\n */\nexport interface FileUploadListProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Let people select and manage files for a form or task.\n * Use when: Let people select and manage files for a form or task.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface FileUploadRootProps {\n readonly disabled?: boolean;\n readonly maxFiles?: number;\n readonly maxSize?: number;\n readonly minSize?: number;\n readonly multiple?: boolean;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `FileUpload.Root`.\n */\nexport interface FileUploadTriggerProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Collect the information needed to complete one task.\n * Use when: The demonstrated form-grouping relationship is present.\n * Avoid when: The task does not need this element; do not add it for coverage.\n */\nexport interface FormProps {\n readonly validationBehavior?: \"native\" | \"aria\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly autoComplete?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly target?: \"_self\" | \"_blank\";\n readonly method?: \"get\" | \"post\" | \"dialog\";\n readonly action?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Orient visitors with stable top-level navigation.\n * Use when: The demonstrated page-frame relationship is present.\n * Avoid when: The task does not need this element; do not add it for coverage.\n */\nexport interface HeaderRootProps {\n readonly placement?: \"static\" | \"sticky\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Accept a short, single-line value.\n * Use when: Accept a short, single-line value.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface InputProps {\n readonly defaultValue?: string;\n readonly disabled?: boolean;\n readonly readOnly?: boolean;\n readonly invalid?: boolean;\n readonly size?: \"sm\" | \"md\" | \"lg\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly placeholder?: string;\n readonly autoComplete?: string;\n readonly pattern?: string;\n readonly accept?: string;\n readonly hidden?: boolean;\n readonly required?: boolean;\n readonly multiple?: boolean;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly min?: number;\n readonly max?: number;\n readonly step?: number;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly src?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n readonly type?:\n | \"text\"\n | \"email\"\n | \"search\"\n | \"tel\"\n | \"url\"\n | \"number\"\n | \"password\"\n | \"date\"\n | \"time\"\n | \"datetime-local\"\n | \"month\"\n | \"week\"\n | \"color\"\n | \"checkbox\"\n | \"radio\"\n | \"file\"\n | \"hidden\";\n}\n\n/**\n * Place text affixes or a related action beside a native input.\n * Use when: A native input needs a visual prefix, suffix, or separate related action.\n * Avoid when: The affix would replace the field label or a custom interaction is required.\n */\nexport interface InputGroupProps {\n readonly size?: \"sm\" | \"md\" | \"lg\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface InputGroupAddonProps {\n readonly align: \"start\" | \"end\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Compose a list row with primary content, metadata, media, and a separate action.\n * Use when: Show content and metadata in an actual unordered or ordered list row.\n * Avoid when: The row is not in a list, or it needs selection and list keyboard behavior.\n */\nexport interface ItemProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ItemActionsProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ItemContentProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ItemMediaProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ItemMetadataProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Hold attention on a task that must be completed before returning to the page.\n * Use when: The demonstrated blocking-modal relationship is present.\n * Avoid when: The task can be completed while comparing the page; use inline content.\n * Avoid when: The message is brief feedback; use toast.\n * Avoid when: The user must confirm an irreversible action; use alert-modal.\n */\nexport interface ModalProps {\n readonly id: string;\n readonly trigger: string;\n readonly title: string;\n readonly description?: string;\n readonly closeLabel?: string;\n readonly size?: \"sm\" | \"md\" | \"lg\" | \"full\";\n readonly align?: \"center\" | \"start\";\n readonly dismiss?: \"any\" | \"closerequest\" | \"none\";\n readonly backdrop?: \"opaque\" | \"blur\" | \"none\";\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ModalBodyProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ModalCloseProps {\n readonly target: string;\n readonly command?: string;\n readonly commandfor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\nexport interface ModalContentProps {\n readonly id: string;\n readonly size?: \"sm\" | \"md\" | \"lg\" | \"full\";\n readonly align?: \"center\" | \"start\";\n readonly dismiss?: \"any\" | \"closerequest\" | \"none\";\n readonly backdrop?: \"opaque\" | \"blur\" | \"none\";\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ModalDescriptionProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ModalFooterProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ModalGrabberProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ModalHeaderProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ModalTitleProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface ModalTriggerProps {\n readonly target: string;\n readonly command?: string;\n readonly commandfor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Enter a numeric quantity with optional bounds and step controls.\n * Use when: Enter a numeric quantity with optional bounds and step controls.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface NumberFieldRootProps {\n readonly allowWheel?: boolean;\n readonly clampValueOnBlur?: boolean;\n readonly defaultValue?: number;\n readonly disabled?: boolean;\n readonly locale?: string;\n readonly max?: number;\n readonly min?: number;\n readonly readOnly?: boolean;\n readonly required?: boolean;\n readonly step?: number;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `NumberField.Root`.\n */\nexport interface NumberFieldGroupProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `NumberField.Root`.\n */\nexport interface NumberFieldInputProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly placeholder?: string;\n readonly autoComplete?: string;\n readonly pattern?: string;\n readonly accept?: string;\n readonly hidden?: boolean;\n readonly required?: boolean;\n readonly disabled?: boolean;\n readonly readOnly?: boolean;\n readonly multiple?: boolean;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly min?: number;\n readonly max?: number;\n readonly step?: number;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly src?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Place inside `NumberField.Root`.\n */\nexport interface NumberFieldIncrementProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Place inside `NumberField.Root`.\n */\nexport interface NumberFieldDecrementProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Place inside `Pagination.Root`.\n */\nexport interface PaginationEllipsisProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Pagination.Root`.\n */\nexport interface PaginationItemProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Pagination.Root`.\n */\nexport interface PaginationLinkProps {\n readonly disabled?: boolean;\n readonly locale?: string;\n readonly pageLabelTemplate?: string;\n readonly page: number;\n readonly selected?: boolean;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Place inside `Pagination.Root`.\n */\nexport interface PaginationListProps {\n readonly [name: string]: never;\n}\n\n/**\n * Navigate between pages of a result set.\n * Use when: Navigate between pages of a result set.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface PaginationRootProps {\n readonly locale?: string;\n readonly boundaryCount?: number;\n readonly count: number;\n readonly defaultPage?: number;\n readonly disabled?: boolean;\n readonly showFirstLast?: boolean;\n readonly siblingCount?: number;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Popup.Root`.\n */\nexport interface PopupRootCloseProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Popup.Root`.\n */\nexport interface PopupRootContentProps {\n readonly align?: \"start\" | \"center\" | \"end\";\n readonly side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * A small, optional piece of contextual content belongs beside its trigger and can be opened without blocking the page\n * Use when: The described popup interaction is present; keep it focused on the user's current task.\n * Avoid when: The task does not need popup; do not add it for coverage.\n */\nexport interface PopupRootProps {\n readonly id: string;\n readonly mode?: \"auto\" | \"manual\" | \"hint\";\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Popup.Root`.\n */\nexport interface PopupRootTriggerProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface PopupCloseProps {\n readonly target: string;\n readonly command?: string;\n readonly commandfor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\nexport interface PopupContentProps {\n readonly align?: \"start\" | \"center\" | \"end\";\n readonly id: string;\n readonly mode?: \"auto\" | \"manual\";\n readonly side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface PopupTriggerProps {\n readonly target: string;\n readonly command?: string;\n readonly commandfor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Show determinate or indeterminate progress for a task.\n * Use when: A task's completion is measurable or its ongoing progress is unknown.\n * Avoid when: The task does not need this pattern; do not add it for catalog coverage.\n * Avoid when: The value is a quantity or score rather than task completion; use meter for a measurement.\n */\nexport interface ProgressProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Collect a numeric rating on a short ordered scale.\n * Use when: Collect a numeric rating on a short ordered scale.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface RatingProps {\n readonly id: string;\n readonly defaultValue?: number;\n readonly max?: number;\n readonly readOnly?: boolean;\n readonly disabled?: boolean;\n readonly \"aria-label\"?: string;\n readonly title?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Select.Root`.\n */\nexport interface SelectContentProps {\n readonly [name: string]: never;\n}\n\n/**\n * Place inside `Select.Root`.\n */\nexport interface SelectGroupProps {\n readonly label: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Select.Root`.\n */\nexport interface SelectItemProps {\n readonly disabled?: boolean;\n readonly value: string;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Choose one value from a fixed list.\n * Use when: The demonstrated form-grouping relationship is present.\n * Avoid when: The task does not need this element; do not add it for coverage.\n */\nexport interface SelectRootProps {\n readonly defaultValue?: string;\n readonly name?: string;\n readonly disabled?: boolean;\n readonly size?: \"sm\" | \"md\" | \"lg\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly autoComplete?: string;\n readonly hidden?: boolean;\n readonly required?: boolean;\n readonly multiple?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Select.Root`.\n */\nexport interface SelectSeparatorProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * A known content layout is temporarily loading and a close shape preview can reduce the perception of a blank page\n * Use when: A known content layout is temporarily loading and a close shape preview can reduce the perception of a blank page.\n * Avoid when: The task does not need skeleton; do not add it for catalog coverage.\n */\nexport interface SkeletonProps {\n readonly circle?: boolean;\n readonly loading?: boolean;\n readonly variant?: \"pulse\" | \"shimmer\" | \"none\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Set a value within a continuous or stepped range.\n * Use when: Set a value within a continuous or stepped range.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface SliderProps {\n readonly defaultValue?: number;\n readonly min?: number;\n readonly max?: number;\n readonly step?: number;\n readonly disabled?: boolean;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly placeholder?: string;\n readonly autoComplete?: string;\n readonly pattern?: string;\n readonly accept?: string;\n readonly hidden?: boolean;\n readonly required?: boolean;\n readonly readOnly?: boolean;\n readonly multiple?: boolean;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly src?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * A task is actively pending and there is no reliable completion percentage\n * Use when: A task is actively pending and there is no reliable completion percentage.\n * Avoid when: The task does not need spinner; do not add it for catalog coverage.\n */\nexport interface SpinnerProps {\n readonly align?: \"center\" | \"fixed\" | \"absolute\";\n readonly delay?: number;\n readonly label?: string;\n readonly showLabel?: boolean;\n readonly size?: \"sm\" | \"md\" | \"lg\";\n readonly value?: number;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Expose a binary setting that takes effect immediately.\n * Use when: Expose a binary setting that takes effect immediately.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface SwitchProps {\n readonly defaultChecked?: boolean;\n readonly disabled?: boolean;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly placeholder?: string;\n readonly autoComplete?: string;\n readonly pattern?: string;\n readonly accept?: string;\n readonly hidden?: boolean;\n readonly required?: boolean;\n readonly readOnly?: boolean;\n readonly multiple?: boolean;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly min?: number;\n readonly max?: number;\n readonly step?: number;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly src?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\n/**\n * Place inside `Table.Root`.\n */\nexport interface TableFooterProps {\n readonly sticky?: boolean;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Table.Root`.\n */\nexport interface TableRowHeaderProps {\n readonly align?: \"start\" | \"center\" | \"end\";\n readonly sticky?: \"start\" | \"end\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Table.Root`.\n */\nexport interface TableBodyProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Table.Root`.\n */\nexport interface TableCaptionProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Table.Root`.\n */\nexport interface TableCellProps {\n readonly align?: \"start\" | \"center\" | \"end\";\n readonly sticky?: \"start\" | \"end\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Table.Root`.\n */\nexport interface TableColumnHeaderProps {\n readonly allowsSorting?: boolean;\n readonly id: string;\n readonly sortDirection?: \"ascending\" | \"descending\";\n readonly align?: \"start\" | \"center\" | \"end\";\n readonly sticky?: \"start\" | \"end\";\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Table.Root`.\n */\nexport interface TableHeaderProps {\n readonly sticky?: boolean;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Compare structured member records.\n * Use when: The demonstrated table-controls relationship is present.\n * Avoid when: The task does not need this element; do not add it for coverage.\n */\nexport interface TableRootProps {\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly layout?: \"auto\" | \"fixed\";\n readonly size?: \"sm\" | \"md\" | \"lg\";\n readonly variant?: \"solid\" | \"outline\" | \"ghost\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Table.Root`.\n */\nexport interface TableRowProps {\n readonly disabled?: boolean;\n readonly id: string;\n readonly selected?: boolean;\n readonly sticky?: boolean;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Accept a longer free-text value.\n * Use when: Accept a longer free-text value.\n * Avoid when: The task does not need this pattern; do not add it only for catalog coverage.\n */\nexport interface TextareaProps {\n readonly defaultValue?: string;\n readonly autoSize?: boolean;\n readonly disabled?: boolean;\n readonly readOnly?: boolean;\n readonly invalid?: boolean;\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly placeholder?: string;\n readonly autoComplete?: string;\n readonly hidden?: boolean;\n readonly required?: boolean;\n readonly minLength?: number;\n readonly maxLength?: number;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Expose a binary value with a toggle-style presentation.\n * Use when: Expose a binary value with a toggle-style presentation.\n * Avoid when: Use a switch for a persistent on/off setting or ordinary buttons for one-time actions.\n */\nexport interface ToggleProps {\n readonly id: string;\n readonly label: string;\n readonly defaultPressed?: boolean;\n readonly disabled?: boolean;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\n/**\n * Place inside `Tooltip.Root`.\n */\nexport interface TooltipContentProps {\n readonly align?: \"start\" | \"center\" | \"end\";\n readonly side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly hidden?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n}\n\nexport interface TooltipProviderProps {\n readonly delayDuration?: number;\n readonly skipDelayDuration?: number;\n}\n\n/**\n * Add a brief supplemental label to a control without replacing its name.\n * Use when: The demonstrated supplemental-label relationship is present.\n * Avoid when: The information is essential or interactive; use visible text, popup, or hover-card.\n * Avoid when: The tooltip would be the only label for a form field.\n * Place inside `Tooltip.Provider`.\n */\nexport interface TooltipRootProps {\n readonly defaultOpen?: boolean;\n readonly id?: string;\n}\n\n/**\n * Place inside `Tooltip.Root`.\n */\nexport interface TooltipTriggerProps {\n readonly id?: string;\n readonly title?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly \"aria-describedby\"?: string;\n readonly name?: string;\n readonly value?: string;\n readonly hidden?: boolean;\n readonly disabled?: boolean;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly formAction?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n}\n\nexport interface StackProps {\n readonly direction?: \"block\" | \"inline\";\n readonly gap?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n readonly align?: \"start\" | \"center\" | \"end\" | \"stretch\";\n readonly wrap?: boolean;\n}\n\nexport interface GridProps {\n readonly columns?: 1 | 2 | 3 | 4;\n readonly gap?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n}\n\nexport interface SectionProps {\n readonly as?: \"section\" | \"header\" | \"main\" | \"footer\" | \"nav\" | \"aside\";\n readonly padding?: \"xs\" | \"sm\" | \"md\" | \"lg\" | \"xl\";\n readonly width?: \"sm\" | \"md\" | \"lg\";\n}\n\nexport interface NativeFormProps {\n readonly action?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n readonly method?: \"get\" | \"post\" | \"dialog\";\n readonly \"aria-label\"?: string;\n readonly id?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n readonly role?: \"search\";\n}\n\nexport interface NativeFieldsetProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeSectionProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeHeaderProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeMainProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeNavProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeFooterProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeAsideProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeUlProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeOlProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeLiProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeDlProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeDtProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeDdProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativePProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeStrongProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeEmProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeLegendProps {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeH1Props {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeH2Props {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeH3Props {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeH4Props {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeH5Props {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeH6Props {\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly \"aria-labelledby\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeAProps {\n readonly href?:\n | `/${string}`\n | `./${string}`\n | `../${string}`\n | `#${string}`\n | `?${string}`\n | `http://${string}`\n | `https://${string}`\n | `mailto:${string}`;\n readonly target?: \"_self\" | \"_blank\";\n readonly rel?: string;\n readonly id?: string;\n readonly \"aria-label\"?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\nexport interface NativeLabelProps {\n readonly htmlFor?: string;\n readonly id?: string;\n readonly title?: string;\n readonly dir?: \"ltr\" | \"rtl\" | \"auto\";\n readonly hidden?: boolean;\n}\n\n/** A child of a node: another node or text. */\nexport type UiChild = UiNode | string;\n\n/** One node of a UI document. Leaf parts take no `children`. */\nexport type UiNode =\n | {\n readonly type: \"Alert\";\n readonly props: AlertProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"AlertDescription\";\n readonly props: AlertDescriptionProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"AlertTitle\";\n readonly props: AlertTitleProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"AlertModal\";\n readonly props: AlertModalProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"AlertModalAction\";\n readonly props: AlertModalActionProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"AlertModalCancel\";\n readonly props: AlertModalCancelProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"AlertModalContent\";\n readonly props: AlertModalContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"AlertModalTrigger\";\n readonly props: AlertModalTriggerProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"AspectRatio\";\n readonly props: AspectRatioProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | { readonly type: \"Avatar\"; readonly props: AvatarProps; readonly key?: never }\n | {\n readonly type: \"Badge\";\n readonly props: BadgeProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Breadcrumb.Item\";\n readonly props: BreadcrumbItemProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Breadcrumb.Link\";\n readonly props: BreadcrumbLinkProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Breadcrumb.List\";\n readonly props: BreadcrumbListProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Breadcrumb.Root\";\n readonly props: BreadcrumbRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Breadcrumb.Separator\";\n readonly props: BreadcrumbSeparatorProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Button\";\n readonly props: ButtonProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Card\";\n readonly props: CardProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | { readonly type: \"Checkbox\"; readonly props: CheckboxProps; readonly key?: never }\n | { readonly type: \"ColorPicker\"; readonly props: ColorPickerProps; readonly key?: never }\n | { readonly type: \"DatePicker\"; readonly props: DatePickerProps; readonly key?: never }\n | {\n readonly type: \"DescriptionDetails\";\n readonly props: DescriptionDetailsProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"DescriptionList\";\n readonly props: DescriptionListProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"DescriptionTerm\";\n readonly props: DescriptionTermProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Drawer.Close\";\n readonly props: DrawerCloseProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Drawer.Content\";\n readonly props: DrawerContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Drawer.Description\";\n readonly props: DrawerDescriptionProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Drawer.Handle\";\n readonly props: DrawerHandleProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Drawer.Root\";\n readonly props: DrawerRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Drawer.Title\";\n readonly props: DrawerTitleProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Drawer.Trigger\";\n readonly props: DrawerTriggerProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"DrawerPanel\";\n readonly props: DrawerPanelProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"DrawerNativeTrigger\";\n readonly props: DrawerNativeTriggerProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"DrawerNativeClose\";\n readonly props: DrawerNativeCloseProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"DrawerNativeContent\";\n readonly props: DrawerNativeContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Empty\";\n readonly props: EmptyProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"EmptyContent\";\n readonly props: EmptyContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"EmptyDescription\";\n readonly props: EmptyDescriptionProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"EmptyTitle\";\n readonly props: EmptyTitleProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Field.Root\";\n readonly props: FieldRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Field.Label\";\n readonly props: FieldLabelProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Field.Control\";\n readonly props: FieldControlProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Field.Description\";\n readonly props: FieldDescriptionProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Field.Error\";\n readonly props: FieldErrorProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Fieldset\";\n readonly props: FieldsetProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"FieldsetLegend\";\n readonly props: FieldsetLegendProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"FileUpload.Dropzone\";\n readonly props: FileUploadDropzoneProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"FileUpload.HiddenInput\";\n readonly props: FileUploadHiddenInputProps;\n readonly key?: never;\n }\n | {\n readonly type: \"FileUpload.Item\";\n readonly props: FileUploadItemProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"FileUpload.ItemRemove\";\n readonly props: FileUploadItemRemoveProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"FileUpload.List\";\n readonly props: FileUploadListProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"FileUpload.Root\";\n readonly props: FileUploadRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"FileUpload.Trigger\";\n readonly props: FileUploadTriggerProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Form\";\n readonly props: FormProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Header.Root\";\n readonly props: HeaderRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | { readonly type: \"Input\"; readonly props: InputProps; readonly key?: never }\n | {\n readonly type: \"InputGroup\";\n readonly props: InputGroupProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"InputGroupAddon\";\n readonly props: InputGroupAddonProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Item\";\n readonly props: ItemProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ItemActions\";\n readonly props: ItemActionsProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ItemContent\";\n readonly props: ItemContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ItemMedia\";\n readonly props: ItemMediaProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ItemMetadata\";\n readonly props: ItemMetadataProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Modal\";\n readonly props: ModalProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ModalBody\";\n readonly props: ModalBodyProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ModalClose\";\n readonly props: ModalCloseProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ModalContent\";\n readonly props: ModalContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ModalDescription\";\n readonly props: ModalDescriptionProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ModalFooter\";\n readonly props: ModalFooterProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | { readonly type: \"ModalGrabber\"; readonly props: ModalGrabberProps; readonly key?: never }\n | {\n readonly type: \"ModalHeader\";\n readonly props: ModalHeaderProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ModalTitle\";\n readonly props: ModalTitleProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ModalTrigger\";\n readonly props: ModalTriggerProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"NumberField.Root\";\n readonly props: NumberFieldRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"NumberField.Group\";\n readonly props: NumberFieldGroupProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"NumberField.Input\";\n readonly props: NumberFieldInputProps;\n readonly key?: never;\n }\n | {\n readonly type: \"NumberField.Increment\";\n readonly props: NumberFieldIncrementProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"NumberField.Decrement\";\n readonly props: NumberFieldDecrementProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Pagination.Ellipsis\";\n readonly props: PaginationEllipsisProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Pagination.Item\";\n readonly props: PaginationItemProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Pagination.Link\";\n readonly props: PaginationLinkProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Pagination.List\";\n readonly props: PaginationListProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Pagination.Root\";\n readonly props: PaginationRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Popup.Close\";\n readonly props: PopupRootCloseProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Popup.Content\";\n readonly props: PopupRootContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Popup.Root\";\n readonly props: PopupRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Popup.Trigger\";\n readonly props: PopupRootTriggerProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"PopupClose\";\n readonly props: PopupCloseProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"PopupContent\";\n readonly props: PopupContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"PopupTrigger\";\n readonly props: PopupTriggerProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Progress\";\n readonly props: ProgressProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | { readonly type: \"Rating\"; readonly props: RatingProps; readonly key?: never }\n | {\n readonly type: \"Select.Content\";\n readonly props: SelectContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Select.Group\";\n readonly props: SelectGroupProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Select.Item\";\n readonly props: SelectItemProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Select.Root\";\n readonly props: SelectRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Select.Separator\";\n readonly props: SelectSeparatorProps;\n readonly key?: never;\n }\n | {\n readonly type: \"Skeleton\";\n readonly props: SkeletonProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | { readonly type: \"Slider\"; readonly props: SliderProps; readonly key?: never }\n | {\n readonly type: \"Spinner\";\n readonly props: SpinnerProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | { readonly type: \"Switch\"; readonly props: SwitchProps; readonly key?: never }\n | {\n readonly type: \"Table.Footer\";\n readonly props: TableFooterProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Table.RowHeader\";\n readonly props: TableRowHeaderProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Table.Body\";\n readonly props: TableBodyProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Table.Caption\";\n readonly props: TableCaptionProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Table.Cell\";\n readonly props: TableCellProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Table.ColumnHeader\";\n readonly props: TableColumnHeaderProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Table.Header\";\n readonly props: TableHeaderProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Table.Root\";\n readonly props: TableRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Table.Row\";\n readonly props: TableRowProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Textarea\";\n readonly props: TextareaProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | { readonly type: \"Toggle\"; readonly props: ToggleProps; readonly key?: never }\n | {\n readonly type: \"Tooltip.Content\";\n readonly props: TooltipContentProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Tooltip.Provider\";\n readonly props: TooltipProviderProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Tooltip.Root\";\n readonly props: TooltipRootProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Tooltip.Trigger\";\n readonly props: TooltipTriggerProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Stack\";\n readonly props: StackProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Grid\";\n readonly props: GridProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"Section\";\n readonly props: SectionProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"form\";\n readonly props: NativeFormProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"fieldset\";\n readonly props: NativeFieldsetProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"section\";\n readonly props: NativeSectionProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"header\";\n readonly props: NativeHeaderProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"main\";\n readonly props: NativeMainProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"nav\";\n readonly props: NativeNavProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"footer\";\n readonly props: NativeFooterProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"aside\";\n readonly props: NativeAsideProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ul\";\n readonly props: NativeUlProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"ol\";\n readonly props: NativeOlProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"li\";\n readonly props: NativeLiProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"dl\";\n readonly props: NativeDlProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"dt\";\n readonly props: NativeDtProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"dd\";\n readonly props: NativeDdProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"p\";\n readonly props: NativePProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"strong\";\n readonly props: NativeStrongProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"em\";\n readonly props: NativeEmProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"legend\";\n readonly props: NativeLegendProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"h1\";\n readonly props: NativeH1Props;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"h2\";\n readonly props: NativeH2Props;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"h3\";\n readonly props: NativeH3Props;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"h4\";\n readonly props: NativeH4Props;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"h5\";\n readonly props: NativeH5Props;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"h6\";\n readonly props: NativeH6Props;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"a\";\n readonly props: NativeAProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n }\n | {\n readonly type: \"label\";\n readonly props: NativeLabelProps;\n readonly children?: readonly (UiNodeInput | string)[];\n readonly key?: never;\n };\n\n/**\n * The type to write a document in code against: use it with `satisfies` and as the return type\n * of `.map` callbacks (`(row): UiNodeInput => ...`) for precise errors. The `never` member\n * stops TypeScript from reporting a mistake against every part at once. Read `props` from\n * `UiNode`.\n */\nexport type UiNodeInput = UiNode | { readonly type: never };\n\n/**\n * Parts of included (Tier 0 and Tier 1) components that a document cannot use yet, with the\n * reason. Tier 2 components are excluded as a whole and are not listed.\n */\nexport const uiUnavailableParts = [\n { type: \"Accordion\", reason: 'required prop \"items\" has type readonly AccordionItem[]' },\n { type: \"Breadcrumb.Ellipsis\", reason: \"leaf part without usable props\" },\n { type: \"CandleChart\", reason: 'required prop \"data\" has type readonly CandleChartData[]' },\n { type: \"Collapsible\", reason: 'required prop \"content\" takes React nodes' },\n {\n type: \"FormErrorSummary\",\n reason: 'required prop \"errors\" has type readonly FormErrorSummaryError[]',\n },\n {\n type: \"HoverCard.Content\",\n reason: \"no flat export of the same component as HoverCard.Content for client-safe loading\",\n },\n {\n type: \"HoverCard.Root\",\n reason: \"no flat export of the same component as HoverCard.Root for client-safe loading\",\n },\n {\n type: \"HoverCard.Trigger\",\n reason: \"no flat export of the same component as HoverCard.Trigger for client-safe loading\",\n },\n { type: \"LineChart\", reason: 'required prop \"data\" has type readonly LineChartData[]' },\n { type: \"RadioGroup\", reason: 'required prop \"items\" has type readonly RadioGroupItem[]' },\n {\n type: \"SegmentedControl\",\n reason: 'required prop \"items\" has type readonly SegmentedControlItem[]',\n },\n { type: \"Tabs\", reason: 'required prop \"items\" has type readonly TabsItem[]' },\n { type: \"Toast.Root\", reason: 'required prop \"toast\" has type ToastRecord' },\n { type: \"Toast.Action\", reason: \"its root part Toast.Root is unusable\" },\n { type: \"Toast.Close\", reason: \"its root part Toast.Root is unusable\" },\n { type: \"Toast.Description\", reason: \"its root part Toast.Root is unusable\" },\n { type: \"Toast.Provider\", reason: \"its root part Toast.Root is unusable\" },\n { type: \"Toast.Title\", reason: \"its root part Toast.Root is unusable\" },\n { type: \"Toast.Viewport\", reason: \"its root part Toast.Root is unusable\" },\n { type: \"ToggleGroup\", reason: 'required prop \"items\" has type readonly ChoiceItem[]' },\n {\n type: \"Toolbar.Button\",\n reason: \"no flat export of the same component as Toolbar.Button for client-safe loading\",\n },\n {\n type: \"Toolbar.Link\",\n reason: \"no flat export of the same component as Toolbar.Link for client-safe loading\",\n },\n {\n type: \"Toolbar.Root\",\n reason: \"no flat export of the same component as Toolbar.Root for client-safe loading\",\n },\n {\n type: \"Toolbar.Separator\",\n reason: \"no flat export of the same component as Toolbar.Separator for client-safe loading\",\n },\n { type: \"Toolbar.ToggleGroup\", reason: 'required prop \"items\" has type readonly ChoiceItem[]' },\n] as const satisfies readonly {\n readonly type: string;\n readonly reason: string;\n}[];\n\n/** What each prop `pattern` in the schema requires, for validation messages. */\nexport const uiPatternRules: Readonly<Record<string, string>> = {\n \"^(?![\\\\u0000-\\\\u0020])(?![\\\\s\\\\S]*[\\\\t\\\\n\\\\r])(?![a-zA-Z][a-zA-Z0-9+.-]*:)|^(?![\\\\u0000-\\\\u0020])(?![\\\\s\\\\S]*[\\\\t\\\\n\\\\r])(https?|mailto):\":\n \"an allowed URL; use a relative path or an http:, https: or mailto: URL, with no leading space or control character and no tab or line break\",\n \"^[A-Za-z][A-Za-z0-9_:.-]*$\":\n \"a valid id; start with a letter and use only letters, digits, -, _, : and .\",\n \"^[A-Za-z][A-Za-z0-9_:.-]*( [A-Za-z][A-Za-z0-9_:.-]*)*$\":\n \"a list of ids; separate ids with single spaces, each starting with a letter and using only letters, digits, -, _, : and .\",\n \"^#[0-9a-fA-F]{6}$\": \"a #rrggbb color such as #3366ff\",\n \"^(show-modal|close|request-close|show-popover|hide-popover|toggle-popover|--[a-z][a-z0-9-]*)$\":\n \"a command; use one of show-modal, close, request-close, show-popover, hide-popover, toggle-popover or a custom --name\",\n};\n\n/** How each part type renders: its kind, whether it takes children, the root it sits inside. */\nexport const uiParts: Readonly<\n Record<\n UiType,\n {\n readonly kind: \"component\" | \"native\" | \"layout\";\n readonly leaf: boolean;\n readonly rootType?: UiType;\n }\n >\n> = {\n Alert: { kind: \"component\", leaf: false },\n AlertDescription: { kind: \"component\", leaf: false },\n AlertTitle: { kind: \"component\", leaf: false },\n AlertModal: { kind: \"component\", leaf: false },\n AlertModalAction: { kind: \"component\", leaf: false },\n AlertModalCancel: { kind: \"component\", leaf: false },\n AlertModalContent: { kind: \"component\", leaf: false },\n AlertModalTrigger: { kind: \"component\", leaf: false },\n AspectRatio: { kind: \"component\", leaf: false },\n Avatar: { kind: \"component\", leaf: true },\n Badge: { kind: \"component\", leaf: false },\n \"Breadcrumb.Item\": { kind: \"component\", leaf: false, rootType: \"Breadcrumb.Root\" },\n \"Breadcrumb.Link\": { kind: \"component\", leaf: false, rootType: \"Breadcrumb.Root\" },\n \"Breadcrumb.List\": { kind: \"component\", leaf: false, rootType: \"Breadcrumb.Root\" },\n \"Breadcrumb.Root\": { kind: \"component\", leaf: false },\n \"Breadcrumb.Separator\": { kind: \"component\", leaf: false, rootType: \"Breadcrumb.Root\" },\n Button: { kind: \"component\", leaf: false },\n Card: { kind: \"component\", leaf: false },\n Checkbox: { kind: \"component\", leaf: true },\n ColorPicker: { kind: \"component\", leaf: true },\n DatePicker: { kind: \"component\", leaf: true },\n DescriptionDetails: { kind: \"component\", leaf: false },\n DescriptionList: { kind: \"component\", leaf: false },\n DescriptionTerm: { kind: \"component\", leaf: false },\n \"Drawer.Close\": { kind: \"component\", leaf: false, rootType: \"Drawer.Root\" },\n \"Drawer.Content\": { kind: \"component\", leaf: false, rootType: \"Drawer.Root\" },\n \"Drawer.Description\": { kind: \"component\", leaf: false, rootType: \"Drawer.Root\" },\n \"Drawer.Handle\": { kind: \"component\", leaf: false, rootType: \"Drawer.Root\" },\n \"Drawer.Root\": { kind: \"component\", leaf: false },\n \"Drawer.Title\": { kind: \"component\", leaf: false, rootType: \"Drawer.Root\" },\n \"Drawer.Trigger\": { kind: \"component\", leaf: false, rootType: \"Drawer.Root\" },\n DrawerPanel: { kind: \"component\", leaf: false },\n DrawerNativeTrigger: { kind: \"component\", leaf: false },\n DrawerNativeClose: { kind: \"component\", leaf: false },\n DrawerNativeContent: { kind: \"component\", leaf: false },\n Empty: { kind: \"component\", leaf: false },\n EmptyContent: { kind: \"component\", leaf: false },\n EmptyDescription: { kind: \"component\", leaf: false },\n EmptyTitle: { kind: \"component\", leaf: false },\n \"Field.Root\": { kind: \"component\", leaf: false },\n \"Field.Label\": { kind: \"component\", leaf: false, rootType: \"Field.Root\" },\n \"Field.Control\": { kind: \"component\", leaf: false, rootType: \"Field.Root\" },\n \"Field.Description\": { kind: \"component\", leaf: false, rootType: \"Field.Root\" },\n \"Field.Error\": { kind: \"component\", leaf: false, rootType: \"Field.Root\" },\n Fieldset: { kind: \"component\", leaf: false },\n FieldsetLegend: { kind: \"component\", leaf: false },\n \"FileUpload.Dropzone\": { kind: \"component\", leaf: false, rootType: \"FileUpload.Root\" },\n \"FileUpload.HiddenInput\": { kind: \"component\", leaf: true, rootType: \"FileUpload.Root\" },\n \"FileUpload.Item\": { kind: \"component\", leaf: false, rootType: \"FileUpload.Root\" },\n \"FileUpload.ItemRemove\": { kind: \"component\", leaf: false, rootType: \"FileUpload.Root\" },\n \"FileUpload.List\": { kind: \"component\", leaf: false, rootType: \"FileUpload.Root\" },\n \"FileUpload.Root\": { kind: \"component\", leaf: false },\n \"FileUpload.Trigger\": { kind: \"component\", leaf: false, rootType: \"FileUpload.Root\" },\n Form: { kind: \"component\", leaf: false },\n \"Header.Root\": { kind: \"component\", leaf: false },\n Input: { kind: \"component\", leaf: true },\n InputGroup: { kind: \"component\", leaf: false },\n InputGroupAddon: { kind: \"component\", leaf: false },\n Item: { kind: \"component\", leaf: false },\n ItemActions: { kind: \"component\", leaf: false },\n ItemContent: { kind: \"component\", leaf: false },\n ItemMedia: { kind: \"component\", leaf: false },\n ItemMetadata: { kind: \"component\", leaf: false },\n Modal: { kind: \"component\", leaf: false },\n ModalBody: { kind: \"component\", leaf: false },\n ModalClose: { kind: \"component\", leaf: false },\n ModalContent: { kind: \"component\", leaf: false },\n ModalDescription: { kind: \"component\", leaf: false },\n ModalFooter: { kind: \"component\", leaf: false },\n ModalGrabber: { kind: \"component\", leaf: true },\n ModalHeader: { kind: \"component\", leaf: false },\n ModalTitle: { kind: \"component\", leaf: false },\n ModalTrigger: { kind: \"component\", leaf: false },\n \"NumberField.Root\": { kind: \"component\", leaf: false },\n \"NumberField.Group\": { kind: \"component\", leaf: false, rootType: \"NumberField.Root\" },\n \"NumberField.Input\": { kind: \"component\", leaf: true, rootType: \"NumberField.Root\" },\n \"NumberField.Increment\": { kind: \"component\", leaf: false, rootType: \"NumberField.Root\" },\n \"NumberField.Decrement\": { kind: \"component\", leaf: false, rootType: \"NumberField.Root\" },\n \"Pagination.Ellipsis\": { kind: \"component\", leaf: false, rootType: \"Pagination.Root\" },\n \"Pagination.Item\": { kind: \"component\", leaf: false, rootType: \"Pagination.Root\" },\n \"Pagination.Link\": { kind: \"component\", leaf: false, rootType: \"Pagination.Root\" },\n \"Pagination.List\": { kind: \"component\", leaf: false, rootType: \"Pagination.Root\" },\n \"Pagination.Root\": { kind: \"component\", leaf: false },\n \"Popup.Close\": { kind: \"component\", leaf: false, rootType: \"Popup.Root\" },\n \"Popup.Content\": { kind: \"component\", leaf: false, rootType: \"Popup.Root\" },\n \"Popup.Root\": { kind: \"component\", leaf: false },\n \"Popup.Trigger\": { kind: \"component\", leaf: false, rootType: \"Popup.Root\" },\n PopupClose: { kind: \"component\", leaf: false },\n PopupContent: { kind: \"component\", leaf: false },\n PopupTrigger: { kind: \"component\", leaf: false },\n Progress: { kind: \"component\", leaf: false },\n Rating: { kind: \"component\", leaf: true },\n \"Select.Content\": { kind: \"component\", leaf: false, rootType: \"Select.Root\" },\n \"Select.Group\": { kind: \"component\", leaf: false, rootType: \"Select.Root\" },\n \"Select.Item\": { kind: \"component\", leaf: false, rootType: \"Select.Root\" },\n \"Select.Root\": { kind: \"component\", leaf: false },\n \"Select.Separator\": { kind: \"component\", leaf: true, rootType: \"Select.Root\" },\n Skeleton: { kind: \"component\", leaf: false },\n Slider: { kind: \"component\", leaf: true },\n Spinner: { kind: \"component\", leaf: false },\n Switch: { kind: \"component\", leaf: true },\n \"Table.Footer\": { kind: \"component\", leaf: false, rootType: \"Table.Root\" },\n \"Table.RowHeader\": { kind: \"component\", leaf: false, rootType: \"Table.Root\" },\n \"Table.Body\": { kind: \"component\", leaf: false, rootType: \"Table.Root\" },\n \"Table.Caption\": { kind: \"component\", leaf: false, rootType: \"Table.Root\" },\n \"Table.Cell\": { kind: \"component\", leaf: false, rootType: \"Table.Root\" },\n \"Table.ColumnHeader\": { kind: \"component\", leaf: false, rootType: \"Table.Root\" },\n \"Table.Header\": { kind: \"component\", leaf: false, rootType: \"Table.Root\" },\n \"Table.Root\": { kind: \"component\", leaf: false },\n \"Table.Row\": { kind: \"component\", leaf: false, rootType: \"Table.Root\" },\n Textarea: { kind: \"component\", leaf: false },\n Toggle: { kind: \"component\", leaf: true },\n \"Tooltip.Content\": { kind: \"component\", leaf: false, rootType: \"Tooltip.Root\" },\n \"Tooltip.Provider\": { kind: \"component\", leaf: false },\n \"Tooltip.Root\": { kind: \"component\", leaf: false, rootType: \"Tooltip.Provider\" },\n \"Tooltip.Trigger\": { kind: \"component\", leaf: false, rootType: \"Tooltip.Root\" },\n Stack: { kind: \"layout\", leaf: false },\n Grid: { kind: \"layout\", leaf: false },\n Section: { kind: \"layout\", leaf: false },\n form: { kind: \"native\", leaf: false },\n fieldset: { kind: \"native\", leaf: false },\n section: { kind: \"native\", leaf: false },\n header: { kind: \"native\", leaf: false },\n main: { kind: \"native\", leaf: false },\n nav: { kind: \"native\", leaf: false },\n footer: { kind: \"native\", leaf: false },\n aside: { kind: \"native\", leaf: false },\n ul: { kind: \"native\", leaf: false },\n ol: { kind: \"native\", leaf: false },\n li: { kind: \"native\", leaf: false },\n dl: { kind: \"native\", leaf: false },\n dt: { kind: \"native\", leaf: false },\n dd: { kind: \"native\", leaf: false },\n p: { kind: \"native\", leaf: false },\n strong: { kind: \"native\", leaf: false },\n em: { kind: \"native\", leaf: false },\n legend: { kind: \"native\", leaf: false },\n h1: { kind: \"native\", leaf: false },\n h2: { kind: \"native\", leaf: false },\n h3: { kind: \"native\", leaf: false },\n h4: { kind: \"native\", leaf: false },\n h5: { kind: \"native\", leaf: false },\n h6: { kind: \"native\", leaf: false },\n a: { kind: \"native\", leaf: false },\n label: { kind: \"native\", leaf: false },\n};\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { loadDocument } from "./load.js";
|
|
2
|
+
export { uiDocumentSchema } from "./schema.generated.js";
|
|
3
|
+
export { UiDocumentError } from "./types.js";
|
|
4
|
+
export { UiDocument } from "./UiDocument.js";
|
|
5
|
+
export { validateDocument } from "./validate.js";
|
|
6
|
+
export type { UiValidationResult } from "./validate.js";
|
|
7
|
+
export type { LoadedDocument, UiDocumentData, UiDocumentProps, UiValidationIssue, } from "./types.js";
|
|
8
|
+
export type * from "./catalog.generated.js";
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EACV,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,mBAAmB,wBAAwB,CAAC"}
|
package/dist/ai/index.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { loadDocument } from "./load.js";
|
|
2
|
+
import { uiDocumentSchema } from "./schema.generated.js";
|
|
3
|
+
import { UiDocumentError } from "./types.js";
|
|
4
|
+
import { UiDocument } from "./UiDocument.js";
|
|
5
|
+
import { validateDocument } from "./validate.js";
|
|
6
|
+
export {
|
|
7
|
+
UiDocument,
|
|
8
|
+
UiDocumentError,
|
|
9
|
+
loadDocument,
|
|
10
|
+
uiDocumentSchema,
|
|
11
|
+
validateDocument
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ai/index.ts"],"sourcesContent":["export { loadDocument } from \"./load.js\";\nexport { uiDocumentSchema } from \"./schema.generated.js\";\nexport { UiDocumentError } from \"./types.js\";\nexport { UiDocument } from \"./UiDocument.js\";\nexport { validateDocument } from \"./validate.js\";\nexport type { UiValidationResult } from \"./validate.js\";\nexport type {\n LoadedDocument,\n UiDocumentData,\n UiDocumentProps,\n UiValidationIssue,\n} from \"./types.js\";\n// UiType, UiNode, UiNodeInput (authoring alias), UiChild and every part's `<Name>Props` (natives are `Native<Tag>Props`).\nexport type * from \"./catalog.generated.js\";\n"],"mappings":"AAAA,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AjvError } from "./validator.generated.js";
|
|
2
|
+
import type { UiValidationIssue } from "./types.js";
|
|
3
|
+
/** The readable location of a JSON Pointer in `value`, e.g. `form › Button.props.title`. */
|
|
4
|
+
export declare function breadcrumbAt(value: unknown, pointer: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* Turns Ajv errors into issues. The schema reports every failed branch of the child union and
|
|
7
|
+
* a trailing `if` error; only the precise error at each location is kept.
|
|
8
|
+
*/
|
|
9
|
+
export declare function toIssues(errors: readonly AjvError[] | null | undefined, value: unknown): UiValidationIssue[];
|
|
10
|
+
//# sourceMappingURL=issues.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/ai/issues.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAuFpD,4FAA4F;AAC5F,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpE;AA4FD;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,GAAG,SAAS,EAC9C,KAAK,EAAE,OAAO,GACb,iBAAiB,EAAE,CAqDrB"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
import { uiParts, uiPatternRules } from "./catalog.generated.js";
|
|
2
|
+
const NOISE_KEYWORDS = /* @__PURE__ */ new Set(["anyOf", "oneOf", "if", "then", "else"]);
|
|
3
|
+
const SHOWN_VALUE_LENGTH = 60;
|
|
4
|
+
function unescapePointer(segment) {
|
|
5
|
+
return segment.replaceAll("~1", "/").replaceAll("~0", "~");
|
|
6
|
+
}
|
|
7
|
+
function escapePointer(key) {
|
|
8
|
+
return key.replaceAll("~", "~0").replaceAll("/", "~1");
|
|
9
|
+
}
|
|
10
|
+
function segmentsOf(pointer) {
|
|
11
|
+
return pointer === "" ? [] : pointer.slice(1).split("/").map(unescapePointer);
|
|
12
|
+
}
|
|
13
|
+
function child(container, key) {
|
|
14
|
+
return typeof container === "object" && container !== null && Object.hasOwn(container, key) ? container[key] : void 0;
|
|
15
|
+
}
|
|
16
|
+
function locate(value, pointer) {
|
|
17
|
+
const crumbs = [];
|
|
18
|
+
const segments = segmentsOf(pointer);
|
|
19
|
+
let current = value;
|
|
20
|
+
let nodeType;
|
|
21
|
+
let consumed = 0;
|
|
22
|
+
const enter = (node, fallback) => {
|
|
23
|
+
const type = child(node, "type");
|
|
24
|
+
nodeType = typeof type === "string" ? type : void 0;
|
|
25
|
+
crumbs.push(nodeType ?? fallback);
|
|
26
|
+
};
|
|
27
|
+
if (typeof child(current, "type") === "string") enter(current, "document");
|
|
28
|
+
for (let index = 0; index < segments.length; index += 1) {
|
|
29
|
+
const segment = segments[index];
|
|
30
|
+
if (segment === "root" && crumbs.length === 0) {
|
|
31
|
+
current = child(current, "root");
|
|
32
|
+
consumed = index + 1;
|
|
33
|
+
enter(current, "root");
|
|
34
|
+
} else if (segment === "children" && crumbs.length > 0) {
|
|
35
|
+
const next = segments[index + 1];
|
|
36
|
+
const list = child(current, "children");
|
|
37
|
+
const item = next === void 0 ? void 0 : child(list, next);
|
|
38
|
+
if (next === void 0 || item === void 0) break;
|
|
39
|
+
index += 1;
|
|
40
|
+
consumed = index + 1;
|
|
41
|
+
if (typeof item !== "object" || item === null) {
|
|
42
|
+
crumbs.push(`children[${next}]`);
|
|
43
|
+
current = item;
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
current = item;
|
|
47
|
+
enter(current, `children[${next}]`);
|
|
48
|
+
} else {
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
let target = current;
|
|
53
|
+
const rest = segments.slice(consumed);
|
|
54
|
+
for (const segment of rest) target = child(target, segment);
|
|
55
|
+
return { crumbs, nodeType, rest, target };
|
|
56
|
+
}
|
|
57
|
+
function breadcrumbOf(location, extra) {
|
|
58
|
+
const tail = [...location.rest, ...extra].join(".");
|
|
59
|
+
if (location.crumbs.length === 0) return tail === "" ? "document" : tail;
|
|
60
|
+
const crumbs = [...location.crumbs];
|
|
61
|
+
if (tail !== "") crumbs[crumbs.length - 1] += `.${tail}`;
|
|
62
|
+
return crumbs.join(" \u203A ");
|
|
63
|
+
}
|
|
64
|
+
function breadcrumbAt(value, pointer) {
|
|
65
|
+
return breadcrumbOf(locate(value, pointer), []);
|
|
66
|
+
}
|
|
67
|
+
function show(value) {
|
|
68
|
+
let text;
|
|
69
|
+
try {
|
|
70
|
+
text = JSON.stringify(value) ?? String(typeof value);
|
|
71
|
+
} catch {
|
|
72
|
+
text = `a ${typeof value} value`;
|
|
73
|
+
}
|
|
74
|
+
return text.length > SHOWN_VALUE_LENGTH ? `${text.slice(0, SHOWN_VALUE_LENGTH)}\u2026` : text;
|
|
75
|
+
}
|
|
76
|
+
function isChildPath(pointer) {
|
|
77
|
+
return /\/children\/\d+$/.test(pointer);
|
|
78
|
+
}
|
|
79
|
+
function explain(error, location) {
|
|
80
|
+
const { params } = error;
|
|
81
|
+
const insideProps = location.rest[0] === "props" && location.rest.length === 1;
|
|
82
|
+
switch (error.keyword) {
|
|
83
|
+
case "enum": {
|
|
84
|
+
const allowed = params.allowedValues;
|
|
85
|
+
return {
|
|
86
|
+
message: `${show(location.target)} is not allowed; use one of ${allowed.map(show).join(", ")}`,
|
|
87
|
+
allowed
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
case "const": {
|
|
91
|
+
const allowed = [params.allowedValue];
|
|
92
|
+
return {
|
|
93
|
+
message: `${show(location.target)} is not allowed; use ${show(params.allowedValue)}`,
|
|
94
|
+
allowed
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
case "required": {
|
|
98
|
+
const name = String(params.missingProperty);
|
|
99
|
+
return {
|
|
100
|
+
message: insideProps ? `missing required prop ${show(name)}` : `missing required property ${show(name)}`,
|
|
101
|
+
extra: name
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
case "additionalProperties": {
|
|
105
|
+
const name = String(params.additionalProperty);
|
|
106
|
+
const node = location.rest.length === 0 && location.crumbs.length > 0;
|
|
107
|
+
if (name === "children" && node && location.nodeType !== void 0 && uiParts[location.nodeType]?.leaf) {
|
|
108
|
+
return { message: `${location.nodeType} takes no children`, extra: name };
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
message: insideProps ? `unknown prop ${show(name)}` : `unknown property ${show(name)}`,
|
|
112
|
+
extra: name
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
case "discriminator": {
|
|
116
|
+
if (params.error === "mapping") {
|
|
117
|
+
return {
|
|
118
|
+
message: `unknown type ${show(params.tagValue)}`,
|
|
119
|
+
extra: "type",
|
|
120
|
+
allowed: Object.keys(uiParts)
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
return { message: 'the "type" property must be a string naming a part', extra: "type" };
|
|
124
|
+
}
|
|
125
|
+
case "pattern": {
|
|
126
|
+
const rule = uiPatternRules[String(params.pattern)];
|
|
127
|
+
return {
|
|
128
|
+
message: `${show(location.target)} is not ${rule ?? `allowed; it must match ${String(params.pattern)}`}`
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
case "type": {
|
|
132
|
+
if (params.type === "object" && isChildPath(error.instancePath)) {
|
|
133
|
+
return {
|
|
134
|
+
message: `a child must be a string or a node object, not ${show(location.target)}`
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
return { message: `must be ${String(params.type)}, not ${show(location.target)}` };
|
|
138
|
+
}
|
|
139
|
+
default:
|
|
140
|
+
return { message: error.message ?? "is invalid" };
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function toIssues(errors, value) {
|
|
144
|
+
const list = errors ?? [];
|
|
145
|
+
const requiredTypeAt = new Set(
|
|
146
|
+
list.filter((e) => e.keyword === "required" && e.params.missingProperty === "type").map((e) => e.instancePath)
|
|
147
|
+
);
|
|
148
|
+
const seen = /* @__PURE__ */ new Set();
|
|
149
|
+
const issues = [];
|
|
150
|
+
for (const error of list) {
|
|
151
|
+
if (NOISE_KEYWORDS.has(error.keyword)) continue;
|
|
152
|
+
if (error.keyword === "type" && error.params.type === "string" && isChildPath(error.instancePath))
|
|
153
|
+
continue;
|
|
154
|
+
if (error.keyword === "discriminator" && error.params.error === "tag" && requiredTypeAt.has(error.instancePath))
|
|
155
|
+
continue;
|
|
156
|
+
const location = locate(value, error.instancePath);
|
|
157
|
+
const found = explain(error, location);
|
|
158
|
+
const extra = found.extra === void 0 ? [] : [found.extra];
|
|
159
|
+
const leafChildren = error.keyword === "additionalProperties" && found.extra === "children" && found.message.endsWith("takes no children");
|
|
160
|
+
const path = found.extra === void 0 ? error.instancePath : `${error.instancePath}/${escapePointer(found.extra)}`;
|
|
161
|
+
const issue = {
|
|
162
|
+
path,
|
|
163
|
+
breadcrumb: breadcrumbOf(location, leafChildren ? [] : extra),
|
|
164
|
+
message: found.message,
|
|
165
|
+
...found.allowed === void 0 ? {} : { allowed: found.allowed }
|
|
166
|
+
};
|
|
167
|
+
const key = `${issue.path}\0${issue.message}`;
|
|
168
|
+
if (seen.has(key)) continue;
|
|
169
|
+
seen.add(key);
|
|
170
|
+
issues.push(issue);
|
|
171
|
+
}
|
|
172
|
+
return issues.length > 0 ? issues : [{ path: "", breadcrumb: "document", message: "does not match the UI document schema" }];
|
|
173
|
+
}
|
|
174
|
+
export {
|
|
175
|
+
breadcrumbAt,
|
|
176
|
+
toIssues
|
|
177
|
+
};
|
|
178
|
+
//# sourceMappingURL=issues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/ai/issues.ts"],"sourcesContent":["import { uiParts, uiPatternRules } from \"./catalog.generated.js\";\nimport type { AjvError } from \"./validator.generated.js\";\nimport type { UiValidationIssue } from \"./types.js\";\n\nconst NOISE_KEYWORDS = new Set([\"anyOf\", \"oneOf\", \"if\", \"then\", \"else\"]);\nconst SHOWN_VALUE_LENGTH = 60;\n\nfunction unescapePointer(segment: string): string {\n return segment.replaceAll(\"~1\", \"/\").replaceAll(\"~0\", \"~\");\n}\n\nfunction escapePointer(key: string): string {\n return key.replaceAll(\"~\", \"~0\").replaceAll(\"/\", \"~1\");\n}\n\nfunction segmentsOf(pointer: string): string[] {\n return pointer === \"\" ? [] : pointer.slice(1).split(\"/\").map(unescapePointer);\n}\n\nfunction child(container: unknown, key: string): unknown {\n return typeof container === \"object\" && container !== null && Object.hasOwn(container, key)\n ? (container as Record<string, unknown>)[key]\n : undefined;\n}\n\n/** Where a pointer lands: the node types passed on the way and the value it points at. */\ninterface Location {\n readonly crumbs: string[];\n /** The type of the nearest node on the way, if it has a string type. */\n readonly nodeType: string | undefined;\n /** Segments after the nearest node, e.g. `[\"props\", \"variant\"]`. */\n readonly rest: string[];\n readonly target: unknown;\n}\n\nfunction locate(value: unknown, pointer: string): Location {\n const crumbs: string[] = [];\n const segments = segmentsOf(pointer);\n let current = value;\n let nodeType: string | undefined;\n let consumed = 0;\n\n const enter = (node: unknown, fallback: string): void => {\n const type = child(node, \"type\");\n nodeType = typeof type === \"string\" ? type : undefined;\n crumbs.push(nodeType ?? fallback);\n };\n\n if (typeof child(current, \"type\") === \"string\") enter(current, \"document\");\n for (let index = 0; index < segments.length; index += 1) {\n const segment = segments[index] as string;\n if (segment === \"root\" && crumbs.length === 0) {\n current = child(current, \"root\");\n consumed = index + 1;\n enter(current, \"root\");\n } else if (segment === \"children\" && crumbs.length > 0) {\n const next = segments[index + 1];\n const list = child(current, \"children\");\n const item = next === undefined ? undefined : child(list, next);\n if (next === undefined || item === undefined) break;\n index += 1;\n consumed = index + 1;\n if (typeof item !== \"object\" || item === null) {\n // Text or a wrong value, not a node: name the position and stop.\n crumbs.push(`children[${next}]`);\n current = item;\n break;\n }\n current = item;\n enter(current, `children[${next}]`);\n } else {\n break;\n }\n }\n\n let target = current;\n const rest = segments.slice(consumed);\n for (const segment of rest) target = child(target, segment);\n return { crumbs, nodeType, rest, target };\n}\n\nfunction breadcrumbOf(location: Location, extra: readonly string[]): string {\n const tail = [...location.rest, ...extra].join(\".\");\n if (location.crumbs.length === 0) return tail === \"\" ? \"document\" : tail;\n const crumbs = [...location.crumbs];\n if (tail !== \"\") crumbs[crumbs.length - 1] += `.${tail}`;\n return crumbs.join(\" › \");\n}\n\n/** The readable location of a JSON Pointer in `value`, e.g. `form › Button.props.title`. */\nexport function breadcrumbAt(value: unknown, pointer: string): string {\n return breadcrumbOf(locate(value, pointer), []);\n}\n\nfunction show(value: unknown): string {\n let text: string;\n try {\n // JSON.stringify throws on cycles and BigInt, and returns undefined for functions.\n text = JSON.stringify(value) ?? String(typeof value);\n } catch {\n text = `a ${typeof value} value`;\n }\n return text.length > SHOWN_VALUE_LENGTH ? `${text.slice(0, SHOWN_VALUE_LENGTH)}…` : text;\n}\n\nfunction isChildPath(pointer: string): boolean {\n return /\\/children\\/\\d+$/.test(pointer);\n}\n\nfunction explain(\n error: AjvError,\n location: Location,\n): { message: string; extra?: string; allowed?: readonly unknown[] } {\n const { params } = error;\n const insideProps = location.rest[0] === \"props\" && location.rest.length === 1;\n switch (error.keyword) {\n case \"enum\": {\n const allowed = params.allowedValues as readonly unknown[];\n return {\n message: `${show(location.target)} is not allowed; use one of ${allowed.map(show).join(\", \")}`,\n allowed,\n };\n }\n case \"const\": {\n const allowed = [params.allowedValue];\n return {\n message: `${show(location.target)} is not allowed; use ${show(params.allowedValue)}`,\n allowed,\n };\n }\n case \"required\": {\n const name = String(params.missingProperty);\n return {\n message: insideProps\n ? `missing required prop ${show(name)}`\n : `missing required property ${show(name)}`,\n extra: name,\n };\n }\n case \"additionalProperties\": {\n const name = String(params.additionalProperty);\n const node = location.rest.length === 0 && location.crumbs.length > 0;\n if (\n name === \"children\" &&\n node &&\n location.nodeType !== undefined &&\n uiParts[location.nodeType as keyof typeof uiParts]?.leaf\n ) {\n return { message: `${location.nodeType} takes no children`, extra: name };\n }\n return {\n message: insideProps ? `unknown prop ${show(name)}` : `unknown property ${show(name)}`,\n extra: name,\n };\n }\n case \"discriminator\": {\n if (params.error === \"mapping\") {\n return {\n message: `unknown type ${show(params.tagValue)}`,\n extra: \"type\",\n allowed: Object.keys(uiParts),\n };\n }\n return { message: 'the \"type\" property must be a string naming a part', extra: \"type\" };\n }\n case \"pattern\": {\n const rule = uiPatternRules[String(params.pattern)];\n return {\n message: `${show(location.target)} is not ${rule ?? `allowed; it must match ${String(params.pattern)}`}`,\n };\n }\n case \"type\": {\n if (params.type === \"object\" && isChildPath(error.instancePath)) {\n return {\n message: `a child must be a string or a node object, not ${show(location.target)}`,\n };\n }\n return { message: `must be ${String(params.type)}, not ${show(location.target)}` };\n }\n default:\n return { message: error.message ?? \"is invalid\" };\n }\n}\n\n/**\n * Turns Ajv errors into issues. The schema reports every failed branch of the child union and\n * a trailing `if` error; only the precise error at each location is kept.\n */\nexport function toIssues(\n errors: readonly AjvError[] | null | undefined,\n value: unknown,\n): UiValidationIssue[] {\n const list = errors ?? [];\n const requiredTypeAt = new Set(\n list\n .filter((e) => e.keyword === \"required\" && e.params.missingProperty === \"type\")\n .map((e) => e.instancePath),\n );\n const seen = new Set<string>();\n const issues: UiValidationIssue[] = [];\n\n for (const error of list) {\n if (NOISE_KEYWORDS.has(error.keyword)) continue;\n // The string branch of the child union: a node that fails on its own has a precise error.\n if (\n error.keyword === \"type\" &&\n error.params.type === \"string\" &&\n isChildPath(error.instancePath)\n )\n continue;\n // A missing \"type\" is reported once, by `required`.\n if (\n error.keyword === \"discriminator\" &&\n error.params.error === \"tag\" &&\n requiredTypeAt.has(error.instancePath)\n )\n continue;\n\n const location = locate(value, error.instancePath);\n const found = explain(error, location);\n const extra = found.extra === undefined ? [] : [found.extra];\n const leafChildren =\n error.keyword === \"additionalProperties\" &&\n found.extra === \"children\" &&\n found.message.endsWith(\"takes no children\");\n const path =\n found.extra === undefined\n ? error.instancePath\n : `${error.instancePath}/${escapePointer(found.extra)}`;\n const issue: UiValidationIssue = {\n path,\n breadcrumb: breadcrumbOf(location, leafChildren ? [] : extra),\n message: found.message,\n ...(found.allowed === undefined ? {} : { allowed: found.allowed }),\n };\n const key = `${issue.path}\\u0000${issue.message}`;\n if (seen.has(key)) continue;\n seen.add(key);\n issues.push(issue);\n }\n\n return issues.length > 0\n ? issues\n : [{ path: \"\", breadcrumb: \"document\", message: \"does not match the UI document schema\" }];\n}\n"],"mappings":"AAAA,SAAS,SAAS,sBAAsB;AAIxC,MAAM,iBAAiB,oBAAI,IAAI,CAAC,SAAS,SAAS,MAAM,QAAQ,MAAM,CAAC;AACvE,MAAM,qBAAqB;AAE3B,SAAS,gBAAgB,SAAyB;AAChD,SAAO,QAAQ,WAAW,MAAM,GAAG,EAAE,WAAW,MAAM,GAAG;AAC3D;AAEA,SAAS,cAAc,KAAqB;AAC1C,SAAO,IAAI,WAAW,KAAK,IAAI,EAAE,WAAW,KAAK,IAAI;AACvD;AAEA,SAAS,WAAW,SAA2B;AAC7C,SAAO,YAAY,KAAK,CAAC,IAAI,QAAQ,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,IAAI,eAAe;AAC9E;AAEA,SAAS,MAAM,WAAoB,KAAsB;AACvD,SAAO,OAAO,cAAc,YAAY,cAAc,QAAQ,OAAO,OAAO,WAAW,GAAG,IACrF,UAAsC,GAAG,IAC1C;AACN;AAYA,SAAS,OAAO,OAAgB,SAA2B;AACzD,QAAM,SAAmB,CAAC;AAC1B,QAAM,WAAW,WAAW,OAAO;AACnC,MAAI,UAAU;AACd,MAAI;AACJ,MAAI,WAAW;AAEf,QAAM,QAAQ,CAAC,MAAe,aAA2B;AACvD,UAAM,OAAO,MAAM,MAAM,MAAM;AAC/B,eAAW,OAAO,SAAS,WAAW,OAAO;AAC7C,WAAO,KAAK,YAAY,QAAQ;AAAA,EAClC;AAEA,MAAI,OAAO,MAAM,SAAS,MAAM,MAAM,SAAU,OAAM,SAAS,UAAU;AACzE,WAAS,QAAQ,GAAG,QAAQ,SAAS,QAAQ,SAAS,GAAG;AACvD,UAAM,UAAU,SAAS,KAAK;AAC9B,QAAI,YAAY,UAAU,OAAO,WAAW,GAAG;AAC7C,gBAAU,MAAM,SAAS,MAAM;AAC/B,iBAAW,QAAQ;AACnB,YAAM,SAAS,MAAM;AAAA,IACvB,WAAW,YAAY,cAAc,OAAO,SAAS,GAAG;AACtD,YAAM,OAAO,SAAS,QAAQ,CAAC;AAC/B,YAAM,OAAO,MAAM,SAAS,UAAU;AACtC,YAAM,OAAO,SAAS,SAAY,SAAY,MAAM,MAAM,IAAI;AAC9D,UAAI,SAAS,UAAa,SAAS,OAAW;AAC9C,eAAS;AACT,iBAAW,QAAQ;AACnB,UAAI,OAAO,SAAS,YAAY,SAAS,MAAM;AAE7C,eAAO,KAAK,YAAY,IAAI,GAAG;AAC/B,kBAAU;AACV;AAAA,MACF;AACA,gBAAU;AACV,YAAM,SAAS,YAAY,IAAI,GAAG;AAAA,IACpC,OAAO;AACL;AAAA,IACF;AAAA,EACF;AAEA,MAAI,SAAS;AACb,QAAM,OAAO,SAAS,MAAM,QAAQ;AACpC,aAAW,WAAW,KAAM,UAAS,MAAM,QAAQ,OAAO;AAC1D,SAAO,EAAE,QAAQ,UAAU,MAAM,OAAO;AAC1C;AAEA,SAAS,aAAa,UAAoB,OAAkC;AAC1E,QAAM,OAAO,CAAC,GAAG,SAAS,MAAM,GAAG,KAAK,EAAE,KAAK,GAAG;AAClD,MAAI,SAAS,OAAO,WAAW,EAAG,QAAO,SAAS,KAAK,aAAa;AACpE,QAAM,SAAS,CAAC,GAAG,SAAS,MAAM;AAClC,MAAI,SAAS,GAAI,QAAO,OAAO,SAAS,CAAC,KAAK,IAAI,IAAI;AACtD,SAAO,OAAO,KAAK,UAAK;AAC1B;AAGO,SAAS,aAAa,OAAgB,SAAyB;AACpE,SAAO,aAAa,OAAO,OAAO,OAAO,GAAG,CAAC,CAAC;AAChD;AAEA,SAAS,KAAK,OAAwB;AACpC,MAAI;AACJ,MAAI;AAEF,WAAO,KAAK,UAAU,KAAK,KAAK,OAAO,OAAO,KAAK;AAAA,EACrD,QAAQ;AACN,WAAO,KAAK,OAAO,KAAK;AAAA,EAC1B;AACA,SAAO,KAAK,SAAS,qBAAqB,GAAG,KAAK,MAAM,GAAG,kBAAkB,CAAC,WAAM;AACtF;AAEA,SAAS,YAAY,SAA0B;AAC7C,SAAO,mBAAmB,KAAK,OAAO;AACxC;AAEA,SAAS,QACP,OACA,UACmE;AACnE,QAAM,EAAE,OAAO,IAAI;AACnB,QAAM,cAAc,SAAS,KAAK,CAAC,MAAM,WAAW,SAAS,KAAK,WAAW;AAC7E,UAAQ,MAAM,SAAS;AAAA,IACrB,KAAK,QAAQ;AACX,YAAM,UAAU,OAAO;AACvB,aAAO;AAAA,QACL,SAAS,GAAG,KAAK,SAAS,MAAM,CAAC,+BAA+B,QAAQ,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC;AAAA,QAC5F;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,SAAS;AACZ,YAAM,UAAU,CAAC,OAAO,YAAY;AACpC,aAAO;AAAA,QACL,SAAS,GAAG,KAAK,SAAS,MAAM,CAAC,wBAAwB,KAAK,OAAO,YAAY,CAAC;AAAA,QAClF;AAAA,MACF;AAAA,IACF;AAAA,IACA,KAAK,YAAY;AACf,YAAM,OAAO,OAAO,OAAO,eAAe;AAC1C,aAAO;AAAA,QACL,SAAS,cACL,yBAAyB,KAAK,IAAI,CAAC,KACnC,6BAA6B,KAAK,IAAI,CAAC;AAAA,QAC3C,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,KAAK,wBAAwB;AAC3B,YAAM,OAAO,OAAO,OAAO,kBAAkB;AAC7C,YAAM,OAAO,SAAS,KAAK,WAAW,KAAK,SAAS,OAAO,SAAS;AACpE,UACE,SAAS,cACT,QACA,SAAS,aAAa,UACtB,QAAQ,SAAS,QAAgC,GAAG,MACpD;AACA,eAAO,EAAE,SAAS,GAAG,SAAS,QAAQ,sBAAsB,OAAO,KAAK;AAAA,MAC1E;AACA,aAAO;AAAA,QACL,SAAS,cAAc,gBAAgB,KAAK,IAAI,CAAC,KAAK,oBAAoB,KAAK,IAAI,CAAC;AAAA,QACpF,OAAO;AAAA,MACT;AAAA,IACF;AAAA,IACA,KAAK,iBAAiB;AACpB,UAAI,OAAO,UAAU,WAAW;AAC9B,eAAO;AAAA,UACL,SAAS,gBAAgB,KAAK,OAAO,QAAQ,CAAC;AAAA,UAC9C,OAAO;AAAA,UACP,SAAS,OAAO,KAAK,OAAO;AAAA,QAC9B;AAAA,MACF;AACA,aAAO,EAAE,SAAS,sDAAsD,OAAO,OAAO;AAAA,IACxF;AAAA,IACA,KAAK,WAAW;AACd,YAAM,OAAO,eAAe,OAAO,OAAO,OAAO,CAAC;AAClD,aAAO;AAAA,QACL,SAAS,GAAG,KAAK,SAAS,MAAM,CAAC,WAAW,QAAQ,0BAA0B,OAAO,OAAO,OAAO,CAAC,EAAE;AAAA,MACxG;AAAA,IACF;AAAA,IACA,KAAK,QAAQ;AACX,UAAI,OAAO,SAAS,YAAY,YAAY,MAAM,YAAY,GAAG;AAC/D,eAAO;AAAA,UACL,SAAS,kDAAkD,KAAK,SAAS,MAAM,CAAC;AAAA,QAClF;AAAA,MACF;AACA,aAAO,EAAE,SAAS,WAAW,OAAO,OAAO,IAAI,CAAC,SAAS,KAAK,SAAS,MAAM,CAAC,GAAG;AAAA,IACnF;AAAA,IACA;AACE,aAAO,EAAE,SAAS,MAAM,WAAW,aAAa;AAAA,EACpD;AACF;AAMO,SAAS,SACd,QACA,OACqB;AACrB,QAAM,OAAO,UAAU,CAAC;AACxB,QAAM,iBAAiB,IAAI;AAAA,IACzB,KACG,OAAO,CAAC,MAAM,EAAE,YAAY,cAAc,EAAE,OAAO,oBAAoB,MAAM,EAC7E,IAAI,CAAC,MAAM,EAAE,YAAY;AAAA,EAC9B;AACA,QAAM,OAAO,oBAAI,IAAY;AAC7B,QAAM,SAA8B,CAAC;AAErC,aAAW,SAAS,MAAM;AACxB,QAAI,eAAe,IAAI,MAAM,OAAO,EAAG;AAEvC,QACE,MAAM,YAAY,UAClB,MAAM,OAAO,SAAS,YACtB,YAAY,MAAM,YAAY;AAE9B;AAEF,QACE,MAAM,YAAY,mBAClB,MAAM,OAAO,UAAU,SACvB,eAAe,IAAI,MAAM,YAAY;AAErC;AAEF,UAAM,WAAW,OAAO,OAAO,MAAM,YAAY;AACjD,UAAM,QAAQ,QAAQ,OAAO,QAAQ;AACrC,UAAM,QAAQ,MAAM,UAAU,SAAY,CAAC,IAAI,CAAC,MAAM,KAAK;AAC3D,UAAM,eACJ,MAAM,YAAY,0BAClB,MAAM,UAAU,cAChB,MAAM,QAAQ,SAAS,mBAAmB;AAC5C,UAAM,OACJ,MAAM,UAAU,SACZ,MAAM,eACN,GAAG,MAAM,YAAY,IAAI,cAAc,MAAM,KAAK,CAAC;AACzD,UAAM,QAA2B;AAAA,MAC/B;AAAA,MACA,YAAY,aAAa,UAAU,eAAe,CAAC,IAAI,KAAK;AAAA,MAC5D,SAAS,MAAM;AAAA,MACf,GAAI,MAAM,YAAY,SAAY,CAAC,IAAI,EAAE,SAAS,MAAM,QAAQ;AAAA,IAClE;AACA,UAAM,MAAM,GAAG,MAAM,IAAI,KAAS,MAAM,OAAO;AAC/C,QAAI,KAAK,IAAI,GAAG,EAAG;AACnB,SAAK,IAAI,GAAG;AACZ,WAAO,KAAK,KAAK;AAAA,EACnB;AAEA,SAAO,OAAO,SAAS,IACnB,SACA,CAAC,EAAE,MAAM,IAAI,YAAY,YAAY,SAAS,wCAAwC,CAAC;AAC7F;","names":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { ComponentType, ReactElement, ReactNode } from "react";
|
|
2
|
+
import type { GridProps, SectionProps, StackProps } from "./catalog.generated.js";
|
|
3
|
+
/**
|
|
4
|
+
* Layout nodes of a UI document. They are plain elements marked with `data-ui-layout`
|
|
5
|
+
* and styled by `styles/components/ai-layout.css`, so they need no hooks and no client JS.
|
|
6
|
+
*/
|
|
7
|
+
export declare function Stack({ direction, gap, align, wrap, children, }: StackProps & {
|
|
8
|
+
children?: ReactNode;
|
|
9
|
+
}): ReactElement;
|
|
10
|
+
export declare namespace Stack {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function Grid({ columns, gap, children, }: GridProps & {
|
|
14
|
+
children?: ReactNode;
|
|
15
|
+
}): ReactElement;
|
|
16
|
+
export declare namespace Grid {
|
|
17
|
+
var displayName: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function Section({ as: Tag, padding, width, children, }: SectionProps & {
|
|
20
|
+
children?: ReactNode;
|
|
21
|
+
}): ReactElement;
|
|
22
|
+
export declare namespace Section {
|
|
23
|
+
var displayName: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const layoutComponents: Readonly<Record<"Stack" | "Grid" | "Section", ComponentType<any>>>;
|
|
26
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/ai/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAElF;;;GAGG;AAEH,wBAAgB,KAAK,CAAC,EACpB,SAAS,EACT,GAAG,EACH,KAAK,EACL,IAAI,EACJ,QAAQ,GACT,EAAE,UAAU,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAYtD;yBAlBe,KAAK;;;AAqBrB,wBAAgB,IAAI,CAAC,EACnB,OAAO,EACP,GAAG,EACH,QAAQ,GACT,EAAE,SAAS,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAMrD;yBAVe,IAAI;;;AAapB,wBAAgB,OAAO,CAAC,EACtB,EAAE,EAAE,GAAe,EACnB,OAAO,EACP,KAAK,EACL,QAAQ,GACT,EAAE,YAAY,GAAG;IAAE,QAAQ,CAAC,EAAE,SAAS,CAAA;CAAE,GAAG,YAAY,CAMxD;yBAXe,OAAO;;;AAevB,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAG,MAAM,GAAG,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CACtE,CAAC"}
|