bits-ui 2.6.2 → 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 +4 -2
- package/dist/bits/radio-group/radio-group.svelte.d.ts +26 -19
- package/dist/bits/radio-group/radio-group.svelte.js +26 -19
- package/dist/bits/radio-group/types.d.ts +13 -6
- 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 +74 -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,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { TimeRangeFieldInputProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { TimeRangeFieldInputState } from "../time-range-field.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
import TimeFieldHiddenInput from "../../time-field/components/time-field-hidden-input.svelte";
|
|
7
7
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
...restProps
|
|
18
18
|
}: TimeRangeFieldInputProps = $props();
|
|
19
19
|
|
|
20
|
-
const inputState =
|
|
20
|
+
const inputState = TimeRangeFieldInputState.create(
|
|
21
21
|
{
|
|
22
22
|
id: box.with(() => id),
|
|
23
23
|
ref: box.with(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
|
-
import {
|
|
3
|
+
import { TimeRangeFieldLabelState } from "../time-range-field.svelte.js";
|
|
4
4
|
import type { TimeRangeFieldLabelProps } from "../types.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
...restProps
|
|
15
15
|
}: TimeRangeFieldLabelProps = $props();
|
|
16
16
|
|
|
17
|
-
const labelState =
|
|
17
|
+
const labelState = TimeRangeFieldLabelState.create({
|
|
18
18
|
id: box.with(() => id),
|
|
19
19
|
ref: box.with(
|
|
20
20
|
() => ref,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<script lang="ts" generics="T extends TimeValue = Time">
|
|
9
9
|
import { watch } from "runed";
|
|
10
10
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
11
|
-
import {
|
|
11
|
+
import { TimeRangeFieldRootState } from "../time-range-field.svelte.js";
|
|
12
12
|
import type { TimeRangeFieldRootProps } from "../types.js";
|
|
13
13
|
import { createId } from "../../../internal/create-id.js";
|
|
14
14
|
import { noop } from "../../../internal/noop.js";
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
}
|
|
85
85
|
);
|
|
86
86
|
|
|
87
|
-
const rootState =
|
|
87
|
+
const rootState = TimeRangeFieldRootState.create({
|
|
88
88
|
id: box.with(() => id),
|
|
89
89
|
ref: box.with(
|
|
90
90
|
() => ref,
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import type { Time } from "@internationalized/date";
|
|
2
|
-
import { DOMContext } from "svelte-toolbelt";
|
|
2
|
+
import { DOMContext, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
|
|
3
3
|
import { Context } from "runed";
|
|
4
|
-
import
|
|
4
|
+
import { TimeFieldRootState } from "../time-field/time-field.svelte.js";
|
|
5
5
|
import { TimeFieldInputState } from "../time-field/time-field.svelte.js";
|
|
6
|
-
import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
|
|
7
6
|
import type { TimeSegmentPart } from "../../shared/index.js";
|
|
8
|
-
import type {
|
|
7
|
+
import type { WithRefOpts } from "../../internal/types.js";
|
|
9
8
|
import type { TimeGranularity, TimeOnInvalid, TimeRange, TimeRangeValidator, TimeValue } from "../../shared/date/types.js";
|
|
10
9
|
import { type TimeFormatter } from "../../internal/date-time/formatter.js";
|
|
11
|
-
export declare const timeRangeFieldAttrs: import("../../internal/attrs.js").
|
|
12
|
-
|
|
10
|
+
export declare const timeRangeFieldAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root", "label"]>;
|
|
11
|
+
export declare const TimeRangeFieldRootContext: Context<TimeRangeFieldRootState<Time>>;
|
|
12
|
+
interface TimeRangeFieldRootStateOpts<T extends TimeValue = Time> extends WithRefOpts, WritableBoxedValues<{
|
|
13
13
|
value: TimeRange<T>;
|
|
14
14
|
placeholder: TimeValue;
|
|
15
15
|
startValue: T | undefined;
|
|
16
16
|
endValue: T | undefined;
|
|
17
|
-
}
|
|
17
|
+
}>, ReadableBoxedValues<{
|
|
18
18
|
readonlySegments: TimeSegmentPart[];
|
|
19
19
|
validate: TimeRangeValidator<T> | undefined;
|
|
20
20
|
onInvalid: TimeOnInvalid | undefined;
|
|
@@ -28,10 +28,12 @@ type TimeRangeFieldRootStateProps<T extends TimeValue = Time> = WithRefProps<Wri
|
|
|
28
28
|
hideTimeZone: boolean;
|
|
29
29
|
required: boolean;
|
|
30
30
|
errorMessageId: string | undefined;
|
|
31
|
-
}
|
|
31
|
+
}> {
|
|
32
|
+
}
|
|
32
33
|
export declare class TimeRangeFieldRootState<T extends TimeValue = Time> {
|
|
33
34
|
#private;
|
|
34
|
-
|
|
35
|
+
static create<T extends TimeValue = Time>(opts: TimeRangeFieldRootStateOpts<T>): TimeRangeFieldRootState<Time>;
|
|
36
|
+
readonly opts: TimeRangeFieldRootStateOpts<T>;
|
|
35
37
|
startFieldState: TimeFieldRootState | undefined;
|
|
36
38
|
endFieldState: TimeFieldRootState | undefined;
|
|
37
39
|
descriptionId: string;
|
|
@@ -39,16 +41,16 @@ export declare class TimeRangeFieldRootState<T extends TimeValue = Time> {
|
|
|
39
41
|
fieldNode: HTMLElement | null;
|
|
40
42
|
labelNode: HTMLElement | null;
|
|
41
43
|
descriptionNode: HTMLElement | null;
|
|
42
|
-
startValueComplete: boolean;
|
|
43
|
-
endValueComplete: boolean;
|
|
44
|
-
rangeComplete: boolean;
|
|
45
|
-
startValueTime: Time | undefined;
|
|
46
|
-
endValueTime: Time | undefined;
|
|
47
|
-
minValueTime: Time | undefined;
|
|
48
|
-
maxValueTime: Time | undefined;
|
|
44
|
+
readonly startValueComplete: boolean;
|
|
45
|
+
readonly endValueComplete: boolean;
|
|
46
|
+
readonly rangeComplete: boolean;
|
|
47
|
+
readonly startValueTime: Time | undefined;
|
|
48
|
+
readonly endValueTime: Time | undefined;
|
|
49
|
+
readonly minValueTime: Time | undefined;
|
|
50
|
+
readonly maxValueTime: Time | undefined;
|
|
49
51
|
domContext: DOMContext;
|
|
50
|
-
constructor(opts:
|
|
51
|
-
validationStatus: false | {
|
|
52
|
+
constructor(opts: TimeRangeFieldRootStateOpts<T>);
|
|
53
|
+
readonly validationStatus: false | {
|
|
52
54
|
readonly reason: "custom";
|
|
53
55
|
readonly message: string | string[];
|
|
54
56
|
} | {
|
|
@@ -58,33 +60,35 @@ export declare class TimeRangeFieldRootState<T extends TimeValue = Time> {
|
|
|
58
60
|
readonly reason: "max";
|
|
59
61
|
readonly message?: undefined;
|
|
60
62
|
};
|
|
61
|
-
isInvalid: boolean;
|
|
63
|
+
readonly isInvalid: boolean;
|
|
62
64
|
props: {
|
|
63
65
|
readonly id: string;
|
|
64
66
|
readonly role: "group";
|
|
65
67
|
readonly "data-invalid": "" | undefined;
|
|
66
68
|
};
|
|
67
69
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
interface TimeRangeFieldLabelStateOpts extends WithRefOpts {
|
|
71
|
+
}
|
|
72
|
+
export declare class TimeRangeFieldLabelState {
|
|
70
73
|
#private;
|
|
71
|
-
|
|
74
|
+
static create(opts: TimeRangeFieldLabelStateOpts): TimeRangeFieldLabelState;
|
|
75
|
+
readonly opts: TimeRangeFieldLabelStateOpts;
|
|
72
76
|
readonly root: TimeRangeFieldRootState;
|
|
73
|
-
constructor(opts:
|
|
74
|
-
props: {
|
|
77
|
+
constructor(opts: TimeRangeFieldLabelStateOpts, root: TimeRangeFieldRootState);
|
|
78
|
+
readonly props: {
|
|
75
79
|
readonly id: string;
|
|
76
80
|
readonly "data-invalid": "" | undefined;
|
|
77
81
|
readonly "data-disabled": "" | undefined;
|
|
78
82
|
readonly onclick: () => void;
|
|
79
83
|
};
|
|
80
84
|
}
|
|
81
|
-
|
|
85
|
+
interface TimeRangeFieldInputStateOpts<T extends TimeValue = Time> extends WritableBoxedValues<{
|
|
82
86
|
value: T | undefined;
|
|
83
|
-
}
|
|
87
|
+
}>, ReadableBoxedValues<{
|
|
84
88
|
name: string;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export declare
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
}>, WithRefOpts {
|
|
90
|
+
}
|
|
91
|
+
export declare class TimeRangeFieldInputState {
|
|
92
|
+
static create(opts: Omit<TimeRangeFieldInputStateOpts, "value">, type: "start" | "end"): TimeFieldInputState;
|
|
93
|
+
}
|
|
90
94
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { box, onDestroyEffect, attachRef, DOMContext } from "svelte-toolbelt";
|
|
1
|
+
import { box, onDestroyEffect, attachRef, DOMContext, } from "svelte-toolbelt";
|
|
2
2
|
import { Context, watch } from "runed";
|
|
3
|
-
import {
|
|
3
|
+
import { TimeFieldRootState } from "../time-field/time-field.svelte.js";
|
|
4
|
+
import { TimeFieldInputState } from "../time-field/time-field.svelte.js";
|
|
4
5
|
import { useId } from "../../internal/use-id.js";
|
|
5
6
|
import { createBitsAttrs, getDataDisabled, getDataInvalid } from "../../internal/attrs.js";
|
|
6
7
|
import { createTimeFormatter } from "../../internal/date-time/formatter.js";
|
|
@@ -11,7 +12,11 @@ export const timeRangeFieldAttrs = createBitsAttrs({
|
|
|
11
12
|
component: "time-range-field",
|
|
12
13
|
parts: ["root", "label"],
|
|
13
14
|
});
|
|
15
|
+
export const TimeRangeFieldRootContext = new Context("TimeRangeField.Root");
|
|
14
16
|
export class TimeRangeFieldRootState {
|
|
17
|
+
static create(opts) {
|
|
18
|
+
return TimeRangeFieldRootContext.set(new TimeRangeFieldRootState(opts));
|
|
19
|
+
}
|
|
15
20
|
opts;
|
|
16
21
|
startFieldState = undefined;
|
|
17
22
|
endFieldState = undefined;
|
|
@@ -158,7 +163,10 @@ export class TimeRangeFieldRootState {
|
|
|
158
163
|
...attachRef(this.opts.ref, (v) => (this.fieldNode = v)),
|
|
159
164
|
}));
|
|
160
165
|
}
|
|
161
|
-
class TimeRangeFieldLabelState {
|
|
166
|
+
export class TimeRangeFieldLabelState {
|
|
167
|
+
static create(opts) {
|
|
168
|
+
return new TimeRangeFieldLabelState(opts, TimeRangeFieldRootContext.get());
|
|
169
|
+
}
|
|
162
170
|
opts;
|
|
163
171
|
root;
|
|
164
172
|
constructor(opts, root) {
|
|
@@ -175,7 +183,6 @@ class TimeRangeFieldLabelState {
|
|
|
175
183
|
};
|
|
176
184
|
props = $derived.by(() => ({
|
|
177
185
|
id: this.opts.id.current,
|
|
178
|
-
// TODO: invalid state for field
|
|
179
186
|
"data-invalid": getDataInvalid(this.root.isInvalid),
|
|
180
187
|
"data-disabled": getDataDisabled(this.root.opts.disabled.current),
|
|
181
188
|
[timeRangeFieldAttrs.label]: "",
|
|
@@ -183,32 +190,27 @@ class TimeRangeFieldLabelState {
|
|
|
183
190
|
...attachRef(this.opts.ref, (v) => (this.root.labelNode = v)),
|
|
184
191
|
}));
|
|
185
192
|
}
|
|
186
|
-
export
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
onInvalid: root.opts.onInvalid,
|
|
210
|
-
errorMessageId: root.opts.errorMessageId,
|
|
211
|
-
isInvalidProp: box.with(() => root.isInvalid),
|
|
212
|
-
}, root);
|
|
213
|
-
return new TimeFieldInputState({ name: props.name, id: props.id, ref: props.ref }, fieldState);
|
|
193
|
+
export class TimeRangeFieldInputState {
|
|
194
|
+
static create(opts, type) {
|
|
195
|
+
const root = TimeRangeFieldRootContext.get();
|
|
196
|
+
const fieldState = TimeFieldRootState.create({
|
|
197
|
+
value: type === "start" ? root.opts.startValue : root.opts.endValue,
|
|
198
|
+
disabled: root.opts.disabled,
|
|
199
|
+
readonly: root.opts.readonly,
|
|
200
|
+
readonlySegments: root.opts.readonlySegments,
|
|
201
|
+
validate: box.with(() => undefined),
|
|
202
|
+
minValue: root.opts.minValue,
|
|
203
|
+
maxValue: root.opts.maxValue,
|
|
204
|
+
hourCycle: root.opts.hourCycle,
|
|
205
|
+
locale: root.opts.locale,
|
|
206
|
+
hideTimeZone: root.opts.hideTimeZone,
|
|
207
|
+
required: root.opts.required,
|
|
208
|
+
granularity: root.opts.granularity,
|
|
209
|
+
placeholder: root.opts.placeholder,
|
|
210
|
+
onInvalid: root.opts.onInvalid,
|
|
211
|
+
errorMessageId: root.opts.errorMessageId,
|
|
212
|
+
isInvalidProp: box.with(() => root.isInvalid),
|
|
213
|
+
}, root);
|
|
214
|
+
return new TimeFieldInputState({ name: opts.name, id: opts.id, ref: opts.ref }, fieldState);
|
|
215
|
+
}
|
|
214
216
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { ToggleRootProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ToggleRootState } from "../toggle.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
import { noop } from "../../../internal/noop.js";
|
|
7
7
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
...restProps
|
|
20
20
|
}: ToggleRootProps = $props();
|
|
21
21
|
|
|
22
|
-
const toggleState =
|
|
22
|
+
const toggleState = ToggleRootState.create({
|
|
23
23
|
pressed: box.with(
|
|
24
24
|
() => pressed,
|
|
25
25
|
(v) => {
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { BitsMouseEvent,
|
|
3
|
-
export declare const toggleAttrs: import("../../internal/attrs.js").
|
|
4
|
-
|
|
1
|
+
import { type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
|
|
2
|
+
import type { BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
|
|
3
|
+
export declare const toggleAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root"]>;
|
|
4
|
+
interface ToggleRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
5
5
|
disabled: boolean;
|
|
6
|
-
}
|
|
6
|
+
}>, WritableBoxedValues<{
|
|
7
7
|
pressed: boolean;
|
|
8
|
-
}
|
|
9
|
-
|
|
8
|
+
}> {
|
|
9
|
+
}
|
|
10
|
+
export declare class ToggleRootState {
|
|
10
11
|
#private;
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
static create(opts: ToggleRootStateOpts): ToggleRootState;
|
|
13
|
+
readonly opts: ToggleRootStateOpts;
|
|
14
|
+
constructor(opts: ToggleRootStateOpts);
|
|
13
15
|
onclick(_: BitsMouseEvent): void;
|
|
14
16
|
readonly snippetProps: {
|
|
15
17
|
pressed: boolean;
|
|
@@ -23,6 +25,5 @@ declare class ToggleRootState {
|
|
|
23
25
|
readonly onclick: (_: BitsMouseEvent) => void;
|
|
24
26
|
};
|
|
25
27
|
}
|
|
26
|
-
export declare function useToggleRoot(props: ToggleRootStateProps): ToggleRootState;
|
|
27
28
|
export declare function getToggleDataState(condition: boolean): "on" | "off";
|
|
28
29
|
export {};
|
|
@@ -4,7 +4,10 @@ export const toggleAttrs = createBitsAttrs({
|
|
|
4
4
|
component: "toggle",
|
|
5
5
|
parts: ["root"],
|
|
6
6
|
});
|
|
7
|
-
class ToggleRootState {
|
|
7
|
+
export class ToggleRootState {
|
|
8
|
+
static create(opts) {
|
|
9
|
+
return new ToggleRootState(opts);
|
|
10
|
+
}
|
|
8
11
|
opts;
|
|
9
12
|
constructor(opts) {
|
|
10
13
|
this.opts = opts;
|
|
@@ -34,9 +37,6 @@ class ToggleRootState {
|
|
|
34
37
|
...attachRef(this.opts.ref),
|
|
35
38
|
}));
|
|
36
39
|
}
|
|
37
|
-
export function useToggleRoot(props) {
|
|
38
|
-
return new ToggleRootState(props);
|
|
39
|
-
}
|
|
40
40
|
export function getToggleDataState(condition) {
|
|
41
41
|
return condition ? "on" : "off";
|
|
42
42
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { ToggleGroupItemProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ToggleGroupItemState } from "../toggle-group.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
|
|
7
7
|
const uid = $props.id();
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
...restProps
|
|
18
18
|
}: ToggleGroupItemProps = $props();
|
|
19
19
|
|
|
20
|
-
const itemState =
|
|
20
|
+
const itemState = ToggleGroupItemState.create({
|
|
21
21
|
id: box.with(() => id),
|
|
22
22
|
value: box.with(() => value),
|
|
23
23
|
disabled: box.with(() => disabled ?? false),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { type WritableBox, box } from "svelte-toolbelt";
|
|
3
3
|
import { mergeProps } from "svelte-toolbelt";
|
|
4
4
|
import type { ToggleGroupRootProps } from "../types.js";
|
|
5
|
-
import {
|
|
5
|
+
import { ToggleGroupRootState } from "../toggle-group.svelte.js";
|
|
6
6
|
import { createId } from "../../../internal/create-id.js";
|
|
7
7
|
import { noop } from "../../../internal/noop.js";
|
|
8
8
|
import { watch } from "runed";
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
}
|
|
40
40
|
);
|
|
41
41
|
|
|
42
|
-
const rootState =
|
|
42
|
+
const rootState = ToggleGroupRootState.create({
|
|
43
43
|
id: box.with(() => id),
|
|
44
44
|
value: box.with(
|
|
45
45
|
() => value!,
|
|
@@ -1,65 +1,81 @@
|
|
|
1
|
-
import { type WritableBox } from "svelte-toolbelt";
|
|
2
|
-
import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
|
|
1
|
+
import { type WritableBox, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
|
|
3
2
|
import type { Orientation } from "../../shared/index.js";
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
export declare const toggleGroupAttrs: import("../../internal/attrs.js").
|
|
7
|
-
|
|
3
|
+
import type { BitsKeyboardEvent, BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
|
|
4
|
+
import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
|
|
5
|
+
export declare const toggleGroupAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root", "item"]>;
|
|
6
|
+
interface ToggleGroupBaseStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
8
7
|
disabled: boolean;
|
|
9
8
|
rovingFocus: boolean;
|
|
10
9
|
loop: boolean;
|
|
11
10
|
orientation: Orientation;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
11
|
+
}> {
|
|
12
|
+
}
|
|
13
|
+
declare abstract class ToggleGroupBaseState {
|
|
14
|
+
readonly opts: ToggleGroupBaseStateOpts;
|
|
15
|
+
readonly rovingFocusGroup: RovingFocusGroup;
|
|
16
|
+
constructor(opts: ToggleGroupBaseStateOpts);
|
|
17
|
+
readonly props: {
|
|
18
18
|
readonly id: string;
|
|
19
19
|
readonly role: "group";
|
|
20
20
|
readonly "data-orientation": "horizontal" | "vertical";
|
|
21
21
|
readonly "data-disabled": "" | undefined;
|
|
22
22
|
};
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
interface ToggleGroupSingleStateOpts extends ToggleGroupBaseStateOpts, WritableBoxedValues<{
|
|
25
25
|
value: string;
|
|
26
|
-
}
|
|
26
|
+
}> {
|
|
27
|
+
}
|
|
27
28
|
declare class ToggleGroupSingleState extends ToggleGroupBaseState {
|
|
28
|
-
readonly opts:
|
|
29
|
+
readonly opts: ToggleGroupSingleStateOpts;
|
|
29
30
|
isMulti: boolean;
|
|
30
|
-
anyPressed: boolean;
|
|
31
|
-
constructor(opts:
|
|
31
|
+
readonly anyPressed: boolean;
|
|
32
|
+
constructor(opts: ToggleGroupSingleStateOpts);
|
|
32
33
|
includesItem(item: string): boolean;
|
|
33
34
|
toggleItem(item: string, id: string): void;
|
|
34
35
|
}
|
|
35
|
-
|
|
36
|
+
interface ToggleGroupMultipleStateOpts extends ToggleGroupBaseStateOpts, WritableBoxedValues<{
|
|
36
37
|
value: string[];
|
|
37
|
-
}
|
|
38
|
+
}> {
|
|
39
|
+
}
|
|
38
40
|
declare class ToggleGroupMultipleState extends ToggleGroupBaseState {
|
|
39
|
-
readonly opts:
|
|
41
|
+
readonly opts: ToggleGroupMultipleStateOpts;
|
|
40
42
|
isMulti: boolean;
|
|
41
|
-
anyPressed: boolean;
|
|
42
|
-
constructor(opts:
|
|
43
|
+
readonly anyPressed: boolean;
|
|
44
|
+
constructor(opts: ToggleGroupMultipleStateOpts);
|
|
43
45
|
includesItem(item: string): boolean;
|
|
44
46
|
toggleItem(item: string, id: string): void;
|
|
45
47
|
}
|
|
46
|
-
type
|
|
47
|
-
|
|
48
|
+
type ToggleGroup = ToggleGroupSingleState | ToggleGroupMultipleState;
|
|
49
|
+
interface ToggleGroupRootOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
50
|
+
disabled: boolean;
|
|
51
|
+
rovingFocus: boolean;
|
|
52
|
+
loop: boolean;
|
|
53
|
+
orientation: Orientation;
|
|
54
|
+
}> {
|
|
55
|
+
type: "single" | "multiple";
|
|
56
|
+
value: WritableBox<string> | WritableBox<string[]>;
|
|
57
|
+
}
|
|
58
|
+
export declare class ToggleGroupRootState {
|
|
59
|
+
static create(opts: ToggleGroupRootOpts): ToggleGroup;
|
|
60
|
+
}
|
|
61
|
+
interface ToggleGroupItemStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
48
62
|
value: string;
|
|
49
63
|
disabled: boolean;
|
|
50
|
-
}
|
|
51
|
-
|
|
64
|
+
}> {
|
|
65
|
+
}
|
|
66
|
+
export declare class ToggleGroupItemState {
|
|
52
67
|
#private;
|
|
53
|
-
|
|
54
|
-
readonly
|
|
55
|
-
|
|
68
|
+
static create(opts: ToggleGroupItemStateOpts): ToggleGroupItemState;
|
|
69
|
+
readonly opts: ToggleGroupItemStateOpts;
|
|
70
|
+
readonly root: ToggleGroup;
|
|
71
|
+
readonly isPressed: boolean;
|
|
72
|
+
constructor(opts: ToggleGroupItemStateOpts, root: ToggleGroup);
|
|
56
73
|
onclick(_: BitsMouseEvent): void;
|
|
57
74
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
58
|
-
|
|
59
|
-
snippetProps: {
|
|
75
|
+
readonly snippetProps: {
|
|
60
76
|
pressed: boolean;
|
|
61
77
|
};
|
|
62
|
-
props: {
|
|
78
|
+
readonly props: {
|
|
63
79
|
readonly id: string;
|
|
64
80
|
readonly role: "radio" | undefined;
|
|
65
81
|
readonly tabindex: number;
|
|
@@ -74,15 +90,4 @@ declare class ToggleGroupItemState {
|
|
|
74
90
|
readonly onkeydown: (e: BitsKeyboardEvent) => void;
|
|
75
91
|
};
|
|
76
92
|
}
|
|
77
|
-
type InitToggleGroupProps = WithRefProps<{
|
|
78
|
-
type: "single" | "multiple";
|
|
79
|
-
value: WritableBox<string> | WritableBox<string[]>;
|
|
80
|
-
} & ReadableBoxedValues<{
|
|
81
|
-
disabled: boolean;
|
|
82
|
-
rovingFocus: boolean;
|
|
83
|
-
loop: boolean;
|
|
84
|
-
orientation: Orientation;
|
|
85
|
-
}>>;
|
|
86
|
-
export declare function useToggleGroupRoot(props: InitToggleGroupProps): ToggleGroupState;
|
|
87
|
-
export declare function useToggleGroupItem(props: Omit<ToggleGroupItemStateProps, "rootState">): ToggleGroupItemState;
|
|
88
93
|
export {};
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { attachRef } from "svelte-toolbelt";
|
|
1
|
+
import { attachRef, } from "svelte-toolbelt";
|
|
2
2
|
import { Context } from "runed";
|
|
3
3
|
import { createBitsAttrs, getAriaChecked, getAriaPressed, getDataDisabled, getDataOrientation, getDisabled, } from "../../internal/attrs.js";
|
|
4
4
|
import { kbd } from "../../internal/kbd.js";
|
|
5
|
-
import {
|
|
5
|
+
import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
|
|
6
6
|
export const toggleGroupAttrs = createBitsAttrs({
|
|
7
7
|
component: "toggle-group",
|
|
8
8
|
parts: ["root", "item"],
|
|
9
9
|
});
|
|
10
|
+
const ToggleGroupRootContext = new Context("ToggleGroup.Root");
|
|
10
11
|
class ToggleGroupBaseState {
|
|
11
12
|
opts;
|
|
12
13
|
rovingFocusGroup;
|
|
13
14
|
constructor(opts) {
|
|
14
15
|
this.opts = opts;
|
|
15
|
-
this.rovingFocusGroup =
|
|
16
|
+
this.rovingFocusGroup = new RovingFocusGroup({
|
|
16
17
|
candidateAttr: toggleGroupAttrs.item,
|
|
17
18
|
rootNode: opts.ref,
|
|
18
19
|
loop: opts.loop,
|
|
@@ -70,10 +71,29 @@ class ToggleGroupMultipleState extends ToggleGroupBaseState {
|
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
|
-
class
|
|
74
|
+
export class ToggleGroupRootState {
|
|
75
|
+
static create(opts) {
|
|
76
|
+
const { type, ...rest } = opts;
|
|
77
|
+
const rootState = type === "single"
|
|
78
|
+
? new ToggleGroupSingleState(rest)
|
|
79
|
+
: new ToggleGroupMultipleState(rest);
|
|
80
|
+
return ToggleGroupRootContext.set(rootState);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export class ToggleGroupItemState {
|
|
84
|
+
static create(opts) {
|
|
85
|
+
return new ToggleGroupItemState(opts, ToggleGroupRootContext.get());
|
|
86
|
+
}
|
|
74
87
|
opts;
|
|
75
88
|
root;
|
|
76
89
|
#isDisabled = $derived.by(() => this.opts.disabled.current || this.root.opts.disabled.current);
|
|
90
|
+
isPressed = $derived.by(() => this.root.includesItem(this.opts.value.current));
|
|
91
|
+
#ariaChecked = $derived.by(() => {
|
|
92
|
+
return this.root.isMulti ? undefined : getAriaChecked(this.isPressed, false);
|
|
93
|
+
});
|
|
94
|
+
#ariaPressed = $derived.by(() => {
|
|
95
|
+
return this.root.isMulti ? getAriaPressed(this.isPressed) : undefined;
|
|
96
|
+
});
|
|
77
97
|
constructor(opts, root) {
|
|
78
98
|
this.opts = opts;
|
|
79
99
|
this.root = root;
|
|
@@ -110,13 +130,6 @@ class ToggleGroupItemState {
|
|
|
110
130
|
return;
|
|
111
131
|
this.root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);
|
|
112
132
|
}
|
|
113
|
-
isPressed = $derived.by(() => this.root.includesItem(this.opts.value.current));
|
|
114
|
-
#ariaChecked = $derived.by(() => {
|
|
115
|
-
return this.root.isMulti ? undefined : getAriaChecked(this.isPressed, false);
|
|
116
|
-
});
|
|
117
|
-
#ariaPressed = $derived.by(() => {
|
|
118
|
-
return this.root.isMulti ? getAriaPressed(this.isPressed) : undefined;
|
|
119
|
-
});
|
|
120
133
|
#tabIndex = $state(0);
|
|
121
134
|
snippetProps = $derived.by(() => ({
|
|
122
135
|
pressed: this.isPressed,
|
|
@@ -139,20 +152,6 @@ class ToggleGroupItemState {
|
|
|
139
152
|
...attachRef(this.opts.ref),
|
|
140
153
|
}));
|
|
141
154
|
}
|
|
142
|
-
//
|
|
143
|
-
// HELPERS
|
|
144
|
-
//
|
|
145
155
|
function getToggleItemDataState(condition) {
|
|
146
156
|
return condition ? "on" : "off";
|
|
147
157
|
}
|
|
148
|
-
const ToggleGroupRootContext = new Context("ToggleGroup.Root");
|
|
149
|
-
export function useToggleGroupRoot(props) {
|
|
150
|
-
const { type, ...rest } = props;
|
|
151
|
-
const rootState = type === "single"
|
|
152
|
-
? new ToggleGroupSingleState(rest)
|
|
153
|
-
: new ToggleGroupMultipleState(rest);
|
|
154
|
-
return ToggleGroupRootContext.set(rootState);
|
|
155
|
-
}
|
|
156
|
-
export function useToggleGroupItem(props) {
|
|
157
|
-
return new ToggleGroupItemState(props, ToggleGroupRootContext.get());
|
|
158
|
-
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { ToolbarButtonProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ToolbarButtonState } from "../toolbar.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
|
|
7
7
|
const uid = $props.id();
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
...restProps
|
|
17
17
|
}: ToolbarButtonProps = $props();
|
|
18
18
|
|
|
19
|
-
const buttonState =
|
|
19
|
+
const buttonState = ToolbarButtonState.create({
|
|
20
20
|
id: box.with(() => id),
|
|
21
21
|
disabled: box.with(() => disabled ?? false),
|
|
22
22
|
ref: box.with(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { ToolbarGroupItemProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { ToolbarGroupItemState } from "../toolbar.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
|
|
7
7
|
const uid = $props.id();
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
...restProps
|
|
18
18
|
}: ToolbarGroupItemProps = $props();
|
|
19
19
|
|
|
20
|
-
const groupItemState =
|
|
20
|
+
const groupItemState = ToolbarGroupItemState.create({
|
|
21
21
|
id: box.with(() => id),
|
|
22
22
|
value: box.with(() => value),
|
|
23
23
|
disabled: box.with(() => disabled ?? false),
|