kumo-svelte 0.9.1 → 0.13.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/README.md +4 -0
- package/ai/component-registry.json +271 -18
- package/ai/component-registry.md +4 -4
- package/dist/components/autocomplete/Autocomplete.svelte +87 -2
- package/dist/components/autocomplete/Autocomplete.svelte.d.ts +1 -0
- package/dist/components/autocomplete/AutocompleteContent.svelte +21 -41
- package/dist/components/autocomplete/AutocompleteFixture.svelte +28 -0
- package/dist/components/autocomplete/AutocompleteFixture.svelte.d.ts +12 -0
- package/dist/components/autocomplete/AutocompleteInputGroup.svelte +3 -3
- package/dist/components/autocomplete/AutocompleteItem.svelte +14 -10
- package/dist/components/autocomplete/AutocompleteList.svelte +4 -2
- package/dist/components/autocomplete/AutocompleteTest.svelte +26 -0
- package/dist/components/autocomplete/AutocompleteTest.svelte.d.ts +8 -0
- package/dist/components/autocomplete/autocomplete-variants.d.ts +4 -0
- package/dist/components/autocomplete/autocomplete-variants.js +5 -0
- package/dist/components/autocomplete/autocomplete.test.js +28 -0
- package/dist/components/autocomplete/context.d.ts +3 -2
- package/dist/components/autocomplete/context.js +10 -10
- package/dist/components/autocomplete/index.d.ts +12 -12
- package/dist/components/autocomplete/index.js +12 -12
- package/dist/components/badge/Badge.svelte +13 -3
- package/dist/components/badge/Badge.svelte.d.ts +6 -4
- package/dist/components/badge/BadgeTestHost.svelte +14 -0
- package/dist/components/badge/BadgeTestHost.svelte.d.ts +10 -0
- package/dist/components/badge/badge.test.js +95 -0
- package/dist/components/banner/Banner.svelte +15 -22
- package/dist/components/banner/banner.test.js +14 -1
- package/dist/components/breadcrumbs/Breadcrumbs.svelte +13 -5
- package/dist/components/breadcrumbs/BreadcrumbsSeparator.svelte +6 -1
- package/dist/components/breadcrumbs/BreadcrumbsSeparator.svelte.d.ts +6 -25
- package/dist/components/breadcrumbs/breadcrumbs.test.js +88 -0
- package/dist/components/button/ButtonTitleTestHost.svelte +10 -0
- package/dist/components/button/ButtonTitleTestHost.svelte.d.ts +6 -0
- package/dist/components/button/LinkButton.svelte +2 -1
- package/dist/components/button/button.test.js +8 -0
- package/dist/components/chart/TimeseriesChart.svelte +1 -1
- package/dist/components/chart/chart.test.js +111 -0
- package/dist/components/chart/timeseries-annotations.test.js +42 -0
- package/dist/components/checkbox/Checkbox.svelte +1 -1
- package/dist/components/checkbox/Checkbox.svelte.d.ts +1 -1
- package/dist/components/checkbox/checkbox.test.js +87 -0
- package/dist/components/clipboard-text/ClipboardText.svelte +30 -42
- package/dist/components/clipboard-text/ClipboardText.svelte.d.ts +34 -31
- package/dist/components/clipboard-text/clipboard-text.test.js +73 -0
- package/dist/components/cloudflare-logo/cloudflare-logo.test.js +59 -0
- package/dist/components/code/CodeHighlighted.svelte +71 -35
- package/dist/components/code/CodeHighlighted.svelte.d.ts +2 -3
- package/dist/components/code/code-highlighted.test.js +33 -0
- package/dist/components/code/code.test.js +101 -0
- package/dist/components/collapsible/CollapsibleDefaultTrigger.svelte +4 -2
- package/dist/components/collapsible/CollapsibleTestHost.svelte +19 -0
- package/dist/components/collapsible/CollapsibleTestHost.svelte.d.ts +7 -0
- package/dist/components/collapsible/collapsible.test.js +67 -0
- package/dist/components/combobox/Combobox.svelte +79 -2
- package/dist/components/combobox/ComboboxContent.svelte +31 -41
- package/dist/components/combobox/ComboboxContent.svelte.d.ts +10 -0
- package/dist/components/combobox/ComboboxInput.svelte +1 -1
- package/dist/components/combobox/ComboboxItem.svelte +13 -10
- package/dist/components/combobox/ComboboxList.svelte +4 -2
- package/dist/components/combobox/ComboboxTest.svelte +36 -0
- package/dist/components/combobox/ComboboxTest.svelte.d.ts +8 -0
- package/dist/components/combobox/ComboboxTrigger.svelte +3 -4
- package/dist/components/combobox/ComboboxTriggerInput.svelte +13 -15
- package/dist/components/combobox/ComboboxTriggerInput.svelte.d.ts +4 -0
- package/dist/components/combobox/ComboboxTriggerInputFixture.svelte +31 -0
- package/dist/components/combobox/ComboboxTriggerInputFixture.svelte.d.ts +10 -0
- package/dist/components/combobox/ComboboxTriggerMultipleWithInput.svelte +3 -16
- package/dist/components/combobox/ComboboxTriggerValue.svelte +11 -5
- package/dist/components/combobox/ComboboxTriggerValue.svelte.d.ts +5 -0
- package/dist/components/combobox/ComboboxTriggerValueFixture.svelte +22 -0
- package/dist/components/combobox/ComboboxTriggerValueFixture.svelte.d.ts +8 -0
- package/dist/components/combobox/combobox-variants.d.ts +6 -0
- package/dist/components/combobox/combobox-variants.js +7 -0
- package/dist/components/combobox/combobox.test.js +36 -0
- package/dist/components/combobox/context.d.ts +4 -3
- package/dist/components/combobox/context.js +15 -15
- package/dist/components/combobox/index.d.ts +19 -19
- package/dist/components/combobox/index.js +19 -19
- package/dist/components/command-palette/CommandPalette.svelte +1 -1
- package/dist/components/command-palette/CommandPaletteInput.svelte +1 -1
- package/dist/components/command-palette/CommandPaletteTestHost.svelte +76 -0
- package/dist/components/command-palette/CommandPaletteTestHost.svelte.d.ts +3 -0
- package/dist/components/command-palette/command-palette.test.js +82 -0
- package/dist/components/date-picker/DatePicker.svelte.d.ts +1 -1
- package/dist/components/date-picker/date-picker.test.js +53 -0
- package/dist/components/date-range-picker/DateRangePicker.svelte +49 -1
- package/dist/components/date-range-picker/DateRangePicker.svelte.d.ts +40 -0
- package/dist/components/date-range-picker/date-range-picker.test.js +78 -0
- package/dist/components/dialog/Dialog.svelte +3 -7
- package/dist/components/dialog/Dialog.svelte.d.ts +1 -1
- package/dist/components/dialog/Dialog.variants.d.ts +4 -0
- package/dist/components/dialog/Dialog.variants.js +4 -0
- package/dist/components/dialog/DialogTestHost.svelte +24 -0
- package/dist/components/dialog/DialogTestHost.svelte.d.ts +6 -0
- package/dist/components/dialog/dialog.test.js +69 -9
- package/dist/components/dialog/index.d.ts +2 -1
- package/dist/components/dialog/index.js +1 -1
- package/dist/components/dropdown-menu/DropdownMenuItem.svelte +10 -3
- package/dist/components/dropdown-menu/DropdownMenuItem.svelte.d.ts +4 -1
- package/dist/components/dropdown-menu/DropdownMenuRadioItem.svelte +1 -1
- package/dist/components/dropdown-menu/DropdownMenuRadioItemIndicator.svelte +1 -1
- package/dist/components/dropdown-menu/DropdownMenuTestHost.svelte +39 -0
- package/dist/components/dropdown-menu/DropdownMenuTestHost.svelte.d.ts +3 -0
- package/dist/components/dropdown-menu/dropdown-menu.test.js +105 -0
- package/dist/components/dropdown-menu/index.d.ts +1 -1
- package/dist/components/dropdown-menu/index.js +1 -1
- package/dist/components/empty/Empty.svelte +1 -1
- package/dist/components/empty/empty.test.js +90 -0
- package/dist/components/field/Field.svelte +9 -5
- package/dist/components/field/Field.svelte.d.ts +14 -12
- package/dist/components/field/FieldTestHost.svelte +40 -0
- package/dist/components/field/FieldTestHost.svelte.d.ts +18 -0
- package/dist/components/field/field.test.js +80 -0
- package/dist/components/field/index.d.ts +2 -1
- package/dist/components/field/index.js +1 -0
- package/dist/components/grid/GridTestHost.svelte +17 -0
- package/dist/components/grid/GridTestHost.svelte.d.ts +9 -0
- package/dist/components/grid/grid.test.js +47 -0
- package/dist/components/input/Input.svelte +5 -3
- package/dist/components/input/Textarea.svelte +6 -3
- package/dist/components/input/input-variants.d.ts +104 -0
- package/dist/components/input/input-variants.js +81 -0
- package/dist/components/input/input.test.js +78 -0
- package/dist/components/input/textarea.test.js +37 -0
- package/dist/components/input-area/InputArea.svelte +6 -3
- package/dist/components/input-area/input-area.test.js +57 -0
- package/dist/components/input-group/InputGroup.svelte +12 -2
- package/dist/components/input-group/InputGroupInput.svelte +3 -3
- package/dist/components/input-group/InputGroupTestHost.svelte +44 -0
- package/dist/components/input-group/InputGroupTestHost.svelte.d.ts +13 -0
- package/dist/components/input-group/context.js +1 -1
- package/dist/components/input-group/input-group.test.js +69 -0
- package/dist/components/label/Label.svelte +8 -5
- package/dist/components/label/Label.svelte.d.ts +6 -7
- package/dist/components/label/LabelTestHost.svelte +30 -0
- package/dist/components/label/LabelTestHost.svelte.d.ts +12 -0
- package/dist/components/label/label.test.js +84 -0
- package/dist/components/layer-card/LayerCard.svelte +1 -19
- package/dist/components/layer-card/LayerCardPrimary.svelte +1 -13
- package/dist/components/layer-card/LayerCardSecondary.svelte +1 -13
- package/dist/components/layer-card/LayerCardTestHost.svelte +23 -0
- package/dist/components/layer-card/LayerCardTestHost.svelte.d.ts +7 -0
- package/dist/components/layer-card/layer-card.test.js +50 -0
- package/dist/components/link/link.test.js +100 -0
- package/dist/components/loader/SkeletonLine.svelte +30 -29
- package/dist/components/loader/loader.test.js +62 -0
- package/dist/components/menu-bar/MenuBar.svelte +2 -0
- package/dist/components/menu-bar/MenuBar.svelte.d.ts +1 -0
- package/dist/components/menu-bar/index.d.ts +1 -0
- package/dist/components/menu-bar/index.js +1 -0
- package/dist/components/menu-bar/menu-bar.test.js +97 -0
- package/dist/components/meter/meter.test.js +62 -0
- package/dist/components/pagination/Pagination.svelte +6 -0
- package/dist/components/pagination/Pagination.svelte.d.ts +2 -0
- package/dist/components/pagination/PaginationControls.svelte +13 -5
- package/dist/components/pagination/PaginationPageSizeTest.svelte +10 -0
- package/dist/components/pagination/PaginationPageSizeTest.svelte.d.ts +3 -0
- package/dist/components/pagination/PaginationSeparatorTest.svelte +8 -0
- package/dist/components/pagination/PaginationSeparatorTest.svelte.d.ts +18 -0
- package/dist/components/pagination/context.d.ts +1 -0
- package/dist/components/pagination/pagination.test.js +83 -0
- package/dist/components/popover/PopoverContent.svelte +3 -3
- package/dist/components/popover/PopoverTestHost.svelte +15 -0
- package/dist/components/popover/PopoverTestHost.svelte.d.ts +18 -0
- package/dist/components/popover/popover.test.js +51 -0
- package/dist/components/radio/Radio.svelte +1 -1
- package/dist/components/radio/Radio.svelte.d.ts +1 -1
- package/dist/components/radio/RadioItem.svelte +2 -2
- package/dist/components/radio/radio.test.js +151 -2
- package/dist/components/select/Select.svelte +47 -3
- package/dist/components/select/Select.svelte.d.ts +19 -0
- package/dist/components/select/select-variants.d.ts +81 -0
- package/dist/components/select/select-variants.js +74 -0
- package/dist/components/select/select.test.js +161 -11
- package/dist/components/sensitive-input/SensitiveInput.svelte +2 -1
- package/dist/components/sensitive-input/sensitive-input.test.js +92 -0
- package/dist/components/sidebar/Sidebar.svelte +25 -3
- package/dist/components/sidebar/SidebarCollapsible.svelte +2 -1
- package/dist/components/sidebar/SidebarContent.svelte +13 -7
- package/dist/components/sidebar/SidebarMenuButton.svelte +16 -2
- package/dist/components/sidebar/SidebarMenuButton.svelte.d.ts +1 -0
- package/dist/components/sidebar/SidebarMenuButton.test.js +8 -0
- package/dist/components/sidebar/SidebarMenuItem.svelte +12 -4
- package/dist/components/sidebar/SidebarMenuItem.svelte.d.ts +1 -0
- package/dist/components/sidebar/SidebarProvider.svelte +41 -1
- package/dist/components/sidebar/SidebarScrollTestHost.svelte +8 -0
- package/dist/components/sidebar/SidebarScrollTestHost.svelte.d.ts +18 -0
- package/dist/components/sidebar/SidebarScrollTestView.svelte +16 -0
- package/dist/components/sidebar/SidebarScrollTestView.svelte.d.ts +18 -0
- package/dist/components/sidebar/SidebarTestHost.svelte +4 -3
- package/dist/components/sidebar/SidebarTestHost.svelte.d.ts +1 -0
- package/dist/components/sidebar/context.d.ts +9 -0
- package/dist/components/sidebar/context.js +4 -0
- package/dist/components/sidebar/index.d.ts +2 -1
- package/dist/components/sidebar/index.js +1 -0
- package/dist/components/sidebar/sidebar.test.js +37 -0
- package/dist/components/surface/SurfaceTestHost.svelte +14 -0
- package/dist/components/surface/SurfaceTestHost.svelte.d.ts +9 -0
- package/dist/components/surface/surface.test.js +46 -0
- package/dist/components/switch/Switch.svelte +23 -1
- package/dist/components/switch/Switch.svelte.d.ts +34 -0
- package/dist/components/switch/switch.test.js +102 -0
- package/dist/components/table/Table.svelte +6 -6
- package/dist/components/table/Table.svelte.d.ts +2 -2
- package/dist/components/table/TableTestHost.svelte +83 -0
- package/dist/components/table/TableTestHost.svelte.d.ts +7 -0
- package/dist/components/table/table.test.js +72 -0
- package/dist/components/table-of-contents/TableOfContentsTestHost.svelte +34 -0
- package/dist/components/table-of-contents/TableOfContentsTestHost.svelte.d.ts +9 -0
- package/dist/components/table-of-contents/table-of-contents.test.js +74 -0
- package/dist/components/tabs/Tabs.svelte +56 -38
- package/dist/components/tabs/Tabs.test.js +117 -3
- package/dist/components/tabs/TabsTestHost.svelte +23 -0
- package/dist/components/tabs/TabsTestHost.svelte.d.ts +8 -0
- package/dist/components/tabs/tabs.test.js +132 -0
- package/dist/components/text/Text.svelte +63 -37
- package/dist/components/text/Text.svelte.d.ts +47 -23
- package/dist/components/text/TextTestHost.svelte +32 -0
- package/dist/components/text/TextTestHost.svelte.d.ts +13 -0
- package/dist/components/text/text.test.js +36 -0
- package/dist/components/toasty/KumoToastContent.svelte +1 -1
- package/dist/components/toasty/ToastPreview.svelte +35 -0
- package/dist/components/toasty/ToastPreview.svelte.d.ts +11 -0
- package/dist/components/toasty/index.d.ts +1 -0
- package/dist/components/toasty/index.js +1 -0
- package/dist/components/toasty/toasty.test.js +101 -0
- package/dist/components/toolbar/Toolbar.svelte +16 -2
- package/dist/components/toolbar/Toolbar.svelte.d.ts +1 -0
- package/dist/components/toolbar/ToolbarButton.svelte +1 -0
- package/dist/components/toolbar/ToolbarInput.svelte +8 -1
- package/dist/components/toolbar/ToolbarInputGroup.svelte +7 -1
- package/dist/components/toolbar/ToolbarLink.svelte +48 -0
- package/dist/components/toolbar/ToolbarLink.svelte.d.ts +20 -0
- package/dist/components/toolbar/ToolbarTestHost.svelte +36 -0
- package/dist/components/toolbar/context.d.ts +3 -0
- package/dist/components/toolbar/context.js +3 -1
- package/dist/components/toolbar/index.d.ts +4 -1
- package/dist/components/toolbar/index.js +3 -1
- package/dist/components/toolbar/toolbar.test.js +36 -1
- package/dist/components/tooltip/Tooltip.svelte +5 -5
- package/dist/components/tooltip/TooltipTestHost.svelte +17 -0
- package/dist/components/tooltip/TooltipTestHost.svelte.d.ts +18 -0
- package/dist/components/tooltip/tooltip.test.js +52 -0
- package/dist/docs/ComponentExample.svelte +10 -6
- package/dist/docs/ComponentExample.svelte.d.ts +3 -2
- package/dist/docs/HomeGrid.svelte +35 -60
- package/dist/docs/SearchDialog.svelte +10 -3
- package/dist/docs/TableOfContents.svelte +3 -60
- package/dist/docs/TailwindColorTokens.svelte +2 -2
- package/dist/docs/ThemeToggle.svelte +72 -24
- package/dist/docs/ThemeToggle.svelte.d.ts +2 -1
- package/dist/docs/ThemeToggle.test.js +53 -0
- package/dist/docs/canonicalDocs.d.ts +7 -0
- package/dist/docs/canonicalDocs.js +11 -0
- package/dist/docs/canonicalDocs.test.js +9 -0
- package/dist/docs/demo-snippets/BadgeIconDemo.svelte +6 -0
- package/dist/docs/demo-snippets/BadgeIconDemo.svelte.d.ts +18 -0
- package/dist/docs/demo-snippets/BadgeLinkDemo.svelte +8 -0
- package/dist/docs/demo-snippets/BadgeLinkDemo.svelte.d.ts +18 -0
- package/dist/docs/demo-snippets/PaginationUnknownTotalDemo.svelte +12 -0
- package/dist/docs/demo-snippets/PaginationUnknownTotalDemo.svelte.d.ts +3 -0
- package/dist/docs/demo-snippets/SelectPlacementDemo.svelte +20 -0
- package/dist/docs/demo-snippets/SelectPlacementDemo.svelte.d.ts +18 -0
- package/dist/docs/demo-snippets/TabsDefaultDemo.svelte +1 -1
- package/dist/docs/demo-snippets/TabsDynamicCountDemo.svelte +32 -0
- package/dist/docs/demo-snippets/TabsDynamicCountDemo.svelte.d.ts +3 -0
- package/dist/docs/demo-snippets/TabsSmDemo.svelte +1 -1
- package/dist/docs/demo-snippets/TextVariantsDemo.svelte +4 -8
- package/dist/docs/demo-snippets/ToolbarComboboxDemo.svelte +26 -0
- package/dist/docs/demo-snippets/ToolbarComboboxDemo.svelte.d.ts +18 -0
- package/dist/docs/demo-snippets/ToolbarLinksDemo.svelte +10 -0
- package/dist/docs/demo-snippets/ToolbarLinksDemo.svelte.d.ts +18 -0
- package/dist/docs/demo-snippets/ToolbarSelectDemo.svelte +20 -0
- package/dist/docs/demo-snippets/ToolbarSelectDemo.svelte.d.ts +18 -0
- package/dist/docs/nav.js +4 -3
- package/dist/docs/props-data/Autocomplete.d.ts +1 -1
- package/dist/docs/props-data/Autocomplete.js +74 -54
- package/dist/docs/props-data/Badge.js +6 -0
- package/dist/docs/props-data/Combobox.d.ts +1 -1
- package/dist/docs/props-data/Combobox.js +80 -55
- package/dist/docs/props-data/Combobox__Content.js +57 -0
- package/dist/docs/props-data/Pagination.js +6 -0
- package/dist/docs/props-data/Select.js +52 -0
- package/dist/docs/props-data/Sidebar__MenuButton.js +1 -0
- package/dist/docs/props-data/Sidebar__MenuItem.d.ts +3 -0
- package/dist/docs/props-data/Sidebar__MenuItem.js +6 -0
- package/dist/docs/props-data/Text.js +3 -3
- package/dist/docs/props-data/Toolbar.js +1 -1
- package/dist/docs/props-data/Toolbar__Link.d.ts +6 -0
- package/dist/docs/props-data/Toolbar__Link.js +32 -0
- package/dist/docs/svelteDemoSnippets.d.ts +1 -0
- package/dist/docs/svelteDemoSnippets.js +10 -12
- package/dist/index.d.ts +6 -3
- package/dist/index.js +4 -2
- package/dist/styles.css +2 -2
- package/dist/test-fixtures/BannerActionTest.svelte +11 -0
- package/dist/test-fixtures/BannerActionTest.svelte.d.ts +18 -0
- package/dist/utils/random.d.ts +8 -0
- package/dist/utils/random.js +37 -0
- package/dist/utils/random.test.js +29 -0
- package/dist/vrt/Scenario.svelte +73 -0
- package/dist/vrt/Scenario.svelte.d.ts +32 -0
- package/dist/vrt/galleries/autocomplete.svelte +93 -0
- package/dist/vrt/galleries/autocomplete.svelte.d.ts +4 -0
- package/dist/vrt/galleries/badge.svelte +42 -0
- package/dist/vrt/galleries/badge.svelte.d.ts +19 -0
- package/dist/vrt/galleries/banner.svelte +60 -0
- package/dist/vrt/galleries/banner.svelte.d.ts +19 -0
- package/dist/vrt/galleries/breadcrumbs.svelte +70 -0
- package/dist/vrt/galleries/breadcrumbs.svelte.d.ts +19 -0
- package/dist/vrt/galleries/button.svelte +79 -0
- package/dist/vrt/galleries/button.svelte.d.ts +19 -0
- package/dist/vrt/galleries/chart.svelte +66 -0
- package/dist/vrt/galleries/chart.svelte.d.ts +19 -0
- package/dist/vrt/galleries/checkbox.svelte +65 -0
- package/dist/vrt/galleries/checkbox.svelte.d.ts +19 -0
- package/dist/vrt/galleries/clipboard-text.svelte +34 -0
- package/dist/vrt/galleries/clipboard-text.svelte.d.ts +19 -0
- package/dist/vrt/galleries/cloudflare-logo.svelte +29 -0
- package/dist/vrt/galleries/cloudflare-logo.svelte.d.ts +19 -0
- package/dist/vrt/galleries/code.svelte +54 -0
- package/dist/vrt/galleries/code.svelte.d.ts +19 -0
- package/dist/vrt/galleries/collapsible.svelte +22 -0
- package/dist/vrt/galleries/collapsible.svelte.d.ts +19 -0
- package/dist/vrt/galleries/combobox.svelte +136 -0
- package/dist/vrt/galleries/combobox.svelte.d.ts +4 -0
- package/dist/vrt/galleries/command-palette.svelte +158 -0
- package/dist/vrt/galleries/command-palette.svelte.d.ts +4 -0
- package/dist/vrt/galleries/date-picker.svelte +52 -0
- package/dist/vrt/galleries/date-picker.svelte.d.ts +19 -0
- package/dist/vrt/galleries/date-range-picker.svelte +26 -0
- package/dist/vrt/galleries/date-range-picker.svelte.d.ts +19 -0
- package/dist/vrt/galleries/dialog.svelte +67 -0
- package/dist/vrt/galleries/dialog.svelte.d.ts +19 -0
- package/dist/vrt/galleries/dropdown-menu.svelte +51 -0
- package/dist/vrt/galleries/dropdown-menu.svelte.d.ts +4 -0
- package/dist/vrt/galleries/empty.svelte +60 -0
- package/dist/vrt/galleries/empty.svelte.d.ts +19 -0
- package/dist/vrt/galleries/field.svelte +67 -0
- package/dist/vrt/galleries/field.svelte.d.ts +19 -0
- package/dist/vrt/galleries/flow.svelte +49 -0
- package/dist/vrt/galleries/flow.svelte.d.ts +19 -0
- package/dist/vrt/galleries/grid.svelte +48 -0
- package/dist/vrt/galleries/grid.svelte.d.ts +19 -0
- package/dist/vrt/galleries/input-group.svelte +135 -0
- package/dist/vrt/galleries/input-group.svelte.d.ts +19 -0
- package/dist/vrt/galleries/input.svelte +88 -0
- package/dist/vrt/galleries/input.svelte.d.ts +19 -0
- package/dist/vrt/galleries/label.svelte +32 -0
- package/dist/vrt/galleries/label.svelte.d.ts +19 -0
- package/dist/vrt/galleries/layer-card.svelte +35 -0
- package/dist/vrt/galleries/layer-card.svelte.d.ts +19 -0
- package/dist/vrt/galleries/link.svelte +51 -0
- package/dist/vrt/galleries/link.svelte.d.ts +19 -0
- package/dist/vrt/galleries/loader.svelte +24 -0
- package/dist/vrt/galleries/loader.svelte.d.ts +19 -0
- package/dist/vrt/galleries/menu-bar.svelte +22 -0
- package/dist/vrt/galleries/menu-bar.svelte.d.ts +19 -0
- package/dist/vrt/galleries/meter.svelte +28 -0
- package/dist/vrt/galleries/meter.svelte.d.ts +19 -0
- package/dist/vrt/galleries/pagination.svelte +47 -0
- package/dist/vrt/galleries/pagination.svelte.d.ts +4 -0
- package/dist/vrt/galleries/popover.svelte +56 -0
- package/dist/vrt/galleries/popover.svelte.d.ts +19 -0
- package/dist/vrt/galleries/radio.svelte +105 -0
- package/dist/vrt/galleries/radio.svelte.d.ts +19 -0
- package/dist/vrt/galleries/select.svelte +87 -0
- package/dist/vrt/galleries/select.svelte.d.ts +19 -0
- package/dist/vrt/galleries/sensitive-input.svelte +50 -0
- package/dist/vrt/galleries/sensitive-input.svelte.d.ts +19 -0
- package/dist/vrt/galleries/sidebar.svelte +105 -0
- package/dist/vrt/galleries/sidebar.svelte.d.ts +19 -0
- package/dist/vrt/galleries/surface.svelte +16 -0
- package/dist/vrt/galleries/surface.svelte.d.ts +19 -0
- package/dist/vrt/galleries/switch.svelte +82 -0
- package/dist/vrt/galleries/switch.svelte.d.ts +19 -0
- package/dist/vrt/galleries/table-of-contents.svelte +72 -0
- package/dist/vrt/galleries/table-of-contents.svelte.d.ts +19 -0
- package/dist/vrt/galleries/table.svelte +170 -0
- package/dist/vrt/galleries/table.svelte.d.ts +19 -0
- package/dist/vrt/galleries/tabs.svelte +57 -0
- package/dist/vrt/galleries/tabs.svelte.d.ts +4 -0
- package/dist/vrt/galleries/text.svelte +61 -0
- package/dist/vrt/galleries/text.svelte.d.ts +19 -0
- package/dist/vrt/galleries/toasty.svelte +33 -0
- package/dist/vrt/galleries/toasty.svelte.d.ts +18 -0
- package/dist/vrt/galleries/tooltip.svelte +72 -0
- package/dist/vrt/galleries/tooltip.svelte.d.ts +19 -0
- package/dist/vrt/registry.d.ts +10 -0
- package/dist/vrt/registry.js +13 -0
- package/dist/vrt/types.d.ts +19 -0
- package/dist/vrt/types.js +12 -0
- package/package.json +26 -23
- package/src/app.d.ts +2 -0
- package/src/lib/components/autocomplete/Autocomplete.svelte +87 -2
- package/src/lib/components/autocomplete/AutocompleteContent.svelte +21 -41
- package/src/lib/components/autocomplete/AutocompleteFixture.svelte +28 -0
- package/src/lib/components/autocomplete/AutocompleteInputGroup.svelte +3 -3
- package/src/lib/components/autocomplete/AutocompleteItem.svelte +14 -10
- package/src/lib/components/autocomplete/AutocompleteList.svelte +4 -2
- package/src/lib/components/autocomplete/AutocompleteTest.svelte +26 -0
- package/src/lib/components/autocomplete/autocomplete-variants.ts +10 -0
- package/src/lib/components/autocomplete/autocomplete.test.ts +37 -0
- package/src/lib/components/autocomplete/context.ts +26 -16
- package/src/lib/components/autocomplete/index.ts +16 -13
- package/src/lib/components/badge/Badge.svelte +13 -3
- package/src/lib/components/badge/BadgeTestHost.svelte +14 -0
- package/src/lib/components/badge/badge.test.ts +110 -0
- package/src/lib/components/banner/Banner.svelte +15 -22
- package/src/lib/components/banner/banner.test.ts +20 -1
- package/src/lib/components/breadcrumbs/Breadcrumbs.svelte +13 -5
- package/src/lib/components/breadcrumbs/BreadcrumbsSeparator.svelte +6 -1
- package/src/lib/components/breadcrumbs/breadcrumbs.test.ts +112 -0
- package/src/lib/components/button/ButtonTitleTestHost.svelte +10 -0
- package/src/lib/components/button/LinkButton.svelte +2 -1
- package/src/lib/components/button/button.test.ts +12 -0
- package/src/lib/components/chart/TimeseriesChart.svelte +1 -1
- package/src/lib/components/chart/chart.test.ts +129 -0
- package/src/lib/components/chart/timeseries-annotations.test.ts +62 -0
- package/src/lib/components/checkbox/Checkbox.svelte +1 -1
- package/src/lib/components/checkbox/checkbox.test.ts +106 -0
- package/src/lib/components/clipboard-text/ClipboardText.svelte +30 -42
- package/src/lib/components/clipboard-text/clipboard-text.test.ts +83 -0
- package/src/lib/components/cloudflare-logo/cloudflare-logo.test.ts +70 -0
- package/src/lib/components/code/CodeHighlighted.svelte +71 -35
- package/src/lib/components/code/code-highlighted.test.ts +39 -0
- package/src/lib/components/code/code.test.ts +119 -0
- package/src/lib/components/collapsible/CollapsibleDefaultTrigger.svelte +4 -2
- package/src/lib/components/collapsible/CollapsibleTestHost.svelte +19 -0
- package/src/lib/components/collapsible/collapsible.test.ts +87 -0
- package/src/lib/components/combobox/Combobox.svelte +79 -2
- package/src/lib/components/combobox/ComboboxContent.svelte +31 -41
- package/src/lib/components/combobox/ComboboxInput.svelte +1 -1
- package/src/lib/components/combobox/ComboboxItem.svelte +13 -10
- package/src/lib/components/combobox/ComboboxList.svelte +4 -2
- package/src/lib/components/combobox/ComboboxTest.svelte +36 -0
- package/src/lib/components/combobox/ComboboxTrigger.svelte +3 -4
- package/src/lib/components/combobox/ComboboxTriggerInput.svelte +13 -15
- package/src/lib/components/combobox/ComboboxTriggerInputFixture.svelte +31 -0
- package/src/lib/components/combobox/ComboboxTriggerMultipleWithInput.svelte +3 -16
- package/src/lib/components/combobox/ComboboxTriggerValue.svelte +11 -5
- package/src/lib/components/combobox/ComboboxTriggerValueFixture.svelte +22 -0
- package/src/lib/components/combobox/combobox-variants.ts +21 -0
- package/src/lib/components/combobox/combobox.test.ts +47 -0
- package/src/lib/components/combobox/context.ts +30 -25
- package/src/lib/components/combobox/index.ts +24 -20
- package/src/lib/components/command-palette/CommandPalette.svelte +1 -1
- package/src/lib/components/command-palette/CommandPaletteInput.svelte +1 -1
- package/src/lib/components/command-palette/CommandPaletteTestHost.svelte +76 -0
- package/src/lib/components/command-palette/command-palette.test.ts +101 -0
- package/src/lib/components/date-picker/date-picker.test.ts +67 -0
- package/src/lib/components/date-range-picker/DateRangePicker.svelte +49 -1
- package/src/lib/components/date-range-picker/date-range-picker.test.ts +100 -0
- package/src/lib/components/dialog/Dialog.svelte +3 -7
- package/src/lib/components/dialog/Dialog.variants.ts +12 -0
- package/src/lib/components/dialog/DialogTestHost.svelte +24 -0
- package/src/lib/components/dialog/dialog.test.ts +86 -9
- package/src/lib/components/dialog/index.ts +2 -1
- package/src/lib/components/dropdown-menu/DropdownMenuItem.svelte +10 -3
- package/src/lib/components/dropdown-menu/DropdownMenuRadioItem.svelte +1 -1
- package/src/lib/components/dropdown-menu/DropdownMenuRadioItemIndicator.svelte +1 -1
- package/src/lib/components/dropdown-menu/DropdownMenuTestHost.svelte +39 -0
- package/src/lib/components/dropdown-menu/dropdown-menu.test.ts +127 -0
- package/src/lib/components/dropdown-menu/index.ts +1 -0
- package/src/lib/components/empty/Empty.svelte +1 -1
- package/src/lib/components/empty/empty.test.ts +105 -0
- package/src/lib/components/field/Field.svelte +9 -5
- package/src/lib/components/field/FieldTestHost.svelte +40 -0
- package/src/lib/components/field/field.test.ts +93 -0
- package/src/lib/components/field/index.ts +7 -1
- package/src/lib/components/grid/GridTestHost.svelte +17 -0
- package/src/lib/components/grid/grid.test.ts +59 -0
- package/src/lib/components/input/Input.svelte +5 -3
- package/src/lib/components/input/Textarea.svelte +6 -3
- package/src/lib/components/input/input-variants.ts +112 -0
- package/src/lib/components/input/input.test.ts +89 -0
- package/src/lib/components/input/textarea.test.ts +42 -0
- package/src/lib/components/input-area/InputArea.svelte +6 -3
- package/src/lib/components/input-area/input-area.test.ts +65 -0
- package/src/lib/components/input-group/InputGroup.svelte +12 -2
- package/src/lib/components/input-group/InputGroupInput.svelte +3 -3
- package/src/lib/components/input-group/InputGroupTestHost.svelte +44 -0
- package/src/lib/components/input-group/context.ts +1 -1
- package/src/lib/components/input-group/input-group.test.ts +79 -0
- package/src/lib/components/label/Label.svelte +8 -5
- package/src/lib/components/label/LabelTestHost.svelte +30 -0
- package/src/lib/components/label/label.test.ts +100 -0
- package/src/lib/components/layer-card/LayerCard.svelte +1 -19
- package/src/lib/components/layer-card/LayerCardPrimary.svelte +1 -13
- package/src/lib/components/layer-card/LayerCardSecondary.svelte +1 -13
- package/src/lib/components/layer-card/LayerCardTestHost.svelte +23 -0
- package/src/lib/components/layer-card/layer-card.test.ts +59 -0
- package/src/lib/components/link/link.test.ts +113 -0
- package/src/lib/components/loader/SkeletonLine.svelte +30 -29
- package/src/lib/components/loader/loader.test.ts +73 -0
- package/src/lib/components/menu-bar/MenuBar.svelte +2 -0
- package/src/lib/components/menu-bar/index.ts +1 -0
- package/src/lib/components/menu-bar/menu-bar.test.ts +118 -0
- package/src/lib/components/meter/meter.test.ts +72 -0
- package/src/lib/components/pagination/Pagination.svelte +6 -0
- package/src/lib/components/pagination/PaginationControls.svelte +13 -5
- package/src/lib/components/pagination/PaginationPageSizeTest.svelte +10 -0
- package/src/lib/components/pagination/PaginationSeparatorTest.svelte +8 -0
- package/src/lib/components/pagination/context.ts +1 -0
- package/src/lib/components/pagination/pagination.test.ts +99 -0
- package/src/lib/components/popover/PopoverContent.svelte +3 -3
- package/src/lib/components/popover/PopoverTestHost.svelte +15 -0
- package/src/lib/components/popover/popover.test.ts +65 -0
- package/src/lib/components/radio/Radio.svelte +1 -1
- package/src/lib/components/radio/RadioItem.svelte +2 -2
- package/src/lib/components/radio/radio.test.ts +171 -2
- package/src/lib/components/select/Select.svelte +47 -3
- package/src/lib/components/select/select-variants.ts +110 -0
- package/src/lib/components/select/select.test.ts +193 -11
- package/src/lib/components/sensitive-input/SensitiveInput.svelte +2 -1
- package/src/lib/components/sensitive-input/sensitive-input.test.ts +110 -0
- package/src/lib/components/sidebar/Sidebar.svelte +25 -3
- package/src/lib/components/sidebar/SidebarCollapsible.svelte +2 -1
- package/src/lib/components/sidebar/SidebarContent.svelte +13 -7
- package/src/lib/components/sidebar/SidebarMenuButton.svelte +16 -2
- package/src/lib/components/sidebar/SidebarMenuButton.test.ts +10 -0
- package/src/lib/components/sidebar/SidebarMenuItem.svelte +12 -4
- package/src/lib/components/sidebar/SidebarProvider.svelte +41 -1
- package/src/lib/components/sidebar/SidebarScrollTestHost.svelte +8 -0
- package/src/lib/components/sidebar/SidebarScrollTestView.svelte +16 -0
- package/src/lib/components/sidebar/SidebarTestHost.svelte +4 -3
- package/src/lib/components/sidebar/context.ts +13 -0
- package/src/lib/components/sidebar/index.ts +4 -0
- package/src/lib/components/sidebar/sidebar.test.ts +51 -0
- package/src/lib/components/surface/SurfaceTestHost.svelte +14 -0
- package/src/lib/components/surface/surface.test.ts +53 -0
- package/src/lib/components/switch/Switch.svelte +23 -1
- package/src/lib/components/switch/switch.test.ts +123 -0
- package/src/lib/components/table/Table.svelte +6 -6
- package/src/lib/components/table/TableTestHost.svelte +83 -0
- package/src/lib/components/table/table.test.ts +90 -0
- package/src/lib/components/table-of-contents/TableOfContentsTestHost.svelte +34 -0
- package/src/lib/components/table-of-contents/table-of-contents.test.ts +84 -0
- package/src/lib/components/tabs/Tabs.svelte +56 -38
- package/src/lib/components/tabs/Tabs.test.ts +142 -3
- package/src/lib/components/tabs/TabsTestHost.svelte +23 -0
- package/src/lib/components/tabs/tabs.test.ts +159 -0
- package/src/lib/components/text/Text.svelte +63 -37
- package/src/lib/components/text/TextTestHost.svelte +32 -0
- package/src/lib/components/text/text.test.ts +45 -0
- package/src/lib/components/toasty/KumoToastContent.svelte +1 -1
- package/src/lib/components/toasty/ToastPreview.svelte +35 -0
- package/src/lib/components/toasty/index.ts +1 -0
- package/src/lib/components/toasty/toasty.test.ts +131 -0
- package/src/lib/components/toolbar/Toolbar.svelte +16 -2
- package/src/lib/components/toolbar/ToolbarButton.svelte +1 -0
- package/src/lib/components/toolbar/ToolbarInput.svelte +8 -1
- package/src/lib/components/toolbar/ToolbarInputGroup.svelte +7 -1
- package/src/lib/components/toolbar/ToolbarLink.svelte +48 -0
- package/src/lib/components/toolbar/ToolbarTestHost.svelte +36 -0
- package/src/lib/components/toolbar/context.ts +5 -2
- package/src/lib/components/toolbar/index.ts +5 -0
- package/src/lib/components/toolbar/toolbar.test.ts +45 -0
- package/src/lib/components/tooltip/Tooltip.svelte +5 -5
- package/src/lib/components/tooltip/TooltipTestHost.svelte +17 -0
- package/src/lib/components/tooltip/tooltip.test.ts +65 -0
- package/src/lib/docs/ComponentExample.svelte +10 -6
- package/src/lib/docs/HomeGrid.svelte +35 -60
- package/src/lib/docs/SearchDialog.svelte +10 -3
- package/src/lib/docs/TableOfContents.svelte +3 -60
- package/src/lib/docs/TailwindColorTokens.svelte +2 -2
- package/src/lib/docs/ThemeToggle.svelte +72 -24
- package/src/lib/docs/ThemeToggle.test.ts +64 -0
- package/src/lib/docs/canonicalDocs.test.ts +11 -0
- package/src/lib/docs/canonicalDocs.ts +14 -0
- package/src/lib/docs/demo-snippets/BadgeIconDemo.svelte +6 -0
- package/src/lib/docs/demo-snippets/BadgeLinkDemo.svelte +8 -0
- package/src/lib/docs/demo-snippets/PaginationUnknownTotalDemo.svelte +12 -0
- package/src/lib/docs/demo-snippets/SelectPlacementDemo.svelte +20 -0
- package/src/lib/docs/demo-snippets/TabsDefaultDemo.svelte +1 -1
- package/src/lib/docs/demo-snippets/TabsDynamicCountDemo.svelte +32 -0
- package/src/lib/docs/demo-snippets/TabsSmDemo.svelte +1 -1
- package/src/lib/docs/demo-snippets/TextVariantsDemo.svelte +4 -8
- package/src/lib/docs/demo-snippets/ToolbarComboboxDemo.svelte +26 -0
- package/src/lib/docs/demo-snippets/ToolbarLinksDemo.svelte +10 -0
- package/src/lib/docs/demo-snippets/ToolbarSelectDemo.svelte +20 -0
- package/src/lib/docs/nav.ts +5 -3
- package/src/lib/docs/props-data/Autocomplete.ts +75 -55
- package/src/lib/docs/props-data/Badge.ts +6 -0
- package/src/lib/docs/props-data/Combobox.ts +81 -56
- package/src/lib/docs/props-data/Combobox__Content.ts +57 -0
- package/src/lib/docs/props-data/Pagination.ts +6 -0
- package/src/lib/docs/props-data/Select.ts +52 -0
- package/src/lib/docs/props-data/Sidebar__MenuButton.ts +1 -0
- package/src/lib/docs/props-data/Sidebar__MenuItem.ts +9 -0
- package/src/lib/docs/props-data/Text.ts +3 -3
- package/src/lib/docs/props-data/Toolbar.ts +1 -1
- package/src/lib/docs/props-data/Toolbar__Link.ts +32 -0
- package/src/lib/docs/svelteDemoSnippets.ts +11 -12
- package/src/lib/index.ts +10 -1
- package/src/lib/styles.css +39 -60
- package/src/lib/test-fixtures/BannerActionTest.svelte +11 -0
- package/src/lib/utils/random.test.ts +36 -0
- package/src/lib/utils/random.ts +56 -0
- package/src/lib/vrt/Scenario.svelte +73 -0
- package/src/lib/vrt/galleries/autocomplete.svelte +93 -0
- package/src/lib/vrt/galleries/badge.svelte +42 -0
- package/src/lib/vrt/galleries/banner.svelte +60 -0
- package/src/lib/vrt/galleries/breadcrumbs.svelte +70 -0
- package/src/lib/vrt/galleries/button.svelte +79 -0
- package/src/lib/vrt/galleries/chart.svelte +66 -0
- package/src/lib/vrt/galleries/checkbox.svelte +65 -0
- package/src/lib/vrt/galleries/clipboard-text.svelte +34 -0
- package/src/lib/vrt/galleries/cloudflare-logo.svelte +29 -0
- package/src/lib/vrt/galleries/code.svelte +54 -0
- package/src/lib/vrt/galleries/collapsible.svelte +22 -0
- package/src/lib/vrt/galleries/combobox.svelte +136 -0
- package/src/lib/vrt/galleries/command-palette.svelte +158 -0
- package/src/lib/vrt/galleries/date-picker.svelte +52 -0
- package/src/lib/vrt/galleries/date-range-picker.svelte +26 -0
- package/src/lib/vrt/galleries/dialog.svelte +67 -0
- package/src/lib/vrt/galleries/dropdown-menu.svelte +51 -0
- package/src/lib/vrt/galleries/empty.svelte +60 -0
- package/src/lib/vrt/galleries/field.svelte +67 -0
- package/src/lib/vrt/galleries/flow.svelte +49 -0
- package/src/lib/vrt/galleries/grid.svelte +48 -0
- package/src/lib/vrt/galleries/input-group.svelte +135 -0
- package/src/lib/vrt/galleries/input.svelte +88 -0
- package/src/lib/vrt/galleries/label.svelte +32 -0
- package/src/lib/vrt/galleries/layer-card.svelte +35 -0
- package/src/lib/vrt/galleries/link.svelte +51 -0
- package/src/lib/vrt/galleries/loader.svelte +24 -0
- package/src/lib/vrt/galleries/menu-bar.svelte +22 -0
- package/src/lib/vrt/galleries/meter.svelte +28 -0
- package/src/lib/vrt/galleries/pagination.svelte +47 -0
- package/src/lib/vrt/galleries/popover.svelte +56 -0
- package/src/lib/vrt/galleries/radio.svelte +105 -0
- package/src/lib/vrt/galleries/select.svelte +87 -0
- package/src/lib/vrt/galleries/sensitive-input.svelte +50 -0
- package/src/lib/vrt/galleries/sidebar.svelte +105 -0
- package/src/lib/vrt/galleries/surface.svelte +16 -0
- package/src/lib/vrt/galleries/switch.svelte +82 -0
- package/src/lib/vrt/galleries/table-of-contents.svelte +72 -0
- package/src/lib/vrt/galleries/table.svelte +170 -0
- package/src/lib/vrt/galleries/tabs.svelte +57 -0
- package/src/lib/vrt/galleries/text.svelte +61 -0
- package/src/lib/vrt/galleries/toasty.svelte +33 -0
- package/src/lib/vrt/galleries/tooltip.svelte +72 -0
- package/src/lib/vrt/registry.ts +21 -0
- package/src/lib/vrt/types.ts +21 -0
- package/src/routes/+error.svelte +104 -0
- package/src/routes/+layout.svelte +65 -12
- package/src/routes/changelog/+page.svelte +1 -1
- package/src/routes/colors/+server.ts +6 -0
- package/src/routes/components/autocomplete/+page.md +7 -20
- package/src/routes/components/badge/+page.md +12 -0
- package/src/routes/components/combobox/+page.md +7 -22
- package/src/routes/components/pagination/+page.md +17 -0
- package/src/routes/components/select/+page.md +41 -63
- package/src/routes/components/sidebar/+page.md +3 -1
- package/src/routes/components/skeleton-line/+page.md +5 -0
- package/src/routes/components/tabs/+page.md +14 -0
- package/src/routes/components/text/+page.md +8 -12
- package/src/routes/components/toolbar/+page.md +42 -6
- package/src/routes/figma/+server.ts +6 -0
- package/src/routes/installation/+page.md +30 -0
- package/src/routes/llms.txt/+server.ts +14 -7
- package/src/routes/skill/+server.ts +6 -0
- package/src/routes/vrt/+layout.svelte +52 -0
- package/src/routes/vrt/+layout.ts +4 -0
- package/src/routes/vrt/+page.svelte +22 -0
- package/src/routes/vrt/[component]/+page.svelte +50 -0
- package/dist/components/banner/banner.test.d.ts +0 -1
- package/dist/components/button/button.test.d.ts +0 -1
- package/dist/components/chart/BubbleMap.test.d.ts +0 -1
- package/dist/components/date-picker/date-picker.test.d.ts +0 -1
- package/dist/components/dialog/dialog.test.d.ts +0 -1
- package/dist/components/flow/flow.test.d.ts +0 -1
- package/dist/components/pagination/pagination.test.d.ts +0 -1
- package/dist/components/radio/radio.test.d.ts +0 -1
- package/dist/components/select/select.test.d.ts +0 -1
- package/dist/components/sidebar/SidebarMenuButton.test.d.ts +0 -1
- package/dist/components/sidebar/sidebar.test.d.ts +0 -1
- package/dist/components/tabs/Tabs.test.d.ts +0 -1
- package/dist/components/toolbar/toolbar.test.d.ts +0 -1
- package/dist/docs/demo-snippets/MenuBarBasicDemo.svelte +0 -26
- package/dist/docs/demo-snippets/MenuBarBasicDemo.svelte.d.ts +0 -3
- package/dist/docs/demo-snippets/MenuBarNoActiveDemo.svelte +0 -26
- package/dist/docs/demo-snippets/MenuBarNoActiveDemo.svelte.d.ts +0 -3
- package/dist/docs/demo-snippets/MenuBarTextFormattingDemo.svelte +0 -26
- package/dist/docs/demo-snippets/MenuBarTextFormattingDemo.svelte.d.ts +0 -3
- package/src/lib/docs/demo-snippets/MenuBarBasicDemo.svelte +0 -26
- package/src/lib/docs/demo-snippets/MenuBarNoActiveDemo.svelte +0 -26
- package/src/lib/docs/demo-snippets/MenuBarTextFormattingDemo.svelte +0 -26
- package/src/routes/colors/+page.md +0 -339
- package/src/routes/components/menu-bar/+page.md +0 -87
- package/src/routes/figma/+page.md +0 -207
package/README.md
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Cloudflare's component library for building modern web applications, ported to Svelte.
|
|
4
4
|
|
|
5
|
+
> This is an independent community package and is not affiliated with, sponsored by, or endorsed by Cloudflare.
|
|
6
|
+
|
|
7
|
+
The expanded fidelity test coverage was contributed by [axel-rock](https://github.com/axel-rock/kumo-svelte).
|
|
8
|
+
|
|
5
9
|
Kumo Svelte provides accessible, design-system-compliant UI components built on [Bits UI](https://bits-ui.com/). It handles keyboard navigation, focus management, and ARIA attributes so you can build accessible applications without thinking through every detail.
|
|
6
10
|
|
|
7
11
|
<img width="2560" height="1456" alt="Kumo UI preview" src="https://github.com/user-attachments/assets/032f5a0e-b686-4440-b1ca-6182379479aa" />
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.13.0",
|
|
3
3
|
"components": {
|
|
4
4
|
"Autocomplete": {
|
|
5
5
|
"name": "Autocomplete",
|
|
@@ -75,6 +75,29 @@
|
|
|
75
75
|
"type": "(open: boolean) => void",
|
|
76
76
|
"optional": true,
|
|
77
77
|
"description": "Called when open state changes."
|
|
78
|
+
},
|
|
79
|
+
"disabled": {
|
|
80
|
+
"type": "boolean",
|
|
81
|
+
"optional": true,
|
|
82
|
+
"default": "false",
|
|
83
|
+
"description": "Prevents interaction with the field."
|
|
84
|
+
},
|
|
85
|
+
"size": {
|
|
86
|
+
"type": "enum",
|
|
87
|
+
"optional": true,
|
|
88
|
+
"values": [
|
|
89
|
+
"xs",
|
|
90
|
+
"sm",
|
|
91
|
+
"base",
|
|
92
|
+
"lg"
|
|
93
|
+
],
|
|
94
|
+
"default": "base",
|
|
95
|
+
"description": "Size preset."
|
|
96
|
+
},
|
|
97
|
+
"filter": {
|
|
98
|
+
"type": "((item: AutocompleteItem, query: string) => boolean) | null",
|
|
99
|
+
"optional": true,
|
|
100
|
+
"description": "Custom filter function. Set to null to disable filtering."
|
|
78
101
|
}
|
|
79
102
|
},
|
|
80
103
|
"colors": [
|
|
@@ -320,6 +343,11 @@
|
|
|
320
343
|
"optional": true,
|
|
321
344
|
"description": "Additional classes merged onto the root element."
|
|
322
345
|
},
|
|
346
|
+
"icon": {
|
|
347
|
+
"type": "Component",
|
|
348
|
+
"optional": true,
|
|
349
|
+
"description": "Icon rendered before the content on filled badges."
|
|
350
|
+
},
|
|
323
351
|
"children": {
|
|
324
352
|
"type": "Snippet",
|
|
325
353
|
"optional": false,
|
|
@@ -337,6 +365,7 @@
|
|
|
337
365
|
"bg-kumo-badge-red",
|
|
338
366
|
"bg-kumo-badge-teal",
|
|
339
367
|
"bg-kumo-badge-teal-subtle",
|
|
368
|
+
"bg-kumo-base",
|
|
340
369
|
"bg-kumo-danger-tint",
|
|
341
370
|
"bg-kumo-fill",
|
|
342
371
|
"bg-kumo-info-tint",
|
|
@@ -1691,7 +1720,7 @@
|
|
|
1691
1720
|
},
|
|
1692
1721
|
"colors": [
|
|
1693
1722
|
"border-kumo-fill",
|
|
1694
|
-
"text-kumo-
|
|
1723
|
+
"text-kumo-default"
|
|
1695
1724
|
],
|
|
1696
1725
|
"subComponents": {
|
|
1697
1726
|
"DefaultPanel": {
|
|
@@ -1938,6 +1967,27 @@
|
|
|
1938
1967
|
"type": "(open: boolean) => void",
|
|
1939
1968
|
"optional": true,
|
|
1940
1969
|
"description": "Called when open state changes."
|
|
1970
|
+
},
|
|
1971
|
+
"disabled": {
|
|
1972
|
+
"type": "boolean",
|
|
1973
|
+
"optional": true,
|
|
1974
|
+
"default": "false",
|
|
1975
|
+
"description": "Prevents interaction with the field."
|
|
1976
|
+
},
|
|
1977
|
+
"defaultValue": {
|
|
1978
|
+
"type": "unknown",
|
|
1979
|
+
"optional": true,
|
|
1980
|
+
"description": "Initial value."
|
|
1981
|
+
},
|
|
1982
|
+
"filter": {
|
|
1983
|
+
"type": "((item: ComboboxItem, query: string) => boolean) | null",
|
|
1984
|
+
"optional": true,
|
|
1985
|
+
"description": "Custom filter function. Set to null to disable filtering."
|
|
1986
|
+
},
|
|
1987
|
+
"isItemEqualToValue": {
|
|
1988
|
+
"type": "(item: unknown, value: unknown) => boolean",
|
|
1989
|
+
"optional": true,
|
|
1990
|
+
"description": "Custom value equality matcher function."
|
|
1941
1991
|
}
|
|
1942
1992
|
},
|
|
1943
1993
|
"colors": [
|
|
@@ -2005,6 +2055,66 @@
|
|
|
2005
2055
|
"optional": true,
|
|
2006
2056
|
"default": "4",
|
|
2007
2057
|
"description": "Offset between the popup and the trigger."
|
|
2058
|
+
},
|
|
2059
|
+
"customAnchor": {
|
|
2060
|
+
"type": "string | HTMLElement | Measurable | null",
|
|
2061
|
+
"optional": true,
|
|
2062
|
+
"description": "Custom element or virtual anchor used to position the popup."
|
|
2063
|
+
},
|
|
2064
|
+
"strategy": {
|
|
2065
|
+
"type": "enum",
|
|
2066
|
+
"optional": true,
|
|
2067
|
+
"values": [
|
|
2068
|
+
"absolute",
|
|
2069
|
+
"fixed"
|
|
2070
|
+
],
|
|
2071
|
+
"description": "CSS positioning strategy used by the floating content."
|
|
2072
|
+
},
|
|
2073
|
+
"avoidCollisions": {
|
|
2074
|
+
"type": "boolean",
|
|
2075
|
+
"optional": true,
|
|
2076
|
+
"default": "true",
|
|
2077
|
+
"description": "Adjust placement to avoid crossing collision boundaries."
|
|
2078
|
+
},
|
|
2079
|
+
"collisionBoundary": {
|
|
2080
|
+
"type": "Boundary | Boundary[]",
|
|
2081
|
+
"optional": true,
|
|
2082
|
+
"description": "Boundary elements used for collision detection."
|
|
2083
|
+
},
|
|
2084
|
+
"collisionPadding": {
|
|
2085
|
+
"type": "number | Partial<Record<Side, number>>",
|
|
2086
|
+
"optional": true,
|
|
2087
|
+
"default": "8",
|
|
2088
|
+
"description": "Padding kept between the popup and collision boundaries."
|
|
2089
|
+
},
|
|
2090
|
+
"sticky": {
|
|
2091
|
+
"type": "enum",
|
|
2092
|
+
"optional": true,
|
|
2093
|
+
"values": [
|
|
2094
|
+
"partial",
|
|
2095
|
+
"always"
|
|
2096
|
+
],
|
|
2097
|
+
"description": "How the popup remains attached when its anchor approaches a boundary."
|
|
2098
|
+
},
|
|
2099
|
+
"hideWhenDetached": {
|
|
2100
|
+
"type": "boolean",
|
|
2101
|
+
"optional": true,
|
|
2102
|
+
"description": "Hide the popup when its anchor is fully clipped."
|
|
2103
|
+
},
|
|
2104
|
+
"updatePositionStrategy": {
|
|
2105
|
+
"type": "enum",
|
|
2106
|
+
"optional": true,
|
|
2107
|
+
"values": [
|
|
2108
|
+
"optimized",
|
|
2109
|
+
"always"
|
|
2110
|
+
],
|
|
2111
|
+
"default": "'optimized'",
|
|
2112
|
+
"description": "How frequently floating position updates are calculated."
|
|
2113
|
+
},
|
|
2114
|
+
"container": {
|
|
2115
|
+
"type": "HTMLElement | string",
|
|
2116
|
+
"optional": true,
|
|
2117
|
+
"description": "Portal target for the popup content."
|
|
2008
2118
|
}
|
|
2009
2119
|
}
|
|
2010
2120
|
},
|
|
@@ -2111,11 +2221,9 @@
|
|
|
2111
2221
|
"bg-kumo-elevated",
|
|
2112
2222
|
"bg-kumo-overlay",
|
|
2113
2223
|
"bg-kumo-warning",
|
|
2114
|
-
"border-kumo-line",
|
|
2115
2224
|
"ring-kumo-brand",
|
|
2116
2225
|
"ring-kumo-hairline",
|
|
2117
2226
|
"text-kumo-default",
|
|
2118
|
-
"text-kumo-placeholder",
|
|
2119
2227
|
"text-kumo-subtle"
|
|
2120
2228
|
],
|
|
2121
2229
|
"subComponents": {
|
|
@@ -3611,8 +3719,6 @@
|
|
|
3611
3719
|
"bg-kumo-base",
|
|
3612
3720
|
"bg-kumo-elevated",
|
|
3613
3721
|
"ring-kumo-fill",
|
|
3614
|
-
"ring-kumo-hairline",
|
|
3615
|
-
"ring-kumo-line",
|
|
3616
3722
|
"text-kumo-subtle"
|
|
3617
3723
|
]
|
|
3618
3724
|
},
|
|
@@ -3697,9 +3803,9 @@
|
|
|
3697
3803
|
"name": "MenuBar",
|
|
3698
3804
|
"type": "component",
|
|
3699
3805
|
"category": "Navigation",
|
|
3700
|
-
"description": "
|
|
3701
|
-
"importPath": "kumo-svelte/components/
|
|
3702
|
-
"sourceFile": "components/
|
|
3806
|
+
"description": "Deprecated horizontal menu bar. Use segmented Tabs for new work.",
|
|
3807
|
+
"importPath": "kumo-svelte/components/menu-bar",
|
|
3808
|
+
"sourceFile": "components/menu-bar",
|
|
3703
3809
|
"props": {
|
|
3704
3810
|
"class": {
|
|
3705
3811
|
"type": "string",
|
|
@@ -3725,7 +3831,14 @@
|
|
|
3725
3831
|
"description": "When true, each option's id is used for active matching instead of its array index."
|
|
3726
3832
|
}
|
|
3727
3833
|
},
|
|
3728
|
-
"colors": [
|
|
3834
|
+
"colors": [
|
|
3835
|
+
"bg-kumo-base",
|
|
3836
|
+
"bg-kumo-recessed",
|
|
3837
|
+
"border-kumo-recessed",
|
|
3838
|
+
"ring-kumo-brand",
|
|
3839
|
+
"ring-kumo-focus",
|
|
3840
|
+
"ring-kumo-line"
|
|
3841
|
+
]
|
|
3729
3842
|
},
|
|
3730
3843
|
"Meter": {
|
|
3731
3844
|
"name": "Meter",
|
|
@@ -3821,6 +3934,11 @@
|
|
|
3821
3934
|
"optional": true,
|
|
3822
3935
|
"description": "Total number of items across all pages."
|
|
3823
3936
|
},
|
|
3937
|
+
"hasNextPage": {
|
|
3938
|
+
"type": "boolean",
|
|
3939
|
+
"optional": true,
|
|
3940
|
+
"description": "Whether another page exists when the total count is unknown."
|
|
3941
|
+
},
|
|
3824
3942
|
"class": {
|
|
3825
3943
|
"type": "string",
|
|
3826
3944
|
"optional": true,
|
|
@@ -3981,9 +4099,10 @@
|
|
|
3981
4099
|
},
|
|
3982
4100
|
"colors": [
|
|
3983
4101
|
"bg-kumo-base",
|
|
4102
|
+
"fill-kumo-arrow-edge",
|
|
4103
|
+
"fill-kumo-arrow-stroke",
|
|
3984
4104
|
"fill-kumo-base",
|
|
3985
|
-
"
|
|
3986
|
-
"fill-kumo-tip-stroke",
|
|
4105
|
+
"ring-kumo-line",
|
|
3987
4106
|
"text-kumo-default",
|
|
3988
4107
|
"text-kumo-subtle"
|
|
3989
4108
|
]
|
|
@@ -4525,14 +4644,83 @@
|
|
|
4525
4644
|
"type": "HTMLElement | string",
|
|
4526
4645
|
"optional": true,
|
|
4527
4646
|
"description": "Container element for the portal."
|
|
4647
|
+
},
|
|
4648
|
+
"side": {
|
|
4649
|
+
"type": "enum",
|
|
4650
|
+
"optional": true,
|
|
4651
|
+
"values": [
|
|
4652
|
+
"top",
|
|
4653
|
+
"right",
|
|
4654
|
+
"bottom",
|
|
4655
|
+
"left"
|
|
4656
|
+
],
|
|
4657
|
+
"default": "bottom",
|
|
4658
|
+
"description": "Preferred popup side; collision handling may flip it."
|
|
4659
|
+
},
|
|
4660
|
+
"sideOffset": {
|
|
4661
|
+
"type": "number",
|
|
4662
|
+
"optional": true,
|
|
4663
|
+
"default": "4",
|
|
4664
|
+
"description": "Distance between the trigger and popup."
|
|
4665
|
+
},
|
|
4666
|
+
"align": {
|
|
4667
|
+
"type": "enum",
|
|
4668
|
+
"optional": true,
|
|
4669
|
+
"values": [
|
|
4670
|
+
"start",
|
|
4671
|
+
"center",
|
|
4672
|
+
"end"
|
|
4673
|
+
],
|
|
4674
|
+
"default": "start",
|
|
4675
|
+
"description": "Popup alignment along the trigger edge."
|
|
4676
|
+
},
|
|
4677
|
+
"alignOffset": {
|
|
4678
|
+
"type": "number",
|
|
4679
|
+
"optional": true,
|
|
4680
|
+
"default": "0",
|
|
4681
|
+
"description": "Additional offset along the alignment axis."
|
|
4682
|
+
},
|
|
4683
|
+
"customAnchor": {
|
|
4684
|
+
"type": "HTMLElement | string",
|
|
4685
|
+
"optional": true,
|
|
4686
|
+
"description": "Custom floating-position anchor."
|
|
4687
|
+
},
|
|
4688
|
+
"strategy": {
|
|
4689
|
+
"type": "enum",
|
|
4690
|
+
"optional": true,
|
|
4691
|
+
"values": [
|
|
4692
|
+
"absolute",
|
|
4693
|
+
"fixed"
|
|
4694
|
+
],
|
|
4695
|
+
"description": "CSS positioning strategy for the popup."
|
|
4696
|
+
},
|
|
4697
|
+
"avoidCollisions": {
|
|
4698
|
+
"type": "boolean",
|
|
4699
|
+
"optional": true,
|
|
4700
|
+
"description": "Whether the popup should adjust to avoid viewport collisions."
|
|
4701
|
+
},
|
|
4702
|
+
"collisionPadding": {
|
|
4703
|
+
"type": "enum",
|
|
4704
|
+
"optional": true,
|
|
4705
|
+
"values": [
|
|
4706
|
+
"top",
|
|
4707
|
+
"right",
|
|
4708
|
+
"bottom",
|
|
4709
|
+
"left"
|
|
4710
|
+
],
|
|
4711
|
+
"description": "Padding between the popup and its collision boundary."
|
|
4528
4712
|
}
|
|
4529
4713
|
},
|
|
4530
4714
|
"colors": [
|
|
4531
4715
|
"bg-kumo-base",
|
|
4716
|
+
"bg-kumo-control",
|
|
4717
|
+
"bg-kumo-hairline",
|
|
4532
4718
|
"bg-kumo-tint",
|
|
4719
|
+
"border-kumo-line",
|
|
4533
4720
|
"ring-kumo-brand",
|
|
4534
4721
|
"ring-kumo-danger",
|
|
4535
4722
|
"ring-kumo-focus",
|
|
4723
|
+
"ring-kumo-hairline",
|
|
4536
4724
|
"ring-kumo-line",
|
|
4537
4725
|
"text-kumo-default",
|
|
4538
4726
|
"text-kumo-placeholder",
|
|
@@ -4816,6 +5004,11 @@
|
|
|
4816
5004
|
"optional": true,
|
|
4817
5005
|
"description": "Tooltip label shown when the sidebar is collapsed."
|
|
4818
5006
|
},
|
|
5007
|
+
"itemId": {
|
|
5008
|
+
"type": "string",
|
|
5009
|
+
"optional": true,
|
|
5010
|
+
"description": "Anchor id used by useSidebar().scrollToItem()."
|
|
5011
|
+
},
|
|
4819
5012
|
"children": {
|
|
4820
5013
|
"type": "Snippet",
|
|
4821
5014
|
"optional": true,
|
|
@@ -4828,6 +5021,26 @@
|
|
|
4828
5021
|
}
|
|
4829
5022
|
}
|
|
4830
5023
|
},
|
|
5024
|
+
"MenuItem": {
|
|
5025
|
+
"description": "Sidebar.MenuItem",
|
|
5026
|
+
"props": {
|
|
5027
|
+
"itemId": {
|
|
5028
|
+
"type": "string",
|
|
5029
|
+
"optional": true,
|
|
5030
|
+
"description": "Anchor id used by useSidebar().scrollToItem()."
|
|
5031
|
+
},
|
|
5032
|
+
"children": {
|
|
5033
|
+
"type": "Snippet",
|
|
5034
|
+
"optional": true,
|
|
5035
|
+
"description": "Menu item content."
|
|
5036
|
+
},
|
|
5037
|
+
"class": {
|
|
5038
|
+
"type": "string",
|
|
5039
|
+
"optional": true,
|
|
5040
|
+
"description": "Additional classes."
|
|
5041
|
+
}
|
|
5042
|
+
}
|
|
5043
|
+
},
|
|
4831
5044
|
"MenuSubButton": {
|
|
4832
5045
|
"description": "Sidebar.MenuSubButton",
|
|
4833
5046
|
"props": {
|
|
@@ -5740,7 +5953,6 @@
|
|
|
5740
5953
|
"colors": [
|
|
5741
5954
|
"bg-kumo-base",
|
|
5742
5955
|
"bg-kumo-brand",
|
|
5743
|
-
"bg-kumo-elevated",
|
|
5744
5956
|
"bg-kumo-recessed",
|
|
5745
5957
|
"bg-kumo-tint",
|
|
5746
5958
|
"border-kumo-hairline",
|
|
@@ -5764,6 +5976,7 @@
|
|
|
5764
5976
|
"type": "enum",
|
|
5765
5977
|
"optional": true,
|
|
5766
5978
|
"values": [
|
|
5979
|
+
"heading",
|
|
5767
5980
|
"heading1",
|
|
5768
5981
|
"heading2",
|
|
5769
5982
|
"heading3",
|
|
@@ -5775,7 +5988,7 @@
|
|
|
5775
5988
|
"error"
|
|
5776
5989
|
],
|
|
5777
5990
|
"default": "body",
|
|
5778
|
-
"description": "Visual variant."
|
|
5991
|
+
"description": "Visual variant. Numbered heading variants are deprecated; use heading with size and as."
|
|
5779
5992
|
},
|
|
5780
5993
|
"size": {
|
|
5781
5994
|
"type": "enum",
|
|
@@ -5787,7 +6000,7 @@
|
|
|
5787
6000
|
"lg"
|
|
5788
6001
|
],
|
|
5789
6002
|
"default": "base",
|
|
5790
|
-
"description": "Size preset."
|
|
6003
|
+
"description": "Size preset. Heading accepts lg for a 20px heading; its default is 16px."
|
|
5791
6004
|
},
|
|
5792
6005
|
"bold": {
|
|
5793
6006
|
"type": "boolean",
|
|
@@ -6030,7 +6243,7 @@
|
|
|
6030
6243
|
"lg"
|
|
6031
6244
|
],
|
|
6032
6245
|
"default": "base",
|
|
6033
|
-
"description": "
|
|
6246
|
+
"description": "Deprecated. Sets every toolbar item to this size; omit it for the base size."
|
|
6034
6247
|
},
|
|
6035
6248
|
"class": {
|
|
6036
6249
|
"type": "string",
|
|
@@ -6115,6 +6328,46 @@
|
|
|
6115
6328
|
"description": "Additional classes merged onto the toolbar input group."
|
|
6116
6329
|
}
|
|
6117
6330
|
}
|
|
6331
|
+
},
|
|
6332
|
+
"Link": {
|
|
6333
|
+
"description": "Toolbar.Link",
|
|
6334
|
+
"props": {
|
|
6335
|
+
"children": {
|
|
6336
|
+
"type": "Snippet",
|
|
6337
|
+
"optional": true,
|
|
6338
|
+
"description": "Optional visible link label."
|
|
6339
|
+
},
|
|
6340
|
+
"href": {
|
|
6341
|
+
"type": "string",
|
|
6342
|
+
"optional": true,
|
|
6343
|
+
"description": "Navigation destination."
|
|
6344
|
+
},
|
|
6345
|
+
"icon": {
|
|
6346
|
+
"type": "Component",
|
|
6347
|
+
"optional": true,
|
|
6348
|
+
"description": "Optional icon component rendered before the label."
|
|
6349
|
+
},
|
|
6350
|
+
"shape": {
|
|
6351
|
+
"type": "enum",
|
|
6352
|
+
"optional": true,
|
|
6353
|
+
"values": [
|
|
6354
|
+
"base",
|
|
6355
|
+
"square",
|
|
6356
|
+
"circle"
|
|
6357
|
+
],
|
|
6358
|
+
"description": "Link shape. Icon-only toolbar links default to square."
|
|
6359
|
+
},
|
|
6360
|
+
"external": {
|
|
6361
|
+
"type": "boolean",
|
|
6362
|
+
"optional": true,
|
|
6363
|
+
"description": "Opens the link in a new tab with safe rel attributes."
|
|
6364
|
+
},
|
|
6365
|
+
"disabled": {
|
|
6366
|
+
"type": "boolean",
|
|
6367
|
+
"optional": true,
|
|
6368
|
+
"description": "Disables navigation and exposes disabled semantics."
|
|
6369
|
+
}
|
|
6370
|
+
}
|
|
6118
6371
|
}
|
|
6119
6372
|
}
|
|
6120
6373
|
},
|
|
@@ -6199,9 +6452,9 @@
|
|
|
6199
6452
|
},
|
|
6200
6453
|
"colors": [
|
|
6201
6454
|
"bg-kumo-base",
|
|
6455
|
+
"fill-kumo-arrow-edge",
|
|
6456
|
+
"fill-kumo-arrow-stroke",
|
|
6202
6457
|
"fill-kumo-base",
|
|
6203
|
-
"fill-kumo-tip-shadow",
|
|
6204
|
-
"fill-kumo-tip-stroke",
|
|
6205
6458
|
"text-kumo-default"
|
|
6206
6459
|
]
|
|
6207
6460
|
}
|
package/ai/component-registry.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Kumo Svelte Component Registry
|
|
2
2
|
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0
|
|
4
4
|
|
|
5
5
|
## Autocomplete
|
|
6
6
|
|
|
@@ -236,11 +236,11 @@ A loading spinner to indicate loading state.
|
|
|
236
236
|
|
|
237
237
|
## MenuBar
|
|
238
238
|
|
|
239
|
-
|
|
239
|
+
Deprecated horizontal menu bar. Use segmented Tabs for new work.
|
|
240
240
|
|
|
241
241
|
- Category: Navigation
|
|
242
|
-
- Import: `import { MenuBar } from "kumo-svelte/components/
|
|
243
|
-
- Source: `components/
|
|
242
|
+
- Import: `import { MenuBar } from "kumo-svelte/components/menu-bar";`
|
|
243
|
+
- Source: `components/menu-bar`
|
|
244
244
|
|
|
245
245
|
## Meter
|
|
246
246
|
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
type NormalizedAutocompleteItem
|
|
13
13
|
} from './context';
|
|
14
14
|
import { createKumoFilter } from '../filter';
|
|
15
|
+
import { Combobox as ComboboxPrimitive } from 'bits-ui';
|
|
15
16
|
|
|
16
17
|
type FieldError = string | { message?: string; match?: boolean };
|
|
17
18
|
|
|
@@ -22,6 +23,7 @@
|
|
|
22
23
|
value?: AutocompleteValue;
|
|
23
24
|
defaultValue?: AutocompleteValue;
|
|
24
25
|
open?: boolean;
|
|
26
|
+
disabled?: boolean;
|
|
25
27
|
size?: AutocompleteSize;
|
|
26
28
|
label?: string | Snippet;
|
|
27
29
|
labelTooltip?: string | Snippet;
|
|
@@ -41,6 +43,7 @@
|
|
|
41
43
|
defaultValue,
|
|
42
44
|
value = $bindable(defaultValue ?? ''),
|
|
43
45
|
open = $bindable(false),
|
|
46
|
+
disabled = false,
|
|
44
47
|
size = 'base',
|
|
45
48
|
label,
|
|
46
49
|
labelTooltip,
|
|
@@ -73,6 +76,62 @@
|
|
|
73
76
|
});
|
|
74
77
|
});
|
|
75
78
|
|
|
79
|
+
const serializedOptions = $derived(
|
|
80
|
+
normalizedItems.map((item, index) => ({
|
|
81
|
+
...item,
|
|
82
|
+
serializedValue: `kumo-autocomplete:${index}`
|
|
83
|
+
}))
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
function serializeSelectedValue(selectionValue: unknown) {
|
|
87
|
+
const option = serializedOptions.find((entry) => valuesEqual(entry.value, selectionValue as AutocompleteValue));
|
|
88
|
+
if (option) return option.serializedValue;
|
|
89
|
+
return typeof selectionValue === 'string' || typeof selectionValue === 'number' ? String(selectionValue) : undefined;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function deserializePrimitiveValue(primitiveValue: string) {
|
|
93
|
+
const option = serializedOptions.find((entry) => entry.serializedValue === primitiveValue);
|
|
94
|
+
return option ? option.value : primitiveValue;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const primitiveValue = $derived.by(() => {
|
|
98
|
+
if (Array.isArray(value)) {
|
|
99
|
+
return value.map(serializeSelectedValue).filter((v): v is string => v !== undefined);
|
|
100
|
+
}
|
|
101
|
+
const val = serializeSelectedValue(value);
|
|
102
|
+
return val !== undefined ? val : '';
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
function handleSingleValueChange(nextValue: string | undefined) {
|
|
106
|
+
if (nextValue === undefined) return;
|
|
107
|
+
const deserialized = deserializePrimitiveValue(nextValue);
|
|
108
|
+
value = deserialized;
|
|
109
|
+
const option = serializedOptions.find((entry) => entry.serializedValue === nextValue);
|
|
110
|
+
if (option) {
|
|
111
|
+
query = option.label;
|
|
112
|
+
}
|
|
113
|
+
open = false;
|
|
114
|
+
onValueChange?.(deserialized);
|
|
115
|
+
onOpenChange?.(false);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function handleMultipleValueChange(nextValue: string[]) {
|
|
119
|
+
const deserialized = nextValue.map(deserializePrimitiveValue).map(String);
|
|
120
|
+
value = deserialized;
|
|
121
|
+
onValueChange?.(deserialized);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
$effect(() => {
|
|
125
|
+
if (!open) {
|
|
126
|
+
if (Array.isArray(value)) {
|
|
127
|
+
query = value.join(', ');
|
|
128
|
+
} else {
|
|
129
|
+
const option = serializedOptions.find((entry) => entry.value === value);
|
|
130
|
+
query = option ? option.label : String(value ?? '');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
|
|
76
135
|
function valuesEqual(itemValue: string | number, selectedValue: AutocompleteValue) {
|
|
77
136
|
if (Array.isArray(selectedValue)) return selectedValue.some((selected) => itemValue === selected);
|
|
78
137
|
return itemValue === selectedValue;
|
|
@@ -151,13 +210,39 @@
|
|
|
151
210
|
onOpenChange?.(false);
|
|
152
211
|
},
|
|
153
212
|
isSelected,
|
|
154
|
-
select
|
|
213
|
+
select,
|
|
214
|
+
serializeValue(itemValue: unknown): string {
|
|
215
|
+
const option = serializedOptions.find((entry) => entry.value === itemValue);
|
|
216
|
+
return option?.serializedValue ?? String(itemValue ?? '');
|
|
217
|
+
}
|
|
155
218
|
});
|
|
156
219
|
</script>
|
|
157
220
|
|
|
158
221
|
{#snippet control()}
|
|
159
222
|
<div bind:this={rootElement} class={cn('relative w-full', className)} {...rest}>
|
|
160
|
-
{
|
|
223
|
+
{#if Array.isArray(value)}
|
|
224
|
+
<ComboboxPrimitive.Root
|
|
225
|
+
type="multiple"
|
|
226
|
+
value={Array.isArray(primitiveValue) ? primitiveValue : []}
|
|
227
|
+
onValueChange={handleMultipleValueChange}
|
|
228
|
+
bind:open={open}
|
|
229
|
+
disabled={disabled}
|
|
230
|
+
inputValue={query}
|
|
231
|
+
>
|
|
232
|
+
{@render children?.()}
|
|
233
|
+
</ComboboxPrimitive.Root>
|
|
234
|
+
{:else}
|
|
235
|
+
<ComboboxPrimitive.Root
|
|
236
|
+
type="single"
|
|
237
|
+
value={Array.isArray(primitiveValue) ? (primitiveValue[0] ?? '') : primitiveValue}
|
|
238
|
+
onValueChange={handleSingleValueChange}
|
|
239
|
+
bind:open={open}
|
|
240
|
+
disabled={disabled}
|
|
241
|
+
inputValue={query}
|
|
242
|
+
>
|
|
243
|
+
{@render children?.()}
|
|
244
|
+
</ComboboxPrimitive.Root>
|
|
245
|
+
{/if}
|
|
161
246
|
</div>
|
|
162
247
|
{/snippet}
|
|
163
248
|
|