@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-DE1Yy1Cu.js","names":[],"sources":["../src/components/code/code.tsx"],"sourcesContent":["\"use client\";\n\nimport { type CSSProperties } from \"react\";\nimport { highlight } from \"sugar-high\";\n\nimport { cn } from \"../../utils/cn\";\nimport { highlightToTokens } from \"../../utils/highlight-to-react\";\n\n/** Code language variant definitions. */\nexport const SF_CODE_VARIANTS = {\n lang: {\n ts: {\n classes: \"\",\n description: \"TypeScript code\",\n },\n tsx: {\n classes: \"\",\n description: \"TypeScript JSX code\",\n },\n jsonc: {\n classes: \"\",\n description: \"JSON with comments\",\n },\n bash: {\n classes: \"\",\n description: \"Shell/Bash commands\",\n },\n css: {\n classes: \"\",\n description: \"CSS styles\",\n },\n },\n} as const;\n\nexport const SF_CODE_DEFAULT_VARIANTS = {\n lang: \"ts\",\n} as const;\n\n/**\n * Styling metadata for Code component (for AI/Figma plugin consumption)\n */\nexport const SF_CODE_STYLING = {\n /** Base semantic tokens used */\n baseTokens: [\"text-sf-default\"],\n /** Typography and layout */\n typography: {\n fontFamily: \"font-mono\",\n fontSize: \"text-sm\",\n lineHeight: \"leading-[20px]\",\n },\n /** Container dimensions */\n dimensions: {\n margin: \"m-0\",\n padding: \"p-0\",\n width: \"w-auto\",\n },\n /** Border and background */\n appearance: {\n borderRadius: \"rounded-none\",\n border: \"border-none\",\n background: \"bg-transparent\",\n },\n} as const;\n\n/**\n * Styling metadata for CodeBlock component (for AI/Figma plugin consumption)\n */\nexport const SF_CODEBLOCK_STYLING = {\n /** Base semantic tokens used */\n baseTokens: [\"bg-sf-recessed\", \"border-sf-line\"],\n /** Container styling */\n container: {\n minWidth: \"min-w-0\",\n borderRadius: \"rounded-md\",\n border: \"border border-sf-line\",\n background: \"bg-sf-recessed\",\n },\n /** Inner code element padding */\n innerPadding: \"[&>pre]:p-4\",\n /** Parsed dimensions */\n dimensions: {\n borderRadius: 6,\n padding: 16,\n },\n} as const;\n\n// Derived types from SF_CODE_VARIANTS\nexport type SFCodeLang = keyof typeof SF_CODE_VARIANTS.lang;\n\nexport interface SFCodeVariantsProps {\n /**\n * Language hint for the code content.\n * - `\"ts\"` — TypeScript code\n * - `\"tsx\"` — TypeScript JSX code\n * - `\"jsonc\"` — JSON with comments\n * - `\"bash\"` — Shell/Bash commands\n * - `\"css\"` — CSS styles\n * @default \"ts\"\n */\n lang?: SFCodeLang;\n}\n\nexport function codeVariants({\n lang = SF_CODE_DEFAULT_VARIANTS.lang,\n}: SFCodeVariantsProps = {}) {\n return cn(\n \"m-0 w-auto rounded-none border-none bg-transparent p-0 font-mono text-sm leading-[20px] text-sf-default\",\n SF_CODE_VARIANTS.lang[lang].classes\n );\n}\n\n// Legacy type alias for backwards compatibility\nexport type CodeLang = SFCodeLang;\n\n/** @deprecated Use CodeLang instead */\nexport type BundledLanguage = CodeLang;\n\n/**\n * Code component props.\n *\n * @example\n * ```tsx\n * <Code code=\"const x = 1;\" lang=\"ts\" />\n * <Code code=\"export API_KEY={{apiKey}}\" lang=\"bash\"\n * values={{ apiKey: { value: \"sk_live_123\", highlight: true } }}\n * />\n * ```\n */\nexport interface CodeProps extends SFCodeVariantsProps {\n /** The code string to display. */\n code: string;\n /** Template values for `{{key}}` interpolation. Values with `highlight: true` are visually emphasized. */\n values?: Record<\n string,\n {\n value: string;\n highlight?: boolean;\n }\n >;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Inline styles. */\n style?: CSSProperties;\n}\n\n/**\n * Substitutes `{{key}}` placeholders in the raw code string before highlighting.\n * Returns the substituted code and a set of highlighted values to wrap post-highlight.\n */\nfunction applyValues(\n code: string,\n values?: CodeProps[\"values\"]\n): { code: string; highlights: Map<string, string> } {\n const highlights = new Map<string, string>();\n if (!values) return { code, highlights };\n const substituted = code.replace(/\\{\\{(\\w+)\\}\\}/g, (_, key) => {\n const entry = values[key as string];\n if (!entry) return `{{${key}}}`;\n if (entry.highlight) highlights.set(entry.value, entry.value);\n return entry.value;\n });\n return { code: substituted, highlights };\n}\n\n/**\n * Syntax-highlighted code component powered by sugar-high.\n *\n * Renders code in a monospace font with token-level syntax highlighting.\n * For a bordered container version, use `Code.Block` or `CodeBlock`.\n *\n * **Styling:**\n * - Typography: `font-mono text-sm leading-[20px]`\n * - Colors: semantic `--sh-*` CSS variables (defined in SF theme)\n * - No borders or padding (use CodeBlock for styled container)\n */\nfunction CodeComponent({\n code,\n lang = SF_CODE_DEFAULT_VARIANTS.lang,\n values,\n className,\n style,\n}: CodeProps) {\n const { code: substituted } = applyValues(code, values);\n const html = highlight(substituted);\n const tokens = highlightToTokens(html);\n\n return (\n <pre className={cn(codeVariants({ lang }), className)} style={style}>\n <code>{tokens}</code>\n </pre>\n );\n}\n\nCodeComponent.displayName = \"Code\";\n\n/**\n * CodeBlock component props — code inside a bordered container.\n *\n * @example\n * ```tsx\n * <CodeBlock lang=\"tsx\" code={`const greeting = \"Hello!\";`} />\n * ```\n */\nexport interface CodeBlockProps {\n /** The code string to display. */\n code: string;\n /**\n * Language hint for the code content.\n * @default \"ts\"\n */\n lang?: CodeLang;\n}\n\n/**\n * Syntax-highlighted code block with border and background container.\n *\n * **Styling:**\n * - Container: `min-w-0 rounded-md border border-sf-line bg-sf-recessed`\n * - Inner padding: `p-4` (16px)\n */\nfunction CodeBlockComponent({ code, lang }: CodeBlockProps) {\n return (\n <div className=\"min-w-0 overflow-x-auto rounded-md border border-sf-line bg-sf-recessed [&>pre]:p-4\">\n <CodeComponent lang={lang} code={code} />\n </div>\n );\n}\n\nCodeBlockComponent.displayName = \"CodeBlock\";\n\n// Export Code with Block sub-component (for registry detection)\nexport const Code = Object.assign(CodeComponent, {\n Block: CodeBlockComponent,\n});\n\n// Backward-compatible standalone export\nexport const CodeBlock = CodeBlockComponent;\n"],"mappings":";;;;;;;AASA,IAAa,mBAAmB,EAC9B,MAAM;CACJ,IAAI;EACF,SAAS;EACT,aAAa;EACd;CACD,KAAK;EACH,SAAS;EACT,aAAa;EACd;CACD,OAAO;EACL,SAAS;EACT,aAAa;EACd;CACD,MAAM;EACJ,SAAS;EACT,aAAa;EACd;CACD,KAAK;EACH,SAAS;EACT,aAAa;EACd;CACF,EACF;AAED,IAAa,2BAA2B,EACtC,MAAM,MACP;AAkED,SAAgB,aAAa,EAC3B,OAAO,yBAAyB,SACT,EAAE,EAAE;AAC3B,QAAO,GACL,2GACA,iBAAiB,KAAK,MAAM,QAC7B;;;;;;AAyCH,SAAS,YACP,MACA,QACmD;CACnD,MAAM,6BAAa,IAAI,KAAqB;AAC5C,KAAI,CAAC,OAAQ,QAAO;EAAE;EAAM;EAAY;AAOxC,QAAO;EAAE,MANW,KAAK,QAAQ,mBAAmB,GAAG,QAAQ;GAC7D,MAAM,QAAQ,OAAO;AACrB,OAAI,CAAC,MAAO,QAAO,KAAK,IAAI;AAC5B,OAAI,MAAM,UAAW,YAAW,IAAI,MAAM,OAAO,MAAM,MAAM;AAC7D,UAAO,MAAM;IACb;EAC0B;EAAY;;;;;;;;;;;;;AAc1C,SAAS,cAAc,EACrB,MACA,OAAO,yBAAyB,MAChC,QACA,WACA,SACY;CACZ,MAAM,EAAE,MAAM,gBAAgB,YAAY,MAAM,OAAO;CAEvD,MAAM,SAAS,kBADF,UAAU,YAAY,CACG;AAEtC,QACE,oBAAC,OAAD;EAAK,WAAW,GAAG,aAAa,EAAE,MAAM,CAAC,EAAE,UAAU;EAAS;YAC5D,oBAAC,QAAD,EAAA,UAAO,QAAc,CAAA;EACjB,CAAA;;AAIV,cAAc,cAAc;;;;;;;;AA2B5B,SAAS,mBAAmB,EAAE,MAAM,QAAwB;AAC1D,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,oBAAC,eAAD;GAAqB;GAAY;GAAQ,CAAA;EACrC,CAAA;;AAIV,mBAAmB,cAAc;AAGjC,IAAa,OAAO,OAAO,OAAO,eAAe,EAC/C,OAAO,oBACR,CAAC;AAGF,IAAa,YAAY"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as cn } from "./cn-YROP2_ox.js";
|
|
3
|
+
import { forwardRef, useCallback, useId } from "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { CaretDownIcon } from "@phosphor-icons/react";
|
|
6
|
+
//#region src/components/collapsible/collapsible.tsx
|
|
7
|
+
function collapsibleVariants(_props = {}) {
|
|
8
|
+
return cn("flex cursor-pointer items-center gap-1 text-sm text-sf-link select-none");
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Collapsible component for showing/hiding content.
|
|
12
|
+
*
|
|
13
|
+
* Features:
|
|
14
|
+
* - Animated chevron indicator (rotates 180° when open)
|
|
15
|
+
* - Accessible with aria-expanded and aria-controls
|
|
16
|
+
* - Content panel with left border accent
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* const [open, setOpen] = useState(false);
|
|
21
|
+
*
|
|
22
|
+
* <Collapsible label="Show details" open={open} onOpenChange={setOpen}>
|
|
23
|
+
* <Text>Hidden content revealed when expanded.</Text>
|
|
24
|
+
* </Collapsible>
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @example Controlled accordion pattern
|
|
28
|
+
* ```tsx
|
|
29
|
+
* const [activeIndex, setActiveIndex] = useState<number | null>(null);
|
|
30
|
+
*
|
|
31
|
+
* {items.map((item, i) => (
|
|
32
|
+
* <Collapsible
|
|
33
|
+
* key={i}
|
|
34
|
+
* label={item.title}
|
|
35
|
+
* open={activeIndex === i}
|
|
36
|
+
* onOpenChange={(open) => setActiveIndex(open ? i : null)}
|
|
37
|
+
* >
|
|
38
|
+
* {item.content}
|
|
39
|
+
* </Collapsible>
|
|
40
|
+
* ))}
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
var Collapsible = forwardRef(({ label, open, onOpenChange, children, className }, ref) => {
|
|
44
|
+
const contentId = useId();
|
|
45
|
+
const handleOpen = useCallback(() => {
|
|
46
|
+
onOpenChange?.(!open);
|
|
47
|
+
}, [open, onOpenChange]);
|
|
48
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
49
|
+
ref,
|
|
50
|
+
children: [/* @__PURE__ */ jsxs("button", {
|
|
51
|
+
type: "button",
|
|
52
|
+
"aria-expanded": open,
|
|
53
|
+
"aria-controls": contentId,
|
|
54
|
+
className: collapsibleVariants(),
|
|
55
|
+
onClick: handleOpen,
|
|
56
|
+
children: [
|
|
57
|
+
label,
|
|
58
|
+
" ",
|
|
59
|
+
/* @__PURE__ */ jsx(CaretDownIcon, { className: cn("h-4 w-4 transition-transform", open && "rotate-180") })
|
|
60
|
+
]
|
|
61
|
+
}), open && /* @__PURE__ */ jsx("div", {
|
|
62
|
+
id: contentId,
|
|
63
|
+
className: cn("my-2 space-y-4 border-l-2 border-sf-fill pl-4", className),
|
|
64
|
+
children
|
|
65
|
+
})]
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
Collapsible.displayName = "Collapsible";
|
|
69
|
+
//#endregion
|
|
70
|
+
export { Collapsible as t };
|
|
71
|
+
|
|
72
|
+
//# sourceMappingURL=collapsible-DWsXeXmS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible-DWsXeXmS.js","names":[],"sources":["../src/components/collapsible/collapsible.tsx"],"sourcesContent":["import { CaretDownIcon } from \"@phosphor-icons/react\";\nimport { type PropsWithChildren, forwardRef, useCallback, useId } from \"react\";\n\nimport { cn } from \"../../utils/cn\";\n\nexport const SF_COLLAPSIBLE_VARIANTS = {} as const;\n\nexport const SF_COLLAPSIBLE_DEFAULT_VARIANTS = {} as const;\n\nexport interface SFCollapsibleVariantsProps {}\n\nexport function collapsibleVariants(_props: SFCollapsibleVariantsProps = {}) {\n return cn(\n // Base styles for the trigger\n \"flex cursor-pointer items-center gap-1 text-sm text-sf-link select-none\"\n );\n}\n\n/**\n * Collapsible component props.\n *\n * @example\n * ```tsx\n * <Collapsible label=\"Show details\" open={open} onOpenChange={setOpen}>\n * <Text>Hidden content revealed when expanded.</Text>\n * </Collapsible>\n * ```\n */\nexport type CollapsibleProps = PropsWithChildren<\n SFCollapsibleVariantsProps & {\n /** Text label displayed in the trigger button */\n label: string;\n /** Whether the collapsible content is visible */\n open?: boolean;\n /** Callback fired when the open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Additional CSS classes for the content panel */\n className?: string;\n }\n>;\n\n/**\n * Collapsible component for showing/hiding content.\n *\n * Features:\n * - Animated chevron indicator (rotates 180° when open)\n * - Accessible with aria-expanded and aria-controls\n * - Content panel with left border accent\n *\n * @example\n * ```tsx\n * const [open, setOpen] = useState(false);\n *\n * <Collapsible label=\"Show details\" open={open} onOpenChange={setOpen}>\n * <Text>Hidden content revealed when expanded.</Text>\n * </Collapsible>\n * ```\n *\n * @example Controlled accordion pattern\n * ```tsx\n * const [activeIndex, setActiveIndex] = useState<number | null>(null);\n *\n * {items.map((item, i) => (\n * <Collapsible\n * key={i}\n * label={item.title}\n * open={activeIndex === i}\n * onOpenChange={(open) => setActiveIndex(open ? i : null)}\n * >\n * {item.content}\n * </Collapsible>\n * ))}\n * ```\n */\nexport const Collapsible = forwardRef<HTMLDivElement, CollapsibleProps>(\n ({ label, open, onOpenChange, children, className }, ref) => {\n const contentId = useId();\n\n const handleOpen = useCallback(() => {\n onOpenChange?.(!open);\n }, [open, onOpenChange]);\n\n return (\n <div ref={ref}>\n <button\n type=\"button\"\n aria-expanded={open}\n aria-controls={contentId}\n className={collapsibleVariants()}\n onClick={handleOpen}\n >\n {label}{\" \"}\n <CaretDownIcon\n className={cn(\"h-4 w-4 transition-transform\", open && \"rotate-180\")}\n />\n </button>\n {open && (\n <div\n id={contentId}\n className={cn(\n \"my-2 space-y-4 border-l-2 border-sf-fill pl-4\",\n className\n )}\n >\n {children}\n </div>\n )}\n </div>\n );\n }\n);\n\nCollapsible.displayName = \"Collapsible\";\n"],"mappings":";;;;;;AAWA,SAAgB,oBAAoB,SAAqC,EAAE,EAAE;AAC3E,QAAO,GAEL,0EACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2DH,IAAa,cAAc,YACxB,EAAE,OAAO,MAAM,cAAc,UAAU,aAAa,QAAQ;CAC3D,MAAM,YAAY,OAAO;CAEzB,MAAM,aAAa,kBAAkB;AACnC,iBAAe,CAAC,KAAK;IACpB,CAAC,MAAM,aAAa,CAAC;AAExB,QACE,qBAAC,OAAD;EAAU;YAAV,CACE,qBAAC,UAAD;GACE,MAAK;GACL,iBAAe;GACf,iBAAe;GACf,WAAW,qBAAqB;GAChC,SAAS;aALX;IAOG;IAAO;IACR,oBAAC,eAAD,EACE,WAAW,GAAG,gCAAgC,QAAQ,aAAa,EACnE,CAAA;IACK;MACR,QACC,oBAAC,OAAD;GACE,IAAI;GACJ,WAAW,GACT,iDACA,UACD;GAEA;GACG,CAAA,CAEJ;;EAGX;AAED,YAAY,cAAc"}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { t as cn } from "./cn-YROP2_ox.js";
|
|
3
|
+
import { t as Field } from "./field-Y_UK1_Cg.js";
|
|
4
|
+
import { r as inputVariants } from "./input-BxQAnXki.js";
|
|
5
|
+
import { Fragment } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { CaretDownIcon, CheckIcon, XIcon } from "@phosphor-icons/react";
|
|
8
|
+
import { Combobox } from "@base-ui/react/combobox";
|
|
9
|
+
//#region src/components/combobox/combobox.tsx
|
|
10
|
+
function Root({ label, required, labelTooltip, description, error, children, ...props }) {
|
|
11
|
+
const comboboxControl = /* @__PURE__ */ jsx(Combobox.Root, {
|
|
12
|
+
...props,
|
|
13
|
+
children
|
|
14
|
+
});
|
|
15
|
+
if (label) return /* @__PURE__ */ jsx(Field, {
|
|
16
|
+
label,
|
|
17
|
+
required,
|
|
18
|
+
labelTooltip,
|
|
19
|
+
description,
|
|
20
|
+
error: error ? typeof error === "string" ? {
|
|
21
|
+
message: error,
|
|
22
|
+
match: true
|
|
23
|
+
} : error : void 0,
|
|
24
|
+
children: comboboxControl
|
|
25
|
+
});
|
|
26
|
+
return comboboxControl;
|
|
27
|
+
}
|
|
28
|
+
function Content({ children, className, align = "start", sideOffset = 4, alignOffset, side }) {
|
|
29
|
+
return /* @__PURE__ */ jsx(Combobox.Portal, { children: /* @__PURE__ */ jsx(Combobox.Positioner, {
|
|
30
|
+
className: "outline-none",
|
|
31
|
+
align,
|
|
32
|
+
sideOffset,
|
|
33
|
+
alignOffset,
|
|
34
|
+
side,
|
|
35
|
+
children: /* @__PURE__ */ jsx(Combobox.Popup, {
|
|
36
|
+
className: cn("flex flex-col", "max-h-[min(var(--available-height),24rem)] max-w-(--available-width) min-w-(--anchor-width) py-1.5", "bg-sf-control text-sf-default", "rounded-lg shadow-lg ring ring-sf-line", className),
|
|
37
|
+
children
|
|
38
|
+
})
|
|
39
|
+
}) });
|
|
40
|
+
}
|
|
41
|
+
function TriggerValue({ className, ...props }) {
|
|
42
|
+
return /* @__PURE__ */ jsxs(Combobox.Trigger, {
|
|
43
|
+
className: cn(inputVariants(), "relative flex items-center pr-8", className),
|
|
44
|
+
children: [/* @__PURE__ */ jsx(Combobox.Value, { children: props.children }), /* @__PURE__ */ jsx(Combobox.Icon, {
|
|
45
|
+
className: "absolute top-1/2 right-2 -translate-y-1/2",
|
|
46
|
+
children: /* @__PURE__ */ jsx(CaretDownIcon, { className: "fill-sf-ring" })
|
|
47
|
+
})]
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function TriggerInput(props) {
|
|
51
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
52
|
+
className: cn("relative inline-block w-full max-w-xs", props.className),
|
|
53
|
+
children: [
|
|
54
|
+
/* @__PURE__ */ jsx(Combobox.Input, {
|
|
55
|
+
...props,
|
|
56
|
+
className: cn(inputVariants(), "w-full pr-12")
|
|
57
|
+
}),
|
|
58
|
+
/* @__PURE__ */ jsx(Combobox.Clear, {
|
|
59
|
+
className: "absolute top-1/2 right-8 flex -translate-y-1/2 cursor-pointer bg-transparent p-0",
|
|
60
|
+
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
61
|
+
}),
|
|
62
|
+
/* @__PURE__ */ jsx(Combobox.Trigger, {
|
|
63
|
+
className: "p-0",
|
|
64
|
+
children: /* @__PURE__ */ jsx(Combobox.Icon, {
|
|
65
|
+
className: "absolute top-1/2 right-2 flex -translate-y-1/2 cursor-pointer",
|
|
66
|
+
children: /* @__PURE__ */ jsx(CaretDownIcon, { className: "fill-sf-ring" })
|
|
67
|
+
})
|
|
68
|
+
})
|
|
69
|
+
]
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function Item({ children, ...props }) {
|
|
73
|
+
return /* @__PURE__ */ jsxs(Combobox.Item, {
|
|
74
|
+
...props,
|
|
75
|
+
className: "group mx-1.5 grid cursor-pointer grid-cols-[1fr_16px] gap-2 rounded px-2 py-1.5 text-base data-highlighted:bg-sf-overlay",
|
|
76
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
77
|
+
className: "col-start-1",
|
|
78
|
+
children
|
|
79
|
+
}), /* @__PURE__ */ jsx(Combobox.ItemIndicator, {
|
|
80
|
+
className: "col-start-2 flex items-center",
|
|
81
|
+
children: /* @__PURE__ */ jsx(CheckIcon, {})
|
|
82
|
+
})]
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
function Empty(props) {
|
|
86
|
+
return /* @__PURE__ */ jsx(Combobox.Empty, {
|
|
87
|
+
...props,
|
|
88
|
+
className: cn("mx-1.5 shrink-0 px-4 py-2 text-[0.925rem] leading-4 text-sf-subtle empty:m-0 empty:p-0"),
|
|
89
|
+
children: props.children ?? "No labels found."
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
function Input(props) {
|
|
93
|
+
return /* @__PURE__ */ jsx(Combobox.Input, {
|
|
94
|
+
...props,
|
|
95
|
+
className: cn(inputVariants(), "mx-1.5 w-[calc(100%-0.75rem)] shrink-0 first:mb-2", props.className)
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
function List({ className, ...props }) {
|
|
99
|
+
return /* @__PURE__ */ jsx(Combobox.List, {
|
|
100
|
+
...props,
|
|
101
|
+
className: cn("min-h-0 flex-1 overflow-y-auto overscroll-contain scroll-pt-2 scroll-pb-2", className)
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
function GroupLabel(props) {
|
|
105
|
+
return /* @__PURE__ */ jsx(Combobox.GroupLabel, {
|
|
106
|
+
...props,
|
|
107
|
+
className: "mx-1.5 px-4 py-1.5 text-sm font-medium"
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
function Group(props) {
|
|
111
|
+
return /* @__PURE__ */ jsx(Combobox.Group, {
|
|
112
|
+
...props,
|
|
113
|
+
className: "mt-2 first:mt-0"
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function Chip(props) {
|
|
117
|
+
return /* @__PURE__ */ jsxs(Combobox.Chip, {
|
|
118
|
+
...props,
|
|
119
|
+
className: "flex items-center gap-1 rounded-md bg-sf-overlay px-2 py-1",
|
|
120
|
+
children: [props.children, /* @__PURE__ */ jsx(Combobox.ChipRemove, {
|
|
121
|
+
className: "cursor-pointer rounded-md p-1 hover:bg-sf-fill-hover",
|
|
122
|
+
children: /* @__PURE__ */ jsx(XIcon, {
|
|
123
|
+
size: 12,
|
|
124
|
+
weight: "bold"
|
|
125
|
+
})
|
|
126
|
+
})]
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function TriggerMultipleWithInput({ placeholder, renderItem, className, inputSide = "right", value: controlledValue }) {
|
|
130
|
+
const chipsToRender = controlledValue;
|
|
131
|
+
return /* @__PURE__ */ jsxs(Combobox.Chips, {
|
|
132
|
+
className: cn(inputVariants(), cn("flex flex-col", "gap-1 p-1", "min-h-9", "h-auto"), className),
|
|
133
|
+
children: [inputSide === "top" && /* @__PURE__ */ jsx(Combobox.Input, {
|
|
134
|
+
placeholder,
|
|
135
|
+
className: "w-full px-2 py-1 outline-none"
|
|
136
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
137
|
+
className: "flex flex-wrap gap-1",
|
|
138
|
+
children: [
|
|
139
|
+
chipsToRender !== void 0 && chipsToRender.length > 0 && chipsToRender.map((item) => renderItem(item)),
|
|
140
|
+
/* @__PURE__ */ jsx(Combobox.Value, { children: (internalValue) => {
|
|
141
|
+
if (chipsToRender !== void 0) return null;
|
|
142
|
+
return /* @__PURE__ */ jsx(Fragment, { children: internalValue.map((item) => renderItem(item)) });
|
|
143
|
+
} }),
|
|
144
|
+
inputSide === "right" && /* @__PURE__ */ jsx(Combobox.Input, {
|
|
145
|
+
placeholder,
|
|
146
|
+
className: "min-w-[100px] flex-1 px-2 py-1 outline-none"
|
|
147
|
+
})
|
|
148
|
+
]
|
|
149
|
+
})]
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
Root.displayName = "Combobox.Root";
|
|
153
|
+
Content.displayName = "Combobox.Content";
|
|
154
|
+
TriggerValue.displayName = "Combobox.TriggerValue";
|
|
155
|
+
TriggerInput.displayName = "Combobox.TriggerInput";
|
|
156
|
+
Item.displayName = "Combobox.Item";
|
|
157
|
+
Chip.displayName = "Combobox.Chip";
|
|
158
|
+
TriggerMultipleWithInput.displayName = "Combobox.TriggerMultipleWithInput";
|
|
159
|
+
/**
|
|
160
|
+
* Combobox — autocomplete input with filterable dropdown list.
|
|
161
|
+
*
|
|
162
|
+
* Compound component: `Combobox` (Root), `.TriggerInput`, `.TriggerValue`,
|
|
163
|
+
* `.TriggerMultipleWithInput`, `.Content`, `.Item`, `.Chip`, `.Input`,
|
|
164
|
+
* `.Empty`, `.GroupLabel`, `.Group`, `.List`, `.Collection`.
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* ```tsx
|
|
168
|
+
* <Combobox items={fruits} label="Fruit">
|
|
169
|
+
* <Combobox.TriggerInput placeholder="Pick a fruit…" />
|
|
170
|
+
* <Combobox.Content>
|
|
171
|
+
* <Combobox.List>
|
|
172
|
+
* {(item) => <Combobox.Item value={item}>{item}</Combobox.Item>}
|
|
173
|
+
* </Combobox.List>
|
|
174
|
+
* </Combobox.Content>
|
|
175
|
+
* </Combobox>
|
|
176
|
+
* ```
|
|
177
|
+
*
|
|
178
|
+
* @see https://base-ui.com/react/components/combobox
|
|
179
|
+
*/
|
|
180
|
+
var Combobox$1 = Object.assign(Root, {
|
|
181
|
+
Content,
|
|
182
|
+
TriggerValue,
|
|
183
|
+
TriggerInput,
|
|
184
|
+
TriggerMultipleWithInput,
|
|
185
|
+
Chip,
|
|
186
|
+
Item,
|
|
187
|
+
Input,
|
|
188
|
+
Empty,
|
|
189
|
+
GroupLabel,
|
|
190
|
+
Group,
|
|
191
|
+
List,
|
|
192
|
+
Collection: Combobox.Collection
|
|
193
|
+
});
|
|
194
|
+
//#endregion
|
|
195
|
+
export { Combobox$1 as t };
|
|
196
|
+
|
|
197
|
+
//# sourceMappingURL=combobox-B0bLdsX8.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"combobox-B0bLdsX8.js","names":[],"sources":["../src/components/combobox/combobox.tsx"],"sourcesContent":["import { Combobox as ComboboxBase } from \"@base-ui/react/combobox\";\nimport { CaretDownIcon, CheckIcon, XIcon } from \"@phosphor-icons/react\";\nimport { Fragment, type PropsWithChildren, type ReactNode } from \"react\";\n\nimport { cn } from \"../../utils/cn\";\nimport { Field, type FieldErrorMatch } from \"../field/field\";\nimport { inputVariants } from \"../input/input\";\n\n/** Combobox input position variant definitions. */\nexport const SF_COMBOBOX_VARIANTS = {\n inputSide: {\n right: {\n classes: \"\",\n description: \"Input positioned inline to the right of chips\",\n },\n top: {\n classes: \"\",\n description: \"Input positioned above chips\",\n },\n },\n} as const;\n\nexport const SF_COMBOBOX_DEFAULT_VARIANTS = {\n inputSide: \"right\",\n} as const;\n\n// Derived types from SF_COMBOBOX_VARIANTS\nexport type SFComboboxInputSide = keyof typeof SF_COMBOBOX_VARIANTS.inputSide;\n\nexport interface SFComboboxVariantsProps {\n /**\n * Position of the text input relative to chips in multi-select mode.\n * - `\"right\"` — Input inline to the right of chips\n * - `\"top\"` — Input above chips\n * @default \"right\"\n */\n inputSide?: SFComboboxInputSide;\n}\n\nexport function comboboxVariants({\n inputSide = SF_COMBOBOX_DEFAULT_VARIANTS.inputSide,\n}: SFComboboxVariantsProps = {}) {\n return cn(SF_COMBOBOX_VARIANTS.inputSide[inputSide].classes);\n}\n\n// Legacy type alias for backwards compatibility\nexport type ComboboxInputSide = SFComboboxInputSide;\n\nexport type ComboboxRootProps<\n Value = unknown,\n Multiple extends boolean | undefined = false,\n> = ComboboxBase.Root.Props<Value, Multiple>;\n\n/**\n * Combobox component props (simplified for documentation; the actual Root is generic).\n *\n * Combobox provides an autocomplete/typeahead input with a filterable dropdown.\n * Supports single-select, multi-select with chips, grouped items, and Field wrapper integration.\n *\n * @example\n * ```tsx\n * // Single-select with search input\n * <Combobox value={value} onValueChange={setValue} items={options}>\n * <Combobox.TriggerInput placeholder=\"Search…\" />\n * <Combobox.Content>\n * <Combobox.List>\n * {(item) => <Combobox.Item value={item}>{item.label}</Combobox.Item>}\n * </Combobox.List>\n * <Combobox.Empty>No results</Combobox.Empty>\n * </Combobox.Content>\n * </Combobox>\n *\n * // Multi-select with chips\n * <Combobox multiple items={options} label=\"Tags\">\n * <Combobox.TriggerMultipleWithInput\n * placeholder=\"Add tag…\"\n * renderItem={(item) => <Combobox.Chip value={item}>{item.label}</Combobox.Chip>}\n * />\n * <Combobox.Content>\n * <Combobox.List>\n * {(item) => <Combobox.Item value={item}>{item.label}</Combobox.Item>}\n * </Combobox.List>\n * </Combobox.Content>\n * </Combobox>\n * ```\n */\nexport interface ComboboxProps extends SFComboboxVariantsProps {\n /** Array of items to display in the dropdown */\n items: unknown[];\n /** Currently selected value(s) */\n value?: unknown;\n /** Callback when selection changes */\n onValueChange?: (value: unknown) => void;\n /** Enable multi-select mode */\n multiple?: boolean;\n /** Combobox content (trigger, content, items) */\n children: ReactNode;\n /** Additional CSS classes */\n className?: string;\n /** Label content for the combobox (enables Field wrapper) - can be a string or any React node */\n label?: ReactNode;\n /** Whether the combobox is required */\n required?: boolean;\n /** Tooltip content to display next to the label via an info icon */\n labelTooltip?: ReactNode;\n /** Helper text displayed below the combobox */\n description?: ReactNode;\n /** Error message or validation error object */\n error?: string | { message: ReactNode; match: FieldErrorMatch };\n}\n\nfunction Root<Value, Multiple extends boolean | undefined = false>({\n label,\n required,\n labelTooltip,\n description,\n error,\n children,\n ...props\n}: ComboboxBase.Root.Props<Value, Multiple> & {\n label?: ReactNode;\n required?: boolean;\n labelTooltip?: ReactNode;\n description?: ReactNode;\n error?: string | { message: ReactNode; match: FieldErrorMatch };\n}) {\n const comboboxControl = (\n <ComboboxBase.Root {...props}>{children}</ComboboxBase.Root>\n );\n\n // Render with Field wrapper if label, description, or error are provided\n if (label) {\n return (\n <Field\n label={label}\n required={required}\n labelTooltip={labelTooltip}\n description={description}\n error={\n error\n ? typeof error === \"string\"\n ? { message: error, match: true }\n : error\n : undefined\n }\n >\n {comboboxControl}\n </Field>\n );\n }\n\n // Render bare combobox without Field wrapper\n return comboboxControl;\n}\n\nfunction Content({\n children,\n className,\n align = \"start\",\n sideOffset = 4,\n alignOffset,\n side,\n}: PropsWithChildren<{\n className?: string;\n align?: ComboboxBase.Positioner.Props[\"align\"];\n alignOffset?: ComboboxBase.Positioner.Props[\"alignOffset\"];\n side?: ComboboxBase.Positioner.Props[\"side\"];\n sideOffset?: ComboboxBase.Positioner.Props[\"sideOffset\"];\n}>) {\n return (\n <ComboboxBase.Portal>\n <ComboboxBase.Positioner\n className=\"outline-none\"\n align={align}\n sideOffset={sideOffset}\n alignOffset={alignOffset}\n side={side}\n >\n <ComboboxBase.Popup\n className={cn(\n \"flex flex-col\", // flexbox layout for sticky input + scrollable list\n \"max-h-[min(var(--available-height),24rem)] max-w-(--available-width) min-w-(--anchor-width) py-1.5\",\n \"bg-sf-control text-sf-default\", // background\n \"rounded-lg shadow-lg ring ring-sf-line\", // border part\n className\n )}\n >\n {children}\n </ComboboxBase.Popup>\n </ComboboxBase.Positioner>\n </ComboboxBase.Portal>\n );\n}\n\nfunction TriggerValue({\n className,\n ...props\n}: ComboboxBase.Value.Props & { className?: string }) {\n return (\n <ComboboxBase.Trigger\n className={cn(\n inputVariants(),\n \"relative flex items-center pr-8\",\n className\n )}\n >\n <ComboboxBase.Value>{props.children}</ComboboxBase.Value>\n <ComboboxBase.Icon className=\"absolute top-1/2 right-2 -translate-y-1/2\">\n <CaretDownIcon className=\"fill-sf-ring\" />\n </ComboboxBase.Icon>\n </ComboboxBase.Trigger>\n );\n}\n\nfunction TriggerInput(props: ComboboxBase.Input.Props) {\n return (\n <div\n className={cn(\"relative inline-block w-full max-w-xs\", props.className)}\n >\n <ComboboxBase.Input\n {...props}\n className={cn(inputVariants(), \"w-full pr-12\")}\n />\n\n <ComboboxBase.Clear className=\"absolute top-1/2 right-8 flex -translate-y-1/2 cursor-pointer bg-transparent p-0\">\n <XIcon />\n </ComboboxBase.Clear>\n\n <ComboboxBase.Trigger className=\"p-0\">\n <ComboboxBase.Icon className=\"absolute top-1/2 right-2 flex -translate-y-1/2 cursor-pointer\">\n <CaretDownIcon className=\"fill-sf-ring\" />\n </ComboboxBase.Icon>\n </ComboboxBase.Trigger>\n </div>\n );\n}\n\nfunction Item({ children, ...props }: ComboboxBase.Item.Props) {\n return (\n <ComboboxBase.Item\n {...props}\n className=\"group mx-1.5 grid cursor-pointer grid-cols-[1fr_16px] gap-2 rounded px-2 py-1.5 text-base data-highlighted:bg-sf-overlay\"\n >\n <div className=\"col-start-1\">{children}</div>\n <ComboboxBase.ItemIndicator className=\"col-start-2 flex items-center\">\n <CheckIcon />\n </ComboboxBase.ItemIndicator>\n </ComboboxBase.Item>\n );\n}\n\nfunction Empty(props: ComboboxBase.Empty.Props) {\n return (\n <ComboboxBase.Empty\n {...props}\n className={cn(\n \"mx-1.5 shrink-0 px-4 py-2 text-[0.925rem] leading-4 text-sf-subtle empty:m-0 empty:p-0\"\n )}\n children={props.children ?? \"No labels found.\"}\n />\n );\n}\n\nfunction Input(props: ComboboxBase.Input.Props) {\n return (\n <ComboboxBase.Input\n {...props}\n className={cn(\n inputVariants(),\n \"mx-1.5 w-[calc(100%-0.75rem)] shrink-0 first:mb-2\",\n props.className\n )}\n />\n );\n}\n\nfunction List({\n className,\n ...props\n}: ComboboxBase.List.Props & { className?: string }) {\n return (\n <ComboboxBase.List\n {...props}\n className={cn(\n \"min-h-0 flex-1 overflow-y-auto overscroll-contain scroll-pt-2 scroll-pb-2\",\n className\n )}\n />\n );\n}\n\nfunction GroupLabel(props: ComboboxBase.GroupLabel.Props) {\n return (\n <ComboboxBase.GroupLabel\n {...props}\n className=\"mx-1.5 px-4 py-1.5 text-sm font-medium\"\n />\n );\n}\n\nfunction Group(props: ComboboxBase.Group.Props) {\n return <ComboboxBase.Group {...props} className=\"mt-2 first:mt-0\" />;\n}\n\nfunction Chip(props: ComboboxBase.Chip.Props) {\n return (\n <ComboboxBase.Chip\n {...props}\n className=\"flex items-center gap-1 rounded-md bg-sf-overlay px-2 py-1\"\n >\n {props.children}\n <ComboboxBase.ChipRemove className=\"cursor-pointer rounded-md p-1 hover:bg-sf-fill-hover\">\n <XIcon size={12} weight=\"bold\" />\n </ComboboxBase.ChipRemove>\n </ComboboxBase.Chip>\n );\n}\n\nfunction TriggerMultipleWithInput<ValueType>({\n placeholder,\n renderItem,\n className,\n inputSide = \"right\",\n value: controlledValue,\n}: {\n placeholder?: string;\n renderItem: (value: ValueType) => React.ReactNode;\n className?: string;\n inputSide?: \"right\" | \"top\";\n /** Optional controlled value for rendering chips (use when pre-selecting values) */\n value?: ValueType[];\n}) {\n // Determine which value to use for rendering chips\n const chipsToRender = controlledValue;\n\n return (\n <ComboboxBase.Chips\n className={cn(\n inputVariants(),\n cn(\"flex flex-col\", \"gap-1 p-1\", \"min-h-9\", \"h-auto\"),\n className\n )}\n >\n {inputSide === \"top\" && (\n <ComboboxBase.Input\n placeholder={placeholder}\n className=\"w-full px-2 py-1 outline-none\"\n />\n )}\n {/* Chips container */}\n <div className=\"flex flex-wrap gap-1\">\n {/* Render chips from controlled value if provided */}\n {chipsToRender !== undefined &&\n chipsToRender.length > 0 &&\n chipsToRender.map((item) => renderItem(item))}\n {/* Also render from BaseUI's internal value for user selections */}\n <ComboboxBase.Value>\n {(internalValue: ValueType[]) => {\n // Skip rendering if using controlled value (to avoid duplicates)\n if (chipsToRender !== undefined) return null;\n return (\n <Fragment>\n {internalValue.map((item) => renderItem(item))}\n </Fragment>\n );\n }}\n </ComboboxBase.Value>\n {inputSide === \"right\" && (\n <ComboboxBase.Input\n placeholder={placeholder}\n className=\"min-w-[100px] flex-1 px-2 py-1 outline-none\"\n />\n )}\n </div>\n </ComboboxBase.Chips>\n );\n}\n\nRoot.displayName = \"Combobox.Root\";\nContent.displayName = \"Combobox.Content\";\nTriggerValue.displayName = \"Combobox.TriggerValue\";\nTriggerInput.displayName = \"Combobox.TriggerInput\";\nItem.displayName = \"Combobox.Item\";\nChip.displayName = \"Combobox.Chip\";\nTriggerMultipleWithInput.displayName = \"Combobox.TriggerMultipleWithInput\";\n\n/**\n * Combobox — autocomplete input with filterable dropdown list.\n *\n * Compound component: `Combobox` (Root), `.TriggerInput`, `.TriggerValue`,\n * `.TriggerMultipleWithInput`, `.Content`, `.Item`, `.Chip`, `.Input`,\n * `.Empty`, `.GroupLabel`, `.Group`, `.List`, `.Collection`.\n *\n * @example\n * ```tsx\n * <Combobox items={fruits} label=\"Fruit\">\n * <Combobox.TriggerInput placeholder=\"Pick a fruit…\" />\n * <Combobox.Content>\n * <Combobox.List>\n * {(item) => <Combobox.Item value={item}>{item}</Combobox.Item>}\n * </Combobox.List>\n * </Combobox.Content>\n * </Combobox>\n * ```\n *\n * @see https://base-ui.com/react/components/combobox\n */\nexport const Combobox = Object.assign(Root, {\n // Helper components\n Content,\n TriggerValue,\n TriggerInput,\n TriggerMultipleWithInput,\n\n // Slightly modified BaseUI\n Chip,\n Item,\n\n // Styled BaseUI\n Input,\n Empty,\n GroupLabel,\n Group,\n\n // Styled BaseUI\n List,\n\n // BaseUI\n Collection: ComboboxBase.Collection,\n});\n"],"mappings":";;;;;;;;;AA+GA,SAAS,KAA0D,EACjE,OACA,UACA,cACA,aACA,OACA,UACA,GAAG,SAOF;CACD,MAAM,kBACJ,oBAAC,SAAa,MAAd;EAAmB,GAAI;EAAQ;EAA6B,CAAA;AAI9D,KAAI,MACF,QACE,oBAAC,OAAD;EACS;EACG;EACI;EACD;EACb,OACE,QACI,OAAO,UAAU,WACf;GAAE,SAAS;GAAO,OAAO;GAAM,GAC/B,QACF,KAAA;YAGL;EACK,CAAA;AAKZ,QAAO;;AAGT,SAAS,QAAQ,EACf,UACA,WACA,QAAQ,SACR,aAAa,GACb,aACA,QAOE;AACF,QACE,oBAAC,SAAa,QAAd,EAAA,UACE,oBAAC,SAAa,YAAd;EACE,WAAU;EACH;EACK;EACC;EACP;YAEN,oBAAC,SAAa,OAAd;GACE,WAAW,GACT,iBACA,sGACA,iCACA,0CACA,UACD;GAEA;GACkB,CAAA;EACG,CAAA,EACN,CAAA;;AAI1B,SAAS,aAAa,EACpB,WACA,GAAG,SACiD;AACpD,QACE,qBAAC,SAAa,SAAd;EACE,WAAW,GACT,eAAe,EACf,mCACA,UACD;YALH,CAOE,oBAAC,SAAa,OAAd,EAAA,UAAqB,MAAM,UAA8B,CAAA,EACzD,oBAAC,SAAa,MAAd;GAAmB,WAAU;aAC3B,oBAAC,eAAD,EAAe,WAAU,gBAAiB,CAAA;GACxB,CAAA,CACC;;;AAI3B,SAAS,aAAa,OAAiC;AACrD,QACE,qBAAC,OAAD;EACE,WAAW,GAAG,yCAAyC,MAAM,UAAU;YADzE;GAGE,oBAAC,SAAa,OAAd;IACE,GAAI;IACJ,WAAW,GAAG,eAAe,EAAE,eAAe;IAC9C,CAAA;GAEF,oBAAC,SAAa,OAAd;IAAoB,WAAU;cAC5B,oBAAC,OAAD,EAAS,CAAA;IACU,CAAA;GAErB,oBAAC,SAAa,SAAd;IAAsB,WAAU;cAC9B,oBAAC,SAAa,MAAd;KAAmB,WAAU;eAC3B,oBAAC,eAAD,EAAe,WAAU,gBAAiB,CAAA;KACxB,CAAA;IACC,CAAA;GACnB;;;AAIV,SAAS,KAAK,EAAE,UAAU,GAAG,SAAkC;AAC7D,QACE,qBAAC,SAAa,MAAd;EACE,GAAI;EACJ,WAAU;YAFZ,CAIE,oBAAC,OAAD;GAAK,WAAU;GAAe;GAAe,CAAA,EAC7C,oBAAC,SAAa,eAAd;GAA4B,WAAU;aACpC,oBAAC,WAAD,EAAa,CAAA;GACc,CAAA,CACX;;;AAIxB,SAAS,MAAM,OAAiC;AAC9C,QACE,oBAAC,SAAa,OAAd;EACE,GAAI;EACJ,WAAW,GACT,yFACD;EACD,UAAU,MAAM,YAAY;EAC5B,CAAA;;AAIN,SAAS,MAAM,OAAiC;AAC9C,QACE,oBAAC,SAAa,OAAd;EACE,GAAI;EACJ,WAAW,GACT,eAAe,EACf,qDACA,MAAM,UACP;EACD,CAAA;;AAIN,SAAS,KAAK,EACZ,WACA,GAAG,SACgD;AACnD,QACE,oBAAC,SAAa,MAAd;EACE,GAAI;EACJ,WAAW,GACT,6EACA,UACD;EACD,CAAA;;AAIN,SAAS,WAAW,OAAsC;AACxD,QACE,oBAAC,SAAa,YAAd;EACE,GAAI;EACJ,WAAU;EACV,CAAA;;AAIN,SAAS,MAAM,OAAiC;AAC9C,QAAO,oBAAC,SAAa,OAAd;EAAoB,GAAI;EAAO,WAAU;EAAoB,CAAA;;AAGtE,SAAS,KAAK,OAAgC;AAC5C,QACE,qBAAC,SAAa,MAAd;EACE,GAAI;EACJ,WAAU;YAFZ,CAIG,MAAM,UACP,oBAAC,SAAa,YAAd;GAAyB,WAAU;aACjC,oBAAC,OAAD;IAAO,MAAM;IAAI,QAAO;IAAS,CAAA;GACT,CAAA,CACR;;;AAIxB,SAAS,yBAAoC,EAC3C,aACA,YACA,WACA,YAAY,SACZ,OAAO,mBAQN;CAED,MAAM,gBAAgB;AAEtB,QACE,qBAAC,SAAa,OAAd;EACE,WAAW,GACT,eAAe,EACf,GAAG,iBAAiB,aAAa,WAAW,SAAS,EACrD,UACD;YALH,CAOG,cAAc,SACb,oBAAC,SAAa,OAAd;GACe;GACb,WAAU;GACV,CAAA,EAGJ,qBAAC,OAAD;GAAK,WAAU;aAAf;IAEG,kBAAkB,KAAA,KACjB,cAAc,SAAS,KACvB,cAAc,KAAK,SAAS,WAAW,KAAK,CAAC;IAE/C,oBAAC,SAAa,OAAd,EAAA,WACI,kBAA+B;AAE/B,SAAI,kBAAkB,KAAA,EAAW,QAAO;AACxC,YACE,oBAAC,UAAD,EAAA,UACG,cAAc,KAAK,SAAS,WAAW,KAAK,CAAC,EACrC,CAAA;OAGI,CAAA;IACpB,cAAc,WACb,oBAAC,SAAa,OAAd;KACe;KACb,WAAU;KACV,CAAA;IAEA;KACa;;;AAIzB,KAAK,cAAc;AACnB,QAAQ,cAAc;AACtB,aAAa,cAAc;AAC3B,aAAa,cAAc;AAC3B,KAAK,cAAc;AACnB,KAAK,cAAc;AACnB,yBAAyB,cAAc;;;;;;;;;;;;;;;;;;;;;;AAuBvC,IAAa,aAAW,OAAO,OAAO,MAAM;CAE1C;CACA;CACA;CACA;CAGA;CACA;CAGA;CACA;CACA;CACA;CAGA;CAGA,YAAY,SAAa;CAC1B,CAAC"}
|