bits-ui 2.7.0 → 2.8.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 -4
- package/dist/bits/accordion/accordion.svelte.d.ts +66 -58
- package/dist/bits/accordion/accordion.svelte.js +56 -51
- package/dist/bits/accordion/components/accordion-content.svelte +4 -4
- package/dist/bits/accordion/components/accordion-header.svelte +2 -2
- package/dist/bits/accordion/components/accordion-item.svelte +2 -2
- package/dist/bits/accordion/components/accordion-trigger.svelte +2 -2
- package/dist/bits/accordion/components/accordion.svelte +2 -2
- package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +2 -2
- package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +2 -2
- package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +3 -3
- package/dist/bits/alert-dialog/components/alert-dialog.svelte +9 -3
- package/dist/bits/aspect-ratio/aspect-ratio.svelte.d.ts +10 -16
- package/dist/bits/aspect-ratio/aspect-ratio.svelte.js +4 -11
- package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +2 -2
- package/dist/bits/avatar/avatar.svelte.d.ts +25 -33
- package/dist/bits/avatar/avatar.svelte.js +20 -21
- package/dist/bits/avatar/components/avatar-fallback.svelte +2 -2
- package/dist/bits/avatar/components/avatar-image.svelte +2 -2
- package/dist/bits/avatar/components/avatar.svelte +2 -2
- package/dist/bits/calendar/calendar.svelte.d.ts +117 -106
- package/dist/bits/calendar/calendar.svelte.js +51 -52
- package/dist/bits/calendar/components/calendar-cell.svelte +2 -2
- package/dist/bits/calendar/components/calendar-day.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid-body.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid-head.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid-row.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid.svelte +2 -2
- package/dist/bits/calendar/components/calendar-head-cell.svelte +2 -2
- package/dist/bits/calendar/components/calendar-header.svelte +2 -2
- package/dist/bits/calendar/components/calendar-heading.svelte +5 -5
- package/dist/bits/calendar/components/calendar-month-select.svelte +2 -2
- package/dist/bits/calendar/components/calendar-next-button.svelte +2 -2
- package/dist/bits/calendar/components/calendar-prev-button.svelte +2 -2
- package/dist/bits/calendar/components/calendar-year-select.svelte +2 -2
- package/dist/bits/calendar/components/calendar.svelte +2 -2
- package/dist/bits/checkbox/checkbox.svelte.d.ts +37 -34
- package/dist/bits/checkbox/checkbox.svelte.js +19 -22
- package/dist/bits/checkbox/components/checkbox-group-label.svelte +2 -2
- package/dist/bits/checkbox/components/checkbox-group.svelte +2 -2
- package/dist/bits/checkbox/components/checkbox-input.svelte +2 -2
- package/dist/bits/checkbox/components/checkbox.svelte +2 -2
- package/dist/bits/collapsible/collapsible.svelte.d.ts +30 -27
- package/dist/bits/collapsible/collapsible.svelte.js +23 -15
- package/dist/bits/collapsible/components/collapsible-content.svelte +5 -5
- package/dist/bits/collapsible/components/collapsible-content.svelte.d.ts +1 -4
- package/dist/bits/collapsible/components/collapsible-trigger.svelte +2 -2
- package/dist/bits/collapsible/components/collapsible.svelte +4 -2
- package/dist/bits/collapsible/types.d.ts +4 -0
- package/dist/bits/combobox/components/combobox-input.svelte +2 -2
- package/dist/bits/combobox/components/combobox-trigger.svelte +2 -2
- package/dist/bits/combobox/components/combobox.svelte +4 -2
- package/dist/bits/command/command.svelte.d.ts +103 -92
- package/dist/bits/command/command.svelte.js +55 -57
- package/dist/bits/command/components/_command-label.svelte +2 -2
- package/dist/bits/command/components/command-empty.svelte +2 -2
- package/dist/bits/command/components/command-group-heading.svelte +2 -2
- package/dist/bits/command/components/command-group-items.svelte +2 -2
- package/dist/bits/command/components/command-group.svelte +2 -2
- package/dist/bits/command/components/command-input.svelte +2 -2
- package/dist/bits/command/components/command-item.svelte +2 -2
- package/dist/bits/command/components/command-link-item.svelte +2 -2
- package/dist/bits/command/components/command-list.svelte +2 -2
- package/dist/bits/command/components/command-loading.svelte +2 -2
- package/dist/bits/command/components/command-separator.svelte +2 -2
- package/dist/bits/command/components/command-viewport.svelte +2 -2
- package/dist/bits/command/components/command.svelte +2 -2
- package/dist/bits/context-menu/components/context-menu-content-static.svelte +3 -3
- package/dist/bits/context-menu/components/context-menu-content.svelte +3 -3
- package/dist/bits/context-menu/components/context-menu-trigger.svelte +2 -2
- package/dist/bits/context-menu/components/context-menu.svelte +16 -11
- package/dist/bits/date-field/components/date-field-hidden-input.svelte +2 -2
- package/dist/bits/date-field/components/date-field-input.svelte +2 -2
- package/dist/bits/date-field/components/date-field-label.svelte +2 -2
- package/dist/bits/date-field/components/date-field-segment.svelte +2 -2
- package/dist/bits/date-field/components/date-field.svelte +2 -2
- package/dist/bits/date-field/date-field.svelte.d.ts +85 -74
- package/dist/bits/date-field/date-field.svelte.js +55 -53
- package/dist/bits/date-picker/components/date-picker-calendar.svelte +2 -2
- package/dist/bits/date-picker/components/date-picker.svelte +8 -6
- package/dist/bits/date-picker/date-picker.svelte.d.ts +10 -10
- package/dist/bits/date-picker/date-picker.svelte.js +6 -5
- package/dist/bits/date-picker/types.d.ts +4 -0
- package/dist/bits/date-range-field/components/date-range-field-input.svelte +2 -2
- package/dist/bits/date-range-field/components/date-range-field-label.svelte +2 -2
- package/dist/bits/date-range-field/components/date-range-field.svelte +2 -2
- package/dist/bits/date-range-field/date-range-field.svelte.d.ts +32 -29
- package/dist/bits/date-range-field/date-range-field.svelte.js +33 -32
- package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +2 -2
- package/dist/bits/date-range-picker/components/date-range-picker.svelte +8 -6
- package/dist/bits/date-range-picker/date-range-picker.svelte.d.ts +10 -10
- package/dist/bits/date-range-picker/date-range-picker.svelte.js +6 -5
- package/dist/bits/date-range-picker/types.d.ts +4 -0
- package/dist/bits/dialog/components/dialog-close.svelte +2 -2
- package/dist/bits/dialog/components/dialog-content.svelte +3 -3
- package/dist/bits/dialog/components/dialog-description.svelte +2 -2
- package/dist/bits/dialog/components/dialog-overlay.svelte +3 -6
- package/dist/bits/dialog/components/dialog-title.svelte +2 -2
- package/dist/bits/dialog/components/dialog-trigger.svelte +2 -2
- package/dist/bits/dialog/components/dialog.svelte +9 -3
- package/dist/bits/dialog/dialog.svelte.d.ts +75 -65
- package/dist/bits/dialog/dialog.svelte.js +47 -38
- package/dist/bits/dialog/types.d.ts +4 -0
- package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +3 -3
- package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +3 -3
- package/dist/bits/label/components/label.svelte +2 -2
- package/dist/bits/label/label.svelte.d.ts +8 -7
- package/dist/bits/label/label.svelte.js +4 -4
- package/dist/bits/link-preview/components/link-preview-content-static.svelte +3 -3
- package/dist/bits/link-preview/components/link-preview-content.svelte +3 -3
- package/dist/bits/link-preview/components/link-preview-trigger.svelte +2 -2
- package/dist/bits/link-preview/components/link-preview.svelte +4 -2
- package/dist/bits/link-preview/link-preview.svelte.d.ts +28 -25
- package/dist/bits/link-preview/link-preview.svelte.js +24 -16
- package/dist/bits/link-preview/types.d.ts +4 -0
- package/dist/bits/menu/components/menu-arrow.svelte +2 -2
- package/dist/bits/menu/components/menu-checkbox-group.svelte +2 -2
- package/dist/bits/menu/components/menu-checkbox-item.svelte +2 -2
- package/dist/bits/menu/components/menu-content-static.svelte +3 -3
- package/dist/bits/menu/components/menu-content.svelte +3 -3
- package/dist/bits/menu/components/menu-group-heading.svelte +2 -2
- package/dist/bits/menu/components/menu-group.svelte +2 -2
- package/dist/bits/menu/components/menu-item.svelte +2 -2
- package/dist/bits/menu/components/menu-radio-group.svelte +2 -2
- package/dist/bits/menu/components/menu-radio-item.svelte +2 -2
- package/dist/bits/menu/components/menu-separator.svelte +2 -2
- package/dist/bits/menu/components/menu-sub-content-static.svelte +3 -3
- package/dist/bits/menu/components/menu-sub-content.svelte +3 -3
- package/dist/bits/menu/components/menu-sub-trigger.svelte +2 -2
- package/dist/bits/menu/components/menu-sub.svelte +9 -3
- package/dist/bits/menu/components/menu-trigger.svelte +2 -2
- package/dist/bits/menu/components/menu.svelte +16 -11
- package/dist/bits/menu/menu.svelte.d.ts +136 -119
- package/dist/bits/menu/menu.svelte.js +106 -96
- package/dist/bits/menu/types.d.ts +8 -0
- package/dist/bits/menubar/components/menubar-content-static.svelte +2 -2
- package/dist/bits/menubar/components/menubar-content.svelte +2 -2
- package/dist/bits/menubar/components/menubar-menu.svelte +2 -2
- package/dist/bits/menubar/components/menubar-trigger.svelte +4 -4
- package/dist/bits/menubar/components/menubar.svelte +2 -2
- package/dist/bits/menubar/menubar.svelte.d.ts +37 -34
- package/dist/bits/menubar/menubar.svelte.js +21 -21
- package/dist/bits/meter/components/meter.svelte +2 -2
- package/dist/bits/meter/meter.svelte.d.ts +10 -9
- package/dist/bits/meter/meter.svelte.js +4 -4
- package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu.svelte +2 -2
- package/dist/bits/navigation-menu/navigation-menu.svelte.d.ts +116 -109
- package/dist/bits/navigation-menu/navigation-menu.svelte.js +78 -81
- package/dist/bits/pagination/components/pagination-next-button.svelte +2 -2
- package/dist/bits/pagination/components/pagination-page.svelte +2 -2
- package/dist/bits/pagination/components/pagination-prev-button.svelte +2 -2
- package/dist/bits/pagination/components/pagination.svelte +2 -2
- package/dist/bits/pagination/pagination.svelte.d.ts +34 -32
- package/dist/bits/pagination/pagination.svelte.js +15 -15
- package/dist/bits/pin-input/components/pin-input-cell.svelte +2 -2
- package/dist/bits/pin-input/components/pin-input.svelte +2 -2
- package/dist/bits/pin-input/pin-input.svelte.d.ts +22 -21
- package/dist/bits/pin-input/pin-input.svelte.js +9 -9
- package/dist/bits/popover/components/popover-close.svelte +2 -2
- package/dist/bits/popover/components/popover-content-static.svelte +3 -3
- package/dist/bits/popover/components/popover-content.svelte +3 -3
- package/dist/bits/popover/components/popover-trigger.svelte +2 -2
- package/dist/bits/popover/components/popover.svelte +9 -3
- package/dist/bits/popover/popover.svelte.d.ts +36 -31
- package/dist/bits/popover/popover.svelte.js +26 -21
- package/dist/bits/popover/types.d.ts +4 -0
- package/dist/bits/progress/components/progress.svelte +2 -2
- package/dist/bits/progress/progress.svelte.d.ts +10 -9
- package/dist/bits/progress/progress.svelte.js +4 -4
- package/dist/bits/radio-group/components/radio-group-input.svelte +2 -2
- package/dist/bits/radio-group/components/radio-group-item.svelte +2 -2
- package/dist/bits/radio-group/components/radio-group.svelte +2 -2
- package/dist/bits/radio-group/radio-group.svelte.d.ts +21 -19
- package/dist/bits/radio-group/radio-group.svelte.js +15 -15
- package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -2
- package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -2
- package/dist/bits/range-calendar/components/range-calendar.svelte +2 -2
- package/dist/bits/range-calendar/range-calendar.svelte.d.ts +21 -20
- package/dist/bits/range-calendar/range-calendar.svelte.js +12 -12
- package/dist/bits/rating-group/components/rating-group-input.svelte +2 -2
- package/dist/bits/rating-group/components/rating-group-item.svelte +2 -2
- package/dist/bits/rating-group/components/rating-group.svelte +2 -2
- package/dist/bits/rating-group/rating-group.svelte.d.ts +19 -18
- package/dist/bits/rating-group/rating-group.svelte.js +16 -17
- package/dist/bits/scroll-area/components/scroll-area-corner-impl.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +3 -3
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +6 -6
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +3 -3
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-shared.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-visible.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-x.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-y.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-thumb-impl.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +2 -5
- package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area.svelte +2 -2
- package/dist/bits/scroll-area/scroll-area.svelte.d.ts +98 -78
- package/dist/bits/scroll-area/scroll-area.svelte.js +78 -74
- package/dist/bits/select/components/select-content-static.svelte +3 -3
- package/dist/bits/select/components/select-content.svelte +3 -3
- package/dist/bits/select/components/select-group-heading.svelte +2 -2
- package/dist/bits/select/components/select-group.svelte +2 -2
- package/dist/bits/select/components/select-hidden-input.svelte +2 -2
- package/dist/bits/select/components/select-item.svelte +2 -2
- package/dist/bits/select/components/select-scroll-down-button.svelte +2 -2
- package/dist/bits/select/components/select-scroll-up-button.svelte +2 -2
- package/dist/bits/select/components/select-trigger.svelte +2 -2
- package/dist/bits/select/components/select-viewport.svelte +2 -2
- package/dist/bits/select/components/select.svelte +4 -2
- package/dist/bits/select/select.svelte.d.ts +127 -113
- package/dist/bits/select/select.svelte.js +72 -62
- package/dist/bits/select/types.d.ts +4 -0
- package/dist/bits/separator/components/separator.svelte +2 -2
- package/dist/bits/separator/separator.svelte.d.ts +9 -8
- package/dist/bits/separator/separator.svelte.js +4 -4
- package/dist/bits/slider/components/slider-range.svelte +2 -2
- package/dist/bits/slider/components/slider-thumb-label.svelte +2 -2
- package/dist/bits/slider/components/slider-thumb.svelte +2 -2
- package/dist/bits/slider/components/slider-tick-label.svelte +2 -2
- package/dist/bits/slider/components/slider-tick.svelte +2 -2
- package/dist/bits/slider/components/slider.svelte +2 -2
- package/dist/bits/slider/slider.svelte.d.ts +82 -73
- package/dist/bits/slider/slider.svelte.js +30 -28
- package/dist/bits/switch/components/switch-input.svelte +2 -2
- package/dist/bits/switch/components/switch-thumb.svelte +2 -2
- package/dist/bits/switch/components/switch.svelte +2 -2
- package/dist/bits/switch/switch.svelte.d.ts +19 -17
- package/dist/bits/switch/switch.svelte.js +13 -13
- package/dist/bits/tabs/components/tabs-content.svelte +2 -2
- package/dist/bits/tabs/components/tabs-list.svelte +2 -2
- package/dist/bits/tabs/components/tabs-trigger.svelte +2 -2
- package/dist/bits/tabs/components/tabs.svelte +2 -2
- package/dist/bits/tabs/tabs.svelte.d.ts +33 -29
- package/dist/bits/tabs/tabs.svelte.js +19 -19
- package/dist/bits/time-field/components/time-field-hidden-input.svelte +2 -2
- package/dist/bits/time-field/components/time-field-input.svelte +2 -2
- package/dist/bits/time-field/components/time-field-label.svelte +2 -2
- package/dist/bits/time-field/components/time-field-segment.svelte +2 -2
- package/dist/bits/time-field/components/time-field.svelte +2 -2
- package/dist/bits/time-field/time-field.svelte.d.ts +72 -66
- package/dist/bits/time-field/time-field.svelte.js +37 -42
- package/dist/bits/time-range-field/components/time-range-field-input.svelte +2 -2
- package/dist/bits/time-range-field/components/time-range-field-label.svelte +2 -2
- package/dist/bits/time-range-field/components/time-range-field.svelte +2 -2
- package/dist/bits/time-range-field/time-range-field.svelte.d.ts +35 -31
- package/dist/bits/time-range-field/time-range-field.svelte.js +34 -32
- package/dist/bits/toggle/components/toggle.svelte +2 -2
- package/dist/bits/toggle/toggle.svelte.d.ts +11 -10
- package/dist/bits/toggle/toggle.svelte.js +4 -4
- package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -2
- package/dist/bits/toggle-group/components/toggle-group.svelte +2 -2
- package/dist/bits/toggle-group/toggle-group.svelte.d.ts +48 -43
- package/dist/bits/toggle-group/toggle-group.svelte.js +24 -25
- package/dist/bits/toolbar/components/toolbar-button.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar-group.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar-link.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar.svelte +2 -2
- package/dist/bits/toolbar/toolbar.svelte.d.ts +59 -51
- package/dist/bits/toolbar/toolbar.svelte.js +32 -30
- package/dist/bits/tooltip/components/tooltip-content-static.svelte +3 -3
- package/dist/bits/tooltip/components/tooltip-content.svelte +3 -3
- package/dist/bits/tooltip/components/tooltip-provider.svelte +2 -2
- package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -2
- package/dist/bits/tooltip/components/tooltip.svelte +4 -2
- package/dist/bits/tooltip/tooltip.svelte.d.ts +33 -29
- package/dist/bits/tooltip/tooltip.svelte.js +33 -28
- package/dist/bits/tooltip/types.d.ts +4 -0
- package/dist/bits/utilities/config/bits-config.d.ts +1 -1
- package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -2
- package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +6 -7
- package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +3 -3
- package/dist/bits/utilities/escape-layer/escape-layer.svelte +2 -2
- package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.d.ts +6 -7
- package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js +3 -3
- package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -2
- package/dist/bits/utilities/floating-layer/components/floating-layer-arrow.svelte +2 -2
- package/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte +2 -2
- package/dist/bits/utilities/floating-layer/components/floating-layer.svelte +2 -2
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +25 -23
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +25 -25
- package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +1 -1
- package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte.d.ts +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte.d.ts +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -3
- package/dist/bits/utilities/presence-layer/presence-layer.svelte +8 -8
- package/dist/bits/utilities/presence-layer/presence.svelte.d.ts +42 -0
- package/dist/bits/utilities/presence-layer/presence.svelte.js +116 -0
- package/dist/bits/utilities/presence-layer/types.d.ts +3 -5
- package/dist/bits/utilities/scroll-lock/scroll-lock.svelte +2 -2
- package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -2
- package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +7 -7
- package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +3 -3
- package/dist/internal/animations-complete.d.ts +12 -0
- package/dist/internal/animations-complete.js +55 -0
- package/dist/internal/arrays.js +20 -36
- package/dist/internal/attrs.d.ts +9 -2
- package/dist/internal/attrs.js +21 -11
- package/dist/internal/body-scroll-lock.svelte.d.ts +10 -0
- package/dist/internal/body-scroll-lock.svelte.js +106 -0
- package/dist/internal/data-typeahead.svelte.d.ts +15 -0
- package/dist/internal/data-typeahead.svelte.js +33 -0
- package/dist/internal/date-time/calendar-helpers.svelte.d.ts +1 -1
- package/dist/internal/dom-typeahead.svelte.d.ts +14 -0
- package/dist/internal/dom-typeahead.svelte.js +44 -0
- package/dist/internal/dom.d.ts +0 -2
- package/dist/internal/dom.js +0 -15
- package/dist/internal/{use-grace-area.svelte.d.ts → grace-area.svelte.d.ts} +5 -4
- package/dist/internal/{use-grace-area.svelte.js → grace-area.svelte.js} +60 -56
- package/dist/internal/open-change-complete.d.ts +13 -0
- package/dist/internal/open-change-complete.js +24 -0
- package/dist/internal/{use-roving-focus.svelte.d.ts → roving-focus-group.d.ts} +9 -8
- package/dist/internal/{use-roving-focus.svelte.js → roving-focus-group.js} +30 -34
- package/dist/internal/shared-state.svelte.d.ts +6 -0
- package/dist/internal/shared-state.svelte.js +31 -0
- package/dist/internal/should-trap-focus.js +1 -2
- package/dist/internal/state-machine.d.ts +16 -0
- package/dist/internal/state-machine.js +18 -0
- package/dist/internal/svelte-resize-observer.svelte.d.ts +6 -0
- package/dist/internal/svelte-resize-observer.svelte.js +25 -0
- package/dist/internal/tabbable.d.ts +0 -1
- package/dist/internal/tabbable.js +0 -11
- package/dist/internal/timeout-fn.d.ts +16 -0
- package/dist/internal/timeout-fn.js +38 -0
- package/dist/internal/types.d.ts +2 -2
- package/package.json +1 -1
- package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +0 -4
- package/dist/bits/utilities/presence-layer/use-presence.svelte.js +0 -97
- package/dist/internal/box.svelte.d.ts +0 -21
- package/dist/internal/box.svelte.js +0 -26
- package/dist/internal/create-event-hook.svelte.d.ts +0 -18
- package/dist/internal/create-event-hook.svelte.js +0 -29
- package/dist/internal/create-shared-hook.svelte.d.ts +0 -2
- package/dist/internal/create-shared-hook.svelte.js +0 -27
- package/dist/internal/sleep.d.ts +0 -1
- package/dist/internal/sleep.js +0 -3
- package/dist/internal/use-after-animations.svelte.d.ts +0 -5
- package/dist/internal/use-after-animations.svelte.js +0 -27
- package/dist/internal/use-body-scroll-lock.svelte.d.ts +0 -6
- package/dist/internal/use-body-scroll-lock.svelte.js +0 -106
- package/dist/internal/use-data-typeahead.svelte.d.ts +0 -15
- package/dist/internal/use-data-typeahead.svelte.js +0 -34
- package/dist/internal/use-dom-typeahead.svelte.d.ts +0 -13
- package/dist/internal/use-dom-typeahead.svelte.js +0 -32
- package/dist/internal/use-form-control.svelte.d.ts +0 -4
- package/dist/internal/use-form-control.svelte.js +0 -16
- package/dist/internal/use-resize-observer.svelte.d.ts +0 -2
- package/dist/internal/use-resize-observer.svelte.js +0 -17
- package/dist/internal/use-state-machine.svelte.d.ts +0 -24
- package/dist/internal/use-state-machine.svelte.js +0 -28
- package/dist/internal/use-timeout-fn.svelte.d.ts +0 -25
- package/dist/internal/use-timeout-fn.svelte.js +0 -39
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
import { Previous } from "runed";
|
|
2
|
-
import { DOMContext } from "svelte-toolbelt";
|
|
3
|
-
import type {
|
|
4
|
-
import type { BitsEvent, BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, BitsPointerEvent, WithRefProps } from "../../internal/types.js";
|
|
2
|
+
import { DOMContext, type ReadableBoxedValues, type WritableBoxedValues, type Box } from "svelte-toolbelt";
|
|
3
|
+
import type { BitsEvent, BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, BitsPointerEvent, OnChangeFn, WithRefOpts } from "../../internal/types.js";
|
|
5
4
|
export declare const INTERACTION_KEYS: string[];
|
|
6
5
|
export declare const FIRST_KEYS: string[];
|
|
7
6
|
export declare const LAST_KEYS: string[];
|
|
8
7
|
export declare const FIRST_LAST_KEYS: string[];
|
|
9
8
|
export declare const SELECTION_KEYS: string[];
|
|
10
9
|
export declare const CONTENT_MARGIN = 10;
|
|
11
|
-
declare const selectAttrs: import("../../internal/attrs.js").
|
|
12
|
-
|
|
10
|
+
declare const selectAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["trigger", "content", "item", "viewport", "scroll-up-button", "scroll-down-button", "group", "group-label", "separator", "arrow", "input", "content-wrapper", "item-text", "value"]>;
|
|
11
|
+
interface SelectBaseRootStateOpts extends ReadableBoxedValues<{
|
|
13
12
|
disabled: boolean;
|
|
14
13
|
required: boolean;
|
|
15
14
|
name: string;
|
|
@@ -21,14 +20,15 @@ type SelectBaseRootStateProps = ReadableBoxedValues<{
|
|
|
21
20
|
disabled?: boolean;
|
|
22
21
|
}[];
|
|
23
22
|
allowDeselect: boolean;
|
|
24
|
-
|
|
23
|
+
onOpenChangeComplete: OnChangeFn<boolean>;
|
|
24
|
+
}>, WritableBoxedValues<{
|
|
25
25
|
open: boolean;
|
|
26
26
|
inputValue: string;
|
|
27
|
-
}>
|
|
27
|
+
}> {
|
|
28
28
|
isCombobox: boolean;
|
|
29
|
-
}
|
|
30
|
-
declare class SelectBaseRootState {
|
|
31
|
-
readonly opts:
|
|
29
|
+
}
|
|
30
|
+
declare abstract class SelectBaseRootState {
|
|
31
|
+
readonly opts: SelectBaseRootStateOpts;
|
|
32
32
|
touchedInput: boolean;
|
|
33
33
|
inputNode: HTMLElement | null;
|
|
34
34
|
contentNode: HTMLElement | null;
|
|
@@ -41,7 +41,7 @@ declare class SelectBaseRootState {
|
|
|
41
41
|
isUsingKeyboard: boolean;
|
|
42
42
|
isCombobox: boolean;
|
|
43
43
|
domContext: DOMContext;
|
|
44
|
-
constructor(opts:
|
|
44
|
+
constructor(opts: SelectBaseRootStateOpts);
|
|
45
45
|
setHighlightedNode(node: HTMLElement | null, initial?: boolean): void;
|
|
46
46
|
getCandidateNodes(): HTMLElement[];
|
|
47
47
|
setHighlightedToFirstCandidate(): void;
|
|
@@ -53,41 +53,69 @@ declare class SelectBaseRootState {
|
|
|
53
53
|
toggleMenu(): void;
|
|
54
54
|
getBitsAttr: typeof selectAttrs.getAttr;
|
|
55
55
|
}
|
|
56
|
-
|
|
56
|
+
interface SelectSingleRootStateOpts extends SelectBaseRootStateOpts, WritableBoxedValues<{
|
|
57
57
|
value: string;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
}> {
|
|
59
|
+
}
|
|
60
|
+
export declare class SelectSingleRootState extends SelectBaseRootState {
|
|
61
|
+
readonly opts: SelectSingleRootStateOpts;
|
|
61
62
|
readonly isMulti: false;
|
|
62
63
|
readonly hasValue: boolean;
|
|
63
64
|
readonly currentLabel: string;
|
|
64
65
|
readonly candidateLabels: string[];
|
|
65
66
|
readonly dataTypeaheadEnabled: boolean;
|
|
66
|
-
constructor(opts:
|
|
67
|
+
constructor(opts: SelectSingleRootStateOpts);
|
|
67
68
|
includesItem(itemValue: string): boolean;
|
|
68
69
|
toggleItem(itemValue: string, itemLabel?: string): void;
|
|
69
70
|
setInitialHighlightedNode(): void;
|
|
70
71
|
}
|
|
71
|
-
|
|
72
|
+
interface SelectMultipleRootStateOpts extends SelectBaseRootStateOpts, WritableBoxedValues<{
|
|
72
73
|
value: string[];
|
|
73
|
-
}
|
|
74
|
+
}> {
|
|
75
|
+
}
|
|
74
76
|
declare class SelectMultipleRootState extends SelectBaseRootState {
|
|
75
|
-
readonly opts:
|
|
77
|
+
readonly opts: SelectMultipleRootStateOpts;
|
|
76
78
|
readonly isMulti: true;
|
|
77
79
|
readonly hasValue: boolean;
|
|
78
|
-
constructor(opts:
|
|
80
|
+
constructor(opts: SelectMultipleRootStateOpts);
|
|
79
81
|
includesItem(itemValue: string): boolean;
|
|
80
82
|
toggleItem(itemValue: string, itemLabel?: string): void;
|
|
81
83
|
setInitialHighlightedNode(): void;
|
|
82
84
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
interface SelectRootStateOpts extends ReadableBoxedValues<{
|
|
86
|
+
disabled: boolean;
|
|
87
|
+
required: boolean;
|
|
88
|
+
loop: boolean;
|
|
89
|
+
scrollAlignment: "nearest" | "center";
|
|
90
|
+
name: string;
|
|
91
|
+
items: {
|
|
92
|
+
value: string;
|
|
93
|
+
label: string;
|
|
94
|
+
disabled?: boolean;
|
|
95
|
+
}[];
|
|
96
|
+
allowDeselect: boolean;
|
|
97
|
+
onOpenChangeComplete: OnChangeFn<boolean>;
|
|
98
|
+
}>, WritableBoxedValues<{
|
|
99
|
+
open: boolean;
|
|
100
|
+
inputValue: string;
|
|
101
|
+
}> {
|
|
102
|
+
isCombobox: boolean;
|
|
103
|
+
type: "single" | "multiple";
|
|
104
|
+
value: Box<string> | Box<string[]>;
|
|
105
|
+
}
|
|
106
|
+
export declare class SelectRootState {
|
|
107
|
+
static create(props: SelectRootStateOpts): SelectRoot;
|
|
108
|
+
}
|
|
109
|
+
type SelectRoot = SelectSingleRootState | SelectMultipleRootState;
|
|
110
|
+
interface SelectInputStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
85
111
|
clearOnDeselect: boolean;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
112
|
+
}> {
|
|
113
|
+
}
|
|
114
|
+
export declare class SelectInputState {
|
|
115
|
+
static create(opts: SelectInputStateOpts): SelectInputState;
|
|
116
|
+
readonly opts: SelectInputStateOpts;
|
|
117
|
+
readonly root: SelectRoot;
|
|
118
|
+
constructor(opts: SelectInputStateOpts, root: SelectRoot);
|
|
91
119
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
92
120
|
oninput(e: BitsEvent<Event, HTMLInputElement>): void;
|
|
93
121
|
readonly props: {
|
|
@@ -103,11 +131,13 @@ declare class SelectInputState {
|
|
|
103
131
|
readonly oninput: (e: BitsEvent<Event, HTMLInputElement>) => void;
|
|
104
132
|
};
|
|
105
133
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
134
|
+
interface SelectComboTriggerStateOpts extends WithRefOpts {
|
|
135
|
+
}
|
|
136
|
+
export declare class SelectComboTriggerState {
|
|
137
|
+
static create(opts: SelectComboTriggerStateOpts): SelectComboTriggerState;
|
|
138
|
+
readonly opts: SelectComboTriggerStateOpts;
|
|
109
139
|
readonly root: SelectBaseRootState;
|
|
110
|
-
constructor(opts:
|
|
140
|
+
constructor(opts: SelectComboTriggerStateOpts, root: SelectBaseRootState);
|
|
111
141
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
112
142
|
/**
|
|
113
143
|
* `pointerdown` fires before the `focus` event, so we can prevent the default
|
|
@@ -124,12 +154,14 @@ declare class SelectComboTriggerState {
|
|
|
124
154
|
readonly onkeydown: (e: BitsKeyboardEvent) => void;
|
|
125
155
|
};
|
|
126
156
|
}
|
|
127
|
-
|
|
128
|
-
|
|
157
|
+
interface SelectTriggerStateOpts extends WithRefOpts {
|
|
158
|
+
}
|
|
159
|
+
export declare class SelectTriggerState {
|
|
129
160
|
#private;
|
|
130
|
-
|
|
131
|
-
readonly
|
|
132
|
-
|
|
161
|
+
static create(opts: SelectTriggerStateOpts): SelectTriggerState;
|
|
162
|
+
readonly opts: SelectTriggerStateOpts;
|
|
163
|
+
readonly root: SelectRoot;
|
|
164
|
+
constructor(opts: SelectTriggerStateOpts, root: SelectRoot);
|
|
133
165
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
134
166
|
onclick(e: BitsMouseEvent): void;
|
|
135
167
|
onpointerdown(e: BitsPointerEvent): void;
|
|
@@ -149,18 +181,20 @@ declare class SelectTriggerState {
|
|
|
149
181
|
readonly onpointerup: (e: BitsPointerEvent) => void;
|
|
150
182
|
};
|
|
151
183
|
}
|
|
152
|
-
|
|
184
|
+
interface SelectContentStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
153
185
|
onInteractOutside: (e: PointerEvent) => void;
|
|
154
186
|
onEscapeKeydown: (e: KeyboardEvent) => void;
|
|
155
|
-
}
|
|
156
|
-
|
|
187
|
+
}> {
|
|
188
|
+
}
|
|
189
|
+
export declare class SelectContentState {
|
|
157
190
|
#private;
|
|
158
|
-
|
|
159
|
-
readonly
|
|
191
|
+
static create(opts: SelectContentStateOpts): SelectContentState;
|
|
192
|
+
readonly opts: SelectContentStateOpts;
|
|
193
|
+
readonly root: SelectRoot;
|
|
160
194
|
viewportNode: HTMLElement | null;
|
|
161
195
|
isPositioned: boolean;
|
|
162
196
|
domContext: DOMContext;
|
|
163
|
-
constructor(opts:
|
|
197
|
+
constructor(opts: SelectContentStateOpts, root: SelectRoot);
|
|
164
198
|
onpointermove(_: BitsPointerEvent): void;
|
|
165
199
|
onInteractOutside: (e: PointerEvent) => void;
|
|
166
200
|
onEscapeKeydown: (e: KeyboardEvent) => void;
|
|
@@ -193,21 +227,23 @@ declare class SelectContentState {
|
|
|
193
227
|
onPlaced: () => void;
|
|
194
228
|
};
|
|
195
229
|
}
|
|
196
|
-
|
|
230
|
+
interface SelectItemStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
197
231
|
value: string;
|
|
198
232
|
disabled: boolean;
|
|
199
233
|
label: string;
|
|
200
234
|
onHighlight: () => void;
|
|
201
235
|
onUnhighlight: () => void;
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
236
|
+
}> {
|
|
237
|
+
}
|
|
238
|
+
export declare class SelectItemState {
|
|
239
|
+
static create(opts: SelectItemStateOpts): SelectItemState;
|
|
240
|
+
readonly opts: SelectItemStateOpts;
|
|
241
|
+
readonly root: SelectRoot;
|
|
206
242
|
readonly isSelected: boolean;
|
|
207
243
|
readonly isHighlighted: boolean;
|
|
208
244
|
readonly prevHighlighted: Previous<boolean>;
|
|
209
245
|
mounted: boolean;
|
|
210
|
-
constructor(opts:
|
|
246
|
+
constructor(opts: SelectItemStateOpts, root: SelectRoot);
|
|
211
247
|
handleSelect(): void;
|
|
212
248
|
snippetProps: {
|
|
213
249
|
selected: boolean;
|
|
@@ -221,7 +257,7 @@ declare class SelectItemState {
|
|
|
221
257
|
*/
|
|
222
258
|
onpointerup(e: BitsPointerEvent): void;
|
|
223
259
|
onpointermove(e: BitsPointerEvent): void;
|
|
224
|
-
props: {
|
|
260
|
+
readonly props: {
|
|
225
261
|
readonly id: string;
|
|
226
262
|
readonly role: "option";
|
|
227
263
|
readonly "aria-selected": "true" | undefined;
|
|
@@ -235,35 +271,41 @@ declare class SelectItemState {
|
|
|
235
271
|
readonly onpointerup: (e: BitsPointerEvent) => void;
|
|
236
272
|
};
|
|
237
273
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
274
|
+
interface SelectGroupStateOpts extends WithRefOpts {
|
|
275
|
+
}
|
|
276
|
+
export declare class SelectGroupState {
|
|
277
|
+
static create(opts: SelectGroupStateOpts): SelectGroupState;
|
|
278
|
+
readonly opts: SelectGroupStateOpts;
|
|
241
279
|
readonly root: SelectBaseRootState;
|
|
242
280
|
labelNode: HTMLElement | null;
|
|
243
|
-
constructor(opts:
|
|
281
|
+
constructor(opts: SelectGroupStateOpts, root: SelectBaseRootState);
|
|
244
282
|
readonly props: {
|
|
245
283
|
readonly id: string;
|
|
246
284
|
readonly role: "group";
|
|
247
285
|
readonly "aria-labelledby": string | undefined;
|
|
248
286
|
};
|
|
249
287
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
288
|
+
interface SelectGroupHeadingStateOpts extends WithRefOpts {
|
|
289
|
+
}
|
|
290
|
+
export declare class SelectGroupHeadingState {
|
|
291
|
+
static create(opts: SelectGroupHeadingStateOpts): SelectGroupHeadingState;
|
|
292
|
+
readonly opts: SelectGroupHeadingStateOpts;
|
|
253
293
|
readonly group: SelectGroupState;
|
|
254
|
-
constructor(opts:
|
|
294
|
+
constructor(opts: SelectGroupHeadingStateOpts, group: SelectGroupState);
|
|
255
295
|
readonly props: {
|
|
256
296
|
readonly id: string;
|
|
257
297
|
};
|
|
258
298
|
}
|
|
259
|
-
|
|
299
|
+
interface SelectHiddenInputStateOpts extends ReadableBoxedValues<{
|
|
260
300
|
value: string;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
|
|
301
|
+
}> {
|
|
302
|
+
}
|
|
303
|
+
export declare class SelectHiddenInputState {
|
|
304
|
+
static create(opts: SelectHiddenInputStateOpts): SelectHiddenInputState;
|
|
305
|
+
readonly opts: SelectHiddenInputStateOpts;
|
|
264
306
|
readonly root: SelectBaseRootState;
|
|
265
|
-
shouldRender: boolean;
|
|
266
|
-
constructor(opts:
|
|
307
|
+
readonly shouldRender: boolean;
|
|
308
|
+
constructor(opts: SelectHiddenInputStateOpts, root: SelectBaseRootState);
|
|
267
309
|
onfocus(e: BitsFocusEvent): void;
|
|
268
310
|
readonly props: {
|
|
269
311
|
readonly disabled: true | undefined;
|
|
@@ -273,13 +315,15 @@ declare class SelectHiddenInputState {
|
|
|
273
315
|
readonly onfocus: (e: BitsFocusEvent) => void;
|
|
274
316
|
};
|
|
275
317
|
}
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
318
|
+
interface SelectViewportStateOpts extends WithRefOpts {
|
|
319
|
+
}
|
|
320
|
+
export declare class SelectViewportState {
|
|
321
|
+
static create(opts: SelectViewportStateOpts): SelectViewportState;
|
|
322
|
+
readonly opts: SelectViewportStateOpts;
|
|
279
323
|
readonly content: SelectContentState;
|
|
280
|
-
root: SelectBaseRootState;
|
|
324
|
+
readonly root: SelectBaseRootState;
|
|
281
325
|
prevScrollTop: number;
|
|
282
|
-
constructor(opts:
|
|
326
|
+
constructor(opts: SelectViewportStateOpts, content: SelectContentState);
|
|
283
327
|
readonly props: {
|
|
284
328
|
readonly id: string;
|
|
285
329
|
readonly role: "presentation";
|
|
@@ -290,19 +334,20 @@ declare class SelectViewportState {
|
|
|
290
334
|
};
|
|
291
335
|
};
|
|
292
336
|
}
|
|
293
|
-
|
|
337
|
+
interface SelectScrollButtonImplStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
294
338
|
delay: (tick: number) => number;
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
|
|
339
|
+
}> {
|
|
340
|
+
}
|
|
341
|
+
export declare class SelectScrollButtonImplState {
|
|
342
|
+
readonly opts: SelectScrollButtonImplStateOpts;
|
|
298
343
|
readonly content: SelectContentState;
|
|
299
|
-
root: SelectBaseRootState;
|
|
344
|
+
readonly root: SelectBaseRootState;
|
|
300
345
|
autoScrollTimer: number | null;
|
|
301
346
|
userScrollTimer: number;
|
|
302
347
|
isUserScrolling: boolean;
|
|
303
348
|
onAutoScroll: () => void;
|
|
304
349
|
mounted: boolean;
|
|
305
|
-
constructor(opts:
|
|
350
|
+
constructor(opts: SelectScrollButtonImplStateOpts, content: SelectContentState);
|
|
306
351
|
handleUserScroll(): void;
|
|
307
352
|
clearAutoScrollInterval(): void;
|
|
308
353
|
onpointerdown(_: BitsPointerEvent): void;
|
|
@@ -319,10 +364,11 @@ declare class SelectScrollButtonImplState {
|
|
|
319
364
|
readonly onpointerleave: (_: BitsPointerEvent) => void;
|
|
320
365
|
};
|
|
321
366
|
}
|
|
322
|
-
declare class SelectScrollDownButtonState {
|
|
367
|
+
export declare class SelectScrollDownButtonState {
|
|
368
|
+
static create(opts: SelectScrollButtonImplStateOpts): SelectScrollDownButtonState;
|
|
323
369
|
readonly scrollButtonState: SelectScrollButtonImplState;
|
|
324
|
-
content: SelectContentState;
|
|
325
|
-
root: SelectBaseRootState;
|
|
370
|
+
readonly content: SelectContentState;
|
|
371
|
+
readonly root: SelectBaseRootState;
|
|
326
372
|
canScrollDown: boolean;
|
|
327
373
|
scrollIntoViewTimer: ReturnType<typeof globalThis.setTimeout> | null;
|
|
328
374
|
constructor(scrollButtonState: SelectScrollButtonImplState);
|
|
@@ -343,10 +389,11 @@ declare class SelectScrollDownButtonState {
|
|
|
343
389
|
readonly onpointerleave: (_: BitsPointerEvent) => void;
|
|
344
390
|
};
|
|
345
391
|
}
|
|
346
|
-
declare class SelectScrollUpButtonState {
|
|
392
|
+
export declare class SelectScrollUpButtonState {
|
|
393
|
+
static create(opts: SelectScrollButtonImplStateOpts): SelectScrollUpButtonState;
|
|
347
394
|
readonly scrollButtonState: SelectScrollButtonImplState;
|
|
348
|
-
content: SelectContentState;
|
|
349
|
-
root: SelectBaseRootState;
|
|
395
|
+
readonly content: SelectContentState;
|
|
396
|
+
readonly root: SelectBaseRootState;
|
|
350
397
|
canScrollUp: boolean;
|
|
351
398
|
constructor(scrollButtonState: SelectScrollButtonImplState);
|
|
352
399
|
/**
|
|
@@ -366,37 +413,4 @@ declare class SelectScrollUpButtonState {
|
|
|
366
413
|
readonly onpointerleave: (_: BitsPointerEvent) => void;
|
|
367
414
|
};
|
|
368
415
|
}
|
|
369
|
-
type InitSelectProps = {
|
|
370
|
-
type: "single" | "multiple";
|
|
371
|
-
value: Box<string> | Box<string[]>;
|
|
372
|
-
} & ReadableBoxedValues<{
|
|
373
|
-
disabled: boolean;
|
|
374
|
-
required: boolean;
|
|
375
|
-
loop: boolean;
|
|
376
|
-
scrollAlignment: "nearest" | "center";
|
|
377
|
-
name: string;
|
|
378
|
-
items: {
|
|
379
|
-
value: string;
|
|
380
|
-
label: string;
|
|
381
|
-
disabled?: boolean;
|
|
382
|
-
}[];
|
|
383
|
-
allowDeselect: boolean;
|
|
384
|
-
}> & WritableBoxedValues<{
|
|
385
|
-
open: boolean;
|
|
386
|
-
inputValue: string;
|
|
387
|
-
}> & {
|
|
388
|
-
isCombobox: boolean;
|
|
389
|
-
};
|
|
390
|
-
export declare function useSelectRoot(props: InitSelectProps): SelectRootState;
|
|
391
|
-
export declare function useSelectInput(props: SelectInputStateProps): SelectInputState;
|
|
392
|
-
export declare function useSelectContent(props: SelectContentStateProps): SelectContentState;
|
|
393
|
-
export declare function useSelectTrigger(props: SelectTriggerStateProps): SelectTriggerState;
|
|
394
|
-
export declare function useSelectComboTrigger(props: SelectComboTriggerStateProps): SelectComboTriggerState;
|
|
395
|
-
export declare function useSelectItem(props: SelectItemStateProps): SelectItemState;
|
|
396
|
-
export declare function useSelectViewport(props: SelectViewportStateProps): SelectViewportState;
|
|
397
|
-
export declare function useSelectScrollUpButton(props: SelectScrollButtonImplStateProps): SelectScrollUpButtonState;
|
|
398
|
-
export declare function useSelectScrollDownButton(props: SelectScrollButtonImplStateProps): SelectScrollDownButtonState;
|
|
399
|
-
export declare function useSelectGroup(props: SelectGroupStateProps): SelectGroupState;
|
|
400
|
-
export declare function useSelectGroupHeading(props: SelectGroupHeadingStateProps): SelectGroupHeadingState;
|
|
401
|
-
export declare function useSelectHiddenInput(props: SelectHiddenInputStateProps): SelectHiddenInputState;
|
|
402
416
|
export {};
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { Context, Previous, watch } from "runed";
|
|
2
|
-
import { afterSleep, afterTick, onDestroyEffect, attachRef, DOMContext } from "svelte-toolbelt";
|
|
2
|
+
import { afterSleep, afterTick, onDestroyEffect, attachRef, DOMContext, box, } from "svelte-toolbelt";
|
|
3
3
|
import { on } from "svelte/events";
|
|
4
4
|
import { backward, forward, next, prev } from "../../internal/arrays.js";
|
|
5
5
|
import { getAriaExpanded, getAriaHidden, getDataDisabled, getDataOpenClosed, getDisabled, getRequired, } from "../../internal/attrs.js";
|
|
6
6
|
import { kbd } from "../../internal/kbd.js";
|
|
7
7
|
import { noop } from "../../internal/noop.js";
|
|
8
|
-
import { useDOMTypeahead } from "../../internal/use-dom-typeahead.svelte.js";
|
|
9
|
-
import { useDataTypeahead } from "../../internal/use-data-typeahead.svelte.js";
|
|
10
8
|
import { isIOS } from "../../internal/is.js";
|
|
11
9
|
import { createBitsAttrs } from "../../internal/attrs.js";
|
|
12
10
|
import { getFloatingContentCSSVars } from "../../internal/floating-svelte/floating-utils.svelte.js";
|
|
11
|
+
import { DataTypeahead } from "../../internal/data-typeahead.svelte.js";
|
|
12
|
+
import { DOMTypeahead } from "../../internal/dom-typeahead.svelte.js";
|
|
13
|
+
import { OpenChangeComplete } from "../../internal/open-change-complete.js";
|
|
13
14
|
// prettier-ignore
|
|
14
15
|
export const INTERACTION_KEYS = [kbd.ARROW_LEFT, kbd.ESCAPE, kbd.ARROW_RIGHT, kbd.SHIFT, kbd.CAPS_LOCK, kbd.CONTROL, kbd.ALT, kbd.META, kbd.ENTER, kbd.F1, kbd.F2, kbd.F3, kbd.F4, kbd.F5, kbd.F6, kbd.F7, kbd.F8, kbd.F9, kbd.F10, kbd.F11, kbd.F12];
|
|
15
16
|
export const FIRST_KEYS = [kbd.ARROW_DOWN, kbd.PAGE_UP, kbd.HOME];
|
|
@@ -36,6 +37,9 @@ const selectAttrs = createBitsAttrs({
|
|
|
36
37
|
"value",
|
|
37
38
|
],
|
|
38
39
|
});
|
|
40
|
+
const SelectRootContext = new Context("Select.Root | Combobox.Root");
|
|
41
|
+
const SelectGroupContext = new Context("Select.Group | Combobox.Group");
|
|
42
|
+
const SelectContentContext = new Context("Select.Content | Combobox.Content");
|
|
39
43
|
class SelectBaseRootState {
|
|
40
44
|
opts;
|
|
41
45
|
touchedInput = $state(false);
|
|
@@ -65,6 +69,13 @@ class SelectBaseRootState {
|
|
|
65
69
|
constructor(opts) {
|
|
66
70
|
this.opts = opts;
|
|
67
71
|
this.isCombobox = opts.isCombobox;
|
|
72
|
+
new OpenChangeComplete({
|
|
73
|
+
ref: box.with(() => this.contentNode),
|
|
74
|
+
open: this.opts.open,
|
|
75
|
+
onComplete: () => {
|
|
76
|
+
this.opts.onOpenChangeComplete.current(this.opts.open.current);
|
|
77
|
+
},
|
|
78
|
+
});
|
|
68
79
|
$effect.pre(() => {
|
|
69
80
|
if (!this.opts.open.current) {
|
|
70
81
|
this.setHighlightedNode(null);
|
|
@@ -114,7 +125,7 @@ class SelectBaseRootState {
|
|
|
114
125
|
return selectAttrs.getAttr(part, this.isCombobox ? "combobox" : undefined);
|
|
115
126
|
};
|
|
116
127
|
}
|
|
117
|
-
class SelectSingleRootState extends SelectBaseRootState {
|
|
128
|
+
export class SelectSingleRootState extends SelectBaseRootState {
|
|
118
129
|
opts;
|
|
119
130
|
isMulti = false;
|
|
120
131
|
hasValue = $derived.by(() => this.opts.value.current !== "");
|
|
@@ -230,7 +241,19 @@ class SelectMultipleRootState extends SelectBaseRootState {
|
|
|
230
241
|
});
|
|
231
242
|
}
|
|
232
243
|
}
|
|
233
|
-
class
|
|
244
|
+
export class SelectRootState {
|
|
245
|
+
static create(props) {
|
|
246
|
+
const { type, ...rest } = props;
|
|
247
|
+
const rootState = type === "single"
|
|
248
|
+
? new SelectSingleRootState(rest)
|
|
249
|
+
: new SelectMultipleRootState(rest);
|
|
250
|
+
return SelectRootContext.set(rootState);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
export class SelectInputState {
|
|
254
|
+
static create(opts) {
|
|
255
|
+
return new SelectInputState(opts, SelectRootContext.get());
|
|
256
|
+
}
|
|
234
257
|
opts;
|
|
235
258
|
root;
|
|
236
259
|
constructor(opts, root) {
|
|
@@ -364,7 +387,10 @@ class SelectInputState {
|
|
|
364
387
|
...attachRef(this.opts.ref, (v) => (this.root.inputNode = v)),
|
|
365
388
|
}));
|
|
366
389
|
}
|
|
367
|
-
class SelectComboTriggerState {
|
|
390
|
+
export class SelectComboTriggerState {
|
|
391
|
+
static create(opts) {
|
|
392
|
+
return new SelectComboTriggerState(opts, SelectRootContext.get());
|
|
393
|
+
}
|
|
368
394
|
opts;
|
|
369
395
|
root;
|
|
370
396
|
constructor(opts, root) {
|
|
@@ -409,7 +435,10 @@ class SelectComboTriggerState {
|
|
|
409
435
|
...attachRef(this.opts.ref),
|
|
410
436
|
}));
|
|
411
437
|
}
|
|
412
|
-
class SelectTriggerState {
|
|
438
|
+
export class SelectTriggerState {
|
|
439
|
+
static create(opts) {
|
|
440
|
+
return new SelectTriggerState(opts, SelectRootContext.get());
|
|
441
|
+
}
|
|
413
442
|
opts;
|
|
414
443
|
root;
|
|
415
444
|
#domTypeahead;
|
|
@@ -418,7 +447,7 @@ class SelectTriggerState {
|
|
|
418
447
|
this.opts = opts;
|
|
419
448
|
this.root = root;
|
|
420
449
|
this.root.domContext = new DOMContext(opts.ref);
|
|
421
|
-
this.#domTypeahead =
|
|
450
|
+
this.#domTypeahead = new DOMTypeahead({
|
|
422
451
|
getCurrentItem: () => this.root.highlightedNode,
|
|
423
452
|
onMatch: (node) => {
|
|
424
453
|
this.root.setHighlightedNode(node);
|
|
@@ -426,7 +455,7 @@ class SelectTriggerState {
|
|
|
426
455
|
getActiveElement: () => this.root.domContext.getActiveElement(),
|
|
427
456
|
getWindow: () => this.root.domContext.getWindow(),
|
|
428
457
|
});
|
|
429
|
-
this.#dataTypeahead =
|
|
458
|
+
this.#dataTypeahead = new DataTypeahead({
|
|
430
459
|
getCurrentItem: () => {
|
|
431
460
|
if (this.root.isMulti)
|
|
432
461
|
return "";
|
|
@@ -523,7 +552,7 @@ class SelectTriggerState {
|
|
|
523
552
|
// if we're currently "typing ahead", we don't want to select the item
|
|
524
553
|
// just yet as the item the user is trying to get to may have a space in it,
|
|
525
554
|
// so we defer handling the close for this case until further down
|
|
526
|
-
(e.key === kbd.SPACE && this.#domTypeahead.search
|
|
555
|
+
(e.key === kbd.SPACE && this.#domTypeahead.search === "")) &&
|
|
527
556
|
!e.isComposing) {
|
|
528
557
|
e.preventDefault();
|
|
529
558
|
const shouldReturn = this.#handleKeyboardSelection();
|
|
@@ -644,7 +673,10 @@ class SelectTriggerState {
|
|
|
644
673
|
...attachRef(this.opts.ref, (v) => (this.root.triggerNode = v)),
|
|
645
674
|
}));
|
|
646
675
|
}
|
|
647
|
-
class SelectContentState {
|
|
676
|
+
export class SelectContentState {
|
|
677
|
+
static create(opts) {
|
|
678
|
+
return SelectContentContext.set(new SelectContentState(opts, SelectRootContext.get()));
|
|
679
|
+
}
|
|
648
680
|
opts;
|
|
649
681
|
root;
|
|
650
682
|
viewportNode = $state(null);
|
|
@@ -730,7 +762,10 @@ class SelectContentState {
|
|
|
730
762
|
},
|
|
731
763
|
};
|
|
732
764
|
}
|
|
733
|
-
class SelectItemState {
|
|
765
|
+
export class SelectItemState {
|
|
766
|
+
static create(opts) {
|
|
767
|
+
return new SelectItemState(opts, SelectRootContext.get());
|
|
768
|
+
}
|
|
734
769
|
opts;
|
|
735
770
|
root;
|
|
736
771
|
isSelected = $derived.by(() => this.root.includesItem(this.opts.value.current));
|
|
@@ -846,7 +881,10 @@ class SelectItemState {
|
|
|
846
881
|
...attachRef(this.opts.ref),
|
|
847
882
|
}));
|
|
848
883
|
}
|
|
849
|
-
class SelectGroupState {
|
|
884
|
+
export class SelectGroupState {
|
|
885
|
+
static create(opts) {
|
|
886
|
+
return SelectGroupContext.set(new SelectGroupState(opts, SelectRootContext.get()));
|
|
887
|
+
}
|
|
850
888
|
opts;
|
|
851
889
|
root;
|
|
852
890
|
labelNode = $state(null);
|
|
@@ -862,7 +900,10 @@ class SelectGroupState {
|
|
|
862
900
|
...attachRef(this.opts.ref),
|
|
863
901
|
}));
|
|
864
902
|
}
|
|
865
|
-
class SelectGroupHeadingState {
|
|
903
|
+
export class SelectGroupHeadingState {
|
|
904
|
+
static create(opts) {
|
|
905
|
+
return new SelectGroupHeadingState(opts, SelectGroupContext.get());
|
|
906
|
+
}
|
|
866
907
|
opts;
|
|
867
908
|
group;
|
|
868
909
|
constructor(opts, group) {
|
|
@@ -875,7 +916,10 @@ class SelectGroupHeadingState {
|
|
|
875
916
|
...attachRef(this.opts.ref, (v) => (this.group.labelNode = v)),
|
|
876
917
|
}));
|
|
877
918
|
}
|
|
878
|
-
class SelectHiddenInputState {
|
|
919
|
+
export class SelectHiddenInputState {
|
|
920
|
+
static create(opts) {
|
|
921
|
+
return new SelectHiddenInputState(opts, SelectRootContext.get());
|
|
922
|
+
}
|
|
879
923
|
opts;
|
|
880
924
|
root;
|
|
881
925
|
shouldRender = $derived.by(() => this.root.opts.name.current !== "");
|
|
@@ -901,7 +945,10 @@ class SelectHiddenInputState {
|
|
|
901
945
|
onfocus: this.onfocus,
|
|
902
946
|
}));
|
|
903
947
|
}
|
|
904
|
-
class SelectViewportState {
|
|
948
|
+
export class SelectViewportState {
|
|
949
|
+
static create(opts) {
|
|
950
|
+
return new SelectViewportState(opts, SelectContentContext.get());
|
|
951
|
+
}
|
|
905
952
|
opts;
|
|
906
953
|
content;
|
|
907
954
|
root;
|
|
@@ -926,7 +973,7 @@ class SelectViewportState {
|
|
|
926
973
|
...attachRef(this.opts.ref, (v) => (this.content.viewportNode = v)),
|
|
927
974
|
}));
|
|
928
975
|
}
|
|
929
|
-
class SelectScrollButtonImplState {
|
|
976
|
+
export class SelectScrollButtonImplState {
|
|
930
977
|
opts;
|
|
931
978
|
content;
|
|
932
979
|
root;
|
|
@@ -996,7 +1043,10 @@ class SelectScrollButtonImplState {
|
|
|
996
1043
|
...attachRef(this.opts.ref),
|
|
997
1044
|
}));
|
|
998
1045
|
}
|
|
999
|
-
class SelectScrollDownButtonState {
|
|
1046
|
+
export class SelectScrollDownButtonState {
|
|
1047
|
+
static create(opts) {
|
|
1048
|
+
return new SelectScrollDownButtonState(new SelectScrollButtonImplState(opts, SelectContentContext.get()));
|
|
1049
|
+
}
|
|
1000
1050
|
scrollButtonState;
|
|
1001
1051
|
content;
|
|
1002
1052
|
root;
|
|
@@ -1052,7 +1102,10 @@ class SelectScrollDownButtonState {
|
|
|
1052
1102
|
[this.root.getBitsAttr("scroll-down-button")]: "",
|
|
1053
1103
|
}));
|
|
1054
1104
|
}
|
|
1055
|
-
class SelectScrollUpButtonState {
|
|
1105
|
+
export class SelectScrollUpButtonState {
|
|
1106
|
+
static create(opts) {
|
|
1107
|
+
return new SelectScrollUpButtonState(new SelectScrollButtonImplState(opts, SelectContentContext.get()));
|
|
1108
|
+
}
|
|
1056
1109
|
scrollButtonState;
|
|
1057
1110
|
content;
|
|
1058
1111
|
root;
|
|
@@ -1093,46 +1146,3 @@ class SelectScrollUpButtonState {
|
|
|
1093
1146
|
[this.root.getBitsAttr("scroll-up-button")]: "",
|
|
1094
1147
|
}));
|
|
1095
1148
|
}
|
|
1096
|
-
const SelectRootContext = new Context("Select.Root | Combobox.Root");
|
|
1097
|
-
const SelectGroupContext = new Context("Select.Group | Combobox.Group");
|
|
1098
|
-
const SelectContentContext = new Context("Select.Content | Combobox.Content");
|
|
1099
|
-
export function useSelectRoot(props) {
|
|
1100
|
-
const { type, ...rest } = props;
|
|
1101
|
-
const rootState = type === "single"
|
|
1102
|
-
? new SelectSingleRootState(rest)
|
|
1103
|
-
: new SelectMultipleRootState(rest);
|
|
1104
|
-
return SelectRootContext.set(rootState);
|
|
1105
|
-
}
|
|
1106
|
-
export function useSelectInput(props) {
|
|
1107
|
-
return new SelectInputState(props, SelectRootContext.get());
|
|
1108
|
-
}
|
|
1109
|
-
export function useSelectContent(props) {
|
|
1110
|
-
return SelectContentContext.set(new SelectContentState(props, SelectRootContext.get()));
|
|
1111
|
-
}
|
|
1112
|
-
export function useSelectTrigger(props) {
|
|
1113
|
-
return new SelectTriggerState(props, SelectRootContext.get());
|
|
1114
|
-
}
|
|
1115
|
-
export function useSelectComboTrigger(props) {
|
|
1116
|
-
return new SelectComboTriggerState(props, SelectRootContext.get());
|
|
1117
|
-
}
|
|
1118
|
-
export function useSelectItem(props) {
|
|
1119
|
-
return new SelectItemState(props, SelectRootContext.get());
|
|
1120
|
-
}
|
|
1121
|
-
export function useSelectViewport(props) {
|
|
1122
|
-
return new SelectViewportState(props, SelectContentContext.get());
|
|
1123
|
-
}
|
|
1124
|
-
export function useSelectScrollUpButton(props) {
|
|
1125
|
-
return new SelectScrollUpButtonState(new SelectScrollButtonImplState(props, SelectContentContext.get()));
|
|
1126
|
-
}
|
|
1127
|
-
export function useSelectScrollDownButton(props) {
|
|
1128
|
-
return new SelectScrollDownButtonState(new SelectScrollButtonImplState(props, SelectContentContext.get()));
|
|
1129
|
-
}
|
|
1130
|
-
export function useSelectGroup(props) {
|
|
1131
|
-
return SelectGroupContext.set(new SelectGroupState(props, SelectRootContext.get()));
|
|
1132
|
-
}
|
|
1133
|
-
export function useSelectGroupHeading(props) {
|
|
1134
|
-
return new SelectGroupHeadingState(props, SelectGroupContext.get());
|
|
1135
|
-
}
|
|
1136
|
-
export function useSelectHiddenInput(props) {
|
|
1137
|
-
return new SelectHiddenInputState(props, SelectRootContext.get());
|
|
1138
|
-
}
|