@cloudflare/kumo 1.0.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 +510 -0
- package/LICENSE +21 -0
- package/README.md +521 -0
- package/ai/component-registry.json +3754 -0
- package/ai/component-registry.md +4022 -0
- package/ai/schemas.ts +594 -0
- package/dist/badge-Dc99vsfo.js +51 -0
- package/dist/badge-Dc99vsfo.js.map +1 -0
- package/dist/banner-4fkH6Sbt.js +51 -0
- package/dist/banner-4fkH6Sbt.js.map +1 -0
- package/dist/breadcrumbs-B5SY2CWj.js +132 -0
- package/dist/breadcrumbs-B5SY2CWj.js.map +1 -0
- package/dist/button-E2-hZMZE.js +191 -0
- package/dist/button-E2-hZMZE.js.map +1 -0
- package/dist/catalog.js +229 -0
- package/dist/catalog.js.map +1 -0
- package/dist/checkbox-BexIU_lZ.js +224 -0
- package/dist/checkbox-BexIU_lZ.js.map +1 -0
- package/dist/clipboard-text-BFHWMjmr.js +108 -0
- package/dist/clipboard-text-BFHWMjmr.js.map +1 -0
- package/dist/cn-Bhsu1vx2.js +26 -0
- package/dist/cn-Bhsu1vx2.js.map +1 -0
- package/dist/code-T2wPDiM0.js +60 -0
- package/dist/code-T2wPDiM0.js.map +1 -0
- package/dist/collapsible-OBNkTO48.js +56 -0
- package/dist/collapsible-OBNkTO48.js.map +1 -0
- package/dist/combobox-Dld0kS0U.js +228 -0
- package/dist/combobox-Dld0kS0U.js.map +1 -0
- package/dist/command-line/cli.js +764 -0
- package/dist/command-line/commands/add.js +220 -0
- package/dist/command-line/commands/blocks.js +61 -0
- package/dist/command-line/commands/doc.js +167 -0
- package/dist/command-line/commands/init.js +95 -0
- package/dist/command-line/commands/ls.js +53 -0
- package/dist/command-palette-BgQ680BG.js +393 -0
- package/dist/command-palette-BgQ680BG.js.map +1 -0
- package/dist/components/badge.js +7 -0
- package/dist/components/badge.js.map +1 -0
- package/dist/components/banner.js +7 -0
- package/dist/components/banner.js.map +1 -0
- package/dist/components/breadcrumbs.js +9 -0
- package/dist/components/breadcrumbs.js.map +1 -0
- package/dist/components/button.js +9 -0
- package/dist/components/button.js.map +1 -0
- package/dist/components/checkbox.js +8 -0
- package/dist/components/checkbox.js.map +1 -0
- package/dist/components/clipboard-text.js +6 -0
- package/dist/components/clipboard-text.js.map +1 -0
- package/dist/components/code.js +7 -0
- package/dist/components/code.js.map +1 -0
- package/dist/components/collapsible.js +6 -0
- package/dist/components/collapsible.js.map +1 -0
- package/dist/components/combobox.js +6 -0
- package/dist/components/combobox.js.map +1 -0
- package/dist/components/command-palette.js +8 -0
- package/dist/components/command-palette.js.map +1 -0
- package/dist/components/date-range-picker.js +6 -0
- package/dist/components/date-range-picker.js.map +1 -0
- package/dist/components/dialog.js +11 -0
- package/dist/components/dialog.js.map +1 -0
- package/dist/components/dropdown.js +6 -0
- package/dist/components/dropdown.js.map +1 -0
- package/dist/components/empty.js +9 -0
- package/dist/components/empty.js.map +1 -0
- package/dist/components/field.js +9 -0
- package/dist/components/field.js.map +1 -0
- package/dist/components/grid.js +11 -0
- package/dist/components/grid.js.map +1 -0
- package/dist/components/input.js +11 -0
- package/dist/components/input.js.map +1 -0
- package/dist/components/label.js +10 -0
- package/dist/components/label.js.map +1 -0
- package/dist/components/layer-card.js +6 -0
- package/dist/components/layer-card.js.map +1 -0
- package/dist/components/link.js +9 -0
- package/dist/components/link.js.map +1 -0
- package/dist/components/loader.js +8 -0
- package/dist/components/loader.js.map +1 -0
- package/dist/components/menubar.js +7 -0
- package/dist/components/menubar.js.map +1 -0
- package/dist/components/meter.js +6 -0
- package/dist/components/meter.js.map +1 -0
- package/dist/components/pagination.js +6 -0
- package/dist/components/pagination.js.map +1 -0
- package/dist/components/popover.js +14 -0
- package/dist/components/popover.js.map +1 -0
- package/dist/components/radio.js +10 -0
- package/dist/components/radio.js.map +1 -0
- package/dist/components/select.js +6 -0
- package/dist/components/select.js.map +1 -0
- package/dist/components/sensitive-input.js +8 -0
- package/dist/components/sensitive-input.js.map +1 -0
- package/dist/components/surface.js +6 -0
- package/dist/components/surface.js.map +1 -0
- package/dist/components/switch.js +8 -0
- package/dist/components/switch.js.map +1 -0
- package/dist/components/table.js +8 -0
- package/dist/components/table.js.map +1 -0
- package/dist/components/tabs.js +6 -0
- package/dist/components/tabs.js.map +1 -0
- package/dist/components/text.js +6 -0
- package/dist/components/text.js.map +1 -0
- package/dist/components/toast.js +8 -0
- package/dist/components/toast.js.map +1 -0
- package/dist/components/tooltip.js +7 -0
- package/dist/components/tooltip.js.map +1 -0
- package/dist/date-range-picker-CbKEQ9pi.js +408 -0
- package/dist/date-range-picker-CbKEQ9pi.js.map +1 -0
- package/dist/dialog-B1TaN0oR.js +77 -0
- package/dist/dialog-B1TaN0oR.js.map +1 -0
- package/dist/dropdown-D0rhYKeG.js +263 -0
- package/dist/dropdown-D0rhYKeG.js.map +1 -0
- package/dist/empty-DzCqjea-.js +93 -0
- package/dist/empty-DzCqjea-.js.map +1 -0
- package/dist/field-V3J0Ql_V.js +71 -0
- package/dist/field-V3J0Ql_V.js.map +1 -0
- package/dist/grid-DKajRHh8.js +127 -0
- package/dist/grid-DKajRHh8.js.map +1 -0
- package/dist/index.js +125 -0
- package/dist/index.js.map +1 -0
- package/dist/input-Dqvc2AB_.js +109 -0
- package/dist/input-Dqvc2AB_.js.map +1 -0
- package/dist/input-area-B9qajxvZ.js +57 -0
- package/dist/input-area-B9qajxvZ.js.map +1 -0
- package/dist/input-group-Bl6tgD5-.js +111 -0
- package/dist/input-group-Bl6tgD5-.js.map +1 -0
- package/dist/label-87HQArUG.js +50 -0
- package/dist/label-87HQArUG.js.map +1 -0
- package/dist/layer-card-C8j5Hkkj.js +44 -0
- package/dist/layer-card-C8j5Hkkj.js.map +1 -0
- package/dist/link-6TIZ4JIw.js +73 -0
- package/dist/link-6TIZ4JIw.js.map +1 -0
- package/dist/link-provider-DPBGo-0n.js +22 -0
- package/dist/link-provider-DPBGo-0n.js.map +1 -0
- package/dist/loader-DHGMYlC6.js +105 -0
- package/dist/loader-DHGMYlC6.js.map +1 -0
- package/dist/menubar-DLwLRFB1.js +92 -0
- package/dist/menubar-DLwLRFB1.js.map +1 -0
- package/dist/meter-DKUuvXxS.js +51 -0
- package/dist/meter-DKUuvXxS.js.map +1 -0
- package/dist/pagination-C4HQqodz.js +99 -0
- package/dist/pagination-C4HQqodz.js.map +1 -0
- package/dist/popover-DhdIqrP7.js +178 -0
- package/dist/popover-DhdIqrP7.js.map +1 -0
- package/dist/primitives/accordion.js +6 -0
- package/dist/primitives/accordion.js.map +1 -0
- package/dist/primitives/alert-dialog.js +6 -0
- package/dist/primitives/alert-dialog.js.map +1 -0
- package/dist/primitives/autocomplete.js +6 -0
- package/dist/primitives/autocomplete.js.map +1 -0
- package/dist/primitives/avatar.js +6 -0
- package/dist/primitives/avatar.js.map +1 -0
- package/dist/primitives/button.js +6 -0
- package/dist/primitives/button.js.map +1 -0
- package/dist/primitives/checkbox-group.js +6 -0
- package/dist/primitives/checkbox-group.js.map +1 -0
- package/dist/primitives/checkbox.js +6 -0
- package/dist/primitives/checkbox.js.map +1 -0
- package/dist/primitives/collapsible.js +6 -0
- package/dist/primitives/collapsible.js.map +1 -0
- package/dist/primitives/combobox.js +6 -0
- package/dist/primitives/combobox.js.map +1 -0
- package/dist/primitives/context-menu.js +6 -0
- package/dist/primitives/context-menu.js.map +1 -0
- package/dist/primitives/dialog.js +6 -0
- package/dist/primitives/dialog.js.map +1 -0
- package/dist/primitives/direction-provider.js +7 -0
- package/dist/primitives/direction-provider.js.map +1 -0
- package/dist/primitives/field.js +6 -0
- package/dist/primitives/field.js.map +1 -0
- package/dist/primitives/fieldset.js +6 -0
- package/dist/primitives/fieldset.js.map +1 -0
- package/dist/primitives/form.js +6 -0
- package/dist/primitives/form.js.map +1 -0
- package/dist/primitives/input.js +6 -0
- package/dist/primitives/input.js.map +1 -0
- package/dist/primitives/menu.js +6 -0
- package/dist/primitives/menu.js.map +1 -0
- package/dist/primitives/menubar.js +6 -0
- package/dist/primitives/menubar.js.map +1 -0
- package/dist/primitives/meter.js +6 -0
- package/dist/primitives/meter.js.map +1 -0
- package/dist/primitives/navigation-menu.js +6 -0
- package/dist/primitives/navigation-menu.js.map +1 -0
- package/dist/primitives/number-field.js +6 -0
- package/dist/primitives/number-field.js.map +1 -0
- package/dist/primitives/popover.js +6 -0
- package/dist/primitives/popover.js.map +1 -0
- package/dist/primitives/preview-card.js +6 -0
- package/dist/primitives/preview-card.js.map +1 -0
- package/dist/primitives/progress.js +6 -0
- package/dist/primitives/progress.js.map +1 -0
- package/dist/primitives/radio-group.js +6 -0
- package/dist/primitives/radio-group.js.map +1 -0
- package/dist/primitives/radio.js +6 -0
- package/dist/primitives/radio.js.map +1 -0
- package/dist/primitives/scroll-area.js +6 -0
- package/dist/primitives/scroll-area.js.map +1 -0
- package/dist/primitives/select.js +6 -0
- package/dist/primitives/select.js.map +1 -0
- package/dist/primitives/separator.js +6 -0
- package/dist/primitives/separator.js.map +1 -0
- package/dist/primitives/slider.js +6 -0
- package/dist/primitives/slider.js.map +1 -0
- package/dist/primitives/switch.js +6 -0
- package/dist/primitives/switch.js.map +1 -0
- package/dist/primitives/tabs.js +6 -0
- package/dist/primitives/tabs.js.map +1 -0
- package/dist/primitives/toast.js +6 -0
- package/dist/primitives/toast.js.map +1 -0
- package/dist/primitives/toggle-group.js +6 -0
- package/dist/primitives/toggle-group.js.map +1 -0
- package/dist/primitives/toggle.js +6 -0
- package/dist/primitives/toggle.js.map +1 -0
- package/dist/primitives/toolbar.js +6 -0
- package/dist/primitives/toolbar.js.map +1 -0
- package/dist/primitives/tooltip.js +6 -0
- package/dist/primitives/tooltip.js.map +1 -0
- package/dist/primitives.js +43 -0
- package/dist/primitives.js.map +1 -0
- package/dist/radio-BVAG7hNp.js +125 -0
- package/dist/radio-BVAG7hNp.js.map +1 -0
- package/dist/registry.js +2 -0
- package/dist/registry.js.map +1 -0
- package/dist/schemas-BSdA0fz-.js +3210 -0
- package/dist/schemas-BSdA0fz-.js.map +1 -0
- package/dist/select-B5Vb3zou.js +122 -0
- package/dist/select-B5Vb3zou.js.map +1 -0
- package/dist/sensitive-input-D5HCV04N.js +258 -0
- package/dist/sensitive-input-D5HCV04N.js.map +1 -0
- package/dist/skeleton-line-CtpS1u1J.js +28 -0
- package/dist/skeleton-line-CtpS1u1J.js.map +1 -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/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/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 +39 -0
- package/dist/src/catalog/index.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/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 +17 -0
- package/dist/src/command-line/utils/transformer.d.ts.map +1 -0
- package/dist/src/components/badge/badge.d.ts +46 -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 +45 -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 +43 -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 +118 -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/checkbox/checkbox.d.ts +167 -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 +38 -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 +138 -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 +62 -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 +124 -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 +225 -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/date-range-picker/date-range-picker.d.ts +65 -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 +2 -0
- package/dist/src/components/date-range-picker/index.d.ts.map +1 -0
- package/dist/src/components/dialog/dialog.d.ts +121 -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 +58 -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 +34 -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 +38 -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/grid/grid.d.ts +107 -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 +46 -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 +157 -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 +54 -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 +16 -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 +35 -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 +30 -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 +22 -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 +18 -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 +28 -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 +110 -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 +141 -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 +128 -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 +70 -0
- package/dist/src/components/sensitive-input/sensitive-input.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 +48 -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 +155 -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 +54 -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 +64 -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 +153 -0
- package/dist/src/components/text/text.d.ts.map +1 -0
- package/dist/src/components/toast/index.d.ts +3 -0
- package/dist/src/components/toast/index.d.ts.map +1 -0
- package/dist/src/components/toast/toast.d.ts +66 -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 +43 -0
- package/dist/src/components/tooltip/tooltip.d.ts.map +1 -0
- package/dist/src/index.d.ts +39 -0
- package/dist/src/index.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/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/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 +52 -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/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/kumo-binding.css +190 -0
- package/dist/styles/kumo-standalone.css +2 -0
- package/dist/styles/kumo.css +55 -0
- package/dist/styles/theme-fedramp.css +20 -0
- package/dist/styles/theme-kumo.css +186 -0
- package/dist/surface-BIC6CXiz.js +21 -0
- package/dist/surface-BIC6CXiz.js.map +1 -0
- package/dist/switch-D4duMhJ0.js +257 -0
- package/dist/switch-D4duMhJ0.js.map +1 -0
- package/dist/table-KuvHGpL8.js +153 -0
- package/dist/table-KuvHGpL8.js.map +1 -0
- package/dist/tabs-lQup-IbT.js +85 -0
- package/dist/tabs-lQup-IbT.js.map +1 -0
- package/dist/text-BEhqwMfe.js +97 -0
- package/dist/text-BEhqwMfe.js.map +1 -0
- package/dist/toast-8YyyQuqZ.js +69 -0
- package/dist/toast-8YyyQuqZ.js.map +1 -0
- package/dist/tooltip-DJWsDTWJ.js +85 -0
- package/dist/tooltip-DJWsDTWJ.js.map +1 -0
- package/dist/utils.js +10 -0
- package/dist/utils.js.map +1 -0
- package/dist/vendor-base-ui-DWIDNgE1.js +20446 -0
- package/dist/vendor-base-ui-DWIDNgE1.js.map +1 -0
- package/dist/vendor-floating-ui-BgbEw62H.js +1286 -0
- package/dist/vendor-floating-ui-BgbEw62H.js.map +1 -0
- package/dist/vendor-styling-BQbxAbdS.js +2775 -0
- package/dist/vendor-styling-BQbxAbdS.js.map +1 -0
- package/dist/vendor-utils-DD8jNJwD.js +741 -0
- package/dist/vendor-utils-DD8jNJwD.js.map +1 -0
- package/package.json +444 -0
- package/scripts/component-registry/cache.ts +123 -0
- package/scripts/component-registry/discovery.ts +469 -0
- package/scripts/component-registry/example-cleanup.ts +168 -0
- package/scripts/component-registry/index.test.ts +680 -0
- package/scripts/component-registry/index.ts +874 -0
- package/scripts/component-registry/markdown-generator.ts +222 -0
- package/scripts/component-registry/metadata.ts +643 -0
- package/scripts/component-registry/props-filter.ts +310 -0
- package/scripts/component-registry/schema-generator.ts +326 -0
- package/scripts/component-registry/sub-components.ts +349 -0
- package/scripts/component-registry/types.ts +156 -0
- package/scripts/component-registry/utils.ts +280 -0
- package/scripts/component-registry/variant-parser.ts +261 -0
- package/scripts/css-build.ts +55 -0
- package/scripts/generate-primitives.ts +178 -0
- package/scripts/theme-generator/config.ts +392 -0
- package/scripts/theme-generator/generate-css.ts +250 -0
- package/scripts/theme-generator/index.ts +159 -0
- package/scripts/theme-generator/migrate.ts +560 -0
- package/scripts/theme-generator/types.ts +86 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
3
|
+
import { isValidElement as m } from "react";
|
|
4
|
+
import { c as r } from "./cn-Bhsu1vx2.js";
|
|
5
|
+
const g = "flex w-full items-center gap-2 rounded-lg border px-4 py-1.5 text-base", d = {
|
|
6
|
+
variant: {
|
|
7
|
+
default: {
|
|
8
|
+
classes: "bg-kumo-info/20 border-kumo-info text-kumo-link selection:bg-kumo-info-tint",
|
|
9
|
+
description: "Informational banner for general messages"
|
|
10
|
+
},
|
|
11
|
+
alert: {
|
|
12
|
+
classes: "bg-kumo-warning/20 border-kumo-warning text-kumo-warning selection:bg-kumo-warning-tint",
|
|
13
|
+
description: "Warning banner for cautionary messages"
|
|
14
|
+
},
|
|
15
|
+
error: {
|
|
16
|
+
classes: "bg-kumo-danger/20 border-kumo-danger text-kumo-danger selection:bg-kumo-danger-tint",
|
|
17
|
+
description: "Error banner for critical issues"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}, o = {
|
|
21
|
+
variant: "default"
|
|
22
|
+
};
|
|
23
|
+
function f({
|
|
24
|
+
variant: e = o.variant
|
|
25
|
+
} = {}) {
|
|
26
|
+
return r(
|
|
27
|
+
// Base styles (exported as KUMO_BANNER_BASE_STYLES for Figma plugin)
|
|
28
|
+
g,
|
|
29
|
+
// Apply variant styles from KUMO_BANNER_VARIANTS
|
|
30
|
+
d.variant[e].classes
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
var b = /* @__PURE__ */ ((e) => (e[e.DEFAULT = 0] = "DEFAULT", e[e.ALERT = 1] = "ALERT", e[e.ERROR = 2] = "ERROR", e))(b || {});
|
|
34
|
+
function R({
|
|
35
|
+
icon: e,
|
|
36
|
+
children: t,
|
|
37
|
+
text: s,
|
|
38
|
+
variant: i = o.variant,
|
|
39
|
+
className: a
|
|
40
|
+
}) {
|
|
41
|
+
const n = t ?? s, c = m(n) ? n : /* @__PURE__ */ l("p", { children: n });
|
|
42
|
+
return /* @__PURE__ */ u("div", { className: r(f({ variant: i }), a), children: [
|
|
43
|
+
e,
|
|
44
|
+
c
|
|
45
|
+
] });
|
|
46
|
+
}
|
|
47
|
+
export {
|
|
48
|
+
R as B,
|
|
49
|
+
b as a
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=banner-4fkH6Sbt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"banner-4fkH6Sbt.js","sources":["../src/components/banner/banner.tsx"],"sourcesContent":["import { type ReactNode, isValidElement } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/**\n * Base styles applied to all banner variants.\n * Used by bannerVariants() and consumed by Figma plugin for component generation.\n */\nexport const KUMO_BANNER_BASE_STYLES =\n \"flex w-full items-center gap-2 rounded-lg border px-4 py-1.5 text-base\";\n\nexport const KUMO_BANNER_VARIANTS = {\n variant: {\n default: {\n classes: \"bg-kumo-info/20 border-kumo-info text-kumo-link selection:bg-kumo-info-tint\",\n description: \"Informational banner for general messages\",\n },\n alert: {\n classes:\n \"bg-kumo-warning/20 border-kumo-warning text-kumo-warning selection:bg-kumo-warning-tint\",\n description: \"Warning banner for cautionary messages\",\n },\n error: {\n classes:\n \"bg-kumo-danger/20 border-kumo-danger text-kumo-danger selection:bg-kumo-danger-tint\",\n description: \"Error banner for critical issues\",\n },\n },\n} as const;\n\nexport const KUMO_BANNER_DEFAULT_VARIANTS = {\n variant: \"default\",\n} as const;\n\n// Derived types from KUMO_BANNER_VARIANTS\nexport type KumoBannerVariant = keyof typeof KUMO_BANNER_VARIANTS.variant;\n\nexport interface KumoBannerVariantsProps {\n variant?: KumoBannerVariant;\n}\n\nexport function bannerVariants({\n variant = KUMO_BANNER_DEFAULT_VARIANTS.variant,\n}: KumoBannerVariantsProps = {}) {\n return cn(\n // Base styles (exported as KUMO_BANNER_BASE_STYLES for Figma plugin)\n KUMO_BANNER_BASE_STYLES,\n // Apply variant styles from KUMO_BANNER_VARIANTS\n KUMO_BANNER_VARIANTS.variant[variant].classes,\n );\n}\n\n// Legacy enum for backwards compatibility\nexport enum BannerVariant {\n DEFAULT,\n ALERT,\n ERROR,\n}\n\nexport interface BannerProps {\n icon?: ReactNode;\n /** @deprecated Use `children` instead. Will be removed in a future major version. */\n text?: string;\n children?: ReactNode;\n variant?: KumoBannerVariant;\n className?: string;\n}\n\nexport function Banner({\n icon,\n children,\n text,\n variant = KUMO_BANNER_DEFAULT_VARIANTS.variant,\n className,\n}: BannerProps) {\n // Prefer children over deprecated text prop\n const value = children ?? text;\n\n const content = isValidElement(value) ? value : <p>{value}</p>;\n\n return (\n <div className={cn(bannerVariants({ variant }), className)}>\n {icon}\n {content}\n </div>\n );\n}\n"],"names":["KUMO_BANNER_BASE_STYLES","KUMO_BANNER_VARIANTS","KUMO_BANNER_DEFAULT_VARIANTS","bannerVariants","variant","cn","BannerVariant","Banner","icon","children","text","className","value","content","isValidElement","jsx","jsxs"],"mappings":";;;;AAOO,MAAMA,IACX,0EAEWC,IAAuB;AAAA,EAClC,SAAS;AAAA,IACP,SAAS;AAAA,MACP,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,OAAO;AAAA,MACL,SACE;AAAA,MACF,aAAa;AAAA,IAAA;AAAA,IAEf,OAAO;AAAA,MACL,SACE;AAAA,MACF,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GAEaC,IAA+B;AAAA,EAC1C,SAAS;AACX;AASO,SAASC,EAAe;AAAA,EAC7B,SAAAC,IAAUF,EAA6B;AACzC,IAA6B,IAAI;AAC/B,SAAOG;AAAA;AAAA,IAELL;AAAA;AAAA,IAEAC,EAAqB,QAAQG,CAAO,EAAE;AAAA,EAAA;AAE1C;AAGO,IAAKE,sBAAAA,OACVA,EAAAA,EAAA,UAAA,CAAA,IAAA,WACAA,EAAAA,EAAA,QAAA,CAAA,IAAA,SACAA,EAAAA,EAAA,QAAA,CAAA,IAAA,SAHUA,IAAAA,KAAA,CAAA,CAAA;AAeL,SAASC,EAAO;AAAA,EACrB,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,MAAAC;AAAA,EACA,SAAAN,IAAUF,EAA6B;AAAA,EACvC,WAAAS;AACF,GAAgB;AAEd,QAAMC,IAAQH,KAAYC,GAEpBG,IAAUC,EAAeF,CAAK,IAAIA,IAAQ,gBAAAG,EAAC,OAAG,UAAAH,GAAM;AAE1D,SACE,gBAAAI,EAAC,OAAA,EAAI,WAAWX,EAAGF,EAAe,EAAE,SAAAC,EAAA,CAAS,GAAGO,CAAS,GACtD,UAAA;AAAA,IAAAH;AAAA,IACAK;AAAA,EAAA,GACH;AAEJ;"}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as r, jsxs as i } from "react/jsx-runtime";
|
|
3
|
+
import { useState as l, useEffect as m } from "react";
|
|
4
|
+
import { CheckIcon as u, CopyIcon as p } from "@phosphor-icons/react";
|
|
5
|
+
import { B as d } from "./button-E2-hZMZE.js";
|
|
6
|
+
import { S as f } from "./skeleton-line-CtpS1u1J.js";
|
|
7
|
+
import { u as h } from "./link-provider-DPBGo-0n.js";
|
|
8
|
+
import { c } from "./cn-Bhsu1vx2.js";
|
|
9
|
+
const b = {
|
|
10
|
+
size: {
|
|
11
|
+
sm: {
|
|
12
|
+
classes: "text-sm h-10 gap-0.5",
|
|
13
|
+
description: "Compact breadcrumbs for dense UIs"
|
|
14
|
+
},
|
|
15
|
+
base: {
|
|
16
|
+
classes: "text-base h-12 gap-1",
|
|
17
|
+
description: "Default breadcrumbs size"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}, k = {
|
|
21
|
+
size: "base"
|
|
22
|
+
};
|
|
23
|
+
function C({
|
|
24
|
+
size: t = k.size
|
|
25
|
+
} = {}) {
|
|
26
|
+
return c(
|
|
27
|
+
"group mr-4 hidden min-w-0 grow items-center sm:flex",
|
|
28
|
+
b.size[t].classes
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
const x = ({
|
|
32
|
+
href: t,
|
|
33
|
+
icon: e,
|
|
34
|
+
children: s
|
|
35
|
+
}) => {
|
|
36
|
+
const o = h();
|
|
37
|
+
return /* @__PURE__ */ i(
|
|
38
|
+
o,
|
|
39
|
+
{
|
|
40
|
+
to: t,
|
|
41
|
+
className: "flex min-w-0 items-center gap-1 text-kumo-subtle no-underline",
|
|
42
|
+
children: [
|
|
43
|
+
!!e && /* @__PURE__ */ r("span", { className: "flex shrink-0 items-center", children: e }),
|
|
44
|
+
s
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
};
|
|
49
|
+
function g({
|
|
50
|
+
children: t,
|
|
51
|
+
icon: e,
|
|
52
|
+
loading: s
|
|
53
|
+
}) {
|
|
54
|
+
return s ? /* @__PURE__ */ i("div", { className: "flex w-[125px] min-w-0 items-center gap-1", children: [
|
|
55
|
+
e && /* @__PURE__ */ r("span", { className: "flex shrink-0 items-center", children: e }),
|
|
56
|
+
/* @__PURE__ */ r(f, {})
|
|
57
|
+
] }) : /* @__PURE__ */ i(
|
|
58
|
+
"div",
|
|
59
|
+
{
|
|
60
|
+
className: "flex items-center gap-1 truncate font-medium",
|
|
61
|
+
"aria-current": "page",
|
|
62
|
+
children: [
|
|
63
|
+
e && /* @__PURE__ */ r("span", { className: "flex shrink-0 items-center", children: e }),
|
|
64
|
+
t
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
function N() {
|
|
70
|
+
return /* @__PURE__ */ r("span", { className: "flex items-center text-kumo-inactive", "aria-hidden": "true", children: /* @__PURE__ */ r("svg", { width: "24", height: "24", fill: "none", viewBox: "0 0 24 24", children: /* @__PURE__ */ r(
|
|
71
|
+
"path",
|
|
72
|
+
{
|
|
73
|
+
stroke: "currentColor",
|
|
74
|
+
strokeLinecap: "round",
|
|
75
|
+
strokeLinejoin: "round",
|
|
76
|
+
strokeWidth: "1.5",
|
|
77
|
+
d: "M10.75 8.75L14.25 12L10.75 15.25"
|
|
78
|
+
}
|
|
79
|
+
) }) });
|
|
80
|
+
}
|
|
81
|
+
function w({ text: t }) {
|
|
82
|
+
const [e, s] = l(!1);
|
|
83
|
+
return m(() => {
|
|
84
|
+
if (!e) return;
|
|
85
|
+
const a = setTimeout(() => s(!1), 2e3);
|
|
86
|
+
return () => clearTimeout(a);
|
|
87
|
+
}, [e]), /* @__PURE__ */ r(
|
|
88
|
+
d,
|
|
89
|
+
{
|
|
90
|
+
variant: "ghost",
|
|
91
|
+
shape: "square",
|
|
92
|
+
size: "sm",
|
|
93
|
+
className: "opacity-0 transition-[opacity] group-hover:opacity-100",
|
|
94
|
+
onClick: async () => {
|
|
95
|
+
if (t)
|
|
96
|
+
try {
|
|
97
|
+
await navigator.clipboard.writeText(t), s(!0);
|
|
98
|
+
} catch (a) {
|
|
99
|
+
console.error("Failed to copy deeplink:", a);
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
title: "Click to copy",
|
|
103
|
+
"aria-label": "Copy",
|
|
104
|
+
children: e ? /* @__PURE__ */ r(u, { weight: "bold", className: "text-kumo-success" }) : /* @__PURE__ */ r(p, { weight: "regular" })
|
|
105
|
+
}
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
function n({
|
|
109
|
+
children: t,
|
|
110
|
+
size: e = "base",
|
|
111
|
+
className: s
|
|
112
|
+
}) {
|
|
113
|
+
return /* @__PURE__ */ r(
|
|
114
|
+
"nav",
|
|
115
|
+
{
|
|
116
|
+
className: c(C({ size: e }), s),
|
|
117
|
+
"aria-label": "breadcrumb",
|
|
118
|
+
children: t
|
|
119
|
+
}
|
|
120
|
+
);
|
|
121
|
+
}
|
|
122
|
+
n.Link = x;
|
|
123
|
+
n.Current = g;
|
|
124
|
+
n.Separator = N;
|
|
125
|
+
n.Clipboard = w;
|
|
126
|
+
export {
|
|
127
|
+
n as B,
|
|
128
|
+
b as K,
|
|
129
|
+
k as a,
|
|
130
|
+
C as b
|
|
131
|
+
};
|
|
132
|
+
//# sourceMappingURL=breadcrumbs-B5SY2CWj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumbs-B5SY2CWj.js","sources":["../src/components/breadcrumbs/breadcrumbs.tsx"],"sourcesContent":["import { useEffect, useState, type PropsWithChildren } from \"react\";\nimport { CheckIcon, CopyIcon } from \"@phosphor-icons/react\";\nimport { Button } from \"../../components/button\";\nimport { SkeletonLine } from \"../../components/loader/skeleton-line\";\nimport { useLinkComponent } from \"../../utils/link-provider\";\nimport { cn } from \"../../utils/cn\";\n\nexport const KUMO_BREADCRUMBS_VARIANTS = {\n size: {\n sm: {\n classes: \"text-sm h-10 gap-0.5\",\n description: \"Compact breadcrumbs for dense UIs\",\n },\n base: {\n classes: \"text-base h-12 gap-1\",\n description: \"Default breadcrumbs size\",\n },\n },\n} as const;\n\nexport const KUMO_BREADCRUMBS_DEFAULT_VARIANTS = {\n size: \"base\",\n} as const;\n\nexport type KumoBreadcrumbsSize = keyof typeof KUMO_BREADCRUMBS_VARIANTS.size;\n\nexport interface KumoBreadcrumbsVariantsProps {\n size?: KumoBreadcrumbsSize;\n}\n\nexport function breadcrumbsVariants({\n size = KUMO_BREADCRUMBS_DEFAULT_VARIANTS.size,\n}: KumoBreadcrumbsVariantsProps = {}) {\n return cn(\n \"group mr-4 hidden min-w-0 grow items-center sm:flex\",\n KUMO_BREADCRUMBS_VARIANTS.size[size].classes,\n );\n}\n\nexport interface BreadcrumbsItemProps {\n href: string;\n icon?: React.ReactNode;\n}\n\nconst Link = ({\n href,\n icon,\n children,\n}: PropsWithChildren<BreadcrumbsItemProps>) => {\n const LinkComponent = useLinkComponent();\n\n return (\n <LinkComponent\n to={href}\n className=\"flex min-w-0 items-center gap-1 text-kumo-subtle no-underline\"\n >\n {!!icon && <span className=\"flex shrink-0 items-center\">{icon}</span>}\n {children}\n </LinkComponent>\n );\n};\n\ninterface BreadcrumbsCurrentProps {\n loading?: boolean;\n icon?: React.ReactNode;\n}\n\nfunction Current({\n children,\n icon,\n loading,\n}: PropsWithChildren<BreadcrumbsCurrentProps>) {\n if (loading) {\n return (\n <div className=\"flex w-[125px] min-w-0 items-center gap-1\">\n {icon && <span className=\"flex shrink-0 items-center\">{icon}</span>}\n <SkeletonLine />\n </div>\n );\n }\n\n return (\n <div\n className=\"flex items-center gap-1 truncate font-medium\"\n aria-current=\"page\"\n >\n {icon && <span className=\"flex shrink-0 items-center\">{icon}</span>}\n {children}\n </div>\n );\n}\n\nfunction Separator() {\n return (\n <span className=\"flex items-center text-kumo-inactive\" aria-hidden=\"true\">\n <svg width=\"24\" height=\"24\" fill=\"none\" viewBox=\"0 0 24 24\">\n <path\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"1.5\"\n d=\"M10.75 8.75L14.25 12L10.75 15.25\"\n />\n </svg>\n </span>\n );\n}\n\nfunction Clipboard({ text }: { text: string }) {\n const [isCopied, setIsCopied] = useState(false);\n\n useEffect(() => {\n if (!isCopied) return;\n\n const timeoutId = setTimeout(() => setIsCopied(false), 2000);\n return () => clearTimeout(timeoutId);\n }, [isCopied]);\n\n const handleCopyDeeplink = async () => {\n if (!text) return;\n\n try {\n await navigator.clipboard.writeText(text);\n setIsCopied(true);\n } catch (err) {\n console.error(\"Failed to copy deeplink:\", err);\n }\n };\n\n return (\n <Button\n variant=\"ghost\"\n shape=\"square\"\n size=\"sm\"\n className=\"opacity-0 transition-[opacity] group-hover:opacity-100\"\n onClick={handleCopyDeeplink}\n title=\"Click to copy\"\n aria-label=\"Copy\"\n >\n {isCopied ? (\n <CheckIcon weight=\"bold\" className=\"text-kumo-success\" />\n ) : (\n <CopyIcon weight=\"regular\" />\n )}\n </Button>\n );\n}\n\nexport interface BreadcrumbsProps\n extends PropsWithChildren,\n KumoBreadcrumbsVariantsProps {\n className?: string;\n}\n\nexport function Breadcrumb({\n children,\n size = \"base\",\n className,\n}: BreadcrumbsProps) {\n return (\n <nav\n className={cn(breadcrumbsVariants({ size }), className)}\n aria-label=\"breadcrumb\"\n >\n {children}\n </nav>\n );\n}\n\nBreadcrumb.Link = Link;\nBreadcrumb.Current = Current;\nBreadcrumb.Separator = Separator;\nBreadcrumb.Clipboard = Clipboard;\n"],"names":["KUMO_BREADCRUMBS_VARIANTS","KUMO_BREADCRUMBS_DEFAULT_VARIANTS","breadcrumbsVariants","size","cn","Link","href","icon","children","LinkComponent","useLinkComponent","jsxs","jsx","Current","loading","SkeletonLine","Separator","Clipboard","text","isCopied","setIsCopied","useState","useEffect","timeoutId","Button","err","CheckIcon","CopyIcon","Breadcrumb","className"],"mappings":"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"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as a, jsxs as k } from "react/jsx-runtime";
|
|
3
|
+
import f from "react";
|
|
4
|
+
import { ArrowsClockwise as v } from "@phosphor-icons/react";
|
|
5
|
+
import { L as z } from "./loader-DHGMYlC6.js";
|
|
6
|
+
import { c as i } from "./cn-Bhsu1vx2.js";
|
|
7
|
+
import { u as w } from "./link-provider-DPBGo-0n.js";
|
|
8
|
+
const n = {
|
|
9
|
+
shape: {
|
|
10
|
+
base: {
|
|
11
|
+
classes: "",
|
|
12
|
+
description: "Default rectangular button shape"
|
|
13
|
+
},
|
|
14
|
+
square: {
|
|
15
|
+
classes: "items-center justify-center p-0",
|
|
16
|
+
description: "Square button for icon-only actions"
|
|
17
|
+
},
|
|
18
|
+
circle: {
|
|
19
|
+
classes: "items-center justify-center p-0 rounded-full",
|
|
20
|
+
description: "Circular button for icon-only actions"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
size: {
|
|
24
|
+
xs: {
|
|
25
|
+
classes: "h-5 gap-1 rounded-sm px-1.5 text-xs",
|
|
26
|
+
description: "Extra small button for compact UIs"
|
|
27
|
+
},
|
|
28
|
+
sm: {
|
|
29
|
+
classes: "h-6.5 gap-1 rounded-md px-2 text-xs",
|
|
30
|
+
description: "Small button for secondary actions"
|
|
31
|
+
},
|
|
32
|
+
base: {
|
|
33
|
+
classes: "h-9 gap-1.5 rounded-lg px-3 text-base",
|
|
34
|
+
description: "Default button size"
|
|
35
|
+
},
|
|
36
|
+
lg: {
|
|
37
|
+
classes: "h-10 gap-2 rounded-lg px-4 text-base",
|
|
38
|
+
description: "Large button for primary CTAs"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
compactSize: {
|
|
42
|
+
xs: { classes: "size-3.5" },
|
|
43
|
+
sm: { classes: "size-6.5" },
|
|
44
|
+
base: { classes: "size-9" },
|
|
45
|
+
lg: { classes: "size-10" }
|
|
46
|
+
},
|
|
47
|
+
variant: {
|
|
48
|
+
primary: {
|
|
49
|
+
classes: "bg-kumo-brand !text-white hover:bg-kumo-brand-hover focus:bg-kumo-brand-hover disabled:bg-kumo-brand/50",
|
|
50
|
+
description: "High-emphasis button for primary actions"
|
|
51
|
+
},
|
|
52
|
+
secondary: {
|
|
53
|
+
classes: "bg-kumo-control !text-kumo-default ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control disabled:bg-kumo-control/50 disabled:!text-kumo-default/70 ring-kumo-line data-[state=open]:bg-kumo-control",
|
|
54
|
+
description: "Default button style for most actions"
|
|
55
|
+
},
|
|
56
|
+
ghost: {
|
|
57
|
+
classes: "text-kumo-default hover:bg-kumo-tint shadow-none bg-inherit",
|
|
58
|
+
description: "Minimal button with no background"
|
|
59
|
+
},
|
|
60
|
+
destructive: {
|
|
61
|
+
classes: "bg-kumo-danger !text-white hover:bg-kumo-danger/70",
|
|
62
|
+
description: "Danger button for destructive actions like delete"
|
|
63
|
+
},
|
|
64
|
+
"secondary-destructive": {
|
|
65
|
+
classes: "bg-kumo-control !text-kumo-danger ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control disabled:bg-kumo-control/50 disabled:!text-kumo-danger/70 ring-kumo-line data-[state=open]:bg-kumo-control",
|
|
66
|
+
description: "Secondary button with destructive text for less prominent dangerous actions"
|
|
67
|
+
},
|
|
68
|
+
outline: {
|
|
69
|
+
classes: "bg-kumo-base text-kumo-default ring ring-kumo-line",
|
|
70
|
+
description: "Bordered button with transparent background"
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}, g = {
|
|
74
|
+
shape: "base",
|
|
75
|
+
size: "base",
|
|
76
|
+
variant: "secondary"
|
|
77
|
+
};
|
|
78
|
+
function h({
|
|
79
|
+
variant: s = g.variant,
|
|
80
|
+
size: t = g.size,
|
|
81
|
+
shape: e = g.shape
|
|
82
|
+
} = {}) {
|
|
83
|
+
const o = e === "square" || e === "circle";
|
|
84
|
+
return i(
|
|
85
|
+
// Base styles
|
|
86
|
+
"group flex w-max shrink-0 items-center font-medium select-none",
|
|
87
|
+
"border-0 shadow-xs",
|
|
88
|
+
"cursor-pointer",
|
|
89
|
+
// Disabled state
|
|
90
|
+
"disabled:cursor-not-allowed disabled:text-kumo-subtle",
|
|
91
|
+
// Apply variant, size, shape styles from KUMO_BUTTON_VARIANTS
|
|
92
|
+
n.variant[s].classes,
|
|
93
|
+
n.size[t].classes,
|
|
94
|
+
n.shape[e].classes,
|
|
95
|
+
o && n.compactSize[t].classes
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
const x = (s) => s ? f.isValidElement(s) ? s : /* @__PURE__ */ a(s, {}) : null, y = f.forwardRef(
|
|
99
|
+
({
|
|
100
|
+
children: s,
|
|
101
|
+
className: t,
|
|
102
|
+
disabled: e,
|
|
103
|
+
loading: o,
|
|
104
|
+
shape: c = "base",
|
|
105
|
+
size: r = "base",
|
|
106
|
+
variant: l = "secondary",
|
|
107
|
+
icon: u,
|
|
108
|
+
...d
|
|
109
|
+
}, b) => {
|
|
110
|
+
const { type: m, ...p } = d;
|
|
111
|
+
return /* @__PURE__ */ k(
|
|
112
|
+
"button",
|
|
113
|
+
{
|
|
114
|
+
ref: b,
|
|
115
|
+
className: i(
|
|
116
|
+
h({ variant: l, size: r, shape: c }),
|
|
117
|
+
"outline-none focus:opacity-100 focus-visible:ring-1 focus-visible:ring-kumo-ring *:in-focus:opacity-100",
|
|
118
|
+
// Focus styles
|
|
119
|
+
e && "cursor-not-allowed opacity-50",
|
|
120
|
+
t
|
|
121
|
+
),
|
|
122
|
+
disabled: o || e,
|
|
123
|
+
type: m ?? "button",
|
|
124
|
+
...p,
|
|
125
|
+
children: [
|
|
126
|
+
o && /* @__PURE__ */ a(z, { size: r === "lg" ? 16 : 14 }),
|
|
127
|
+
!o && x(u),
|
|
128
|
+
s
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
y.displayName = "Button";
|
|
135
|
+
const A = ({
|
|
136
|
+
"aria-label": s = "Refresh",
|
|
137
|
+
loading: t,
|
|
138
|
+
...e
|
|
139
|
+
}) => /* @__PURE__ */ a(y, { shape: "square", "aria-label": s, ...e, children: /* @__PURE__ */ a(
|
|
140
|
+
v,
|
|
141
|
+
{
|
|
142
|
+
className: i({
|
|
143
|
+
"animate-refresh": t,
|
|
144
|
+
"size-4.5": e.size === "base" || !e.size,
|
|
145
|
+
"size-4": e.size === "sm",
|
|
146
|
+
"size-5": e.size === "lg"
|
|
147
|
+
})
|
|
148
|
+
}
|
|
149
|
+
) }), N = f.forwardRef(
|
|
150
|
+
({
|
|
151
|
+
children: s,
|
|
152
|
+
className: t,
|
|
153
|
+
external: e,
|
|
154
|
+
href: o,
|
|
155
|
+
shape: c = "base",
|
|
156
|
+
size: r = "base",
|
|
157
|
+
variant: l = "ghost",
|
|
158
|
+
icon: u,
|
|
159
|
+
// linksExternal = false,
|
|
160
|
+
...d
|
|
161
|
+
}, b) => {
|
|
162
|
+
const m = w(), p = e ? { target: "_blank", rel: "noopener noreferrer" } : {};
|
|
163
|
+
return /* @__PURE__ */ k(
|
|
164
|
+
m,
|
|
165
|
+
{
|
|
166
|
+
ref: b,
|
|
167
|
+
className: i(
|
|
168
|
+
h({ variant: l, size: r, shape: c }),
|
|
169
|
+
"flex items-center no-underline!",
|
|
170
|
+
t
|
|
171
|
+
),
|
|
172
|
+
href: o,
|
|
173
|
+
to: typeof o == "string" ? o : void 0,
|
|
174
|
+
...p,
|
|
175
|
+
...d,
|
|
176
|
+
children: [
|
|
177
|
+
x(u),
|
|
178
|
+
s
|
|
179
|
+
]
|
|
180
|
+
}
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
);
|
|
184
|
+
N.displayName = "LinkButton";
|
|
185
|
+
export {
|
|
186
|
+
y as B,
|
|
187
|
+
N as L,
|
|
188
|
+
A as R,
|
|
189
|
+
h as b
|
|
190
|
+
};
|
|
191
|
+
//# sourceMappingURL=button-E2-hZMZE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-E2-hZMZE.js","sources":["../src/components/button/button.tsx"],"sourcesContent":["import React from \"react\";\nimport { ArrowsClockwise, type Icon } from \"@phosphor-icons/react\";\nimport { Loader } from \"../loader/loader\";\nimport { cn } from \"../../utils/cn\";\nimport { useLinkComponent } from \"../../utils/link-provider\";\n\nexport const KUMO_BUTTON_VARIANTS = {\n shape: {\n base: {\n classes: \"\",\n description: \"Default rectangular button shape\",\n },\n square: {\n classes: \"items-center justify-center p-0\",\n description: \"Square button for icon-only actions\",\n },\n circle: {\n classes: \"items-center justify-center p-0 rounded-full\",\n description: \"Circular button for icon-only actions\",\n },\n },\n size: {\n xs: {\n classes: \"h-5 gap-1 rounded-sm px-1.5 text-xs\",\n description: \"Extra small button for compact UIs\",\n },\n sm: {\n classes: \"h-6.5 gap-1 rounded-md px-2 text-xs\",\n description: \"Small button for secondary actions\",\n },\n base: {\n classes: \"h-9 gap-1.5 rounded-lg px-3 text-base\",\n description: \"Default button size\",\n },\n lg: {\n classes: \"h-10 gap-2 rounded-lg px-4 text-base\",\n description: \"Large button for primary CTAs\",\n },\n },\n compactSize: {\n xs: { classes: \"size-3.5\" },\n sm: { classes: \"size-6.5\" },\n base: { classes: \"size-9\" },\n lg: { classes: \"size-10\" },\n },\n variant: {\n primary: {\n classes:\n \"bg-kumo-brand !text-white hover:bg-kumo-brand-hover focus:bg-kumo-brand-hover disabled:bg-kumo-brand/50\",\n description: \"High-emphasis button for primary actions\",\n },\n secondary: {\n classes:\n \"bg-kumo-control !text-kumo-default ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control disabled:bg-kumo-control/50 disabled:!text-kumo-default/70 ring-kumo-line data-[state=open]:bg-kumo-control\",\n description: \"Default button style for most actions\",\n },\n ghost: {\n classes: \"text-kumo-default hover:bg-kumo-tint shadow-none bg-inherit\",\n description: \"Minimal button with no background\",\n },\n destructive: {\n classes: \"bg-kumo-danger !text-white hover:bg-kumo-danger/70\",\n description: \"Danger button for destructive actions like delete\",\n },\n \"secondary-destructive\": {\n classes:\n \"bg-kumo-control !text-kumo-danger ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-control disabled:bg-kumo-control/50 disabled:!text-kumo-danger/70 ring-kumo-line data-[state=open]:bg-kumo-control\",\n description:\n \"Secondary button with destructive text for less prominent dangerous actions\",\n },\n outline: {\n classes: \"bg-kumo-base text-kumo-default ring ring-kumo-line\",\n description: \"Bordered button with transparent background\",\n },\n },\n} as const;\n\nexport const KUMO_BUTTON_DEFAULT_VARIANTS = {\n shape: \"base\",\n size: \"base\",\n variant: \"secondary\",\n} as const;\n\n// Derived types from KUMO_BUTTON_VARIANTS\nexport type KumoButtonShape = keyof typeof KUMO_BUTTON_VARIANTS.shape;\nexport type KumoButtonSize = keyof typeof KUMO_BUTTON_VARIANTS.size;\nexport type KumoButtonVariant = keyof typeof KUMO_BUTTON_VARIANTS.variant;\n\nexport interface KumoButtonVariantsProps {\n shape?: KumoButtonShape;\n size?: KumoButtonSize;\n variant?: KumoButtonVariant;\n}\n\nexport function buttonVariants({\n variant = KUMO_BUTTON_DEFAULT_VARIANTS.variant,\n size = KUMO_BUTTON_DEFAULT_VARIANTS.size,\n shape = KUMO_BUTTON_DEFAULT_VARIANTS.shape,\n}: KumoButtonVariantsProps = {}) {\n const isCompactShape = shape === \"square\" || shape === \"circle\";\n\n return cn(\n // Base styles\n \"group flex w-max shrink-0 items-center font-medium select-none\",\n \"border-0 shadow-xs\",\n \"cursor-pointer\",\n // Disabled state\n \"disabled:cursor-not-allowed disabled:text-kumo-subtle\",\n // Apply variant, size, shape styles from KUMO_BUTTON_VARIANTS\n KUMO_BUTTON_VARIANTS.variant[variant].classes,\n KUMO_BUTTON_VARIANTS.size[size].classes,\n KUMO_BUTTON_VARIANTS.shape[shape].classes,\n isCompactShape && KUMO_BUTTON_VARIANTS.compactSize[size].classes,\n );\n}\n\n// Normalize icon prop to support both React elements and component types\nconst renderIconNode = (IconComponent?: Icon | React.ReactNode) => {\n if (!IconComponent) return null;\n if (React.isValidElement(IconComponent)) return IconComponent;\n const Comp = IconComponent as React.ComponentType<Record<string, unknown>>;\n return <Comp />;\n};\n\nexport type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> &\n KumoButtonVariantsProps & {\n children?: React.ReactNode;\n className?: string;\n icon?: Icon | React.ReactNode;\n loading?: boolean;\n };\n\nexport type LinkButtonProps = React.AnchorHTMLAttributes<HTMLAnchorElement> &\n KumoButtonVariantsProps & {\n children?: React.ReactNode;\n className?: string;\n icon?: Icon | React.ReactNode;\n external?: boolean;\n linksExternal?: boolean;\n };\n\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n children,\n className,\n disabled,\n loading,\n shape = \"base\",\n size = \"base\",\n variant = \"secondary\",\n icon: IconComponent,\n ...props\n },\n ref,\n ) => {\n const { type, ...restProps } = props;\n return (\n <button\n ref={ref}\n className={cn(\n buttonVariants({ variant, size, shape }),\n \"outline-none focus:opacity-100 focus-visible:ring-1 focus-visible:ring-kumo-ring *:in-focus:opacity-100\", // Focus styles\n disabled && \"cursor-not-allowed opacity-50\",\n className,\n )}\n disabled={loading || disabled}\n type={type ?? \"button\"}\n {...restProps}\n >\n {loading && <Loader size={size === \"lg\" ? 16 : 14} />}\n {!loading && renderIconNode(IconComponent)}\n\n {children}\n </button>\n );\n },\n);\n\nButton.displayName = \"Button\";\n\nexport const RefreshButton = ({\n \"aria-label\": ariaLabel = \"Refresh\",\n loading,\n ...props\n}: ButtonProps) => (\n <Button shape=\"square\" aria-label={ariaLabel} {...props}>\n <ArrowsClockwise\n className={cn({\n \"animate-refresh\": loading,\n \"size-4.5\": props.size === \"base\" || !props.size,\n \"size-4\": props.size === \"sm\",\n \"size-5\": props.size === \"lg\",\n })}\n />\n </Button>\n);\n\nexport const LinkButton = React.forwardRef<HTMLAnchorElement, LinkButtonProps>(\n (\n {\n children,\n className,\n external,\n href,\n shape = \"base\",\n size = \"base\",\n variant = \"ghost\",\n icon: IconComponent,\n // linksExternal = false,\n ...props\n },\n ref,\n ) => {\n const LinkComponent = useLinkComponent();\n const externalProps = external\n ? { target: \"_blank\", rel: \"noopener noreferrer\" }\n : {};\n\n return (\n <LinkComponent\n ref={ref}\n className={cn(\n buttonVariants({ variant, size, shape }),\n \"flex items-center no-underline!\",\n className,\n )}\n href={href}\n to={typeof href === \"string\" ? href : undefined}\n {...externalProps}\n {...props}\n >\n {renderIconNode(IconComponent)}\n {children}\n </LinkComponent>\n );\n },\n);\n\nLinkButton.displayName = \"LinkButton\";\n"],"names":["KUMO_BUTTON_VARIANTS","KUMO_BUTTON_DEFAULT_VARIANTS","buttonVariants","variant","size","shape","isCompactShape","cn","renderIconNode","IconComponent","React","Button","children","className","disabled","loading","props","ref","type","restProps","jsxs","Loader","RefreshButton","ariaLabel","jsx","ArrowsClockwise","LinkButton","external","href","LinkComponent","useLinkComponent","externalProps"],"mappings":"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"}
|
package/dist/catalog.js
ADDED
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
let c = null, h = null;
|
|
3
|
+
async function y() {
|
|
4
|
+
return c || h || (h = import("./schemas-BSdA0fz-.js").then((t) => (c = t, c)), h);
|
|
5
|
+
}
|
|
6
|
+
function l() {
|
|
7
|
+
if (!c)
|
|
8
|
+
throw new Error(
|
|
9
|
+
"Schemas not loaded. Call initCatalog(catalog) first or use async validation."
|
|
10
|
+
);
|
|
11
|
+
return c;
|
|
12
|
+
}
|
|
13
|
+
function v(t = {}) {
|
|
14
|
+
const { actions: s = {} } = t, r = Object.keys(s);
|
|
15
|
+
return {
|
|
16
|
+
get componentNames() {
|
|
17
|
+
return l().KUMO_COMPONENT_NAMES;
|
|
18
|
+
},
|
|
19
|
+
get actionNames() {
|
|
20
|
+
return r;
|
|
21
|
+
},
|
|
22
|
+
hasComponent(n) {
|
|
23
|
+
try {
|
|
24
|
+
return l().KUMO_COMPONENT_NAMES.includes(n);
|
|
25
|
+
} catch {
|
|
26
|
+
return !1;
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
hasAction(n) {
|
|
30
|
+
return n in s;
|
|
31
|
+
},
|
|
32
|
+
validateElement(n) {
|
|
33
|
+
try {
|
|
34
|
+
const e = l(), a = e.UIElementBaseSchema.safeParse(n);
|
|
35
|
+
if (a.success) {
|
|
36
|
+
const u = e.validateElementProps(
|
|
37
|
+
a.data
|
|
38
|
+
);
|
|
39
|
+
return u.success ? { success: !0, data: a.data } : {
|
|
40
|
+
success: !1,
|
|
41
|
+
error: u.error.issues.map((i) => ({
|
|
42
|
+
message: i.message,
|
|
43
|
+
path: ["props", ...i.path]
|
|
44
|
+
}))
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
success: !1,
|
|
49
|
+
error: a.error?.issues.map((u) => ({
|
|
50
|
+
message: u.message,
|
|
51
|
+
path: u.path
|
|
52
|
+
})) ?? [{ message: "Validation failed", path: [] }]
|
|
53
|
+
};
|
|
54
|
+
} catch (e) {
|
|
55
|
+
return {
|
|
56
|
+
success: !1,
|
|
57
|
+
error: [
|
|
58
|
+
{
|
|
59
|
+
message: e instanceof Error ? e.message : "Validation failed",
|
|
60
|
+
path: []
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
validateTree(n) {
|
|
67
|
+
try {
|
|
68
|
+
const a = l().validateUITree(n);
|
|
69
|
+
return a.success ? { success: !0, data: a.data } : {
|
|
70
|
+
success: !1,
|
|
71
|
+
error: a.error.issues.map((u) => ({
|
|
72
|
+
message: u.message,
|
|
73
|
+
path: u.path
|
|
74
|
+
}))
|
|
75
|
+
};
|
|
76
|
+
} catch (e) {
|
|
77
|
+
return {
|
|
78
|
+
success: !1,
|
|
79
|
+
error: [
|
|
80
|
+
{
|
|
81
|
+
message: e instanceof Error ? e.message : "Validation failed",
|
|
82
|
+
path: []
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
generatePrompt() {
|
|
89
|
+
const n = l(), e = [
|
|
90
|
+
"# Kumo Component Catalog",
|
|
91
|
+
"",
|
|
92
|
+
"You are generating UI using Kumo components. Output must be valid JSON matching the UITree schema.",
|
|
93
|
+
"",
|
|
94
|
+
"## Available Components",
|
|
95
|
+
""
|
|
96
|
+
];
|
|
97
|
+
for (const a of n.KUMO_COMPONENT_NAMES)
|
|
98
|
+
e.push(`- \`${a}\``);
|
|
99
|
+
if (r.length > 0) {
|
|
100
|
+
e.push(""), e.push("## Available Actions"), e.push("");
|
|
101
|
+
for (const [a, u] of Object.entries(s))
|
|
102
|
+
e.push(`- \`${a}\`: ${u.description}`);
|
|
103
|
+
}
|
|
104
|
+
return e.push(""), e.push("## Output Format"), e.push(""), e.push("```json"), e.push("{"), e.push(' "root": "element-1",'), e.push(' "elements": {'), e.push(' "element-1": {'), e.push(' "key": "element-1",'), e.push(' "type": "ComponentName",'), e.push(' "props": { ... },'), e.push(' "children": ["element-2"],'), e.push(
|
|
105
|
+
' "visible": true | { "path": "/data/path" } | { "auth": "signedIn" }'
|
|
106
|
+
), e.push(" }"), e.push(" }"), e.push("}"), e.push("```"), e.push(""), e.push("## Dynamic Values"), e.push(""), e.push(
|
|
107
|
+
'Props can reference data model values using `{ path: "/data/path" }`:'
|
|
108
|
+
), e.push(""), e.push("```json"), e.push("{"), e.push(' "type": "Text",'), e.push(' "props": {'), e.push(' "children": { "path": "/user/name" }'), e.push(" }"), e.push("}"), e.push("```"), e.push(""), e.join(`
|
|
109
|
+
`);
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
async function E(t) {
|
|
114
|
+
t.validateTree({});
|
|
115
|
+
}
|
|
116
|
+
function p(t, s) {
|
|
117
|
+
if (!s || s === "/")
|
|
118
|
+
return t;
|
|
119
|
+
const r = s.startsWith("/") ? s.slice(1).split("/") : s.split("/");
|
|
120
|
+
let n = t;
|
|
121
|
+
for (const e of r) {
|
|
122
|
+
if (n == null)
|
|
123
|
+
return;
|
|
124
|
+
if (typeof n == "object")
|
|
125
|
+
n = n[e];
|
|
126
|
+
else
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
return n;
|
|
130
|
+
}
|
|
131
|
+
function b(t, s, r) {
|
|
132
|
+
const n = s.startsWith("/") ? s.slice(1).split("/") : s.split("/");
|
|
133
|
+
if (n.length === 0) return;
|
|
134
|
+
let e = t;
|
|
135
|
+
for (let u = 0; u < n.length - 1; u++) {
|
|
136
|
+
const i = n[u];
|
|
137
|
+
(!(i in e) || typeof e[i] != "object") && (e[i] = {}), e = e[i];
|
|
138
|
+
}
|
|
139
|
+
const a = n[n.length - 1];
|
|
140
|
+
e[a] = r;
|
|
141
|
+
}
|
|
142
|
+
function m(t) {
|
|
143
|
+
return typeof t == "object" && t !== null && "path" in t && typeof t.path == "string";
|
|
144
|
+
}
|
|
145
|
+
function o(t, s) {
|
|
146
|
+
if (t != null)
|
|
147
|
+
return m(t) ? p(s, t.path) : t;
|
|
148
|
+
}
|
|
149
|
+
function d(t, s) {
|
|
150
|
+
const r = {};
|
|
151
|
+
for (const [n, e] of Object.entries(t))
|
|
152
|
+
m(e) ? r[n] = p(s, e.path) : typeof e == "object" && e !== null && !Array.isArray(e) ? r[n] = d(e, s) : r[n] = e;
|
|
153
|
+
return r;
|
|
154
|
+
}
|
|
155
|
+
function g(t) {
|
|
156
|
+
return t == null ? !1 : typeof t == "boolean" ? t : typeof t == "number" ? t !== 0 : typeof t == "string" || Array.isArray(t) ? t.length > 0 : typeof t == "object" ? Object.keys(t).length > 0 : !!t;
|
|
157
|
+
}
|
|
158
|
+
function f(t, s) {
|
|
159
|
+
if ("path" in t && !("eq" in t) && !("neq" in t)) {
|
|
160
|
+
const r = p(s.data, t.path);
|
|
161
|
+
return g(r);
|
|
162
|
+
}
|
|
163
|
+
if ("and" in t)
|
|
164
|
+
return t.and.every((r) => f(r, s));
|
|
165
|
+
if ("or" in t)
|
|
166
|
+
return t.or.some((r) => f(r, s));
|
|
167
|
+
if ("not" in t)
|
|
168
|
+
return !f(t.not, s);
|
|
169
|
+
if ("eq" in t) {
|
|
170
|
+
const r = t, n = o(r.eq[0], s.data), e = o(r.eq[1], s.data);
|
|
171
|
+
return n === e;
|
|
172
|
+
}
|
|
173
|
+
if ("neq" in t) {
|
|
174
|
+
const r = t, n = o(r.neq[0], s.data), e = o(r.neq[1], s.data);
|
|
175
|
+
return n !== e;
|
|
176
|
+
}
|
|
177
|
+
if ("gt" in t) {
|
|
178
|
+
const r = t, n = o(r.gt[0], s.data), e = o(r.gt[1], s.data);
|
|
179
|
+
return n > e;
|
|
180
|
+
}
|
|
181
|
+
if ("gte" in t) {
|
|
182
|
+
const r = t, n = o(r.gte[0], s.data), e = o(r.gte[1], s.data);
|
|
183
|
+
return n >= e;
|
|
184
|
+
}
|
|
185
|
+
if ("lt" in t) {
|
|
186
|
+
const r = t, n = o(r.lt[0], s.data), e = o(r.lt[1], s.data);
|
|
187
|
+
return n < e;
|
|
188
|
+
}
|
|
189
|
+
if ("lte" in t) {
|
|
190
|
+
const r = t, n = o(r.lte[0], s.data), e = o(r.lte[1], s.data);
|
|
191
|
+
return n <= e;
|
|
192
|
+
}
|
|
193
|
+
return !0;
|
|
194
|
+
}
|
|
195
|
+
function A(t, s) {
|
|
196
|
+
if (t === void 0)
|
|
197
|
+
return !0;
|
|
198
|
+
if (typeof t == "boolean")
|
|
199
|
+
return t;
|
|
200
|
+
if ("auth" in t)
|
|
201
|
+
return t.auth === "signedIn" ? s.auth.isSignedIn : t.auth === "signedOut" ? !s.auth.isSignedIn : !0;
|
|
202
|
+
if ("path" in t && !("and" in t) && !("or" in t)) {
|
|
203
|
+
const r = p(s.data, t.path);
|
|
204
|
+
return g(r);
|
|
205
|
+
}
|
|
206
|
+
return f(t, s);
|
|
207
|
+
}
|
|
208
|
+
function O(t = {}, s = {}) {
|
|
209
|
+
return {
|
|
210
|
+
data: t,
|
|
211
|
+
auth: {
|
|
212
|
+
isSignedIn: s.isSignedIn ?? !1,
|
|
213
|
+
user: s.user
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
export {
|
|
218
|
+
v as createKumoCatalog,
|
|
219
|
+
O as createVisibilityContext,
|
|
220
|
+
A as evaluateVisibility,
|
|
221
|
+
p as getByPath,
|
|
222
|
+
E as initCatalog,
|
|
223
|
+
m as isDynamicPath,
|
|
224
|
+
y as loadSchemas,
|
|
225
|
+
o as resolveDynamicValue,
|
|
226
|
+
d as resolveProps,
|
|
227
|
+
b as setByPath
|
|
228
|
+
};
|
|
229
|
+
//# sourceMappingURL=catalog.js.map
|