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
|
@@ -12,11 +12,11 @@ import { noop } from "../../internal/noop.js";
|
|
|
12
12
|
import { getTabbableCandidates } from "../../internal/focus.js";
|
|
13
13
|
import { kbd } from "../../internal/kbd.js";
|
|
14
14
|
import { CustomEventDispatcher } from "../../internal/events.js";
|
|
15
|
-
import { useRovingFocus } from "../../internal/use-roving-focus.svelte.js";
|
|
16
15
|
import { useArrowNavigation } from "../../internal/use-arrow-navigation.js";
|
|
17
16
|
import { boxAutoReset } from "../../internal/box-auto-reset.svelte.js";
|
|
18
|
-
import { useResizeObserver } from "../../internal/use-resize-observer.svelte.js";
|
|
19
17
|
import { isElement } from "../../internal/is.js";
|
|
18
|
+
import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
|
|
19
|
+
import { SvelteResizeObserver } from "../../internal/svelte-resize-observer.svelte.js";
|
|
20
20
|
const navigationMenuAttrs = createBitsAttrs({
|
|
21
21
|
component: "navigation-menu",
|
|
22
22
|
parts: [
|
|
@@ -32,7 +32,15 @@ const navigationMenuAttrs = createBitsAttrs({
|
|
|
32
32
|
"indicator",
|
|
33
33
|
],
|
|
34
34
|
});
|
|
35
|
+
const NavigationMenuProviderContext = new Context("NavigationMenu.Root");
|
|
36
|
+
export const NavigationMenuItemContext = new Context("NavigationMenu.Item");
|
|
37
|
+
const NavigationMenuListContext = new Context("NavigationMenu.List");
|
|
38
|
+
const NavigationMenuContentContext = new Context("NavigationMenu.Content");
|
|
39
|
+
const NavigationMenuSubContext = new Context("NavigationMenu.Sub");
|
|
35
40
|
class NavigationMenuProviderState {
|
|
41
|
+
static create(opts) {
|
|
42
|
+
return NavigationMenuProviderContext.set(new NavigationMenuProviderState(opts));
|
|
43
|
+
}
|
|
36
44
|
opts;
|
|
37
45
|
indicatorTrackRef = box(null);
|
|
38
46
|
viewportRef = box(null);
|
|
@@ -59,7 +67,10 @@ class NavigationMenuProviderState {
|
|
|
59
67
|
this.activeItem = item;
|
|
60
68
|
};
|
|
61
69
|
}
|
|
62
|
-
class NavigationMenuRootState {
|
|
70
|
+
export class NavigationMenuRootState {
|
|
71
|
+
static create(opts) {
|
|
72
|
+
return new NavigationMenuRootState(opts);
|
|
73
|
+
}
|
|
63
74
|
opts;
|
|
64
75
|
provider;
|
|
65
76
|
previousValue = box("");
|
|
@@ -80,7 +91,7 @@ class NavigationMenuRootState {
|
|
|
80
91
|
afterMs: this.opts.skipDelayDuration.current,
|
|
81
92
|
getWindow: () => getWindow(opts.ref.current),
|
|
82
93
|
});
|
|
83
|
-
this.provider =
|
|
94
|
+
this.provider = NavigationMenuProviderState.create({
|
|
84
95
|
value: this.opts.value,
|
|
85
96
|
previousValue: this.previousValue,
|
|
86
97
|
dir: this.opts.dir,
|
|
@@ -145,7 +156,10 @@ class NavigationMenuRootState {
|
|
|
145
156
|
...attachRef(this.opts.ref),
|
|
146
157
|
}));
|
|
147
158
|
}
|
|
148
|
-
class NavigationMenuSubState {
|
|
159
|
+
export class NavigationMenuSubState {
|
|
160
|
+
static create(opts) {
|
|
161
|
+
return new NavigationMenuSubState(opts, NavigationMenuProviderContext.get());
|
|
162
|
+
}
|
|
149
163
|
opts;
|
|
150
164
|
context;
|
|
151
165
|
previousValue = box("");
|
|
@@ -153,7 +167,7 @@ class NavigationMenuSubState {
|
|
|
153
167
|
constructor(opts, context) {
|
|
154
168
|
this.opts = opts;
|
|
155
169
|
this.context = context;
|
|
156
|
-
this.subProvider =
|
|
170
|
+
this.subProvider = NavigationMenuProviderState.create({
|
|
157
171
|
isRootMenu: false,
|
|
158
172
|
value: this.opts.value,
|
|
159
173
|
dir: this.context.opts.dir,
|
|
@@ -183,7 +197,10 @@ class NavigationMenuSubState {
|
|
|
183
197
|
...attachRef(this.opts.ref),
|
|
184
198
|
}));
|
|
185
199
|
}
|
|
186
|
-
class NavigationMenuListState {
|
|
200
|
+
export class NavigationMenuListState {
|
|
201
|
+
static create(opts) {
|
|
202
|
+
return NavigationMenuListContext.set(new NavigationMenuListState(opts, NavigationMenuProviderContext.get()));
|
|
203
|
+
}
|
|
187
204
|
opts;
|
|
188
205
|
context;
|
|
189
206
|
wrapperId = box(useId());
|
|
@@ -194,7 +211,7 @@ class NavigationMenuListState {
|
|
|
194
211
|
constructor(opts, context) {
|
|
195
212
|
this.opts = opts;
|
|
196
213
|
this.context = context;
|
|
197
|
-
this.rovingFocusGroup =
|
|
214
|
+
this.rovingFocusGroup = new RovingFocusGroup({
|
|
198
215
|
rootNode: opts.ref,
|
|
199
216
|
candidateSelector: `${navigationMenuAttrs.selector("trigger")}:not([data-disabled]), ${navigationMenuAttrs.selector("link")}:not([data-disabled])`,
|
|
200
217
|
loop: box.with(() => false),
|
|
@@ -220,6 +237,9 @@ class NavigationMenuListState {
|
|
|
220
237
|
}));
|
|
221
238
|
}
|
|
222
239
|
export class NavigationMenuItemState {
|
|
240
|
+
static create(opts) {
|
|
241
|
+
return NavigationMenuItemContext.set(new NavigationMenuItemState(opts, NavigationMenuListContext.get()));
|
|
242
|
+
}
|
|
223
243
|
opts;
|
|
224
244
|
listContext;
|
|
225
245
|
contentNode = $state(null);
|
|
@@ -262,7 +282,15 @@ export class NavigationMenuItemState {
|
|
|
262
282
|
[navigationMenuAttrs.item]: "",
|
|
263
283
|
}));
|
|
264
284
|
}
|
|
265
|
-
class NavigationMenuTriggerState {
|
|
285
|
+
export class NavigationMenuTriggerState {
|
|
286
|
+
static create(opts) {
|
|
287
|
+
return new NavigationMenuTriggerState(opts, {
|
|
288
|
+
provider: NavigationMenuProviderContext.get(),
|
|
289
|
+
item: NavigationMenuItemContext.get(),
|
|
290
|
+
list: NavigationMenuListContext.get(),
|
|
291
|
+
sub: NavigationMenuSubContext.getOr(null),
|
|
292
|
+
});
|
|
293
|
+
}
|
|
266
294
|
opts;
|
|
267
295
|
focusProxyId = box(useId());
|
|
268
296
|
focusProxyRef = box(null);
|
|
@@ -271,8 +299,8 @@ class NavigationMenuTriggerState {
|
|
|
271
299
|
listContext;
|
|
272
300
|
hasPointerMoveOpened = box(false);
|
|
273
301
|
wasClickClose = false;
|
|
274
|
-
open = $derived.by(() => this.itemContext.opts.value.current === this.context.opts.value.current);
|
|
275
302
|
focusProxyMounted = $state(false);
|
|
303
|
+
open = $derived.by(() => this.itemContext.opts.value.current === this.context.opts.value.current);
|
|
276
304
|
constructor(opts, context) {
|
|
277
305
|
this.opts = opts;
|
|
278
306
|
this.hasPointerMoveOpened = boxAutoReset(false, {
|
|
@@ -366,9 +394,6 @@ class NavigationMenuTriggerState {
|
|
|
366
394
|
onfocus: this.focusProxyOnFocus,
|
|
367
395
|
...attachRef(this.focusProxyRef, (v) => (this.itemContext.focusProxyNode = v)),
|
|
368
396
|
}));
|
|
369
|
-
restructureSpanProps = $derived.by(() => ({
|
|
370
|
-
"aria-owns": this.itemContext.contentId,
|
|
371
|
-
}));
|
|
372
397
|
}
|
|
373
398
|
const LINK_SELECT_EVENT = new CustomEventDispatcher("bitsLinkSelect", {
|
|
374
399
|
bubbles: true,
|
|
@@ -378,7 +403,13 @@ const ROOT_CONTENT_DISMISS_EVENT = new CustomEventDispatcher("bitsRootContentDis
|
|
|
378
403
|
cancelable: true,
|
|
379
404
|
bubbles: true,
|
|
380
405
|
});
|
|
381
|
-
class NavigationMenuLinkState {
|
|
406
|
+
export class NavigationMenuLinkState {
|
|
407
|
+
static create(opts) {
|
|
408
|
+
return new NavigationMenuLinkState(opts, {
|
|
409
|
+
provider: NavigationMenuProviderContext.get(),
|
|
410
|
+
item: NavigationMenuItemContext.get(),
|
|
411
|
+
});
|
|
412
|
+
}
|
|
382
413
|
opts;
|
|
383
414
|
context;
|
|
384
415
|
isFocused = $state(false);
|
|
@@ -437,14 +468,23 @@ class NavigationMenuLinkState {
|
|
|
437
468
|
...attachRef(this.opts.ref),
|
|
438
469
|
}));
|
|
439
470
|
}
|
|
440
|
-
class NavigationMenuIndicatorState {
|
|
471
|
+
export class NavigationMenuIndicatorState {
|
|
472
|
+
static create() {
|
|
473
|
+
return new NavigationMenuIndicatorState(NavigationMenuProviderContext.get());
|
|
474
|
+
}
|
|
441
475
|
context;
|
|
442
476
|
isVisible = $derived.by(() => Boolean(this.context.opts.value.current));
|
|
443
477
|
constructor(context) {
|
|
444
478
|
this.context = context;
|
|
445
479
|
}
|
|
446
480
|
}
|
|
447
|
-
class NavigationMenuIndicatorImplState {
|
|
481
|
+
export class NavigationMenuIndicatorImplState {
|
|
482
|
+
static create(opts) {
|
|
483
|
+
return new NavigationMenuIndicatorImplState(opts, {
|
|
484
|
+
provider: NavigationMenuProviderContext.get(),
|
|
485
|
+
list: NavigationMenuListContext.get(),
|
|
486
|
+
});
|
|
487
|
+
}
|
|
448
488
|
opts;
|
|
449
489
|
context;
|
|
450
490
|
listContext;
|
|
@@ -461,8 +501,8 @@ class NavigationMenuIndicatorImplState {
|
|
|
461
501
|
this.opts = opts;
|
|
462
502
|
this.context = context.provider;
|
|
463
503
|
this.listContext = context.list;
|
|
464
|
-
|
|
465
|
-
|
|
504
|
+
new SvelteResizeObserver(() => this.activeTrigger, this.handlePositionChange);
|
|
505
|
+
new SvelteResizeObserver(() => this.context.indicatorTrackRef.current, this.handlePositionChange);
|
|
466
506
|
}
|
|
467
507
|
handlePositionChange = () => {
|
|
468
508
|
if (!this.activeTrigger)
|
|
@@ -498,13 +538,20 @@ class NavigationMenuIndicatorImplState {
|
|
|
498
538
|
...attachRef(this.opts.ref),
|
|
499
539
|
}));
|
|
500
540
|
}
|
|
501
|
-
class NavigationMenuContentState {
|
|
541
|
+
export class NavigationMenuContentState {
|
|
542
|
+
static create(opts) {
|
|
543
|
+
return NavigationMenuContentContext.set(new NavigationMenuContentState(opts, {
|
|
544
|
+
provider: NavigationMenuProviderContext.get(),
|
|
545
|
+
item: NavigationMenuItemContext.get(),
|
|
546
|
+
list: NavigationMenuListContext.get(),
|
|
547
|
+
}));
|
|
548
|
+
}
|
|
502
549
|
opts;
|
|
503
550
|
context;
|
|
504
551
|
itemContext;
|
|
505
552
|
listContext;
|
|
506
|
-
open = $derived.by(() => this.itemContext.opts.value.current === this.context.opts.value.current);
|
|
507
553
|
mounted = $state(false);
|
|
554
|
+
open = $derived.by(() => this.itemContext.opts.value.current === this.context.opts.value.current);
|
|
508
555
|
value = $derived.by(() => this.itemContext.opts.value.current);
|
|
509
556
|
// We persist the last active content value as the viewport may be animating out
|
|
510
557
|
// and we want the content to remain mounted for the lifecycle of the viewport.
|
|
@@ -537,7 +584,10 @@ class NavigationMenuContentState {
|
|
|
537
584
|
...attachRef(this.opts.ref, (v) => (this.itemContext.contentNode = v)),
|
|
538
585
|
}));
|
|
539
586
|
}
|
|
540
|
-
class NavigationMenuContentImplState {
|
|
587
|
+
export class NavigationMenuContentImplState {
|
|
588
|
+
static create(opts, itemState) {
|
|
589
|
+
return new NavigationMenuContentImplState(opts, itemState ?? NavigationMenuItemContext.get());
|
|
590
|
+
}
|
|
541
591
|
opts;
|
|
542
592
|
itemContext;
|
|
543
593
|
context;
|
|
@@ -697,15 +747,18 @@ class NavigationMenuContentImplState {
|
|
|
697
747
|
...attachRef(this.opts.ref),
|
|
698
748
|
}));
|
|
699
749
|
}
|
|
700
|
-
class NavigationMenuViewportState {
|
|
750
|
+
export class NavigationMenuViewportState {
|
|
751
|
+
static create(opts) {
|
|
752
|
+
return new NavigationMenuViewportState(opts, NavigationMenuProviderContext.get());
|
|
753
|
+
}
|
|
701
754
|
opts;
|
|
702
755
|
context;
|
|
703
756
|
open = $derived.by(() => !!this.context.opts.value.current);
|
|
704
|
-
size = $state(null);
|
|
705
|
-
contentNode = $state(null);
|
|
706
757
|
viewportWidth = $derived.by(() => (this.size ? `${this.size.width}px` : undefined));
|
|
707
758
|
viewportHeight = $derived.by(() => (this.size ? `${this.size.height}px` : undefined));
|
|
708
759
|
activeContentValue = $derived.by(() => this.context.opts.value.current);
|
|
760
|
+
size = $state(null);
|
|
761
|
+
contentNode = $state(null);
|
|
709
762
|
mounted = $state(false);
|
|
710
763
|
constructor(opts, context) {
|
|
711
764
|
this.opts = opts;
|
|
@@ -726,7 +779,7 @@ class NavigationMenuViewportState {
|
|
|
726
779
|
* For example, if content animates in from `scale(0.5)` the dimensions would be anything
|
|
727
780
|
* from `0.5` to `1` of the intended size.
|
|
728
781
|
*/
|
|
729
|
-
|
|
782
|
+
new SvelteResizeObserver(() => this.contentNode, () => {
|
|
730
783
|
if (this.contentNode) {
|
|
731
784
|
this.size = {
|
|
732
785
|
width: this.contentNode.offsetWidth,
|
|
@@ -756,62 +809,6 @@ class NavigationMenuViewportState {
|
|
|
756
809
|
...attachRef(this.opts.ref, (v) => (this.context.viewportRef.current = v)),
|
|
757
810
|
}));
|
|
758
811
|
}
|
|
759
|
-
const NavigationMenuProviderContext = new Context("NavigationMenu.Root");
|
|
760
|
-
export const NavigationMenuItemContext = new Context("NavigationMenu.Item");
|
|
761
|
-
const NavigationMenuListContext = new Context("NavigationMenu.List");
|
|
762
|
-
const NavigationMenuContentContext = new Context("NavigationMenu.Content");
|
|
763
|
-
const NavigationMenuSubContext = new Context("NavigationMenu.Sub");
|
|
764
|
-
export function useNavigationMenuRoot(props) {
|
|
765
|
-
return new NavigationMenuRootState(props);
|
|
766
|
-
}
|
|
767
|
-
export function useNavigationMenuProvider(props) {
|
|
768
|
-
return NavigationMenuProviderContext.set(new NavigationMenuProviderState(props));
|
|
769
|
-
}
|
|
770
|
-
export function useNavigationMenuSub(props) {
|
|
771
|
-
return new NavigationMenuSubState(props, NavigationMenuProviderContext.get());
|
|
772
|
-
}
|
|
773
|
-
export function useNavigationMenuList(props) {
|
|
774
|
-
return NavigationMenuListContext.set(new NavigationMenuListState(props, NavigationMenuProviderContext.get()));
|
|
775
|
-
}
|
|
776
|
-
export function useNavigationMenuItem(props) {
|
|
777
|
-
return NavigationMenuItemContext.set(new NavigationMenuItemState(props, NavigationMenuListContext.get()));
|
|
778
|
-
}
|
|
779
|
-
export function useNavigationMenuIndicatorImpl(props) {
|
|
780
|
-
return new NavigationMenuIndicatorImplState(props, {
|
|
781
|
-
provider: NavigationMenuProviderContext.get(),
|
|
782
|
-
list: NavigationMenuListContext.get(),
|
|
783
|
-
});
|
|
784
|
-
}
|
|
785
|
-
export function useNavigationMenuTrigger(props) {
|
|
786
|
-
return new NavigationMenuTriggerState(props, {
|
|
787
|
-
provider: NavigationMenuProviderContext.get(),
|
|
788
|
-
item: NavigationMenuItemContext.get(),
|
|
789
|
-
list: NavigationMenuListContext.get(),
|
|
790
|
-
sub: NavigationMenuSubContext.getOr(null),
|
|
791
|
-
});
|
|
792
|
-
}
|
|
793
|
-
export function useNavigationMenuContent(props) {
|
|
794
|
-
return NavigationMenuContentContext.set(new NavigationMenuContentState(props, {
|
|
795
|
-
provider: NavigationMenuProviderContext.get(),
|
|
796
|
-
item: NavigationMenuItemContext.get(),
|
|
797
|
-
list: NavigationMenuListContext.get(),
|
|
798
|
-
}));
|
|
799
|
-
}
|
|
800
|
-
export function useNavigationMenuLink(props) {
|
|
801
|
-
return new NavigationMenuLinkState(props, {
|
|
802
|
-
provider: NavigationMenuProviderContext.get(),
|
|
803
|
-
item: NavigationMenuItemContext.get(),
|
|
804
|
-
});
|
|
805
|
-
}
|
|
806
|
-
export function useNavigationMenuContentImpl(props, itemState) {
|
|
807
|
-
return new NavigationMenuContentImplState(props, itemState ?? NavigationMenuItemContext.get());
|
|
808
|
-
}
|
|
809
|
-
export function useNavigationMenuViewport(props) {
|
|
810
|
-
return new NavigationMenuViewportState(props, NavigationMenuProviderContext.get());
|
|
811
|
-
}
|
|
812
|
-
export function useNavigationMenuIndicator() {
|
|
813
|
-
return new NavigationMenuIndicatorState(NavigationMenuProviderContext.get());
|
|
814
|
-
}
|
|
815
812
|
//
|
|
816
813
|
function focusFirst(candidates, getActiveElement) {
|
|
817
814
|
const previouslyFocusedElement = getActiveElement();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { PaginationNextButtonProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { PaginationButtonState } from "../pagination.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
|
}: PaginationNextButtonProps = $props();
|
|
18
18
|
|
|
19
|
-
const nextButtonState =
|
|
19
|
+
const nextButtonState = PaginationButtonState.create({
|
|
20
20
|
type: "next",
|
|
21
21
|
id: box.with(() => id),
|
|
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 { PaginationPageProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { PaginationPageState } from "../pagination.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
|
}: PaginationPageProps = $props();
|
|
19
19
|
|
|
20
|
-
const pageState =
|
|
20
|
+
const pageState = PaginationPageState.create({
|
|
21
21
|
id: box.with(() => id),
|
|
22
22
|
page: box.with(() => page),
|
|
23
23
|
ref: box.with(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { PaginationPrevButtonProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { PaginationButtonState } from "../pagination.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
|
}: PaginationPrevButtonProps = $props();
|
|
18
18
|
|
|
19
|
-
const prevButtonState =
|
|
19
|
+
const prevButtonState = PaginationButtonState.create({
|
|
20
20
|
type: "prev",
|
|
21
21
|
id: box.with(() => id),
|
|
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 { PaginationRootProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { PaginationRootState } from "../pagination.svelte.js";
|
|
5
5
|
import { noop } from "../../../internal/noop.js";
|
|
6
6
|
import { createId } from "../../../internal/create-id.js";
|
|
7
7
|
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
...restProps
|
|
23
23
|
}: PaginationRootProps = $props();
|
|
24
24
|
|
|
25
|
-
const rootState =
|
|
25
|
+
const rootState = PaginationRootState.create({
|
|
26
26
|
id: box.with(() => id),
|
|
27
27
|
count: box.with(() => count),
|
|
28
28
|
perPage: box.with(() => perPage),
|
|
@@ -1,33 +1,35 @@
|
|
|
1
|
+
import { type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
|
|
1
2
|
import type { Page, PageItem } from "./types.js";
|
|
2
|
-
import type { BitsKeyboardEvent, BitsMouseEvent,
|
|
3
|
-
import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
|
|
3
|
+
import type { BitsKeyboardEvent, BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
|
|
4
4
|
import { type Orientation } from "../../shared/index.js";
|
|
5
|
-
|
|
5
|
+
interface PaginationRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
6
6
|
count: number;
|
|
7
7
|
perPage: number;
|
|
8
8
|
siblingCount: number;
|
|
9
9
|
orientation: Orientation;
|
|
10
10
|
loop: boolean;
|
|
11
|
-
}
|
|
11
|
+
}>, WritableBoxedValues<{
|
|
12
12
|
page: number;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
}> {
|
|
14
|
+
}
|
|
15
|
+
export declare class PaginationRootState {
|
|
16
|
+
static create(opts: PaginationRootStateOpts): PaginationRootState;
|
|
17
|
+
readonly opts: PaginationRootStateOpts;
|
|
18
|
+
readonly totalPages: number;
|
|
19
|
+
readonly range: {
|
|
18
20
|
start: number;
|
|
19
21
|
end: number;
|
|
20
22
|
};
|
|
21
|
-
pages: PageItem[];
|
|
22
|
-
|
|
23
|
+
readonly pages: PageItem[];
|
|
24
|
+
readonly hasPrevPage: boolean;
|
|
25
|
+
readonly hasNextPage: boolean;
|
|
26
|
+
constructor(opts: PaginationRootStateOpts);
|
|
23
27
|
setPage(page: number): void;
|
|
24
28
|
getPageTriggerNodes(): HTMLElement[];
|
|
25
29
|
getButtonNode(type: "prev" | "next"): HTMLElement | null | undefined;
|
|
26
|
-
hasPrevPage: boolean;
|
|
27
|
-
hasNextPage: boolean;
|
|
28
30
|
prevPage(): void;
|
|
29
31
|
nextPage(): void;
|
|
30
|
-
snippetProps: {
|
|
32
|
+
readonly snippetProps: {
|
|
31
33
|
pages: PageItem[];
|
|
32
34
|
range: {
|
|
33
35
|
start: number;
|
|
@@ -35,23 +37,25 @@ declare class PaginationRootState {
|
|
|
35
37
|
};
|
|
36
38
|
currentPage: number;
|
|
37
39
|
};
|
|
38
|
-
props: {
|
|
40
|
+
readonly props: {
|
|
39
41
|
readonly id: string;
|
|
40
42
|
readonly "data-orientation": "horizontal" | "vertical";
|
|
41
43
|
};
|
|
42
44
|
}
|
|
43
|
-
|
|
45
|
+
interface PaginationPageStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
44
46
|
page: Page;
|
|
45
47
|
disabled: boolean;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
+
}> {
|
|
49
|
+
}
|
|
50
|
+
export declare class PaginationPageState {
|
|
48
51
|
#private;
|
|
49
|
-
|
|
52
|
+
static create(opts: PaginationPageStateOpts): PaginationPageState;
|
|
53
|
+
readonly opts: PaginationPageStateOpts;
|
|
50
54
|
readonly root: PaginationRootState;
|
|
51
|
-
constructor(opts:
|
|
55
|
+
constructor(opts: PaginationPageStateOpts, root: PaginationRootState);
|
|
52
56
|
onclick(e: BitsMouseEvent): void;
|
|
53
57
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
54
|
-
props: {
|
|
58
|
+
readonly props: {
|
|
55
59
|
readonly id: string;
|
|
56
60
|
readonly "aria-label": `Page ${number}`;
|
|
57
61
|
readonly "data-value": `${number}`;
|
|
@@ -60,26 +64,24 @@ declare class PaginationPageState {
|
|
|
60
64
|
readonly onkeydown: (e: BitsKeyboardEvent) => void;
|
|
61
65
|
};
|
|
62
66
|
}
|
|
63
|
-
|
|
64
|
-
type: "prev" | "next";
|
|
65
|
-
}> & ReadableBoxedValues<{
|
|
67
|
+
interface PaginationButtonStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
66
68
|
disabled: boolean;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
+
}> {
|
|
70
|
+
type: "prev" | "next";
|
|
71
|
+
}
|
|
72
|
+
export declare class PaginationButtonState {
|
|
69
73
|
#private;
|
|
70
|
-
|
|
74
|
+
static create(opts: PaginationButtonStateOpts): PaginationButtonState;
|
|
75
|
+
readonly opts: PaginationButtonStateOpts;
|
|
71
76
|
readonly root: PaginationRootState;
|
|
72
|
-
constructor(opts:
|
|
77
|
+
constructor(opts: PaginationButtonStateOpts, root: PaginationRootState);
|
|
73
78
|
onclick(e: BitsMouseEvent): void;
|
|
74
79
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
75
|
-
props: {
|
|
80
|
+
readonly props: {
|
|
76
81
|
readonly id: string;
|
|
77
82
|
readonly disabled: boolean;
|
|
78
83
|
readonly onclick: (e: BitsMouseEvent) => void;
|
|
79
84
|
readonly onkeydown: (e: BitsKeyboardEvent) => void;
|
|
80
85
|
};
|
|
81
86
|
}
|
|
82
|
-
export declare function usePaginationRoot(props: PaginationRootStateProps): PaginationRootState;
|
|
83
|
-
export declare function usePaginationPage(props: PaginationPageStateProps): PaginationPageState;
|
|
84
|
-
export declare function usePaginationButton(props: PaginationButtonStateProps): PaginationButtonState;
|
|
85
87
|
export {};
|
|
@@ -9,7 +9,11 @@ const paginationAttrs = createBitsAttrs({
|
|
|
9
9
|
component: "pagination",
|
|
10
10
|
parts: ["root", "page", "prev", "next"],
|
|
11
11
|
});
|
|
12
|
-
|
|
12
|
+
const PaginationRootContext = new Context("Pagination.Root");
|
|
13
|
+
export class PaginationRootState {
|
|
14
|
+
static create(opts) {
|
|
15
|
+
return PaginationRootContext.set(new PaginationRootState(opts));
|
|
16
|
+
}
|
|
13
17
|
opts;
|
|
14
18
|
totalPages = $derived.by(() => {
|
|
15
19
|
if (this.opts.count.current === 0)
|
|
@@ -26,6 +30,8 @@ class PaginationRootState {
|
|
|
26
30
|
totalPages: this.totalPages,
|
|
27
31
|
siblingCount: this.opts.siblingCount.current,
|
|
28
32
|
}));
|
|
33
|
+
hasPrevPage = $derived.by(() => this.opts.page.current > 1);
|
|
34
|
+
hasNextPage = $derived.by(() => this.opts.page.current < this.totalPages);
|
|
29
35
|
constructor(opts) {
|
|
30
36
|
this.opts = opts;
|
|
31
37
|
}
|
|
@@ -44,8 +50,6 @@ class PaginationRootState {
|
|
|
44
50
|
return;
|
|
45
51
|
return node.querySelector(paginationAttrs.selector(type));
|
|
46
52
|
}
|
|
47
|
-
hasPrevPage = $derived.by(() => this.opts.page.current > 1);
|
|
48
|
-
hasNextPage = $derived.by(() => this.opts.page.current < this.totalPages);
|
|
49
53
|
prevPage() {
|
|
50
54
|
this.opts.page.current = Math.max(this.opts.page.current - 1, 1);
|
|
51
55
|
}
|
|
@@ -64,7 +68,10 @@ class PaginationRootState {
|
|
|
64
68
|
...attachRef(this.opts.ref),
|
|
65
69
|
}));
|
|
66
70
|
}
|
|
67
|
-
class PaginationPageState {
|
|
71
|
+
export class PaginationPageState {
|
|
72
|
+
static create(opts) {
|
|
73
|
+
return new PaginationPageState(opts, PaginationRootContext.get());
|
|
74
|
+
}
|
|
68
75
|
opts;
|
|
69
76
|
root;
|
|
70
77
|
#isSelected = $derived.by(() => this.opts.page.current.value === this.root.opts.page.current);
|
|
@@ -102,7 +109,10 @@ class PaginationPageState {
|
|
|
102
109
|
...attachRef(this.opts.ref),
|
|
103
110
|
}));
|
|
104
111
|
}
|
|
105
|
-
class PaginationButtonState {
|
|
112
|
+
export class PaginationButtonState {
|
|
113
|
+
static create(opts) {
|
|
114
|
+
return new PaginationButtonState(opts, PaginationRootContext.get());
|
|
115
|
+
}
|
|
106
116
|
opts;
|
|
107
117
|
root;
|
|
108
118
|
constructor(opts, root) {
|
|
@@ -246,13 +256,3 @@ function getPageItems({ page = 1, totalPages, siblingCount = 1 }) {
|
|
|
246
256
|
}
|
|
247
257
|
return pageItems;
|
|
248
258
|
}
|
|
249
|
-
const PaginationRootContext = new Context("Pagination.Root");
|
|
250
|
-
export function usePaginationRoot(props) {
|
|
251
|
-
return PaginationRootContext.set(new PaginationRootState(props));
|
|
252
|
-
}
|
|
253
|
-
export function usePaginationPage(props) {
|
|
254
|
-
return new PaginationPageState(props, PaginationRootContext.get());
|
|
255
|
-
}
|
|
256
|
-
export function usePaginationButton(props) {
|
|
257
|
-
return new PaginationButtonState(props, PaginationRootContext.get());
|
|
258
|
-
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { PinInputCellProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { PinInputCellState } from "../pin-input.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
|
|
7
7
|
const uid = $props.id();
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
...restProps
|
|
16
16
|
}: PinInputCellProps = $props();
|
|
17
17
|
|
|
18
|
-
const cellState =
|
|
18
|
+
const cellState = PinInputCellState.create({
|
|
19
19
|
id: box.with(() => id),
|
|
20
20
|
ref: box.with(
|
|
21
21
|
() => ref,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { PinInputRootProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { PinInputRootState } from "../pin-input.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
import { noop } from "../../../internal/noop.js";
|
|
7
7
|
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
...restProps
|
|
28
28
|
}: PinInputRootProps = $props();
|
|
29
29
|
|
|
30
|
-
const rootState =
|
|
30
|
+
const rootState = PinInputRootState.create({
|
|
31
31
|
id: box.with(() => id),
|
|
32
32
|
ref: box.with(
|
|
33
33
|
() => ref,
|