kumo-svelte 0.9.0 → 0.12.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 +161 -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/CollapsibleDefaultPanel.svelte +7 -2
- 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/ComboboxItem.svelte +13 -10
- package/dist/components/combobox/ComboboxList.svelte +4 -2
- package/dist/components/combobox/ComboboxTest.svelte +34 -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 +27 -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/DialogTestHost.svelte +24 -0
- package/dist/components/dialog/DialogTestHost.svelte.d.ts +6 -0
- package/dist/components/dialog/dialog.test.js +62 -9
- 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/input-group.test.js +65 -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/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/pagination.test.js +64 -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 +7 -0
- package/dist/components/select/Select.svelte.d.ts +4 -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 +129 -1
- 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 +67 -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 -35
- 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 +59 -33
- package/dist/components/text/Text.svelte.d.ts +43 -19
- 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 +25 -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/ToolbarTestHost.svelte +30 -0
- package/dist/components/toolbar/context.d.ts +3 -0
- package/dist/components/toolbar/context.js +3 -1
- package/dist/components/toolbar/toolbar.test.js +21 -0
- package/dist/components/tooltip/Tooltip.svelte +4 -4
- package/dist/components/tooltip/TooltipTestHost.svelte +13 -0
- package/dist/components/tooltip/TooltipTestHost.svelte.d.ts +18 -0
- package/dist/components/tooltip/tooltip.test.js +46 -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/TabsDynamicCountDemo.svelte +32 -0
- package/dist/docs/demo-snippets/TabsDynamicCountDemo.svelte.d.ts +3 -0
- 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/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/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/svelteDemoSnippets.d.ts +1 -0
- package/dist/docs/svelteDemoSnippets.js +10 -12
- package/dist/index.d.ts +4 -1
- package/dist/index.js +3 -1
- 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/CollapsibleDefaultPanel.svelte +7 -2
- 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/ComboboxItem.svelte +13 -10
- package/src/lib/components/combobox/ComboboxList.svelte +4 -2
- package/src/lib/components/combobox/ComboboxTest.svelte +34 -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 +36 -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/DialogTestHost.svelte +24 -0
- package/src/lib/components/dialog/dialog.test.ts +78 -9
- 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/input-group.test.ts +74 -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/PaginationPageSizeTest.svelte +10 -0
- package/src/lib/components/pagination/PaginationSeparatorTest.svelte +8 -0
- package/src/lib/components/pagination/pagination.test.ts +76 -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 +7 -0
- package/src/lib/components/select/select-variants.ts +110 -0
- package/src/lib/components/select/select.test.ts +153 -1
- 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 +78 -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 -35
- 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 +59 -33
- package/src/lib/components/text/TextTestHost.svelte +32 -0
- package/src/lib/components/text/text.test.ts +33 -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/ToolbarTestHost.svelte +30 -0
- package/src/lib/components/toolbar/context.ts +5 -2
- package/src/lib/components/toolbar/toolbar.test.ts +28 -0
- package/src/lib/components/tooltip/Tooltip.svelte +4 -4
- package/src/lib/components/tooltip/TooltipTestHost.svelte +13 -0
- package/src/lib/components/tooltip/tooltip.test.ts +58 -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/TabsDynamicCountDemo.svelte +32 -0
- 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/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/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/svelteDemoSnippets.ts +11 -12
- package/src/lib/index.ts +8 -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/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 +29 -5
- 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.12.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",
|
|
@@ -3981,9 +4094,10 @@
|
|
|
3981
4094
|
},
|
|
3982
4095
|
"colors": [
|
|
3983
4096
|
"bg-kumo-base",
|
|
4097
|
+
"fill-kumo-arrow-edge",
|
|
4098
|
+
"fill-kumo-arrow-stroke",
|
|
3984
4099
|
"fill-kumo-base",
|
|
3985
|
-
"
|
|
3986
|
-
"fill-kumo-tip-stroke",
|
|
4100
|
+
"ring-kumo-line",
|
|
3987
4101
|
"text-kumo-default",
|
|
3988
4102
|
"text-kumo-subtle"
|
|
3989
4103
|
]
|
|
@@ -4529,10 +4643,14 @@
|
|
|
4529
4643
|
},
|
|
4530
4644
|
"colors": [
|
|
4531
4645
|
"bg-kumo-base",
|
|
4646
|
+
"bg-kumo-elevated",
|
|
4647
|
+
"bg-kumo-hairline",
|
|
4532
4648
|
"bg-kumo-tint",
|
|
4649
|
+
"border-kumo-line",
|
|
4533
4650
|
"ring-kumo-brand",
|
|
4534
4651
|
"ring-kumo-danger",
|
|
4535
4652
|
"ring-kumo-focus",
|
|
4653
|
+
"ring-kumo-hairline",
|
|
4536
4654
|
"ring-kumo-line",
|
|
4537
4655
|
"text-kumo-default",
|
|
4538
4656
|
"text-kumo-placeholder",
|
|
@@ -4816,6 +4934,11 @@
|
|
|
4816
4934
|
"optional": true,
|
|
4817
4935
|
"description": "Tooltip label shown when the sidebar is collapsed."
|
|
4818
4936
|
},
|
|
4937
|
+
"itemId": {
|
|
4938
|
+
"type": "string",
|
|
4939
|
+
"optional": true,
|
|
4940
|
+
"description": "Anchor id used by useSidebar().scrollToItem()."
|
|
4941
|
+
},
|
|
4819
4942
|
"children": {
|
|
4820
4943
|
"type": "Snippet",
|
|
4821
4944
|
"optional": true,
|
|
@@ -4828,6 +4951,26 @@
|
|
|
4828
4951
|
}
|
|
4829
4952
|
}
|
|
4830
4953
|
},
|
|
4954
|
+
"MenuItem": {
|
|
4955
|
+
"description": "Sidebar.MenuItem",
|
|
4956
|
+
"props": {
|
|
4957
|
+
"itemId": {
|
|
4958
|
+
"type": "string",
|
|
4959
|
+
"optional": true,
|
|
4960
|
+
"description": "Anchor id used by useSidebar().scrollToItem()."
|
|
4961
|
+
},
|
|
4962
|
+
"children": {
|
|
4963
|
+
"type": "Snippet",
|
|
4964
|
+
"optional": true,
|
|
4965
|
+
"description": "Menu item content."
|
|
4966
|
+
},
|
|
4967
|
+
"class": {
|
|
4968
|
+
"type": "string",
|
|
4969
|
+
"optional": true,
|
|
4970
|
+
"description": "Additional classes."
|
|
4971
|
+
}
|
|
4972
|
+
}
|
|
4973
|
+
},
|
|
4831
4974
|
"MenuSubButton": {
|
|
4832
4975
|
"description": "Sidebar.MenuSubButton",
|
|
4833
4976
|
"props": {
|
|
@@ -5740,7 +5883,6 @@
|
|
|
5740
5883
|
"colors": [
|
|
5741
5884
|
"bg-kumo-base",
|
|
5742
5885
|
"bg-kumo-brand",
|
|
5743
|
-
"bg-kumo-elevated",
|
|
5744
5886
|
"bg-kumo-recessed",
|
|
5745
5887
|
"bg-kumo-tint",
|
|
5746
5888
|
"border-kumo-hairline",
|
|
@@ -5764,6 +5906,7 @@
|
|
|
5764
5906
|
"type": "enum",
|
|
5765
5907
|
"optional": true,
|
|
5766
5908
|
"values": [
|
|
5909
|
+
"heading",
|
|
5767
5910
|
"heading1",
|
|
5768
5911
|
"heading2",
|
|
5769
5912
|
"heading3",
|
|
@@ -5775,7 +5918,7 @@
|
|
|
5775
5918
|
"error"
|
|
5776
5919
|
],
|
|
5777
5920
|
"default": "body",
|
|
5778
|
-
"description": "Visual variant."
|
|
5921
|
+
"description": "Visual variant. Numbered heading variants are deprecated; use heading with size and as."
|
|
5779
5922
|
},
|
|
5780
5923
|
"size": {
|
|
5781
5924
|
"type": "enum",
|
|
@@ -5787,7 +5930,7 @@
|
|
|
5787
5930
|
"lg"
|
|
5788
5931
|
],
|
|
5789
5932
|
"default": "base",
|
|
5790
|
-
"description": "Size preset."
|
|
5933
|
+
"description": "Size preset. Heading accepts lg for a 20px heading; its default is 16px."
|
|
5791
5934
|
},
|
|
5792
5935
|
"bold": {
|
|
5793
5936
|
"type": "boolean",
|
|
@@ -6030,7 +6173,7 @@
|
|
|
6030
6173
|
"lg"
|
|
6031
6174
|
],
|
|
6032
6175
|
"default": "base",
|
|
6033
|
-
"description": "
|
|
6176
|
+
"description": "Deprecated. Sets every toolbar item to this size; omit it for the base size."
|
|
6034
6177
|
},
|
|
6035
6178
|
"class": {
|
|
6036
6179
|
"type": "string",
|
|
@@ -6199,9 +6342,9 @@
|
|
|
6199
6342
|
},
|
|
6200
6343
|
"colors": [
|
|
6201
6344
|
"bg-kumo-base",
|
|
6345
|
+
"fill-kumo-arrow-edge",
|
|
6346
|
+
"fill-kumo-arrow-stroke",
|
|
6202
6347
|
"fill-kumo-base",
|
|
6203
|
-
"fill-kumo-tip-shadow",
|
|
6204
|
-
"fill-kumo-tip-stroke",
|
|
6205
6348
|
"text-kumo-default"
|
|
6206
6349
|
]
|
|
6207
6350
|
}
|
package/ai/component-registry.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Kumo Svelte Component Registry
|
|
2
2
|
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.12.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
|
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import type { Snippet } from 'svelte';
|
|
3
3
|
import { getAutocompleteContext } from './context';
|
|
4
4
|
import { cn } from '../../utils/cn';
|
|
5
|
+
import { Combobox as ComboboxPrimitive } from 'bits-ui';
|
|
5
6
|
|
|
6
7
|
type AutocompleteContentAlign = 'start' | 'center' | 'end';
|
|
7
8
|
type AutocompleteContentSide = 'top' | 'right' | 'bottom' | 'left';
|
|
@@ -30,49 +31,28 @@
|
|
|
30
31
|
}: Props = $props();
|
|
31
32
|
const context = getAutocompleteContext('Autocomplete.Content');
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const verticalAlignClasses: Record<AutocompleteContentAlign, string> = {
|
|
40
|
-
start: 'top-[var(--autocomplete-align-offset)]',
|
|
41
|
-
center: 'top-1/2 -translate-y-1/2',
|
|
42
|
-
end: 'bottom-[var(--autocomplete-align-offset)]'
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
const sideClasses: Record<AutocompleteContentSide, string> = {
|
|
46
|
-
top: 'bottom-full mb-[var(--autocomplete-side-offset)]',
|
|
47
|
-
right: 'left-full ml-[var(--autocomplete-side-offset)]',
|
|
48
|
-
bottom: 'top-full mt-[var(--autocomplete-side-offset)]',
|
|
49
|
-
left: 'right-full mr-[var(--autocomplete-side-offset)]'
|
|
50
|
-
};
|
|
51
|
-
|
|
52
|
-
function toCssUnit(value: Offset) {
|
|
53
|
-
return typeof value === 'number' ? `${value}px` : value;
|
|
34
|
+
function toNumberOffset(val: Offset): number {
|
|
35
|
+
if (typeof val === 'number') return val;
|
|
36
|
+
const parsed = parseFloat(val);
|
|
37
|
+
return isNaN(parsed) ? 0 : parsed;
|
|
54
38
|
}
|
|
55
|
-
|
|
56
|
-
const positionStyle = $derived(
|
|
57
|
-
`--autocomplete-align-offset: ${toCssUnit(alignOffset)}; --autocomplete-side-offset: ${toCssUnit(sideOffset)};${style ? ` ${style}` : ''}`
|
|
58
|
-
);
|
|
59
|
-
const positionClass = $derived.by(() =>
|
|
60
|
-
side === 'top' || side === 'bottom'
|
|
61
|
-
? cn(sideClasses[side], horizontalAlignClasses[align])
|
|
62
|
-
: cn(sideClasses[side], verticalAlignClasses[align])
|
|
63
|
-
);
|
|
64
39
|
</script>
|
|
65
40
|
|
|
66
41
|
{#if context.open && context.hasTypedSinceFocus && context.filteredItems.length}
|
|
67
|
-
<
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
42
|
+
<ComboboxPrimitive.Portal>
|
|
43
|
+
<ComboboxPrimitive.Content
|
|
44
|
+
class={cn(
|
|
45
|
+
'z-50 flex max-h-[min(24rem,calc(100vh-8rem))] min-w-[calc(var(--bits-select-anchor-width)+3px)] flex-col overflow-hidden rounded-lg bg-kumo-control py-1.5 text-kumo-default shadow-lg ring ring-kumo-line outline-none',
|
|
46
|
+
className
|
|
47
|
+
)}
|
|
48
|
+
side={side}
|
|
49
|
+
sideOffset={toNumberOffset(sideOffset)}
|
|
50
|
+
align={align}
|
|
51
|
+
alignOffset={toNumberOffset(alignOffset)}
|
|
52
|
+
style={style}
|
|
53
|
+
{...rest}
|
|
54
|
+
>
|
|
55
|
+
{@render children?.()}
|
|
56
|
+
</ComboboxPrimitive.Content>
|
|
57
|
+
</ComboboxPrimitive.Portal>
|
|
78
58
|
{/if}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Autocomplete } from './index';
|
|
3
|
+
|
|
4
|
+
interface Props {
|
|
5
|
+
items?: { label: string; value: string }[];
|
|
6
|
+
value?: string;
|
|
7
|
+
error?: string;
|
|
8
|
+
onValueChange?: (value: unknown) => void;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
let {
|
|
12
|
+
items = [],
|
|
13
|
+
value = $bindable(''),
|
|
14
|
+
error,
|
|
15
|
+
onValueChange
|
|
16
|
+
}: Props = $props();
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<Autocomplete bind:value {items} {error} {onValueChange} class="w-[220px]">
|
|
20
|
+
<Autocomplete.InputGroup placeholder="Search countries…" />
|
|
21
|
+
<Autocomplete.Content>
|
|
22
|
+
<Autocomplete.List>
|
|
23
|
+
{#snippet children(item)}
|
|
24
|
+
<Autocomplete.Item value={item}>{item.label}</Autocomplete.Item>
|
|
25
|
+
{/snippet}
|
|
26
|
+
</Autocomplete.List>
|
|
27
|
+
</Autocomplete.Content>
|
|
28
|
+
</Autocomplete>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface Props {
|
|
2
|
+
items?: {
|
|
3
|
+
label: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}[];
|
|
6
|
+
value?: string;
|
|
7
|
+
error?: string;
|
|
8
|
+
onValueChange?: (value: unknown) => void;
|
|
9
|
+
}
|
|
10
|
+
declare const AutocompleteFixture: import("svelte").Component<Props, {}, "value">;
|
|
11
|
+
type AutocompleteFixture = ReturnType<typeof AutocompleteFixture>;
|
|
12
|
+
export default AutocompleteFixture;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { getAutocompleteContext, type AutocompleteSize } from './context';
|
|
3
3
|
import { cn } from '../../utils/cn';
|
|
4
|
+
import { Combobox as ComboboxPrimitive } from 'bits-ui';
|
|
4
5
|
|
|
5
6
|
export interface Props {
|
|
6
7
|
class?: string;
|
|
@@ -28,17 +29,16 @@
|
|
|
28
29
|
}
|
|
29
30
|
</script>
|
|
30
31
|
|
|
31
|
-
<
|
|
32
|
+
<ComboboxPrimitive.Input
|
|
32
33
|
class={cn(
|
|
33
34
|
'w-full border-0 bg-kumo-control text-kumo-default shadow-xs ring ring-kumo-line outline-none focus:outline-none',
|
|
34
35
|
'placeholder:text-kumo-placeholder disabled:text-kumo-disabled',
|
|
35
36
|
context.invalid
|
|
36
|
-
? '
|
|
37
|
+
? 'ring-kumo-danger! focus:ring-kumo-danger/50 focus:ring-[1.5px]'
|
|
37
38
|
: 'focus:ring-kumo-focus/50 focus:ring-[1.5px]',
|
|
38
39
|
sizes[size ?? context.size],
|
|
39
40
|
className
|
|
40
41
|
)}
|
|
41
|
-
value={context.query}
|
|
42
42
|
{placeholder}
|
|
43
43
|
aria-invalid={context.invalid || undefined}
|
|
44
44
|
onbeforeinput={(event) => {
|