@signalflare-ai/ui 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +96 -0
- package/README.md +527 -0
- package/ai/USAGE.md +200 -0
- package/ai/component-registry.json +7103 -0
- package/ai/component-registry.md +3046 -0
- package/ai/schemas.ts +1230 -0
- package/bin/intent.js +23 -0
- package/bin/sf.js +34 -0
- package/dist/.build-complete +1 -0
- package/dist/ai/schemas.d.ts +7056 -0
- package/dist/ai/schemas.d.ts.map +1 -0
- package/dist/ai-actions-DG1dhDMP.js +57 -0
- package/dist/ai-actions-DG1dhDMP.js.map +1 -0
- package/dist/ai-agent-card-BbtL4NII.js +171 -0
- package/dist/ai-agent-card-BbtL4NII.js.map +1 -0
- package/dist/ai-approval-Mb7-BY6i.js +184 -0
- package/dist/ai-approval-Mb7-BY6i.js.map +1 -0
- package/dist/ai-code-block-BI_z0UVR.js +110 -0
- package/dist/ai-code-block-BI_z0UVR.js.map +1 -0
- package/dist/ai-conversation-DYtExcrw.js +184 -0
- package/dist/ai-conversation-DYtExcrw.js.map +1 -0
- package/dist/ai-info-banner-BpzauUAY.js +76 -0
- package/dist/ai-info-banner-BpzauUAY.js.map +1 -0
- package/dist/ai-loader-Cr3eQkNS.js +134 -0
- package/dist/ai-loader-Cr3eQkNS.js.map +1 -0
- package/dist/ai-message-CV8SBoHM.js +286 -0
- package/dist/ai-message-CV8SBoHM.js.map +1 -0
- package/dist/ai-mission-header-ByYkJ6YP.js +171 -0
- package/dist/ai-mission-header-ByYkJ6YP.js.map +1 -0
- package/dist/ai-prompt-input-Bo1YuJly.js +769 -0
- package/dist/ai-prompt-input-Bo1YuJly.js.map +1 -0
- package/dist/ai-question-Dp1g9k2o.js +149 -0
- package/dist/ai-question-Dp1g9k2o.js.map +1 -0
- package/dist/ai-reasoning-UAmNx_LD.js +270 -0
- package/dist/ai-reasoning-UAmNx_LD.js.map +1 -0
- package/dist/ai-response-BWoVsNQG.js +42 -0
- package/dist/ai-response-BWoVsNQG.js.map +1 -0
- package/dist/ai-shimmer-BpOmfonu.js +43 -0
- package/dist/ai-shimmer-BpOmfonu.js.map +1 -0
- package/dist/ai-status-badge-WhbKVeqn.js +63 -0
- package/dist/ai-status-badge-WhbKVeqn.js.map +1 -0
- package/dist/ai-streaming-text-ClL7FwvD.js +81 -0
- package/dist/ai-streaming-text-ClL7FwvD.js.map +1 -0
- package/dist/ai-subagent-BruGN1UE.js +133 -0
- package/dist/ai-subagent-BruGN1UE.js.map +1 -0
- package/dist/ai-suggestion-CNsCZj5P.js +55 -0
- package/dist/ai-suggestion-CNsCZj5P.js.map +1 -0
- package/dist/ai-task-list-B9CpMDYN.js +120 -0
- package/dist/ai-task-list-B9CpMDYN.js.map +1 -0
- package/dist/ai-timeline-Bb5ntsr3.js +373 -0
- package/dist/ai-timeline-Bb5ntsr3.js.map +1 -0
- package/dist/ai-tool-BGH8nQ_D.js +437 -0
- package/dist/ai-tool-BGH8nQ_D.js.map +1 -0
- package/dist/ai-usage-bar-BI-p-JBk.js +70 -0
- package/dist/ai-usage-bar-BI-p-JBk.js.map +1 -0
- package/dist/badge-D_eaA6wv.js +128 -0
- package/dist/badge-D_eaA6wv.js.map +1 -0
- package/dist/banner-B_6oBrsu.js +54 -0
- package/dist/banner-B_6oBrsu.js.map +1 -0
- package/dist/breadcrumbs-BlmeYfgq.js +128 -0
- package/dist/breadcrumbs-BlmeYfgq.js.map +1 -0
- package/dist/button-De0267YU.js +170 -0
- package/dist/button-De0267YU.js.map +1 -0
- package/dist/catalog.js +506 -0
- package/dist/catalog.js.map +1 -0
- package/dist/chart-Bes4MN3C.js +618 -0
- package/dist/chart-Bes4MN3C.js.map +1 -0
- package/dist/checkbox-CPX7lBaU.js +153 -0
- package/dist/checkbox-CPX7lBaU.js.map +1 -0
- package/dist/clipboard-text-92YeCybc.js +176 -0
- package/dist/clipboard-text-92YeCybc.js.map +1 -0
- package/dist/cn-YROP2_ox.js +25 -0
- package/dist/cn-YROP2_ox.js.map +1 -0
- package/dist/code-DE1Yy1Cu.js +97 -0
- package/dist/code-DE1Yy1Cu.js.map +1 -0
- package/dist/collapsible-DWsXeXmS.js +72 -0
- package/dist/collapsible-DWsXeXmS.js.map +1 -0
- package/dist/combobox-B0bLdsX8.js +197 -0
- package/dist/combobox-B0bLdsX8.js.map +1 -0
- package/dist/command-line/cli.js +823 -0
- package/dist/command-palette-CBTY8EiF.js +484 -0
- package/dist/command-palette-CBTY8EiF.js.map +1 -0
- package/dist/components/ai-actions.js +3 -0
- package/dist/components/ai-agent-card.js +3 -0
- package/dist/components/ai-approval.js +3 -0
- package/dist/components/ai-code-block.js +3 -0
- package/dist/components/ai-conversation.js +3 -0
- package/dist/components/ai-info-banner.js +3 -0
- package/dist/components/ai-loader.js +3 -0
- package/dist/components/ai-message.js +3 -0
- package/dist/components/ai-mission-header.js +3 -0
- package/dist/components/ai-prompt-input.js +3 -0
- package/dist/components/ai-question.js +3 -0
- package/dist/components/ai-reasoning.js +3 -0
- package/dist/components/ai-response.js +3 -0
- package/dist/components/ai-shimmer.js +3 -0
- package/dist/components/ai-status-badge.js +3 -0
- package/dist/components/ai-streaming-text.js +3 -0
- package/dist/components/ai-subagent.js +3 -0
- package/dist/components/ai-suggestion.js +3 -0
- package/dist/components/ai-task-list.js +3 -0
- package/dist/components/ai-timeline.js +3 -0
- package/dist/components/ai-tool.js +3 -0
- package/dist/components/ai-usage-bar.js +3 -0
- package/dist/components/badge.js +3 -0
- package/dist/components/banner.js +3 -0
- package/dist/components/breadcrumbs.js +3 -0
- package/dist/components/button.js +3 -0
- package/dist/components/chart.js +3 -0
- package/dist/components/checkbox.js +3 -0
- package/dist/components/clipboard-text.js +3 -0
- package/dist/components/code.js +3 -0
- package/dist/components/collapsible.js +3 -0
- package/dist/components/combobox.js +3 -0
- package/dist/components/command-palette.js +3 -0
- package/dist/components/data-grid.js +3 -0
- package/dist/components/date-picker.js +3 -0
- package/dist/components/date-range-picker.js +3 -0
- package/dist/components/dialog.js +3 -0
- package/dist/components/dropdown.js +3 -0
- package/dist/components/empty.js +3 -0
- package/dist/components/field.js +3 -0
- package/dist/components/filters.js +3 -0
- package/dist/components/flow.js +3 -0
- package/dist/components/grid.js +3 -0
- package/dist/components/input.js +4 -0
- package/dist/components/label.js +3 -0
- package/dist/components/layer-card.js +3 -0
- package/dist/components/link.js +92 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/loader.js +4 -0
- package/dist/components/menubar.js +3 -0
- package/dist/components/meter.js +3 -0
- package/dist/components/pagination.js +3 -0
- package/dist/components/popover.js +3 -0
- package/dist/components/radio.js +3 -0
- package/dist/components/select.js +3 -0
- package/dist/components/sensitive-input.js +3 -0
- package/dist/components/sidebar.js +3 -0
- package/dist/components/signalflare-ai-logo.js +3 -0
- package/dist/components/surface.js +3 -0
- package/dist/components/switch.js +3 -0
- package/dist/components/table.js +3 -0
- package/dist/components/tabs.js +3 -0
- package/dist/components/text.js +3 -0
- package/dist/components/theme-toggle.js +3 -0
- package/dist/components/toast.js +3 -0
- package/dist/components/tooltip.js +3 -0
- package/dist/components/use-agent-harness.js +3 -0
- package/dist/data-grid-UJ9ja5cu.js +305 -0
- package/dist/data-grid-UJ9ja5cu.js.map +1 -0
- package/dist/date-picker-ebekkC3R.js +57 -0
- package/dist/date-picker-ebekkC3R.js.map +1 -0
- package/dist/date-range-picker-D75LLINc.js +347 -0
- package/dist/date-range-picker-D75LLINc.js.map +1 -0
- package/dist/dialog-CyHEQXEY.js +104 -0
- package/dist/dialog-CyHEQXEY.js.map +1 -0
- package/dist/dist-BNlyONdD.js +3546 -0
- package/dist/dist-BNlyONdD.js.map +1 -0
- package/dist/dropdown-J5T4pHaR.js +202 -0
- package/dist/dropdown-J5T4pHaR.js.map +1 -0
- package/dist/empty-D2TypIId.js +90 -0
- package/dist/empty-D2TypIId.js.map +1 -0
- package/dist/favicon.svg +4 -0
- package/dist/field-Y_UK1_Cg.js +57 -0
- package/dist/field-Y_UK1_Cg.js.map +1 -0
- package/dist/filters-BdBogf7D.js +682 -0
- package/dist/filters-BdBogf7D.js.map +1 -0
- package/dist/flow-BRsYUCJa.js +741 -0
- package/dist/flow-BRsYUCJa.js.map +1 -0
- package/dist/genui.js +40 -0
- package/dist/genui.js.map +1 -0
- package/dist/grid-qUAN9hFx.js +119 -0
- package/dist/grid-qUAN9hFx.js.map +1 -0
- package/dist/highlight-to-react-ClEfL81q.js +57 -0
- package/dist/highlight-to-react-ClEfL81q.js.map +1 -0
- package/dist/index.js +215 -0
- package/dist/index.js.map +1 -0
- package/dist/input-BxQAnXki.js +81 -0
- package/dist/input-BxQAnXki.js.map +1 -0
- package/dist/input-Cn25I4o5.js +121 -0
- package/dist/input-Cn25I4o5.js.map +1 -0
- package/dist/label-QtJxtJ4u.js +70 -0
- package/dist/label-QtJxtJ4u.js.map +1 -0
- package/dist/layer-card-BME0eljh.js +44 -0
- package/dist/layer-card-BME0eljh.js.map +1 -0
- package/dist/link-provider-BUZKXaNE.js +25 -0
- package/dist/link-provider-BUZKXaNE.js.map +1 -0
- package/dist/loader-DAcc-Uag.js +84 -0
- package/dist/loader-DAcc-Uag.js.map +1 -0
- package/dist/logo.svg +1 -0
- package/dist/menubar-C8NzAjfd.js +102 -0
- package/dist/menubar-C8NzAjfd.js.map +1 -0
- package/dist/meter-CpmTenEr.js +37 -0
- package/dist/meter-CpmTenEr.js.map +1 -0
- package/dist/pagination-C_YqCy8l.js +117 -0
- package/dist/pagination-C_YqCy8l.js.map +1 -0
- package/dist/popover-BRQZ2b6z.js +147 -0
- package/dist/popover-BRQZ2b6z.js.map +1 -0
- package/dist/primitives/accordion.js +2 -0
- package/dist/primitives/alert-dialog.js +2 -0
- package/dist/primitives/autocomplete.js +2 -0
- package/dist/primitives/avatar.js +2 -0
- package/dist/primitives/button.js +2 -0
- package/dist/primitives/checkbox-group.js +2 -0
- package/dist/primitives/checkbox.js +2 -0
- package/dist/primitives/collapsible.js +2 -0
- package/dist/primitives/combobox.js +2 -0
- package/dist/primitives/context-menu.js +2 -0
- package/dist/primitives/csp-provider.js +2 -0
- package/dist/primitives/dialog.js +2 -0
- package/dist/primitives/direction-provider.js +2 -0
- package/dist/primitives/drawer.js +2 -0
- package/dist/primitives/field.js +2 -0
- package/dist/primitives/fieldset.js +2 -0
- package/dist/primitives/form.js +2 -0
- package/dist/primitives/input.js +2 -0
- package/dist/primitives/menu.js +2 -0
- package/dist/primitives/menubar.js +2 -0
- package/dist/primitives/meter.js +2 -0
- package/dist/primitives/navigation-menu.js +2 -0
- package/dist/primitives/number-field.js +2 -0
- package/dist/primitives/popover.js +2 -0
- package/dist/primitives/preview-card.js +2 -0
- package/dist/primitives/progress.js +2 -0
- package/dist/primitives/radio-group.js +2 -0
- package/dist/primitives/radio.js +2 -0
- package/dist/primitives/scroll-area.js +2 -0
- package/dist/primitives/select.js +2 -0
- package/dist/primitives/separator.js +2 -0
- package/dist/primitives/slider.js +2 -0
- package/dist/primitives/switch.js +2 -0
- package/dist/primitives/tabs.js +2 -0
- package/dist/primitives/toast.js +2 -0
- package/dist/primitives/toggle-group.js +2 -0
- package/dist/primitives/toggle.js +2 -0
- package/dist/primitives/toolbar.js +2 -0
- package/dist/primitives/tooltip.js +2 -0
- package/dist/primitives.js +40 -0
- package/dist/radio-B7zg1wUI.js +101 -0
- package/dist/radio-B7zg1wUI.js.map +1 -0
- package/dist/registry.js +1 -0
- package/dist/select-9p721G00.js +95 -0
- package/dist/select-9p721G00.js.map +1 -0
- package/dist/sensitive-input-D5je2NLl.js +248 -0
- package/dist/sensitive-input-D5je2NLl.js.map +1 -0
- package/dist/sidebar-DOwBrq57.js +964 -0
- package/dist/sidebar-DOwBrq57.js.map +1 -0
- package/dist/signalflare-ai-logo-DDhxMJD6.js +260 -0
- package/dist/signalflare-ai-logo-DDhxMJD6.js.map +1 -0
- package/dist/skeleton-line-Do3UmGk9.js +36 -0
- package/dist/skeleton-line-Do3UmGk9.js.map +1 -0
- package/dist/src/blocks/agent-harness/agent-harness.d.ts +177 -0
- package/dist/src/blocks/agent-harness/agent-harness.d.ts.map +1 -0
- package/dist/src/blocks/agent-harness/agent-harness.tsx +1122 -0
- package/dist/src/blocks/agent-harness/index.d.ts +2 -0
- package/dist/src/blocks/agent-harness/index.d.ts.map +1 -0
- package/dist/src/blocks/commander/commander.d.ts +101 -0
- package/dist/src/blocks/commander/commander.d.ts.map +1 -0
- package/dist/src/blocks/commander/commander.tsx +477 -0
- package/dist/src/blocks/commander/index.d.ts +2 -0
- package/dist/src/blocks/commander/index.d.ts.map +1 -0
- package/dist/src/blocks/delete-resource/delete-resource.d.ts +46 -0
- package/dist/src/blocks/delete-resource/delete-resource.d.ts.map +1 -0
- package/dist/src/blocks/delete-resource/delete-resource.tsx +214 -0
- package/dist/src/blocks/delete-resource/index.d.ts +2 -0
- package/dist/src/blocks/delete-resource/index.d.ts.map +1 -0
- package/dist/src/blocks/map-block/index.d.ts +2 -0
- package/dist/src/blocks/map-block/index.d.ts.map +1 -0
- package/dist/src/blocks/map-block/map-block.d.ts +79 -0
- package/dist/src/blocks/map-block/map-block.d.ts.map +1 -0
- package/dist/src/blocks/map-block/map-block.tsx +522 -0
- package/dist/src/blocks/page-header/index.d.ts +2 -0
- package/dist/src/blocks/page-header/index.d.ts.map +1 -0
- package/dist/src/blocks/page-header/page-header.d.ts +38 -0
- package/dist/src/blocks/page-header/page-header.d.ts.map +1 -0
- package/dist/src/blocks/page-header/page-header.tsx +96 -0
- package/dist/src/blocks/resource-list/index.d.ts +2 -0
- package/dist/src/blocks/resource-list/index.d.ts.map +1 -0
- package/dist/src/blocks/resource-list/resource-list.d.ts +18 -0
- package/dist/src/blocks/resource-list/resource-list.d.ts.map +1 -0
- package/dist/src/blocks/resource-list/resource-list.test.tsx +27 -0
- package/dist/src/blocks/resource-list/resource-list.tsx +65 -0
- package/dist/src/catalog/catalog.d.ts +75 -0
- package/dist/src/catalog/catalog.d.ts.map +1 -0
- package/dist/src/catalog/data.d.ts +44 -0
- package/dist/src/catalog/data.d.ts.map +1 -0
- package/dist/src/catalog/index.d.ts +35 -0
- package/dist/src/catalog/index.d.ts.map +1 -0
- package/dist/src/catalog/sf-components.d.ts +8 -0
- package/dist/src/catalog/sf-components.d.ts.map +1 -0
- package/dist/src/catalog/sf-registry.d.ts +4 -0
- package/dist/src/catalog/sf-registry.d.ts.map +1 -0
- package/dist/src/catalog/types.d.ts +226 -0
- package/dist/src/catalog/types.d.ts.map +1 -0
- package/dist/src/catalog/visibility.d.ts +37 -0
- package/dist/src/catalog/visibility.d.ts.map +1 -0
- package/dist/src/command-line/build-cli.d.ts +7 -0
- package/dist/src/command-line/build-cli.d.ts.map +1 -0
- package/dist/src/command-line/cli.d.ts +13 -0
- package/dist/src/command-line/cli.d.ts.map +1 -0
- package/dist/src/command-line/commands/add.d.ts +10 -0
- package/dist/src/command-line/commands/add.d.ts.map +1 -0
- package/dist/src/command-line/commands/ai.d.ts +10 -0
- package/dist/src/command-line/commands/ai.d.ts.map +1 -0
- package/dist/src/command-line/commands/blocks.d.ts +10 -0
- package/dist/src/command-line/commands/blocks.d.ts.map +1 -0
- package/dist/src/command-line/commands/doc.d.ts +14 -0
- package/dist/src/command-line/commands/doc.d.ts.map +1 -0
- package/dist/src/command-line/commands/init.d.ts +18 -0
- package/dist/src/command-line/commands/init.d.ts.map +1 -0
- package/dist/src/command-line/commands/ls.d.ts +10 -0
- package/dist/src/command-line/commands/ls.d.ts.map +1 -0
- package/dist/src/command-line/commands/migrate.d.ts +10 -0
- package/dist/src/command-line/commands/migrate.d.ts.map +1 -0
- package/dist/src/command-line/utils/config.d.ts +42 -0
- package/dist/src/command-line/utils/config.d.ts.map +1 -0
- package/dist/src/command-line/utils/transformer.d.ts +21 -0
- package/dist/src/command-line/utils/transformer.d.ts.map +1 -0
- package/dist/src/components/ai-actions/ai-actions.d.ts +35 -0
- package/dist/src/components/ai-actions/ai-actions.d.ts.map +1 -0
- package/dist/src/components/ai-actions/index.d.ts +2 -0
- package/dist/src/components/ai-actions/index.d.ts.map +1 -0
- package/dist/src/components/ai-agent-card/ai-agent-card.d.ts +82 -0
- package/dist/src/components/ai-agent-card/ai-agent-card.d.ts.map +1 -0
- package/dist/src/components/ai-agent-card/index.d.ts +2 -0
- package/dist/src/components/ai-agent-card/index.d.ts.map +1 -0
- package/dist/src/components/ai-approval/ai-approval.d.ts +102 -0
- package/dist/src/components/ai-approval/ai-approval.d.ts.map +1 -0
- package/dist/src/components/ai-approval/index.d.ts +2 -0
- package/dist/src/components/ai-approval/index.d.ts.map +1 -0
- package/dist/src/components/ai-code-block/ai-code-block.d.ts +48 -0
- package/dist/src/components/ai-code-block/ai-code-block.d.ts.map +1 -0
- package/dist/src/components/ai-code-block/index.d.ts +2 -0
- package/dist/src/components/ai-code-block/index.d.ts.map +1 -0
- package/dist/src/components/ai-conversation/ai-conversation.d.ts +125 -0
- package/dist/src/components/ai-conversation/ai-conversation.d.ts.map +1 -0
- package/dist/src/components/ai-conversation/index.d.ts +2 -0
- package/dist/src/components/ai-conversation/index.d.ts.map +1 -0
- package/dist/src/components/ai-info-banner/ai-info-banner.d.ts +55 -0
- package/dist/src/components/ai-info-banner/ai-info-banner.d.ts.map +1 -0
- package/dist/src/components/ai-info-banner/index.d.ts +2 -0
- package/dist/src/components/ai-info-banner/index.d.ts.map +1 -0
- package/dist/src/components/ai-loader/ai-loader.d.ts +44 -0
- package/dist/src/components/ai-loader/ai-loader.d.ts.map +1 -0
- package/dist/src/components/ai-loader/index.d.ts +2 -0
- package/dist/src/components/ai-loader/index.d.ts.map +1 -0
- package/dist/src/components/ai-message/ai-message.d.ts +97 -0
- package/dist/src/components/ai-message/ai-message.d.ts.map +1 -0
- package/dist/src/components/ai-message/index.d.ts +2 -0
- package/dist/src/components/ai-message/index.d.ts.map +1 -0
- package/dist/src/components/ai-mission-header/ai-mission-header.d.ts +62 -0
- package/dist/src/components/ai-mission-header/ai-mission-header.d.ts.map +1 -0
- package/dist/src/components/ai-mission-header/index.d.ts +2 -0
- package/dist/src/components/ai-mission-header/index.d.ts.map +1 -0
- package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts +260 -0
- package/dist/src/components/ai-prompt-input/ai-prompt-input.d.ts.map +1 -0
- package/dist/src/components/ai-prompt-input/index.d.ts +2 -0
- package/dist/src/components/ai-prompt-input/index.d.ts.map +1 -0
- package/dist/src/components/ai-question/ai-question.d.ts +73 -0
- package/dist/src/components/ai-question/ai-question.d.ts.map +1 -0
- package/dist/src/components/ai-question/index.d.ts +2 -0
- package/dist/src/components/ai-question/index.d.ts.map +1 -0
- package/dist/src/components/ai-reasoning/ai-reasoning.d.ts +107 -0
- package/dist/src/components/ai-reasoning/ai-reasoning.d.ts.map +1 -0
- package/dist/src/components/ai-reasoning/index.d.ts +2 -0
- package/dist/src/components/ai-reasoning/index.d.ts.map +1 -0
- package/dist/src/components/ai-response/ai-response.d.ts +26 -0
- package/dist/src/components/ai-response/ai-response.d.ts.map +1 -0
- package/dist/src/components/ai-response/index.d.ts +2 -0
- package/dist/src/components/ai-response/index.d.ts.map +1 -0
- package/dist/src/components/ai-shimmer/ai-shimmer.d.ts +29 -0
- package/dist/src/components/ai-shimmer/ai-shimmer.d.ts.map +1 -0
- package/dist/src/components/ai-shimmer/index.d.ts +2 -0
- package/dist/src/components/ai-shimmer/index.d.ts.map +1 -0
- package/dist/src/components/ai-status-badge/ai-status-badge.d.ts +46 -0
- package/dist/src/components/ai-status-badge/ai-status-badge.d.ts.map +1 -0
- package/dist/src/components/ai-status-badge/index.d.ts +2 -0
- package/dist/src/components/ai-status-badge/index.d.ts.map +1 -0
- package/dist/src/components/ai-streaming-text/ai-streaming-text.d.ts +27 -0
- package/dist/src/components/ai-streaming-text/ai-streaming-text.d.ts.map +1 -0
- package/dist/src/components/ai-streaming-text/index.d.ts +2 -0
- package/dist/src/components/ai-streaming-text/index.d.ts.map +1 -0
- package/dist/src/components/ai-subagent/ai-subagent.d.ts +74 -0
- package/dist/src/components/ai-subagent/ai-subagent.d.ts.map +1 -0
- package/dist/src/components/ai-subagent/index.d.ts +2 -0
- package/dist/src/components/ai-subagent/index.d.ts.map +1 -0
- package/dist/src/components/ai-suggestion/ai-suggestion.d.ts +40 -0
- package/dist/src/components/ai-suggestion/ai-suggestion.d.ts.map +1 -0
- package/dist/src/components/ai-suggestion/index.d.ts +2 -0
- package/dist/src/components/ai-suggestion/index.d.ts.map +1 -0
- package/dist/src/components/ai-task-list/ai-task-list.d.ts +61 -0
- package/dist/src/components/ai-task-list/ai-task-list.d.ts.map +1 -0
- package/dist/src/components/ai-task-list/index.d.ts +2 -0
- package/dist/src/components/ai-task-list/index.d.ts.map +1 -0
- package/dist/src/components/ai-timeline/ai-timeline.d.ts +130 -0
- package/dist/src/components/ai-timeline/ai-timeline.d.ts.map +1 -0
- package/dist/src/components/ai-timeline/index.d.ts +2 -0
- package/dist/src/components/ai-timeline/index.d.ts.map +1 -0
- package/dist/src/components/ai-tool/ai-tool.d.ts +138 -0
- package/dist/src/components/ai-tool/ai-tool.d.ts.map +1 -0
- package/dist/src/components/ai-tool/index.d.ts +2 -0
- package/dist/src/components/ai-tool/index.d.ts.map +1 -0
- package/dist/src/components/ai-usage-bar/ai-usage-bar.d.ts +38 -0
- package/dist/src/components/ai-usage-bar/ai-usage-bar.d.ts.map +1 -0
- package/dist/src/components/ai-usage-bar/index.d.ts +2 -0
- package/dist/src/components/ai-usage-bar/index.d.ts.map +1 -0
- package/dist/src/components/badge/badge.d.ts +129 -0
- package/dist/src/components/badge/badge.d.ts.map +1 -0
- package/dist/src/components/badge/index.d.ts +2 -0
- package/dist/src/components/badge/index.d.ts.map +1 -0
- package/dist/src/components/banner/banner.d.ts +80 -0
- package/dist/src/components/banner/banner.d.ts.map +1 -0
- package/dist/src/components/banner/index.d.ts +2 -0
- package/dist/src/components/banner/index.d.ts.map +1 -0
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts +78 -0
- package/dist/src/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
- package/dist/src/components/breadcrumbs/index.d.ts +2 -0
- package/dist/src/components/breadcrumbs/index.d.ts.map +1 -0
- package/dist/src/components/button/button.d.ts +212 -0
- package/dist/src/components/button/button.d.ts.map +1 -0
- package/dist/src/components/button/index.d.ts +2 -0
- package/dist/src/components/button/index.d.ts.map +1 -0
- package/dist/src/components/chart/color.d.ts +98 -0
- package/dist/src/components/chart/color.d.ts.map +1 -0
- package/dist/src/components/chart/echart.d.ts +135 -0
- package/dist/src/components/chart/echart.d.ts.map +1 -0
- package/dist/src/components/chart/index.d.ts +5 -0
- package/dist/src/components/chart/index.d.ts.map +1 -0
- package/dist/src/components/chart/legend.d.ts +42 -0
- package/dist/src/components/chart/legend.d.ts.map +1 -0
- package/dist/src/components/chart/timeseries-chart.d.ts +119 -0
- package/dist/src/components/chart/timeseries-chart.d.ts.map +1 -0
- package/dist/src/components/checkbox/checkbox.d.ts +174 -0
- package/dist/src/components/checkbox/checkbox.d.ts.map +1 -0
- package/dist/src/components/checkbox/index.d.ts +2 -0
- package/dist/src/components/checkbox/index.d.ts.map +1 -0
- package/dist/src/components/clipboard-text/clipboard-text.d.ts +86 -0
- package/dist/src/components/clipboard-text/clipboard-text.d.ts.map +1 -0
- package/dist/src/components/clipboard-text/index.d.ts +2 -0
- package/dist/src/components/clipboard-text/index.d.ts.map +1 -0
- package/dist/src/components/code/code.d.ts +165 -0
- package/dist/src/components/code/code.d.ts.map +1 -0
- package/dist/src/components/code/index.d.ts +4 -0
- package/dist/src/components/code/index.d.ts.map +1 -0
- package/dist/src/components/collapsible/collapsible.d.ts +72 -0
- package/dist/src/components/collapsible/collapsible.d.ts.map +1 -0
- package/dist/src/components/collapsible/index.d.ts +2 -0
- package/dist/src/components/collapsible/index.d.ts.map +1 -0
- package/dist/src/components/combobox/combobox.d.ts +188 -0
- package/dist/src/components/combobox/combobox.d.ts.map +1 -0
- package/dist/src/components/combobox/index.d.ts +2 -0
- package/dist/src/components/combobox/index.d.ts.map +1 -0
- package/dist/src/components/command-palette/command-palette.d.ts +260 -0
- package/dist/src/components/command-palette/command-palette.d.ts.map +1 -0
- package/dist/src/components/command-palette/index.d.ts +3 -0
- package/dist/src/components/command-palette/index.d.ts.map +1 -0
- package/dist/src/components/command-palette/types.d.ts +149 -0
- package/dist/src/components/command-palette/types.d.ts.map +1 -0
- package/dist/src/components/data-grid/data-grid.d.ts +78 -0
- package/dist/src/components/data-grid/data-grid.d.ts.map +1 -0
- package/dist/src/components/data-grid/index.d.ts +3 -0
- package/dist/src/components/data-grid/index.d.ts.map +1 -0
- package/dist/src/components/data-grid/types.d.ts +236 -0
- package/dist/src/components/data-grid/types.d.ts.map +1 -0
- package/dist/src/components/date-picker/date-picker.d.ts +65 -0
- package/dist/src/components/date-picker/date-picker.d.ts.map +1 -0
- package/dist/src/components/date-picker/index.d.ts +4 -0
- package/dist/src/components/date-picker/index.d.ts.map +1 -0
- package/dist/src/components/date-range-picker/date-range-picker.d.ts +125 -0
- package/dist/src/components/date-range-picker/date-range-picker.d.ts.map +1 -0
- package/dist/src/components/date-range-picker/index.d.ts +5 -0
- package/dist/src/components/date-range-picker/index.d.ts.map +1 -0
- package/dist/src/components/dialog/dialog.d.ts +189 -0
- package/dist/src/components/dialog/dialog.d.ts.map +1 -0
- package/dist/src/components/dialog/index.d.ts +2 -0
- package/dist/src/components/dialog/index.d.ts.map +1 -0
- package/dist/src/components/dropdown/dropdown.d.ts +91 -0
- package/dist/src/components/dropdown/dropdown.d.ts.map +1 -0
- package/dist/src/components/dropdown/index.d.ts +2 -0
- package/dist/src/components/dropdown/index.d.ts.map +1 -0
- package/dist/src/components/empty/empty.d.ts +69 -0
- package/dist/src/components/empty/empty.d.ts.map +1 -0
- package/dist/src/components/empty/index.d.ts +2 -0
- package/dist/src/components/empty/index.d.ts.map +1 -0
- package/dist/src/components/field/field.d.ts +68 -0
- package/dist/src/components/field/field.d.ts.map +1 -0
- package/dist/src/components/field/index.d.ts +2 -0
- package/dist/src/components/field/index.d.ts.map +1 -0
- package/dist/src/components/filters/filters.d.ts +54 -0
- package/dist/src/components/filters/filters.d.ts.map +1 -0
- package/dist/src/components/filters/helpers.d.ts +56 -0
- package/dist/src/components/filters/helpers.d.ts.map +1 -0
- package/dist/src/components/filters/index.d.ts +3 -0
- package/dist/src/components/filters/index.d.ts.map +1 -0
- package/dist/src/components/filters/types.d.ts +148 -0
- package/dist/src/components/filters/types.d.ts.map +1 -0
- package/dist/src/components/flow/connectors.d.ts +35 -0
- package/dist/src/components/flow/connectors.d.ts.map +1 -0
- package/dist/src/components/flow/diagram.d.ts +62 -0
- package/dist/src/components/flow/diagram.d.ts.map +1 -0
- package/dist/src/components/flow/index.d.ts +26 -0
- package/dist/src/components/flow/index.d.ts.map +1 -0
- package/dist/src/components/flow/node.d.ts +52 -0
- package/dist/src/components/flow/node.d.ts.map +1 -0
- package/dist/src/components/flow/parallel.d.ts +5 -0
- package/dist/src/components/flow/parallel.d.ts.map +1 -0
- package/dist/src/components/flow/use-children.d.ts +69 -0
- package/dist/src/components/flow/use-children.d.ts.map +1 -0
- package/dist/src/components/grid/grid.d.ts +135 -0
- package/dist/src/components/grid/grid.d.ts.map +1 -0
- package/dist/src/components/grid/index.d.ts +2 -0
- package/dist/src/components/grid/index.d.ts.map +1 -0
- package/dist/src/components/input/index.d.ts +4 -0
- package/dist/src/components/input/index.d.ts.map +1 -0
- package/dist/src/components/input/input-area.d.ts +65 -0
- package/dist/src/components/input/input-area.d.ts.map +1 -0
- package/dist/src/components/input/input-group.d.ts +39 -0
- package/dist/src/components/input/input-group.d.ts.map +1 -0
- package/dist/src/components/input/input.d.ts +172 -0
- package/dist/src/components/input/input.d.ts.map +1 -0
- package/dist/src/components/label/index.d.ts +2 -0
- package/dist/src/components/label/index.d.ts.map +1 -0
- package/dist/src/components/label/label.d.ts +67 -0
- package/dist/src/components/label/label.d.ts.map +1 -0
- package/dist/src/components/layer-card/index.d.ts +2 -0
- package/dist/src/components/layer-card/index.d.ts.map +1 -0
- package/dist/src/components/layer-card/layer-card.d.ts +29 -0
- package/dist/src/components/layer-card/layer-card.d.ts.map +1 -0
- package/dist/src/components/link/index.d.ts +2 -0
- package/dist/src/components/link/index.d.ts.map +1 -0
- package/dist/src/components/link/link.d.ts +55 -0
- package/dist/src/components/link/link.d.ts.map +1 -0
- package/dist/src/components/loader/index.d.ts +3 -0
- package/dist/src/components/loader/index.d.ts.map +1 -0
- package/dist/src/components/loader/loader.d.ts +65 -0
- package/dist/src/components/loader/loader.d.ts.map +1 -0
- package/dist/src/components/loader/skeleton-line.d.ts +10 -0
- package/dist/src/components/loader/skeleton-line.d.ts.map +1 -0
- package/dist/src/components/menubar/index.d.ts +3 -0
- package/dist/src/components/menubar/index.d.ts.map +1 -0
- package/dist/src/components/menubar/menubar.d.ts +66 -0
- package/dist/src/components/menubar/menubar.d.ts.map +1 -0
- package/dist/src/components/menubar/use-menu-navigation.d.ts +8 -0
- package/dist/src/components/menubar/use-menu-navigation.d.ts.map +1 -0
- package/dist/src/components/meter/index.d.ts +2 -0
- package/dist/src/components/meter/index.d.ts.map +1 -0
- package/dist/src/components/meter/meter.d.ts +44 -0
- package/dist/src/components/meter/meter.d.ts.map +1 -0
- package/dist/src/components/pagination/index.d.ts +2 -0
- package/dist/src/components/pagination/index.d.ts.map +1 -0
- package/dist/src/components/pagination/pagination.d.ts +60 -0
- package/dist/src/components/pagination/pagination.d.ts.map +1 -0
- package/dist/src/components/popover/index.d.ts +3 -0
- package/dist/src/components/popover/index.d.ts.map +1 -0
- package/dist/src/components/popover/popover.d.ts +138 -0
- package/dist/src/components/popover/popover.d.ts.map +1 -0
- package/dist/src/components/radio/index.d.ts +2 -0
- package/dist/src/components/radio/index.d.ts.map +1 -0
- package/dist/src/components/radio/radio.d.ts +163 -0
- package/dist/src/components/radio/radio.d.ts.map +1 -0
- package/dist/src/components/select/index.d.ts +2 -0
- package/dist/src/components/select/index.d.ts.map +1 -0
- package/dist/src/components/select/select.d.ts +150 -0
- package/dist/src/components/select/select.d.ts.map +1 -0
- package/dist/src/components/sensitive-input/index.d.ts +2 -0
- package/dist/src/components/sensitive-input/index.d.ts.map +1 -0
- package/dist/src/components/sensitive-input/sensitive-input.d.ts +94 -0
- package/dist/src/components/sensitive-input/sensitive-input.d.ts.map +1 -0
- package/dist/src/components/sidebar/index.d.ts +2 -0
- package/dist/src/components/sidebar/index.d.ts.map +1 -0
- package/dist/src/components/sidebar/sidebar.d.ts +556 -0
- package/dist/src/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/src/components/signalflare-ai-logo/index.d.ts +2 -0
- package/dist/src/components/signalflare-ai-logo/index.d.ts.map +1 -0
- package/dist/src/components/signalflare-ai-logo/signalflare-ai-logo.d.ts +171 -0
- package/dist/src/components/signalflare-ai-logo/signalflare-ai-logo.d.ts.map +1 -0
- package/dist/src/components/surface/index.d.ts +2 -0
- package/dist/src/components/surface/index.d.ts.map +1 -0
- package/dist/src/components/surface/surface.d.ts +60 -0
- package/dist/src/components/surface/surface.d.ts.map +1 -0
- package/dist/src/components/switch/index.d.ts +2 -0
- package/dist/src/components/switch/index.d.ts.map +1 -0
- package/dist/src/components/switch/switch.d.ts +169 -0
- package/dist/src/components/switch/switch.d.ts.map +1 -0
- package/dist/src/components/table/index.d.ts +2 -0
- package/dist/src/components/table/index.d.ts.map +1 -0
- package/dist/src/components/table/table.d.ts +89 -0
- package/dist/src/components/table/table.d.ts.map +1 -0
- package/dist/src/components/tabs/index.d.ts +3 -0
- package/dist/src/components/tabs/index.d.ts.map +1 -0
- package/dist/src/components/tabs/tabs.d.ts +105 -0
- package/dist/src/components/tabs/tabs.d.ts.map +1 -0
- package/dist/src/components/text/index.d.ts +2 -0
- package/dist/src/components/text/index.d.ts.map +1 -0
- package/dist/src/components/text/text.d.ts +181 -0
- package/dist/src/components/text/text.d.ts.map +1 -0
- package/dist/src/components/theme-toggle/index.d.ts +2 -0
- package/dist/src/components/theme-toggle/index.d.ts.map +1 -0
- package/dist/src/components/theme-toggle/theme-toggle.d.ts +68 -0
- package/dist/src/components/theme-toggle/theme-toggle.d.ts.map +1 -0
- package/dist/src/components/toast/index.d.ts +5 -0
- package/dist/src/components/toast/index.d.ts.map +1 -0
- package/dist/src/components/toast/toast.d.ts +152 -0
- package/dist/src/components/toast/toast.d.ts.map +1 -0
- package/dist/src/components/tooltip/index.d.ts +2 -0
- package/dist/src/components/tooltip/index.d.ts.map +1 -0
- package/dist/src/components/tooltip/tooltip.d.ts +82 -0
- package/dist/src/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/src/components/use-agent-harness/index.d.ts +2 -0
- package/dist/src/components/use-agent-harness/index.d.ts.map +1 -0
- package/dist/src/components/use-agent-harness/use-agent-harness.d.ts +642 -0
- package/dist/src/components/use-agent-harness/use-agent-harness.d.ts.map +1 -0
- package/dist/src/genui/genui.d.ts +17 -0
- package/dist/src/genui/genui.d.ts.map +1 -0
- package/dist/src/genui/index.d.ts +19 -0
- package/dist/src/genui/index.d.ts.map +1 -0
- package/dist/src/index.d.ts +102 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/lib/utils.d.ts +2 -0
- package/dist/src/lib/utils.d.ts.map +1 -0
- package/dist/src/primitives/accordion.d.ts +13 -0
- package/dist/src/primitives/accordion.d.ts.map +1 -0
- package/dist/src/primitives/alert-dialog.d.ts +13 -0
- package/dist/src/primitives/alert-dialog.d.ts.map +1 -0
- package/dist/src/primitives/autocomplete.d.ts +13 -0
- package/dist/src/primitives/autocomplete.d.ts.map +1 -0
- package/dist/src/primitives/avatar.d.ts +13 -0
- package/dist/src/primitives/avatar.d.ts.map +1 -0
- package/dist/src/primitives/button.d.ts +13 -0
- package/dist/src/primitives/button.d.ts.map +1 -0
- package/dist/src/primitives/checkbox-group.d.ts +13 -0
- package/dist/src/primitives/checkbox-group.d.ts.map +1 -0
- package/dist/src/primitives/checkbox.d.ts +13 -0
- package/dist/src/primitives/checkbox.d.ts.map +1 -0
- package/dist/src/primitives/collapsible.d.ts +13 -0
- package/dist/src/primitives/collapsible.d.ts.map +1 -0
- package/dist/src/primitives/combobox.d.ts +13 -0
- package/dist/src/primitives/combobox.d.ts.map +1 -0
- package/dist/src/primitives/context-menu.d.ts +13 -0
- package/dist/src/primitives/context-menu.d.ts.map +1 -0
- package/dist/src/primitives/csp-provider.d.ts +13 -0
- package/dist/src/primitives/csp-provider.d.ts.map +1 -0
- package/dist/src/primitives/dialog.d.ts +13 -0
- package/dist/src/primitives/dialog.d.ts.map +1 -0
- package/dist/src/primitives/direction-provider.d.ts +13 -0
- package/dist/src/primitives/direction-provider.d.ts.map +1 -0
- package/dist/src/primitives/drawer.d.ts +13 -0
- package/dist/src/primitives/drawer.d.ts.map +1 -0
- package/dist/src/primitives/field.d.ts +13 -0
- package/dist/src/primitives/field.d.ts.map +1 -0
- package/dist/src/primitives/fieldset.d.ts +13 -0
- package/dist/src/primitives/fieldset.d.ts.map +1 -0
- package/dist/src/primitives/form.d.ts +13 -0
- package/dist/src/primitives/form.d.ts.map +1 -0
- package/dist/src/primitives/index.d.ts +54 -0
- package/dist/src/primitives/index.d.ts.map +1 -0
- package/dist/src/primitives/input.d.ts +13 -0
- package/dist/src/primitives/input.d.ts.map +1 -0
- package/dist/src/primitives/menu.d.ts +13 -0
- package/dist/src/primitives/menu.d.ts.map +1 -0
- package/dist/src/primitives/menubar.d.ts +13 -0
- package/dist/src/primitives/menubar.d.ts.map +1 -0
- package/dist/src/primitives/meter.d.ts +13 -0
- package/dist/src/primitives/meter.d.ts.map +1 -0
- package/dist/src/primitives/navigation-menu.d.ts +13 -0
- package/dist/src/primitives/navigation-menu.d.ts.map +1 -0
- package/dist/src/primitives/number-field.d.ts +13 -0
- package/dist/src/primitives/number-field.d.ts.map +1 -0
- package/dist/src/primitives/popover.d.ts +13 -0
- package/dist/src/primitives/popover.d.ts.map +1 -0
- package/dist/src/primitives/preview-card.d.ts +13 -0
- package/dist/src/primitives/preview-card.d.ts.map +1 -0
- package/dist/src/primitives/progress.d.ts +13 -0
- package/dist/src/primitives/progress.d.ts.map +1 -0
- package/dist/src/primitives/radio-group.d.ts +13 -0
- package/dist/src/primitives/radio-group.d.ts.map +1 -0
- package/dist/src/primitives/radio.d.ts +13 -0
- package/dist/src/primitives/radio.d.ts.map +1 -0
- package/dist/src/primitives/scroll-area.d.ts +13 -0
- package/dist/src/primitives/scroll-area.d.ts.map +1 -0
- package/dist/src/primitives/select.d.ts +13 -0
- package/dist/src/primitives/select.d.ts.map +1 -0
- package/dist/src/primitives/separator.d.ts +13 -0
- package/dist/src/primitives/separator.d.ts.map +1 -0
- package/dist/src/primitives/slider.d.ts +13 -0
- package/dist/src/primitives/slider.d.ts.map +1 -0
- package/dist/src/primitives/switch.d.ts +13 -0
- package/dist/src/primitives/switch.d.ts.map +1 -0
- package/dist/src/primitives/tabs.d.ts +13 -0
- package/dist/src/primitives/tabs.d.ts.map +1 -0
- package/dist/src/primitives/toast.d.ts +13 -0
- package/dist/src/primitives/toast.d.ts.map +1 -0
- package/dist/src/primitives/toggle-group.d.ts +13 -0
- package/dist/src/primitives/toggle-group.d.ts.map +1 -0
- package/dist/src/primitives/toggle.d.ts +13 -0
- package/dist/src/primitives/toggle.d.ts.map +1 -0
- package/dist/src/primitives/toolbar.d.ts +13 -0
- package/dist/src/primitives/toolbar.d.ts.map +1 -0
- package/dist/src/primitives/tooltip.d.ts +13 -0
- package/dist/src/primitives/tooltip.d.ts.map +1 -0
- package/dist/src/registry/index.d.ts +8 -0
- package/dist/src/registry/index.d.ts.map +1 -0
- package/dist/src/registry/types.d.ts +191 -0
- package/dist/src/registry/types.d.ts.map +1 -0
- package/dist/src/utils/cn.d.ts +4 -0
- package/dist/src/utils/cn.d.ts.map +1 -0
- package/dist/src/utils/highlight-to-react.d.ts +12 -0
- package/dist/src/utils/highlight-to-react.d.ts.map +1 -0
- package/dist/src/utils/index.d.ts +3 -0
- package/dist/src/utils/index.d.ts.map +1 -0
- package/dist/src/utils/link-provider.d.ts +12 -0
- package/dist/src/utils/link-provider.d.ts.map +1 -0
- package/dist/src/utils/prop-examples.d.ts +36 -0
- package/dist/src/utils/prop-examples.d.ts.map +1 -0
- package/dist/styles/sf-binding.css +255 -0
- package/dist/styles/sf-standalone.css +2 -0
- package/dist/styles/sf.css +596 -0
- package/dist/styles/theme-fedramp.css +22 -0
- package/dist/styles/theme-minimal.css +127 -0
- package/dist/styles/theme-navigator.css +137 -0
- package/dist/styles/theme-sf.css +191 -0
- package/dist/surface-BduI7Ehl.js +18 -0
- package/dist/surface-BduI7Ehl.js.map +1 -0
- package/dist/switch-CzZBRBL7.js +169 -0
- package/dist/switch-CzZBRBL7.js.map +1 -0
- package/dist/table-CIMx0Oq0.js +200 -0
- package/dist/table-CIMx0Oq0.js.map +1 -0
- package/dist/tabs-1cHrYoel.js +54 -0
- package/dist/tabs-1cHrYoel.js.map +1 -0
- package/dist/text-KJmGkwnf.js +103 -0
- package/dist/text-KJmGkwnf.js.map +1 -0
- package/dist/theme-toggle-Dpgnoj_Q.js +129 -0
- package/dist/theme-toggle-Dpgnoj_Q.js.map +1 -0
- package/dist/toast-Nw28a5Cx.js +161 -0
- package/dist/toast-Nw28a5Cx.js.map +1 -0
- package/dist/tooltip-Cb7QW-7H.js +79 -0
- package/dist/tooltip-Cb7QW-7H.js.map +1 -0
- package/dist/use-agent-harness-DZzcn96L.js +929 -0
- package/dist/use-agent-harness-DZzcn96L.js.map +1 -0
- package/dist/utils.js +4 -0
- package/package.json +620 -0
- package/scripts/component-registry/cache.ts +124 -0
- package/scripts/component-registry/discovery.ts +464 -0
- package/scripts/component-registry/example-cleanup.ts +168 -0
- package/scripts/component-registry/index.test.ts +678 -0
- package/scripts/component-registry/index.ts +931 -0
- package/scripts/component-registry/markdown-generator.ts +222 -0
- package/scripts/component-registry/metadata.ts +653 -0
- package/scripts/component-registry/props-filter.ts +313 -0
- package/scripts/component-registry/schema-generator.ts +332 -0
- package/scripts/component-registry/sub-components.ts +350 -0
- package/scripts/component-registry/types.ts +156 -0
- package/scripts/component-registry/utils.ts +280 -0
- package/scripts/component-registry/variant-parser.ts +262 -0
- package/scripts/css-build.ts +117 -0
- package/scripts/generate-primitives.ts +178 -0
- package/scripts/theme-generator/config.ts +538 -0
- package/scripts/theme-generator/generate-css.ts +256 -0
- package/scripts/theme-generator/index.ts +161 -0
- package/scripts/theme-generator/migrate.ts +584 -0
- package/scripts/theme-generator/types.ts +86 -0
- package/skills/component-selection/SKILL.md +64 -0
- package/skills/installing-blocks/SKILL.md +47 -0
- package/skills/theming-and-tokens/SKILL.md +62 -0
package/ai/schemas.ts
ADDED
|
@@ -0,0 +1,1230 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-generated Zod schemas for SF components
|
|
3
|
+
* DO NOT EDIT - Generated by scripts/component-registry/index.ts
|
|
4
|
+
*
|
|
5
|
+
* These schemas enable runtime validation of AI-generated UI trees.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
|
|
10
|
+
// SafeParseReturnType was removed in Zod v4, but we still want stable typing.
|
|
11
|
+
export type SafeParseResult<T> =
|
|
12
|
+
| { success: true; data: T; error?: never }
|
|
13
|
+
| { success: false; error: z.ZodError<any>; data?: never };
|
|
14
|
+
|
|
15
|
+
// =============================================================================
|
|
16
|
+
// Dynamic Value Schema (for data binding)
|
|
17
|
+
// =============================================================================
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* A value that can either be a literal or a reference to the data model.
|
|
21
|
+
* Example: "Hello" or { path: "/user/name" }
|
|
22
|
+
*/
|
|
23
|
+
export const DynamicValueSchema = z.union([
|
|
24
|
+
z.string(),
|
|
25
|
+
z.number(),
|
|
26
|
+
z.boolean(),
|
|
27
|
+
z.null(),
|
|
28
|
+
z.object({ path: z.string() }),
|
|
29
|
+
]);
|
|
30
|
+
|
|
31
|
+
export type DynamicValue<T = unknown> = T | { path: string };
|
|
32
|
+
|
|
33
|
+
// =============================================================================
|
|
34
|
+
// Visibility Condition Schemas
|
|
35
|
+
// =============================================================================
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Visibility conditions for conditional rendering.
|
|
39
|
+
* Components can be shown/hidden based on data, auth, or logic expressions.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
// Forward declaration for recursive types
|
|
43
|
+
// Note: Numeric comparisons use DynamicValue (not DynamicValue<number>) for Zod compatibility
|
|
44
|
+
export type LogicExpression =
|
|
45
|
+
| { and: LogicExpression[] }
|
|
46
|
+
| { or: LogicExpression[] }
|
|
47
|
+
| { not: LogicExpression }
|
|
48
|
+
| { path: string }
|
|
49
|
+
| { eq: [DynamicValue, DynamicValue] }
|
|
50
|
+
| { neq: [DynamicValue, DynamicValue] }
|
|
51
|
+
| { gt: [DynamicValue, DynamicValue] }
|
|
52
|
+
| { gte: [DynamicValue, DynamicValue] }
|
|
53
|
+
| { lt: [DynamicValue, DynamicValue] }
|
|
54
|
+
| { lte: [DynamicValue, DynamicValue] };
|
|
55
|
+
|
|
56
|
+
// Lazy schema for recursive logic expressions
|
|
57
|
+
const LogicExpressionSchema: z.ZodType<LogicExpression> = z.lazy(() =>
|
|
58
|
+
z.union([
|
|
59
|
+
z.object({ and: z.array(LogicExpressionSchema) }),
|
|
60
|
+
z.object({ or: z.array(LogicExpressionSchema) }),
|
|
61
|
+
z.object({ not: LogicExpressionSchema }),
|
|
62
|
+
z.object({ path: z.string() }),
|
|
63
|
+
z.object({ eq: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
|
|
64
|
+
z.object({ neq: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
|
|
65
|
+
z.object({ gt: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
|
|
66
|
+
z.object({ gte: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
|
|
67
|
+
z.object({ lt: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
|
|
68
|
+
z.object({ lte: z.tuple([DynamicValueSchema, DynamicValueSchema]) }),
|
|
69
|
+
])
|
|
70
|
+
);
|
|
71
|
+
|
|
72
|
+
export const VisibilityConditionSchema = z.union([
|
|
73
|
+
z.boolean(),
|
|
74
|
+
z.object({ path: z.string() }),
|
|
75
|
+
z.object({ auth: z.enum(["signedIn", "signedOut"]) }),
|
|
76
|
+
LogicExpressionSchema,
|
|
77
|
+
]);
|
|
78
|
+
|
|
79
|
+
export type VisibilityCondition = z.infer<typeof VisibilityConditionSchema>;
|
|
80
|
+
|
|
81
|
+
// =============================================================================
|
|
82
|
+
// Action Schemas
|
|
83
|
+
// =============================================================================
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Action confirmation dialog configuration
|
|
87
|
+
*/
|
|
88
|
+
export const ActionConfirmSchema = z.object({
|
|
89
|
+
title: z.string(),
|
|
90
|
+
message: z.string(),
|
|
91
|
+
variant: z.enum(["default", "danger"]).optional(),
|
|
92
|
+
confirmLabel: z.string().optional(),
|
|
93
|
+
cancelLabel: z.string().optional(),
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* Action definition that AI can declare
|
|
98
|
+
*/
|
|
99
|
+
export const ActionSchema = z.object({
|
|
100
|
+
name: z.string(),
|
|
101
|
+
params: z.record(z.string(), DynamicValueSchema).optional(),
|
|
102
|
+
confirm: ActionConfirmSchema.optional(),
|
|
103
|
+
onSuccess: z.object({ set: z.record(z.string(), DynamicValueSchema) }).optional(),
|
|
104
|
+
onError: z.object({ set: z.record(z.string(), DynamicValueSchema) }).optional(),
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
export type Action = z.infer<typeof ActionSchema>;
|
|
108
|
+
|
|
109
|
+
// =============================================================================
|
|
110
|
+
// Component Props Schemas
|
|
111
|
+
// =============================================================================
|
|
112
|
+
|
|
113
|
+
export const AiActionsPropsSchema = z.object({
|
|
114
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
115
|
+
className: z.string().optional(),
|
|
116
|
+
id: z.string().optional(),
|
|
117
|
+
lang: z.string().optional(),
|
|
118
|
+
title: z.string().optional(),
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
export const AiAgentCardPropsSchema = z.object({
|
|
122
|
+
name: z.string(),
|
|
123
|
+
agentType: z.string().optional(), // Agent type ID — used for icon mapping.
|
|
124
|
+
status: z.enum(["idle", "running", "completed", "error"]).optional(), // Current status.
|
|
125
|
+
modelId: z.string().optional(), // Model ID being used (e.g. "claude-haiku-3.5").
|
|
126
|
+
currentTask: z.string().optional(), // What the agent is currently doing.
|
|
127
|
+
duration: z.number().optional(), // Total elapsed duration in ms.
|
|
128
|
+
toolCallCount: z.number().optional(), // Number of tool calls made.
|
|
129
|
+
selected: z.boolean().optional(), // Whether this card is currently selected/active.
|
|
130
|
+
icon: z.unknown().optional(), // Custom icon override.
|
|
131
|
+
size: z.enum(["sm", "md"]).optional(), // Card size.
|
|
132
|
+
disabled: z.boolean().optional(),
|
|
133
|
+
type: z.enum(["submit", "reset", "button"]).optional(),
|
|
134
|
+
value: z.unknown().optional(),
|
|
135
|
+
className: z.string().optional(),
|
|
136
|
+
id: z.string().optional(),
|
|
137
|
+
lang: z.string().optional(),
|
|
138
|
+
title: z.string().optional(),
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
export const AiApprovalPropsSchema = z.object({
|
|
142
|
+
kind: z.enum(["tool", "plan"]).optional(), // Approval kind — `"tool"` for individual tool calls, `"plan"` for multi-step plans.
|
|
143
|
+
status: z.enum(["pending", "approved", "rejected"]).optional(), // Current approval status.
|
|
144
|
+
title: z.string(), // Title text shown in the header.
|
|
145
|
+
description: z.string().optional(), // Optional description below the title.
|
|
146
|
+
icon: z.unknown().optional(), // Custom icon. Defaults to shield (tool) or list (plan).
|
|
147
|
+
items: z.array(z.unknown()).optional(), // For plan approvals: list of steps/items in the plan. For tool approvals: can show tool name, parameters, etc.
|
|
148
|
+
approveLabel: z.string().optional(), // Label for the approve button. Default: `"Approve"`.
|
|
149
|
+
rejectLabel: z.string().optional(), // Label for the reject button. Default: `"Reject"`.
|
|
150
|
+
showFeedback: z.boolean().optional(), // Show a text input for rejection feedback. Default: `false`.
|
|
151
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
152
|
+
className: z.string().optional(),
|
|
153
|
+
id: z.string().optional(),
|
|
154
|
+
lang: z.string().optional(),
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
export const AiCodeBlockPropsSchema = z.object({
|
|
158
|
+
code: z.string(), // The raw code string to display and make copyable.
|
|
159
|
+
language: z.string().optional(), // Language identifier for syntax highlighting (display only, no highlighting applied).
|
|
160
|
+
showLineNumbers: z.boolean().optional(), // Show line numbers.
|
|
161
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
162
|
+
className: z.string().optional(),
|
|
163
|
+
id: z.string().optional(),
|
|
164
|
+
lang: z.string().optional(),
|
|
165
|
+
title: z.string().optional(),
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
export const AiConversationPropsSchema = z.object({
|
|
169
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
170
|
+
className: z.string().optional(),
|
|
171
|
+
id: z.string().optional(),
|
|
172
|
+
lang: z.string().optional(),
|
|
173
|
+
title: z.string().optional(),
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
export const AiInfoBannerPropsSchema = z.object({
|
|
177
|
+
level: z.enum(["info", "error", "change"]).optional(), // Banner level controls icon and color treatment.
|
|
178
|
+
icon: z.unknown().optional(), // Custom icon override.
|
|
179
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
180
|
+
className: z.string().optional(),
|
|
181
|
+
id: z.string().optional(),
|
|
182
|
+
lang: z.string().optional(),
|
|
183
|
+
title: z.string().optional(),
|
|
184
|
+
});
|
|
185
|
+
|
|
186
|
+
export const AiLoaderPropsSchema = z.object({
|
|
187
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
188
|
+
className: z.string().optional(),
|
|
189
|
+
id: z.string().optional(),
|
|
190
|
+
lang: z.string().optional(),
|
|
191
|
+
title: z.string().optional(),
|
|
192
|
+
size: z.enum(["sm", "base", "lg"]).optional(), // Icon size. - `"sm"` — 12px - `"base"` — 16px (default) - `"lg"` — 20px
|
|
193
|
+
});
|
|
194
|
+
|
|
195
|
+
export const AiMessagePropsSchema = z.object({
|
|
196
|
+
from: z.enum(["user", "assistant", "system"]), // Message sender role — controls layout and group class.
|
|
197
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
198
|
+
className: z.string().optional(),
|
|
199
|
+
id: z.string().optional(),
|
|
200
|
+
lang: z.string().optional(),
|
|
201
|
+
title: z.string().optional(),
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
export const AiMissionHeaderPropsSchema = z.object({
|
|
205
|
+
title: z.string().optional(), // The mission goal or title.
|
|
206
|
+
taskList: z.unknown().optional(), // Task list for progress calculation.
|
|
207
|
+
usage: z.unknown().optional(), // Token/cost usage summary.
|
|
208
|
+
activeAgentCount: z.number().optional(), // Number of agents currently active.
|
|
209
|
+
totalAgentCount: z.number().optional(), // Total number of agents that have run or are running.
|
|
210
|
+
startedAt: z.number().optional(), // Wall-clock ms when the mission started.
|
|
211
|
+
endedAt: z.number().optional(), // Wall-clock ms when the mission ended. Undefined while still running.
|
|
212
|
+
isRunning: z.boolean().optional(), // Whether the mission is currently running.
|
|
213
|
+
variant: z.enum(["default", "compact"]).optional(), // Display variant.
|
|
214
|
+
className: z.string().optional(),
|
|
215
|
+
id: z.string().optional(),
|
|
216
|
+
lang: z.string().optional(),
|
|
217
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
export const AiQuestionPropsSchema = z.object({
|
|
221
|
+
questionId: z.string(), // Unique identifier for this question (maps to harness `questionId`).
|
|
222
|
+
question: z.string(), // The question text.
|
|
223
|
+
header: z.string().optional(), // Optional header/context label.
|
|
224
|
+
status: z.enum(["pending", "answered"]).optional(), // Current status.
|
|
225
|
+
options: z.array(z.unknown()).optional(), // Available choice options.
|
|
226
|
+
allowCustom: z.boolean().optional(), // Allow freeform text input (custom answer). Default: `true`. When options are provided, this adds a text field below them.
|
|
227
|
+
icon: z.unknown().optional(), // Custom icon for the question header.
|
|
228
|
+
answeredWith: z.string().optional(), // The answer that was submitted (shown when `status="answered"`).
|
|
229
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
230
|
+
className: z.string().optional(),
|
|
231
|
+
id: z.string().optional(),
|
|
232
|
+
lang: z.string().optional(),
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
export const AiReasoningPropsSchema = z.object({
|
|
236
|
+
variant: z.enum(["default", "inline", "minimal"]).optional(), // Display variant.
|
|
237
|
+
isStreaming: z.boolean().optional(), // Whether reasoning is currently streaming.
|
|
238
|
+
duration: z.number().optional(), // Duration in seconds (passed in or self-tracked when streaming).
|
|
239
|
+
defaultExpanded: z.boolean().optional(), // Default expanded state.
|
|
240
|
+
open: z.boolean().optional(), // Controlled open state.
|
|
241
|
+
autoCloseDelay: z.number().optional(), // Delay in ms before auto-closing after streaming ends. Set to 0 to disable.
|
|
242
|
+
icon: z.unknown().optional(), // Custom icon override. Defaults to `SparkleIcon` (streaming) or `BrainIcon` (done). Use to distinguish observation/reflection blocks from standard reasoning.
|
|
243
|
+
label: z.string().optional(), // Custom label override. Defaults to `"Thinking..."` (streaming) or `"Reasoning"` (done). Use to label observational memory blocks: `"Observing..."`, `"Reflecting..."`, etc.
|
|
244
|
+
streamingLabel: z.string().optional(), // Custom streaming label. When provided, used instead of `label` while `isStreaming` is true. Falls back to `label`, then to the default `"Thinking..."`.
|
|
245
|
+
className: z.string().optional(),
|
|
246
|
+
id: z.string().optional(),
|
|
247
|
+
lang: z.string().optional(),
|
|
248
|
+
title: z.string().optional(),
|
|
249
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
250
|
+
});
|
|
251
|
+
|
|
252
|
+
export const AiResponsePropsSchema = z.object({
|
|
253
|
+
className: z.string().optional(), // Additional CSS classes
|
|
254
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
export const AiShimmerPropsSchema = z.object({
|
|
258
|
+
children: z.string(), // Text content to animate.
|
|
259
|
+
as: z.unknown().optional(), // HTML element or component to render as.
|
|
260
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
261
|
+
duration: z.number().optional(), // Animation duration in seconds.
|
|
262
|
+
spread: z.number().optional(), // Shimmer width multiplier relative to text length.
|
|
263
|
+
});
|
|
264
|
+
|
|
265
|
+
export const AiStatusBadgePropsSchema = z.object({
|
|
266
|
+
icon: z.unknown().optional(), // Icon component rendered on the left.
|
|
267
|
+
label: z.string(), // Label text displayed in the badge.
|
|
268
|
+
status: z.enum(["idle", "running", "success", "error"]).optional(), // Current status — determines the status icon on the right.
|
|
269
|
+
info: z.string().optional(), // Additional info text (e.g. "2/3") shown after the label.
|
|
270
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
271
|
+
className: z.string().optional(),
|
|
272
|
+
id: z.string().optional(),
|
|
273
|
+
lang: z.string().optional(),
|
|
274
|
+
title: z.string().optional(),
|
|
275
|
+
});
|
|
276
|
+
|
|
277
|
+
export const AiStreamingTextPropsSchema = z.object({
|
|
278
|
+
className: z.string().optional(), // Additional CSS classes
|
|
279
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
export const AiSubagentPropsSchema = z.object({
|
|
283
|
+
agentType: z.string().optional(), // Subagent type ID (e.g. `"explore"`, `"execute"`).
|
|
284
|
+
name: z.string().optional(), // Human-readable name for this subagent.
|
|
285
|
+
status: z.enum(["running", "completed", "error"]).optional(), // Current status.
|
|
286
|
+
modelId: z.string().optional(), // Current model ID being used (e.g. `"claude-haiku-3.5"`).
|
|
287
|
+
duration: z.number().optional(), // Duration in milliseconds.
|
|
288
|
+
icon: z.unknown().optional(), // Custom icon. Defaults to `RobotIcon`.
|
|
289
|
+
defaultExpanded: z.boolean().optional(), // Whether the subagent content is expanded by default.
|
|
290
|
+
open: z.boolean().optional(), // Controlled open state.
|
|
291
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
292
|
+
className: z.string().optional(),
|
|
293
|
+
id: z.string().optional(),
|
|
294
|
+
lang: z.string().optional(),
|
|
295
|
+
title: z.string().optional(),
|
|
296
|
+
});
|
|
297
|
+
|
|
298
|
+
export const AiSuggestionsPropsSchema = z.object({
|
|
299
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
300
|
+
className: z.string().optional(),
|
|
301
|
+
id: z.string().optional(),
|
|
302
|
+
lang: z.string().optional(),
|
|
303
|
+
title: z.string().optional(),
|
|
304
|
+
});
|
|
305
|
+
|
|
306
|
+
export const AiTaskListPropsSchema = z.object({
|
|
307
|
+
tasks: z.array(z.unknown()), // List of tasks.
|
|
308
|
+
title: z.string().optional(), // Optional title above the task list.
|
|
309
|
+
icon: z.unknown().optional(), // Custom icon for the title area.
|
|
310
|
+
showProgress: z.boolean().optional(), // Show a progress summary (e.g. "3 / 7 done"). Default: `true`.
|
|
311
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
312
|
+
className: z.string().optional(),
|
|
313
|
+
id: z.string().optional(),
|
|
314
|
+
lang: z.string().optional(),
|
|
315
|
+
});
|
|
316
|
+
|
|
317
|
+
export const AiTimelinePropsSchema = z.object({
|
|
318
|
+
timeOrigin: z.number().optional(), // Wall-clock ms for the timeline origin (t=0). Defaults to the startMs of the first block across all lanes.
|
|
319
|
+
pixelsPerSecond: z.number().optional(), // Pixels per second of elapsed time. Controls horizontal zoom level.
|
|
320
|
+
showNowMarker: z.boolean().optional(), // Whether to show a pulsing "now" marker at the live edge.
|
|
321
|
+
nowMs: z.number().optional(), // Current timestamp in ms. Used to render the "now" marker and open-ended block widths. Pass a stable `useState` value to prevent hydration shifts. When omitted, `Date.now()` is called at render time (fine for live views driven by a ticking parent, not suitable for SSR).
|
|
322
|
+
density: z.enum(["comfortable", "compact"]).optional(), // Lane density variant.
|
|
323
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Children should be `AiTimelineLane` components.
|
|
324
|
+
className: z.string().optional(),
|
|
325
|
+
id: z.string().optional(),
|
|
326
|
+
lang: z.string().optional(),
|
|
327
|
+
title: z.string().optional(),
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
export const AiToolCallPropsSchema = z.object({
|
|
331
|
+
variant: z.enum(["default", "inline", "minimal"]).optional(), // Display variant.
|
|
332
|
+
duration: z.number().optional(), // Duration in milliseconds.
|
|
333
|
+
summary: z.string().optional(), // Summary text shown alongside the tool name.
|
|
334
|
+
icon: z.unknown().optional(), // Custom icon override.
|
|
335
|
+
approvalState: z.enum(["awaiting", "approved", "declined"]).optional(), // Approval state for tools requiring confirmation.
|
|
336
|
+
defaultExpanded: z.boolean().optional(), // Default expanded state for the collapsible.
|
|
337
|
+
className: z.string().optional(),
|
|
338
|
+
id: z.string().optional(),
|
|
339
|
+
lang: z.string().optional(),
|
|
340
|
+
title: z.string().optional(),
|
|
341
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
342
|
+
});
|
|
343
|
+
|
|
344
|
+
export const AiUsageBarPropsSchema = z.object({
|
|
345
|
+
inputTokens: z.number().optional(), // Input/prompt token count.
|
|
346
|
+
outputTokens: z.number().optional(), // Output/completion token count.
|
|
347
|
+
totalTokens: z.number().optional(), // Total token count. Computed from input + output if not provided.
|
|
348
|
+
cost: z.number().optional(), // Estimated cost in USD.
|
|
349
|
+
modelId: z.string().optional(), // Model ID being used (shown as label).
|
|
350
|
+
icon: z.unknown().optional(), // Custom icon. Defaults to `LightningIcon`.
|
|
351
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
352
|
+
className: z.string().optional(),
|
|
353
|
+
id: z.string().optional(),
|
|
354
|
+
lang: z.string().optional(),
|
|
355
|
+
title: z.string().optional(),
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
export const BadgePropsSchema = z.object({
|
|
359
|
+
variant: z.enum(["primary", "secondary", "destructive", "outline", "beta", "success", "warning", "info", "ghost"]).optional(), // Visual style of the badge. - `"primary"` — High-emphasis badge for important labels - `"secondary"` — Subtle badge for secondary information - `"destructive"` — Error or danger state indicator - `"outline"` — Bordered badge with transparent background - `"beta"` — Dashed-border badge for beta/experimental features - `"success"` — Positive status indicator - `"warning"` — Caution or attention indicator - `"info"` — Informational badge - `"ghost"` — Text-only badge with no background or border
|
|
360
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
361
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered inside the badge.
|
|
362
|
+
icon: z.unknown().optional(), // Icon component rendered alongside the text.
|
|
363
|
+
iconPosition: z.enum(["left", "right"]).optional(), // Position of the icon relative to the text.
|
|
364
|
+
loading: z.boolean().optional(), // Shows a loading spinner, replacing the icon slot.
|
|
365
|
+
dot: z.enum(["green", "red", "yellow", "blue", "gray"]).optional(), // Renders a small colored status dot before the text.
|
|
366
|
+
tooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Wraps the badge in a Tooltip with this content. Requires a TooltipProvider ancestor.
|
|
367
|
+
href: z.string().optional(),
|
|
368
|
+
});
|
|
369
|
+
|
|
370
|
+
export const BannerPropsSchema = z.object({
|
|
371
|
+
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon element rendered before the banner text (e.g. from `@phosphor-icons/react`).
|
|
372
|
+
text: z.string().optional(),
|
|
373
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Banner message content. Accepts strings or custom React elements.
|
|
374
|
+
variant: z.enum(["default", "alert", "error"]).optional(), // Visual style of the banner. - `"default"` — Informational blue banner for general messages - `"alert"` — Warning yellow banner for cautionary messages - `"error"` — Error red banner for critical issues
|
|
375
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
376
|
+
});
|
|
377
|
+
|
|
378
|
+
export const BreadcrumbsPropsSchema = z.object({
|
|
379
|
+
size: z.enum(["sm", "base"]).optional(), // Size of the breadcrumbs. - `"sm"` — Compact breadcrumbs for dense UIs - `"base"` — Default breadcrumbs size
|
|
380
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
381
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
382
|
+
});
|
|
383
|
+
|
|
384
|
+
export const ButtonPropsSchema = z.object({
|
|
385
|
+
shape: z.enum(["base", "square", "circle"]).optional(),
|
|
386
|
+
size: z.enum(["xs", "sm", "base", "lg"]).optional(),
|
|
387
|
+
variant: z.enum(["primary", "secondary", "ghost", "destructive", "secondary-destructive", "outline"]).optional(),
|
|
388
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
389
|
+
className: z.string().optional(),
|
|
390
|
+
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Icon from `@phosphor-icons/react` or a React element. Rendered before children.
|
|
391
|
+
loading: z.boolean().optional(), // Shows a loading spinner and disables interaction.
|
|
392
|
+
id: z.string().optional(),
|
|
393
|
+
lang: z.string().optional(),
|
|
394
|
+
title: z.string().optional(),
|
|
395
|
+
disabled: z.boolean().optional(),
|
|
396
|
+
name: z.string().optional(),
|
|
397
|
+
type: z.enum(["submit", "reset", "button"]).optional(),
|
|
398
|
+
value: z.unknown().optional(),
|
|
399
|
+
});
|
|
400
|
+
|
|
401
|
+
export const CheckboxPropsSchema = z.object({
|
|
402
|
+
variant: z.enum(["default", "error"]).optional(), // Visual variant: "default" or "error" for validation failures (visual only, no error text)
|
|
403
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the checkbox (enables built-in Field wrapper) - can be a string or any React node
|
|
404
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
405
|
+
controlFirst: z.boolean().optional(), // When true (default), checkbox appears before label. When false, label appears before checkbox.
|
|
406
|
+
checked: z.boolean().optional(), // Whether the checkbox is checked (controlled)
|
|
407
|
+
indeterminate: z.boolean().optional(), // Whether the checkbox is in indeterminate state
|
|
408
|
+
disabled: z.boolean().optional(), // Whether the checkbox is disabled
|
|
409
|
+
name: z.string().optional(), // Name for form submission
|
|
410
|
+
required: z.boolean().optional(), // Whether the field is required
|
|
411
|
+
className: z.string().optional(), // Additional class name
|
|
412
|
+
onValueChange: z.unknown().optional(), // Callback when checkbox value changes
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
export const ClipboardTextPropsSchema = z.object({
|
|
416
|
+
size: z.enum(["sm", "base", "lg"]).optional(), // Size of the clipboard text field. - `"sm"` — Small clipboard text for compact UIs - `"base"` — Default clipboard text size - `"lg"` — Large clipboard text for prominent display
|
|
417
|
+
text: z.string(), // The text to display and copy to clipboard.
|
|
418
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
419
|
+
tooltip: z.unknown().optional(), // Tooltip config. Shows tooltip on hover, anchored toast on click.
|
|
420
|
+
labels: z.unknown().optional(), // Accessible labels for i18n.
|
|
421
|
+
});
|
|
422
|
+
|
|
423
|
+
export const CodePropsSchema = z.object({
|
|
424
|
+
lang: z.enum(["ts", "tsx", "jsonc", "bash", "css"]).optional(), // Language hint for the code content. - `"ts"` — TypeScript code - `"tsx"` — TypeScript JSX code - `"jsonc"` — JSON with comments - `"bash"` — Shell/Bash commands - `"css"` — CSS styles
|
|
425
|
+
code: z.string(), // The code string to display.
|
|
426
|
+
values: z.unknown().optional(), // Template values for `{{key}}` interpolation. Values with `highlight: true` are visually emphasized.
|
|
427
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
428
|
+
});
|
|
429
|
+
|
|
430
|
+
export const CollapsiblePropsSchema = z.object({
|
|
431
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
432
|
+
label: z.string(), // Text label displayed in the trigger button
|
|
433
|
+
open: z.boolean().optional(), // Whether the collapsible content is visible
|
|
434
|
+
className: z.string().optional(), // Additional CSS classes for the content panel
|
|
435
|
+
onOpenChange: z.unknown().optional(), // Callback when collapsed state changes
|
|
436
|
+
});
|
|
437
|
+
|
|
438
|
+
export const ComboboxPropsSchema = z.object({
|
|
439
|
+
inputSide: z.enum(["right", "top"]).optional(), // Position of the text input relative to chips in multi-select mode. - `"right"` — Input inline to the right of chips - `"top"` — Input above chips
|
|
440
|
+
items: z.array(z.unknown()), // Array of items to display in the dropdown
|
|
441
|
+
value: z.array(z.unknown()).optional(), // Currently selected value(s)
|
|
442
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Combobox content (trigger, content, items)
|
|
443
|
+
className: z.string().optional(), // Additional CSS classes
|
|
444
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the combobox (enables Field wrapper) - can be a string or any React node
|
|
445
|
+
required: z.boolean().optional(), // Whether the combobox is required
|
|
446
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
447
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the combobox
|
|
448
|
+
error: z.unknown().optional(), // Error message or validation error object
|
|
449
|
+
onValueChange: z.unknown().optional(), // Callback when selection changes
|
|
450
|
+
multiple: z.boolean().optional(), // Allow multiple selections
|
|
451
|
+
isItemEqualToValue: z.unknown().optional(), // Custom equality function for comparing items
|
|
452
|
+
});
|
|
453
|
+
|
|
454
|
+
export const CommandPalettePropsSchema = z.object({
|
|
455
|
+
open: z.boolean(), // Whether the dialog is open
|
|
456
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child content - typically one or more Panel components
|
|
457
|
+
});
|
|
458
|
+
|
|
459
|
+
export const DataGridPropsSchema = z.object({
|
|
460
|
+
layout: z.enum(["auto", "fixed"]).optional(),
|
|
461
|
+
className: z.string().optional(), // Additional CSS classes
|
|
462
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
463
|
+
});
|
|
464
|
+
|
|
465
|
+
export const DatePickerPropsSchema = z.object({
|
|
466
|
+
className: z.string().optional(), // Additional CSS classes
|
|
467
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
468
|
+
});
|
|
469
|
+
|
|
470
|
+
export const DateRangePickerPropsSchema = z.object({
|
|
471
|
+
size: z.enum(["sm", "base", "lg"]).optional(), // Calendar size. - `"sm"` — Compact calendar for tight spaces - `"base"` — Default calendar size - `"lg"` — Large calendar for prominent date selection
|
|
472
|
+
variant: z.enum(["default", "subtle"]).optional(), // Visual variant. - `"default"` — Standard appearance with overlay background - `"subtle"` — Minimal background
|
|
473
|
+
timezone: z.string().optional(), // Display timezone string shown in the footer.
|
|
474
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
475
|
+
onStartDateChange: z.unknown().optional(), // Callback when start date changes
|
|
476
|
+
onEndDateChange: z.unknown().optional(), // Callback when end date changes
|
|
477
|
+
});
|
|
478
|
+
|
|
479
|
+
export const DialogPropsSchema = z.object({
|
|
480
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
481
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Dialog content (typically Title, Description, Close, and action buttons).
|
|
482
|
+
size: z.enum(["base", "sm", "lg", "xl"]).optional(), // Dialog width. - `"sm"` — Small (min 288px) for simple confirmations - `"base"` — Default (min 384px) - `"lg"` — Large (min 512px) for complex content - `"xl"` — Extra large (min 768px) for detailed views
|
|
483
|
+
});
|
|
484
|
+
|
|
485
|
+
export const DropdownMenuPropsSchema = z.object({
|
|
486
|
+
variant: z.enum(["default", "danger"]).optional(), // Visual style of the dropdown item. - `"default"` — Standard item appearance - `"danger"` — Destructive action with red text
|
|
487
|
+
});
|
|
488
|
+
|
|
489
|
+
export const EmptyPropsSchema = z.object({
|
|
490
|
+
size: z.enum(["sm", "base", "lg"]).optional(), // Size of the empty state container. - `"sm"` — Compact empty state for smaller containers - `"base"` — Default empty state size - `"lg"` — Large empty state for prominent placement
|
|
491
|
+
icon: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Decorative icon displayed above the title (e.g. from `@phosphor-icons/react`).
|
|
492
|
+
title: z.string(), // Primary heading text for the empty state.
|
|
493
|
+
description: z.string().optional(), // Secondary description text displayed below the title.
|
|
494
|
+
commandLine: z.string().optional(), // Shell command displayed in a copyable code block.
|
|
495
|
+
contents: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Additional content (buttons, links) rendered below the description.
|
|
496
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
497
|
+
});
|
|
498
|
+
|
|
499
|
+
export const FieldPropsSchema = z.object({
|
|
500
|
+
controlFirst: z.boolean().optional(), // When `true`, places the control before the label (for checkbox/switch layouts).
|
|
501
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The form control element(s) to wrap (Input, Select, Checkbox, etc.).
|
|
502
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content — can be a string or any React node.
|
|
503
|
+
required: z.boolean().optional(), // When explicitly `false`, shows gray "(optional)" text after the label. When `true` or `undefined`, no indicator is shown.
|
|
504
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
|
|
505
|
+
error: z.unknown().optional(), // Validation error with a message and a browser `ValidityState` match key.
|
|
506
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the control (hidden when `error` is present).
|
|
507
|
+
});
|
|
508
|
+
|
|
509
|
+
export const FiltersPropsSchema = z.object({
|
|
510
|
+
filters: z.array(z.unknown()), // Active filters array
|
|
511
|
+
fields: z.array(z.unknown()), // Available field configurations
|
|
512
|
+
size: z.enum(["sm", "default", "lg"]).optional(), // Size variant for filter pills
|
|
513
|
+
trigger: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Custom trigger element (replaces default "Add Filter" button)
|
|
514
|
+
showSearchInput: z.boolean().optional(), // Whether to show a search input in the add filter menu
|
|
515
|
+
allowMultiple: z.boolean().optional(), // Whether to allow multiple filters on the same field
|
|
516
|
+
enableShortcut: z.boolean().optional(), // Whether to enable keyboard shortcut (Cmd/Ctrl + K) to open add filter
|
|
517
|
+
shortcutKey: z.string().optional(), // Keyboard shortcut key (default: "k")
|
|
518
|
+
shortcutLabel: z.string().optional(), // Label shown in the shortcut tooltip
|
|
519
|
+
i18n: z.unknown().optional(), // i18n configuration for labels
|
|
520
|
+
className: z.string().optional(), // Additional CSS classes
|
|
521
|
+
menuPopupClassName: z.string().optional(), // CSS classes for the filter menu popup
|
|
522
|
+
});
|
|
523
|
+
|
|
524
|
+
export const GridPropsSchema = z.object({
|
|
525
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Grid items to render.
|
|
526
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
527
|
+
id: z.string().optional(),
|
|
528
|
+
lang: z.string().optional(),
|
|
529
|
+
title: z.string().optional(),
|
|
530
|
+
mobileDivider: z.boolean().optional(), // Show dividers between grid items on mobile (only works with `"4up"` variant).
|
|
531
|
+
gap: z.enum(["none", "sm", "base", "lg"]).optional(), // Gap size between grid items. - `"none"` — No gap - `"sm"` — 12px gap - `"base"` — Responsive gap (8px → 24px → 32px) - `"lg"` — 32px gap
|
|
532
|
+
variant: z.enum(["2up", "side-by-side", "2-1", "1-2", "1-3up", "3up", "4up", "6up", "1-2-4up"]).optional(), // Responsive column layout variant. - `"2up"` — 1 col → 2 cols at md - `"side-by-side"` — Always 2 cols - `"2-1"` — 66%/33% split at md - `"1-2"` — 33%/66% split at md - `"3up"` — 1 → 2 → 3 cols - `"4up"` — 1 → 2 → 3 → 4 cols - `"6up"` — 2 → 3 → 4 → 6 cols - `"1-2-4up"` — 1 → 2 → 4 cols
|
|
533
|
+
});
|
|
534
|
+
|
|
535
|
+
export const InputPropsSchema = z.object({
|
|
536
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the input (enables Field wrapper) - can be a string or any React node
|
|
537
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
538
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
|
|
539
|
+
error: z.unknown().optional(), // Error message or validation error object
|
|
540
|
+
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Input size. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default size - `"lg"` — Large for prominent fields
|
|
541
|
+
variant: z.enum(["default", "error"]).optional(), // Visual variant. - `"default"` — Standard input - `"error"` — Error state for validation failures
|
|
542
|
+
});
|
|
543
|
+
|
|
544
|
+
export const InputAreaPropsSchema = z.object({});
|
|
545
|
+
|
|
546
|
+
export const LabelPropsSchema = z.object({
|
|
547
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // The label content — can be a string or any React node.
|
|
548
|
+
showOptional: z.boolean().optional(), // When `true`, shows gray "(optional)" text after the label.
|
|
549
|
+
tooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
|
|
550
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
551
|
+
htmlFor: z.string().optional(), // The id of the form element this label is associated with
|
|
552
|
+
asContent: z.boolean().optional(), // When true, only renders the inline content (indicators, tooltip) without the outer label element with font styling. Useful when composed inside another label element that already provides the text styling.
|
|
553
|
+
});
|
|
554
|
+
|
|
555
|
+
export const LayerCardPropsSchema = z.object({
|
|
556
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
557
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
558
|
+
});
|
|
559
|
+
|
|
560
|
+
export const LinkPropsSchema = z.object({
|
|
561
|
+
variant: z.enum(["inline", "current", "plain"]).optional(), // Visual style of the link. - `"inline"` — Inline text link that flows with content - `"current"` — Link that inherits color from parent text - `"plain"` — Link without underline decoration
|
|
562
|
+
to: z.string().optional(),
|
|
563
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
564
|
+
className: z.string().optional(),
|
|
565
|
+
id: z.string().optional(),
|
|
566
|
+
lang: z.string().optional(),
|
|
567
|
+
title: z.string().optional(),
|
|
568
|
+
download: z.unknown().optional(),
|
|
569
|
+
href: z.string().optional(),
|
|
570
|
+
hrefLang: z.string().optional(),
|
|
571
|
+
media: z.string().optional(),
|
|
572
|
+
ping: z.string().optional(),
|
|
573
|
+
target: z.unknown().optional(),
|
|
574
|
+
type: z.string().optional(),
|
|
575
|
+
referrerPolicy: z.enum(["", "no-referrer", "no-referrer-when-downgrade", "origin", "origin-when-cross-origin", "same-origin", "strict-origin", "strict-origin-when-cross-origin", "unsafe-url"]).optional(),
|
|
576
|
+
render: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Allows you to replace the component’s HTML element with a different tag, or compose it with another component. Accepts a `ReactElement` or a function that returns the element to render.
|
|
577
|
+
});
|
|
578
|
+
|
|
579
|
+
export const LoaderPropsSchema = z.object({
|
|
580
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
581
|
+
size: z.enum(["sm", "base", "lg"]).optional(), // Size of the spinner. Use a preset name or a custom pixel number. - `"sm"` — 16px, for inline use - `"base"` — 24px, default size - `"lg"` — 32px, for prominent loading states
|
|
582
|
+
});
|
|
583
|
+
|
|
584
|
+
export const MenuBarPropsSchema = z.object({
|
|
585
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
586
|
+
isActive: z.unknown().optional(), // The currently active option value — matched against option index or `id`.
|
|
587
|
+
options: z.array(z.unknown()), // Array of menu option configurations.
|
|
588
|
+
optionIds: z.boolean().optional(), // When true, each option's `id` field is used for matching instead of its array index.
|
|
589
|
+
});
|
|
590
|
+
|
|
591
|
+
export const MeterPropsSchema = z.object({
|
|
592
|
+
customValue: z.string().optional(), // Custom formatted value text (e.g. "750 / 1,000") displayed instead of percentage.
|
|
593
|
+
label: z.string(), // Label text displayed above the meter track.
|
|
594
|
+
showValue: z.boolean().optional(), // Whether to display the percentage value next to the label.
|
|
595
|
+
trackClassName: z.string().optional(), // Additional CSS classes for the track (background bar).
|
|
596
|
+
indicatorClassName: z.string().optional(), // Additional CSS classes for the indicator (filled bar).
|
|
597
|
+
value: z.number().optional(), // Current value of the meter
|
|
598
|
+
max: z.number().optional(), // Maximum value of the meter (default: 100)
|
|
599
|
+
min: z.number().optional(), // Minimum value of the meter (default: 0)
|
|
600
|
+
});
|
|
601
|
+
|
|
602
|
+
export const PaginationPropsSchema = z.object({
|
|
603
|
+
controls: z.enum(["full", "simple"]).optional(),
|
|
604
|
+
setPage: z.unknown(), // Callback when page changes
|
|
605
|
+
page: z.number().optional(), // Current page number (1-indexed).
|
|
606
|
+
perPage: z.number().optional(), // Number of items displayed per page.
|
|
607
|
+
totalCount: z.number().optional(), // Total number of items across all pages.
|
|
608
|
+
text: z.unknown().optional(), // Method to provide custom pagination text
|
|
609
|
+
});
|
|
610
|
+
|
|
611
|
+
export const PopoverPropsSchema = z.object({
|
|
612
|
+
side: z.enum(["top", "bottom", "left", "right"]).optional(), // Which side of the trigger the popover appears on. - `"top"` — Above the trigger - `"bottom"` — Below the trigger - `"left"` — Left of the trigger - `"right"` — Right of the trigger
|
|
613
|
+
});
|
|
614
|
+
|
|
615
|
+
export const PromptInputPropsSchema = z.object({
|
|
616
|
+
globalDrop: z.boolean().optional(), // When true, accept drops anywhere on document. Default false.
|
|
617
|
+
maxFiles: z.number().optional(), // Maximum number of attached files.
|
|
618
|
+
maxFileSize: z.number().optional(), // Maximum file size in bytes.
|
|
619
|
+
backLayer: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered in the collapsible back layer (e.g. HITL approvals, task lists). When provided the prompt input is wrapped in a LayerCard shell with a header row containing a chevron toggle. Use `PromptInputBackLayer` to compose structured content for this slot.
|
|
620
|
+
backLayerTitle: z.string().optional(), // Title shown in the back layer header row. Defaults to `"Context"`.
|
|
621
|
+
backLayerOpen: z.boolean().optional(), // Controls whether the back layer is visible. Pair with `onBackLayerOpenChange` for a controlled pattern.
|
|
622
|
+
autoOpenBackLayerWhen: z.boolean().optional(), // Automatically opens the back layer when this condition is true. Useful for showing pending approvals/questions without manual toggle.
|
|
623
|
+
className: z.string().optional(),
|
|
624
|
+
id: z.string().optional(),
|
|
625
|
+
lang: z.string().optional(),
|
|
626
|
+
title: z.string().optional(),
|
|
627
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
628
|
+
});
|
|
629
|
+
|
|
630
|
+
export const RadioPropsSchema = z.object({
|
|
631
|
+
legend: z.string(), // Legend text for the group (required for accessibility)
|
|
632
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child Radio.Item components
|
|
633
|
+
orientation: z.enum(["vertical", "horizontal"]).optional(), // Layout direction of the radio items
|
|
634
|
+
error: z.string().optional(), // Error message for the group
|
|
635
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text for the group
|
|
636
|
+
value: z.string().optional(), // Value of the radio that should be selected (controlled)
|
|
637
|
+
disabled: z.boolean().optional(), // Whether all radios in the group are disabled
|
|
638
|
+
controlPosition: z.enum(["start", "end"]).optional(), // Position of radio control relative to label: "start" (default) puts radio before label, "end" puts label before radio
|
|
639
|
+
name: z.string().optional(), // Form submission name for the radio group
|
|
640
|
+
className: z.string().optional(), // Additional CSS classes
|
|
641
|
+
});
|
|
642
|
+
|
|
643
|
+
export const SelectPropsSchema = z.object({
|
|
644
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
645
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the select (enables Field wrapper) — can be a string or any React node.
|
|
646
|
+
hideLabel: z.boolean().optional(), // Visually hide the label while keeping it accessible to screen readers. Set to `false` to show a visible label above the select via the Field wrapper.
|
|
647
|
+
placeholder: z.string().optional(), // Placeholder text shown when no value is selected.
|
|
648
|
+
loading: z.boolean().optional(), // When `true`, shows a skeleton loader in place of the selected value.
|
|
649
|
+
disabled: z.boolean().optional(), // Whether the select is disabled.
|
|
650
|
+
required: z.boolean().optional(), // Whether the select is required. When `false`, shows "(optional)" text.
|
|
651
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content displayed next to the label via an info icon.
|
|
652
|
+
value: z.string().optional(), // Currently selected value (controlled mode).
|
|
653
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // `Select.Option` elements to render in the dropdown.
|
|
654
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the select.
|
|
655
|
+
error: z.unknown().optional(), // Error message string or validation error object with `match` key.
|
|
656
|
+
onValueChange: z.unknown().optional(), // Callback when selection changes
|
|
657
|
+
defaultValue: z.string().optional(), // Initial value for uncontrolled mode
|
|
658
|
+
});
|
|
659
|
+
|
|
660
|
+
export const SensitiveInputPropsSchema = z.object({
|
|
661
|
+
alt: z.string().optional(),
|
|
662
|
+
autoComplete: z.unknown().optional(),
|
|
663
|
+
checked: z.boolean().optional(),
|
|
664
|
+
disabled: z.boolean().optional(),
|
|
665
|
+
height: z.unknown().optional(),
|
|
666
|
+
list: z.string().optional(),
|
|
667
|
+
name: z.string().optional(),
|
|
668
|
+
placeholder: z.string().optional(),
|
|
669
|
+
readOnly: z.boolean().optional(),
|
|
670
|
+
required: z.boolean().optional(),
|
|
671
|
+
width: z.unknown().optional(),
|
|
672
|
+
className: z.string().optional(),
|
|
673
|
+
id: z.string().optional(),
|
|
674
|
+
lang: z.string().optional(),
|
|
675
|
+
title: z.string().optional(),
|
|
676
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
677
|
+
value: z.string().optional(), // Controlled value
|
|
678
|
+
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Size of the input. - `"xs"` — Extra small for compact UIs - `"sm"` — Small for secondary fields - `"base"` — Default input size - `"lg"` — Large for prominent fields
|
|
679
|
+
variant: z.enum(["default", "error"]).optional(), // Style variant of the input. - `"default"` — Default input appearance - `"error"` — Error state for validation failures
|
|
680
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the input (enables Field wrapper and sets masked state label) - can be a string or any React node
|
|
681
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
682
|
+
description: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Helper text displayed below the input
|
|
683
|
+
error: z.unknown().optional(), // Error message or validation error object
|
|
684
|
+
});
|
|
685
|
+
|
|
686
|
+
export const SidebarPropsSchema = z.object({
|
|
687
|
+
defaultOpen: z.boolean().optional(), // Initial open state when uncontrolled.
|
|
688
|
+
open: z.boolean().optional(), // Controlled open state.
|
|
689
|
+
variant: z.enum(["sidebar", "floating", "inset"]).optional(), // Sidebar layout variant.
|
|
690
|
+
side: z.enum(["left", "right"]).optional(), // Which side the sidebar is on.
|
|
691
|
+
collapsible: z.enum(["icon", "offcanvas", "none"]).optional(),
|
|
692
|
+
resizable: z.boolean().optional(), // Enable drag-to-resize on the sidebar edge.
|
|
693
|
+
defaultWidth: z.number().optional(), // Initial width in pixels when resizable.
|
|
694
|
+
minWidth: z.number().optional(), // Minimum width in pixels when resizing.
|
|
695
|
+
maxWidth: z.number().optional(), // Maximum width in pixels when resizing.
|
|
696
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content — typically `<Sidebar>` + main content.
|
|
697
|
+
className: z.string().optional(), // Additional CSS classes for the wrapper div.
|
|
698
|
+
});
|
|
699
|
+
|
|
700
|
+
export const SignalFlareAILogoPropsSchema = z.object({
|
|
701
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(),
|
|
702
|
+
className: z.string().optional(),
|
|
703
|
+
height: z.unknown().optional(),
|
|
704
|
+
id: z.string().optional(),
|
|
705
|
+
lang: z.string().optional(),
|
|
706
|
+
media: z.string().optional(),
|
|
707
|
+
method: z.string().optional(),
|
|
708
|
+
name: z.string().optional(),
|
|
709
|
+
target: z.string().optional(),
|
|
710
|
+
type: z.string().optional(),
|
|
711
|
+
width: z.unknown().optional(),
|
|
712
|
+
accentHeight: z.unknown().optional(),
|
|
713
|
+
accumulate: z.enum(["none", "sum"]).optional(),
|
|
714
|
+
additive: z.enum(["replace", "sum"]).optional(),
|
|
715
|
+
alignmentBaseline: z.enum(["auto", "baseline", "before-edge", "text-before-edge", "middle", "central", "after-edge", "text-after-edge", "ideographic", "alphabetic", "hanging", "mathematical", "inherit"]).optional(),
|
|
716
|
+
allowReorder: z.enum(["no", "yes"]).optional(),
|
|
717
|
+
alphabetic: z.unknown().optional(),
|
|
718
|
+
amplitude: z.unknown().optional(),
|
|
719
|
+
arabicForm: z.enum(["initial", "medial", "terminal", "isolated"]).optional(),
|
|
720
|
+
ascent: z.unknown().optional(),
|
|
721
|
+
attributeName: z.string().optional(),
|
|
722
|
+
attributeType: z.string().optional(),
|
|
723
|
+
autoReverse: z.unknown().optional(),
|
|
724
|
+
azimuth: z.unknown().optional(),
|
|
725
|
+
baseFrequency: z.unknown().optional(),
|
|
726
|
+
baselineShift: z.unknown().optional(),
|
|
727
|
+
baseProfile: z.unknown().optional(),
|
|
728
|
+
bbox: z.unknown().optional(),
|
|
729
|
+
begin: z.unknown().optional(),
|
|
730
|
+
bias: z.unknown().optional(),
|
|
731
|
+
by: z.unknown().optional(),
|
|
732
|
+
calcMode: z.unknown().optional(),
|
|
733
|
+
capHeight: z.unknown().optional(),
|
|
734
|
+
clip: z.unknown().optional(),
|
|
735
|
+
clipPath: z.string().optional(),
|
|
736
|
+
clipPathUnits: z.unknown().optional(),
|
|
737
|
+
clipRule: z.unknown().optional(),
|
|
738
|
+
colorInterpolation: z.unknown().optional(),
|
|
739
|
+
colorInterpolationFilters: z.enum(["auto", "sRGB", "linearRGB", "inherit"]).optional(),
|
|
740
|
+
colorProfile: z.unknown().optional(),
|
|
741
|
+
colorRendering: z.unknown().optional(),
|
|
742
|
+
contentScriptType: z.unknown().optional(),
|
|
743
|
+
contentStyleType: z.unknown().optional(),
|
|
744
|
+
cursor: z.unknown().optional(),
|
|
745
|
+
cx: z.unknown().optional(),
|
|
746
|
+
cy: z.unknown().optional(),
|
|
747
|
+
d: z.string().optional(),
|
|
748
|
+
decelerate: z.unknown().optional(),
|
|
749
|
+
descent: z.unknown().optional(),
|
|
750
|
+
diffuseConstant: z.unknown().optional(),
|
|
751
|
+
direction: z.unknown().optional(),
|
|
752
|
+
display: z.unknown().optional(),
|
|
753
|
+
divisor: z.unknown().optional(),
|
|
754
|
+
dominantBaseline: z.enum(["auto", "use-script", "no-change", "reset-size", "ideographic", "alphabetic", "hanging", "mathematical", "central", "middle", "text-after-edge", "text-before-edge", "inherit"]).optional(),
|
|
755
|
+
dur: z.unknown().optional(),
|
|
756
|
+
dx: z.unknown().optional(),
|
|
757
|
+
dy: z.unknown().optional(),
|
|
758
|
+
edgeMode: z.unknown().optional(),
|
|
759
|
+
elevation: z.unknown().optional(),
|
|
760
|
+
enableBackground: z.unknown().optional(),
|
|
761
|
+
end: z.unknown().optional(),
|
|
762
|
+
exponent: z.unknown().optional(),
|
|
763
|
+
externalResourcesRequired: z.unknown().optional(),
|
|
764
|
+
fill: z.string().optional(),
|
|
765
|
+
fillOpacity: z.unknown().optional(),
|
|
766
|
+
fillRule: z.enum(["nonzero", "evenodd", "inherit"]).optional(),
|
|
767
|
+
filter: z.string().optional(),
|
|
768
|
+
filterRes: z.unknown().optional(),
|
|
769
|
+
filterUnits: z.unknown().optional(),
|
|
770
|
+
floodColor: z.unknown().optional(),
|
|
771
|
+
floodOpacity: z.unknown().optional(),
|
|
772
|
+
focusable: z.unknown().optional(),
|
|
773
|
+
fontFamily: z.string().optional(),
|
|
774
|
+
fontSize: z.unknown().optional(),
|
|
775
|
+
fontSizeAdjust: z.unknown().optional(),
|
|
776
|
+
fontStretch: z.unknown().optional(),
|
|
777
|
+
fontStyle: z.unknown().optional(),
|
|
778
|
+
fontVariant: z.unknown().optional(),
|
|
779
|
+
fontWeight: z.unknown().optional(),
|
|
780
|
+
format: z.unknown().optional(),
|
|
781
|
+
fr: z.unknown().optional(),
|
|
782
|
+
from: z.unknown().optional(),
|
|
783
|
+
fx: z.unknown().optional(),
|
|
784
|
+
fy: z.unknown().optional(),
|
|
785
|
+
g1: z.unknown().optional(),
|
|
786
|
+
g2: z.unknown().optional(),
|
|
787
|
+
glyphName: z.unknown().optional(),
|
|
788
|
+
glyphOrientationHorizontal: z.unknown().optional(),
|
|
789
|
+
glyphOrientationVertical: z.unknown().optional(),
|
|
790
|
+
glyphRef: z.unknown().optional(),
|
|
791
|
+
gradientTransform: z.string().optional(),
|
|
792
|
+
gradientUnits: z.string().optional(),
|
|
793
|
+
hanging: z.unknown().optional(),
|
|
794
|
+
horizAdvX: z.unknown().optional(),
|
|
795
|
+
horizOriginX: z.unknown().optional(),
|
|
796
|
+
href: z.string().optional(),
|
|
797
|
+
ideographic: z.unknown().optional(),
|
|
798
|
+
imageRendering: z.unknown().optional(),
|
|
799
|
+
in2: z.unknown().optional(),
|
|
800
|
+
in: z.string().optional(),
|
|
801
|
+
intercept: z.unknown().optional(),
|
|
802
|
+
k1: z.unknown().optional(),
|
|
803
|
+
k2: z.unknown().optional(),
|
|
804
|
+
k3: z.unknown().optional(),
|
|
805
|
+
k4: z.unknown().optional(),
|
|
806
|
+
k: z.unknown().optional(),
|
|
807
|
+
kernelMatrix: z.unknown().optional(),
|
|
808
|
+
kernelUnitLength: z.unknown().optional(),
|
|
809
|
+
kerning: z.unknown().optional(),
|
|
810
|
+
keyPoints: z.unknown().optional(),
|
|
811
|
+
keySplines: z.unknown().optional(),
|
|
812
|
+
keyTimes: z.unknown().optional(),
|
|
813
|
+
lengthAdjust: z.unknown().optional(),
|
|
814
|
+
letterSpacing: z.unknown().optional(),
|
|
815
|
+
lightingColor: z.unknown().optional(),
|
|
816
|
+
limitingConeAngle: z.unknown().optional(),
|
|
817
|
+
local: z.unknown().optional(),
|
|
818
|
+
markerEnd: z.string().optional(),
|
|
819
|
+
markerHeight: z.unknown().optional(),
|
|
820
|
+
markerMid: z.string().optional(),
|
|
821
|
+
markerStart: z.string().optional(),
|
|
822
|
+
markerUnits: z.unknown().optional(),
|
|
823
|
+
markerWidth: z.unknown().optional(),
|
|
824
|
+
mask: z.string().optional(),
|
|
825
|
+
maskContentUnits: z.unknown().optional(),
|
|
826
|
+
maskUnits: z.unknown().optional(),
|
|
827
|
+
mathematical: z.unknown().optional(),
|
|
828
|
+
mode: z.unknown().optional(),
|
|
829
|
+
numOctaves: z.unknown().optional(),
|
|
830
|
+
offset: z.unknown().optional(),
|
|
831
|
+
opacity: z.unknown().optional(),
|
|
832
|
+
operator: z.unknown().optional(),
|
|
833
|
+
order: z.unknown().optional(),
|
|
834
|
+
orient: z.unknown().optional(),
|
|
835
|
+
orientation: z.unknown().optional(),
|
|
836
|
+
origin: z.unknown().optional(),
|
|
837
|
+
overflow: z.unknown().optional(),
|
|
838
|
+
overlinePosition: z.unknown().optional(),
|
|
839
|
+
overlineThickness: z.unknown().optional(),
|
|
840
|
+
paintOrder: z.unknown().optional(),
|
|
841
|
+
panose1: z.unknown().optional(),
|
|
842
|
+
path: z.string().optional(),
|
|
843
|
+
pathLength: z.unknown().optional(),
|
|
844
|
+
patternContentUnits: z.string().optional(),
|
|
845
|
+
patternTransform: z.unknown().optional(),
|
|
846
|
+
patternUnits: z.string().optional(),
|
|
847
|
+
pointerEvents: z.unknown().optional(),
|
|
848
|
+
points: z.string().optional(),
|
|
849
|
+
pointsAtX: z.unknown().optional(),
|
|
850
|
+
pointsAtY: z.unknown().optional(),
|
|
851
|
+
pointsAtZ: z.unknown().optional(),
|
|
852
|
+
preserveAlpha: z.unknown().optional(),
|
|
853
|
+
preserveAspectRatio: z.string().optional(),
|
|
854
|
+
primitiveUnits: z.unknown().optional(),
|
|
855
|
+
r: z.unknown().optional(),
|
|
856
|
+
radius: z.unknown().optional(),
|
|
857
|
+
refX: z.unknown().optional(),
|
|
858
|
+
refY: z.unknown().optional(),
|
|
859
|
+
renderingIntent: z.unknown().optional(),
|
|
860
|
+
repeatCount: z.unknown().optional(),
|
|
861
|
+
repeatDur: z.unknown().optional(),
|
|
862
|
+
requiredExtensions: z.unknown().optional(),
|
|
863
|
+
requiredFeatures: z.unknown().optional(),
|
|
864
|
+
restart: z.unknown().optional(),
|
|
865
|
+
result: z.string().optional(),
|
|
866
|
+
rotate: z.unknown().optional(),
|
|
867
|
+
rx: z.unknown().optional(),
|
|
868
|
+
ry: z.unknown().optional(),
|
|
869
|
+
scale: z.unknown().optional(),
|
|
870
|
+
seed: z.unknown().optional(),
|
|
871
|
+
shapeRendering: z.unknown().optional(),
|
|
872
|
+
slope: z.unknown().optional(),
|
|
873
|
+
spacing: z.unknown().optional(),
|
|
874
|
+
specularConstant: z.unknown().optional(),
|
|
875
|
+
specularExponent: z.unknown().optional(),
|
|
876
|
+
speed: z.unknown().optional(),
|
|
877
|
+
spreadMethod: z.string().optional(),
|
|
878
|
+
startOffset: z.unknown().optional(),
|
|
879
|
+
stdDeviation: z.unknown().optional(),
|
|
880
|
+
stemh: z.unknown().optional(),
|
|
881
|
+
stemv: z.unknown().optional(),
|
|
882
|
+
stitchTiles: z.unknown().optional(),
|
|
883
|
+
stopColor: z.string().optional(),
|
|
884
|
+
stopOpacity: z.unknown().optional(),
|
|
885
|
+
strikethroughPosition: z.unknown().optional(),
|
|
886
|
+
strikethroughThickness: z.unknown().optional(),
|
|
887
|
+
string: z.unknown().optional(),
|
|
888
|
+
stroke: z.string().optional(),
|
|
889
|
+
strokeDasharray: z.unknown().optional(),
|
|
890
|
+
strokeDashoffset: z.unknown().optional(),
|
|
891
|
+
strokeLinecap: z.enum(["butt", "round", "square", "inherit"]).optional(),
|
|
892
|
+
strokeLinejoin: z.enum(["miter", "round", "bevel", "inherit"]).optional(),
|
|
893
|
+
strokeMiterlimit: z.unknown().optional(),
|
|
894
|
+
strokeOpacity: z.unknown().optional(),
|
|
895
|
+
strokeWidth: z.unknown().optional(),
|
|
896
|
+
surfaceScale: z.unknown().optional(),
|
|
897
|
+
systemLanguage: z.unknown().optional(),
|
|
898
|
+
tableValues: z.unknown().optional(),
|
|
899
|
+
targetX: z.unknown().optional(),
|
|
900
|
+
targetY: z.unknown().optional(),
|
|
901
|
+
textAnchor: z.enum(["start", "middle", "end", "inherit"]).optional(),
|
|
902
|
+
textDecoration: z.unknown().optional(),
|
|
903
|
+
textLength: z.unknown().optional(),
|
|
904
|
+
textRendering: z.unknown().optional(),
|
|
905
|
+
to: z.unknown().optional(),
|
|
906
|
+
transform: z.string().optional(),
|
|
907
|
+
u1: z.unknown().optional(),
|
|
908
|
+
u2: z.unknown().optional(),
|
|
909
|
+
underlinePosition: z.unknown().optional(),
|
|
910
|
+
underlineThickness: z.unknown().optional(),
|
|
911
|
+
unicode: z.unknown().optional(),
|
|
912
|
+
unicodeBidi: z.unknown().optional(),
|
|
913
|
+
unicodeRange: z.unknown().optional(),
|
|
914
|
+
unitsPerEm: z.unknown().optional(),
|
|
915
|
+
vAlphabetic: z.unknown().optional(),
|
|
916
|
+
values: z.string().optional(),
|
|
917
|
+
vectorEffect: z.unknown().optional(),
|
|
918
|
+
version: z.string().optional(),
|
|
919
|
+
vertAdvY: z.unknown().optional(),
|
|
920
|
+
vertOriginX: z.unknown().optional(),
|
|
921
|
+
vertOriginY: z.unknown().optional(),
|
|
922
|
+
vHanging: z.unknown().optional(),
|
|
923
|
+
vIdeographic: z.unknown().optional(),
|
|
924
|
+
viewBox: z.string().optional(),
|
|
925
|
+
viewTarget: z.unknown().optional(),
|
|
926
|
+
visibility: z.unknown().optional(),
|
|
927
|
+
vMathematical: z.unknown().optional(),
|
|
928
|
+
widths: z.unknown().optional(),
|
|
929
|
+
wordSpacing: z.unknown().optional(),
|
|
930
|
+
writingMode: z.unknown().optional(),
|
|
931
|
+
x1: z.unknown().optional(),
|
|
932
|
+
x2: z.unknown().optional(),
|
|
933
|
+
x: z.unknown().optional(),
|
|
934
|
+
xChannelSelector: z.string().optional(),
|
|
935
|
+
xHeight: z.unknown().optional(),
|
|
936
|
+
xlinkActuate: z.string().optional(),
|
|
937
|
+
xlinkArcrole: z.string().optional(),
|
|
938
|
+
xlinkHref: z.string().optional(),
|
|
939
|
+
xlinkRole: z.string().optional(),
|
|
940
|
+
xlinkShow: z.string().optional(),
|
|
941
|
+
xlinkTitle: z.string().optional(),
|
|
942
|
+
xlinkType: z.string().optional(),
|
|
943
|
+
xmlBase: z.string().optional(),
|
|
944
|
+
xmlLang: z.string().optional(),
|
|
945
|
+
xmlns: z.string().optional(),
|
|
946
|
+
xmlnsXlink: z.string().optional(),
|
|
947
|
+
xmlSpace: z.string().optional(),
|
|
948
|
+
y1: z.unknown().optional(),
|
|
949
|
+
y2: z.unknown().optional(),
|
|
950
|
+
y: z.unknown().optional(),
|
|
951
|
+
yChannelSelector: z.string().optional(),
|
|
952
|
+
z: z.unknown().optional(),
|
|
953
|
+
zoomAndPan: z.string().optional(),
|
|
954
|
+
variant: z.enum(["glyph", "full"]).optional(), // Logo variant - `glyph`: Map pin icon only - `full`: Full logo with wordmark and decorative element
|
|
955
|
+
});
|
|
956
|
+
|
|
957
|
+
export const SurfacePropsSchema = z.object({
|
|
958
|
+
as: z.unknown().optional(), // The HTML element type to render as (e.g. `"div"`, `"section"`, `"article"`).
|
|
959
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
960
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Content rendered inside the surface.
|
|
961
|
+
});
|
|
962
|
+
|
|
963
|
+
export const SwitchPropsSchema = z.object({
|
|
964
|
+
variant: z.enum(["default", "error"]).optional(), // Visual variant: "default" or "error" for validation failures (visual only, no error text)
|
|
965
|
+
label: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Label content for the switch (Field wrapper is built-in) - can be a string or any React node. Optional when used standalone for visual-only purposes.
|
|
966
|
+
labelTooltip: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Tooltip content to display next to the label via an info icon
|
|
967
|
+
required: z.boolean().optional(), // Whether the switch is required. When explicitly false, shows "(optional)" text after the label.
|
|
968
|
+
controlFirst: z.boolean().optional(), // When true (default), switch appears before label. When false, label appears before switch.
|
|
969
|
+
size: z.enum(["sm", "base", "lg"]).optional(),
|
|
970
|
+
checked: z.boolean().optional(),
|
|
971
|
+
disabled: z.boolean().optional(),
|
|
972
|
+
transitioning: z.boolean().optional(),
|
|
973
|
+
name: z.string().optional(),
|
|
974
|
+
type: z.enum(["submit", "reset", "button"]).optional(),
|
|
975
|
+
value: z.unknown().optional(),
|
|
976
|
+
className: z.string().optional(),
|
|
977
|
+
id: z.string().optional(),
|
|
978
|
+
lang: z.string().optional(),
|
|
979
|
+
title: z.string().optional(),
|
|
980
|
+
onClick: z.unknown(), // Callback when switch is clicked
|
|
981
|
+
});
|
|
982
|
+
|
|
983
|
+
export const TablePropsSchema = z.object({
|
|
984
|
+
layout: z.enum(["auto", "fixed"]).optional(),
|
|
985
|
+
variant: z.enum(["default", "selected"]).optional(),
|
|
986
|
+
className: z.string().optional(), // Additional CSS classes
|
|
987
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
988
|
+
});
|
|
989
|
+
|
|
990
|
+
export const TabsPropsSchema = z.object({
|
|
991
|
+
tabs: z.array(z.unknown()).optional(), // Array of tab items to render.
|
|
992
|
+
value: z.string().optional(), // Controlled value. When set, component becomes controlled.
|
|
993
|
+
selectedValue: z.string().optional(), // Default selected value for uncontrolled mode. Ignored when `value` is set.
|
|
994
|
+
activateOnFocus: z.boolean().optional(), // When `true`, tabs are activated immediately upon receiving focus via arrow keys. When `false` (default), tabs receive focus but require Enter/Space to activate.
|
|
995
|
+
className: z.string().optional(), // Additional CSS classes for the root element.
|
|
996
|
+
listClassName: z.string().optional(), // Additional CSS classes for the tab list element.
|
|
997
|
+
indicatorClassName: z.string().optional(), // Additional CSS classes for the indicator element.
|
|
998
|
+
variant: z.enum(["segmented", "underline", "pill"]).optional(), // Tab style. - `"segmented"` — Pill-shaped indicator on a filled track - `"underline"` — Underline indicator below tab text - `"pill"` — Fully rounded tabs, only selected has background
|
|
999
|
+
onValueChange: z.unknown().optional(), // Callback when active tab changes
|
|
1000
|
+
});
|
|
1001
|
+
|
|
1002
|
+
export const TextPropsSchema = z.object({
|
|
1003
|
+
variant: z.enum(["heading1", "heading2", "heading3", "body", "secondary", "success", "error", "mono", "mono-secondary"]).optional(), // Text style variant. Determines color, font, and weight. - `"heading1"` — Large page title (30px, semibold) - `"heading2"` — Section title (24px, semibold) - `"heading3"` — Subsection title (18px, semibold) - `"body"` — Default body text - `"secondary"` — Muted text for secondary information - `"success"` — Success state text - `"error"` — Error state text - `"mono"` — Monospace text for code - `"mono-secondary"` — Muted monospace text
|
|
1004
|
+
size: z.enum(["xs", "sm", "base", "lg"]).optional(), // Text size (only applies to body/secondary/success/error variants). - `"xs"` — 12px - `"sm"` — 14px - `"base"` — 16px - `"lg"` — 18px
|
|
1005
|
+
bold: z.boolean().optional(), // Whether to use bold font weight (only applies to body variants).
|
|
1006
|
+
as: z.unknown().optional(), // The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted.
|
|
1007
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Text content.
|
|
1008
|
+
});
|
|
1009
|
+
|
|
1010
|
+
export const ThemeTogglePropsSchema = z.object({
|
|
1011
|
+
className: z.string().optional(), // Additional CSS classes merged via `cn()`.
|
|
1012
|
+
mode: z.enum(["light", "dark", "system"]).optional(), // Controlled mode. When provided the component acts as a controlled input — pair with `onModeChange`.
|
|
1013
|
+
cycle: z.array(z.unknown()).optional(), // Cycle order for clicking. Defaults to `["light", "dark", "system"]`. Remove `"system"` to limit to a simple light/dark toggle.
|
|
1014
|
+
tooltip: z.boolean().optional(), // Show a tooltip labelling the current action. Defaults to true.
|
|
1015
|
+
});
|
|
1016
|
+
|
|
1017
|
+
export const ToastyPropsSchema = z.object({
|
|
1018
|
+
variant: z.enum(["default", "error", "warning"]).optional(),
|
|
1019
|
+
className: z.string().optional(), // Additional CSS classes
|
|
1020
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
1021
|
+
});
|
|
1022
|
+
|
|
1023
|
+
export const TooltipPropsSchema = z.object({
|
|
1024
|
+
side: z.enum(["top", "bottom", "left", "right"]).optional(),
|
|
1025
|
+
className: z.string().optional(), // Additional CSS classes
|
|
1026
|
+
children: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]).optional(), // Child elements
|
|
1027
|
+
content: z.union([z.string(), z.number(), z.boolean(), z.null(), DynamicValueSchema]), // Content to display in the tooltip
|
|
1028
|
+
});
|
|
1029
|
+
|
|
1030
|
+
// =============================================================================
|
|
1031
|
+
// Component Type Union
|
|
1032
|
+
// =============================================================================
|
|
1033
|
+
|
|
1034
|
+
/**
|
|
1035
|
+
* All valid component type names
|
|
1036
|
+
*/
|
|
1037
|
+
export type KumoComponentType = "AiActions" | "AiAgentCard" | "AiApproval" | "AiCodeBlock" | "AiConversation" | "AiInfoBanner" | "AiLoader" | "AiMessage" | "AiMissionHeader" | "AiQuestion" | "AiReasoning" | "AiResponse" | "AiShimmer" | "AiStatusBadge" | "AiStreamingText" | "AiSubagent" | "AiSuggestions" | "AiTaskList" | "AiTimeline" | "AiToolCall" | "AiUsageBar" | "Badge" | "Banner" | "Breadcrumbs" | "Button" | "Checkbox" | "ClipboardText" | "Code" | "Collapsible" | "Combobox" | "CommandPalette" | "DataGrid" | "DatePicker" | "DateRangePicker" | "Dialog" | "DropdownMenu" | "Empty" | "Field" | "Filters" | "Grid" | "Input" | "InputArea" | "Label" | "LayerCard" | "Link" | "Loader" | "MenuBar" | "Meter" | "Pagination" | "Popover" | "PromptInput" | "Radio" | "Select" | "SensitiveInput" | "Sidebar" | "SignalFlareAILogo" | "Surface" | "Switch" | "Table" | "Tabs" | "Text" | "ThemeToggle" | "Toasty" | "Tooltip";
|
|
1038
|
+
|
|
1039
|
+
export const KumoComponentTypeSchema = z.enum([
|
|
1040
|
+
"AiActions",
|
|
1041
|
+
"AiAgentCard",
|
|
1042
|
+
"AiApproval",
|
|
1043
|
+
"AiCodeBlock",
|
|
1044
|
+
"AiConversation",
|
|
1045
|
+
"AiInfoBanner",
|
|
1046
|
+
"AiLoader",
|
|
1047
|
+
"AiMessage",
|
|
1048
|
+
"AiMissionHeader",
|
|
1049
|
+
"AiQuestion",
|
|
1050
|
+
"AiReasoning",
|
|
1051
|
+
"AiResponse",
|
|
1052
|
+
"AiShimmer",
|
|
1053
|
+
"AiStatusBadge",
|
|
1054
|
+
"AiStreamingText",
|
|
1055
|
+
"AiSubagent",
|
|
1056
|
+
"AiSuggestions",
|
|
1057
|
+
"AiTaskList",
|
|
1058
|
+
"AiTimeline",
|
|
1059
|
+
"AiToolCall",
|
|
1060
|
+
"AiUsageBar",
|
|
1061
|
+
"Badge",
|
|
1062
|
+
"Banner",
|
|
1063
|
+
"Breadcrumbs",
|
|
1064
|
+
"Button",
|
|
1065
|
+
"Checkbox",
|
|
1066
|
+
"ClipboardText",
|
|
1067
|
+
"Code",
|
|
1068
|
+
"Collapsible",
|
|
1069
|
+
"Combobox",
|
|
1070
|
+
"CommandPalette",
|
|
1071
|
+
"DataGrid",
|
|
1072
|
+
"DatePicker",
|
|
1073
|
+
"DateRangePicker",
|
|
1074
|
+
"Dialog",
|
|
1075
|
+
"DropdownMenu",
|
|
1076
|
+
"Empty",
|
|
1077
|
+
"Field",
|
|
1078
|
+
"Filters",
|
|
1079
|
+
"Grid",
|
|
1080
|
+
"Input",
|
|
1081
|
+
"InputArea",
|
|
1082
|
+
"Label",
|
|
1083
|
+
"LayerCard",
|
|
1084
|
+
"Link",
|
|
1085
|
+
"Loader",
|
|
1086
|
+
"MenuBar",
|
|
1087
|
+
"Meter",
|
|
1088
|
+
"Pagination",
|
|
1089
|
+
"Popover",
|
|
1090
|
+
"PromptInput",
|
|
1091
|
+
"Radio",
|
|
1092
|
+
"Select",
|
|
1093
|
+
"SensitiveInput",
|
|
1094
|
+
"Sidebar",
|
|
1095
|
+
"SignalFlareAILogo",
|
|
1096
|
+
"Surface",
|
|
1097
|
+
"Switch",
|
|
1098
|
+
"Table",
|
|
1099
|
+
"Tabs",
|
|
1100
|
+
"Text",
|
|
1101
|
+
"ThemeToggle",
|
|
1102
|
+
"Toasty",
|
|
1103
|
+
"Tooltip",
|
|
1104
|
+
]);
|
|
1105
|
+
|
|
1106
|
+
/**
|
|
1107
|
+
* Map of component type to its props schema
|
|
1108
|
+
*/
|
|
1109
|
+
export const ComponentPropsSchemas = {
|
|
1110
|
+
AiActions: AiActionsPropsSchema,
|
|
1111
|
+
AiAgentCard: AiAgentCardPropsSchema,
|
|
1112
|
+
AiApproval: AiApprovalPropsSchema,
|
|
1113
|
+
AiCodeBlock: AiCodeBlockPropsSchema,
|
|
1114
|
+
AiConversation: AiConversationPropsSchema,
|
|
1115
|
+
AiInfoBanner: AiInfoBannerPropsSchema,
|
|
1116
|
+
AiLoader: AiLoaderPropsSchema,
|
|
1117
|
+
AiMessage: AiMessagePropsSchema,
|
|
1118
|
+
AiMissionHeader: AiMissionHeaderPropsSchema,
|
|
1119
|
+
AiQuestion: AiQuestionPropsSchema,
|
|
1120
|
+
AiReasoning: AiReasoningPropsSchema,
|
|
1121
|
+
AiResponse: AiResponsePropsSchema,
|
|
1122
|
+
AiShimmer: AiShimmerPropsSchema,
|
|
1123
|
+
AiStatusBadge: AiStatusBadgePropsSchema,
|
|
1124
|
+
AiStreamingText: AiStreamingTextPropsSchema,
|
|
1125
|
+
AiSubagent: AiSubagentPropsSchema,
|
|
1126
|
+
AiSuggestions: AiSuggestionsPropsSchema,
|
|
1127
|
+
AiTaskList: AiTaskListPropsSchema,
|
|
1128
|
+
AiTimeline: AiTimelinePropsSchema,
|
|
1129
|
+
AiToolCall: AiToolCallPropsSchema,
|
|
1130
|
+
AiUsageBar: AiUsageBarPropsSchema,
|
|
1131
|
+
Badge: BadgePropsSchema,
|
|
1132
|
+
Banner: BannerPropsSchema,
|
|
1133
|
+
Breadcrumbs: BreadcrumbsPropsSchema,
|
|
1134
|
+
Button: ButtonPropsSchema,
|
|
1135
|
+
Checkbox: CheckboxPropsSchema,
|
|
1136
|
+
ClipboardText: ClipboardTextPropsSchema,
|
|
1137
|
+
Code: CodePropsSchema,
|
|
1138
|
+
Collapsible: CollapsiblePropsSchema,
|
|
1139
|
+
Combobox: ComboboxPropsSchema,
|
|
1140
|
+
CommandPalette: CommandPalettePropsSchema,
|
|
1141
|
+
DataGrid: DataGridPropsSchema,
|
|
1142
|
+
DatePicker: DatePickerPropsSchema,
|
|
1143
|
+
DateRangePicker: DateRangePickerPropsSchema,
|
|
1144
|
+
Dialog: DialogPropsSchema,
|
|
1145
|
+
DropdownMenu: DropdownMenuPropsSchema,
|
|
1146
|
+
Empty: EmptyPropsSchema,
|
|
1147
|
+
Field: FieldPropsSchema,
|
|
1148
|
+
Filters: FiltersPropsSchema,
|
|
1149
|
+
Grid: GridPropsSchema,
|
|
1150
|
+
Input: InputPropsSchema,
|
|
1151
|
+
InputArea: InputAreaPropsSchema,
|
|
1152
|
+
Label: LabelPropsSchema,
|
|
1153
|
+
LayerCard: LayerCardPropsSchema,
|
|
1154
|
+
Link: LinkPropsSchema,
|
|
1155
|
+
Loader: LoaderPropsSchema,
|
|
1156
|
+
MenuBar: MenuBarPropsSchema,
|
|
1157
|
+
Meter: MeterPropsSchema,
|
|
1158
|
+
Pagination: PaginationPropsSchema,
|
|
1159
|
+
Popover: PopoverPropsSchema,
|
|
1160
|
+
PromptInput: PromptInputPropsSchema,
|
|
1161
|
+
Radio: RadioPropsSchema,
|
|
1162
|
+
Select: SelectPropsSchema,
|
|
1163
|
+
SensitiveInput: SensitiveInputPropsSchema,
|
|
1164
|
+
Sidebar: SidebarPropsSchema,
|
|
1165
|
+
SignalFlareAILogo: SignalFlareAILogoPropsSchema,
|
|
1166
|
+
Surface: SurfacePropsSchema,
|
|
1167
|
+
Switch: SwitchPropsSchema,
|
|
1168
|
+
Table: TablePropsSchema,
|
|
1169
|
+
Tabs: TabsPropsSchema,
|
|
1170
|
+
Text: TextPropsSchema,
|
|
1171
|
+
ThemeToggle: ThemeTogglePropsSchema,
|
|
1172
|
+
Toasty: ToastyPropsSchema,
|
|
1173
|
+
Tooltip: TooltipPropsSchema,
|
|
1174
|
+
} as const;
|
|
1175
|
+
|
|
1176
|
+
// =============================================================================
|
|
1177
|
+
// UI Element & Tree Schemas
|
|
1178
|
+
// =============================================================================
|
|
1179
|
+
|
|
1180
|
+
/**
|
|
1181
|
+
* Base UI element structure
|
|
1182
|
+
*/
|
|
1183
|
+
export const UIElementBaseSchema = z.object({
|
|
1184
|
+
key: z.string(),
|
|
1185
|
+
type: KumoComponentTypeSchema,
|
|
1186
|
+
props: z.record(z.string(), z.unknown()),
|
|
1187
|
+
children: z.array(z.string()).optional(),
|
|
1188
|
+
parentKey: z.string().nullable().optional(),
|
|
1189
|
+
visible: VisibilityConditionSchema.optional(),
|
|
1190
|
+
action: ActionSchema.optional(),
|
|
1191
|
+
});
|
|
1192
|
+
|
|
1193
|
+
export type UIElement = z.infer<typeof UIElementBaseSchema>;
|
|
1194
|
+
|
|
1195
|
+
/**
|
|
1196
|
+
* Flat UI tree structure (optimized for LLM generation)
|
|
1197
|
+
*/
|
|
1198
|
+
export const UITreeSchema = z.object({
|
|
1199
|
+
root: z.string(),
|
|
1200
|
+
elements: z.record(z.string(), UIElementBaseSchema),
|
|
1201
|
+
});
|
|
1202
|
+
|
|
1203
|
+
export type UITree = z.infer<typeof UITreeSchema>;
|
|
1204
|
+
|
|
1205
|
+
// =============================================================================
|
|
1206
|
+
// Validation Helpers
|
|
1207
|
+
// =============================================================================
|
|
1208
|
+
|
|
1209
|
+
/**
|
|
1210
|
+
* Validate an element's props against its component schema
|
|
1211
|
+
*/
|
|
1212
|
+
export function validateElementProps(element: UIElement): SafeParseResult<unknown> {
|
|
1213
|
+
const schema = ComponentPropsSchemas[element.type as keyof typeof ComponentPropsSchemas];
|
|
1214
|
+
if (!schema) {
|
|
1215
|
+
return { success: false, error: new z.ZodError([{ code: 'custom', message: `Unknown component type: ${element.type}`, path: ['type'] }]) };
|
|
1216
|
+
}
|
|
1217
|
+
return schema.safeParse(element.props);
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
/**
|
|
1221
|
+
* Validate a complete UI tree
|
|
1222
|
+
*/
|
|
1223
|
+
export function validateUITree(tree: unknown): SafeParseResult<UITree> {
|
|
1224
|
+
return UITreeSchema.safeParse(tree);
|
|
1225
|
+
}
|
|
1226
|
+
|
|
1227
|
+
/**
|
|
1228
|
+
* List of all component names (for catalog generation)
|
|
1229
|
+
*/
|
|
1230
|
+
export const SF_COMPONENT_NAMES = ["AiActions", "AiAgentCard", "AiApproval", "AiCodeBlock", "AiConversation", "AiInfoBanner", "AiLoader", "AiMessage", "AiMissionHeader", "AiQuestion", "AiReasoning", "AiResponse", "AiShimmer", "AiStatusBadge", "AiStreamingText", "AiSubagent", "AiSuggestions", "AiTaskList", "AiTimeline", "AiToolCall", "AiUsageBar", "Badge", "Banner", "Breadcrumbs", "Button", "Checkbox", "ClipboardText", "Code", "Collapsible", "Combobox", "CommandPalette", "DataGrid", "DatePicker", "DateRangePicker", "Dialog", "DropdownMenu", "Empty", "Field", "Filters", "Grid", "Input", "InputArea", "Label", "LayerCard", "Link", "Loader", "MenuBar", "Meter", "Pagination", "Popover", "PromptInput", "Radio", "Select", "SensitiveInput", "Sidebar", "SignalFlareAILogo", "Surface", "Switch", "Table", "Tabs", "Text", "ThemeToggle", "Toasty", "Tooltip"] as const;
|