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
package/README.md
CHANGED
|
@@ -19,10 +19,10 @@ Visit https://bits-ui.com/docs to view the documentation.
|
|
|
19
19
|
|
|
20
20
|
## Credits
|
|
21
21
|
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
22
|
+
- [Bitworks](https://bitworks.cz) - The design team behind the Bits UI documentation and example components.
|
|
23
|
+
- [Melt UI](https://melt-ui.com) - A powerful builder API that inspired the internal architecture of Bits UI.
|
|
24
|
+
- [Radix UI](https://radix-ui.com) - The incredible headless component APIs that we've taken heavy inspiration from.
|
|
25
|
+
- [React Spectrum](https://react-spectrum.adobe.com) - An incredible collection of headless components we've taken inspiration from.
|
|
26
26
|
|
|
27
27
|
## Sponsors
|
|
28
28
|
|
|
@@ -1,47 +1,53 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { BitsKeyboardEvent, BitsMouseEvent,
|
|
3
|
-
import { type UseRovingFocusReturn } from "../../internal/use-roving-focus.svelte.js";
|
|
1
|
+
import { type Box, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
|
|
2
|
+
import type { BitsKeyboardEvent, BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
|
|
4
3
|
import type { Orientation } from "../../shared/index.js";
|
|
5
|
-
|
|
4
|
+
import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
|
|
5
|
+
interface AccordionBaseStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
6
6
|
disabled: boolean;
|
|
7
7
|
orientation: Orientation;
|
|
8
8
|
loop: boolean;
|
|
9
|
-
}
|
|
10
|
-
|
|
9
|
+
}> {
|
|
10
|
+
}
|
|
11
|
+
interface AccordionSingleStateOpts extends AccordionBaseStateOpts, WritableBoxedValues<{
|
|
11
12
|
value: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
13
|
+
}> {
|
|
14
|
+
}
|
|
15
|
+
interface AccordionMultiStateOpts extends AccordionBaseStateOpts, WritableBoxedValues<{
|
|
14
16
|
value: string[];
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
type
|
|
17
|
+
}> {
|
|
18
|
+
}
|
|
19
|
+
type AccordionRoot = AccordionSingleState | AccordionMultiState;
|
|
20
|
+
interface AccordionItemStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
18
21
|
value: string;
|
|
19
22
|
disabled: boolean;
|
|
20
|
-
}>
|
|
21
|
-
rootState:
|
|
22
|
-
}
|
|
23
|
-
|
|
23
|
+
}> {
|
|
24
|
+
rootState: AccordionRoot;
|
|
25
|
+
}
|
|
26
|
+
interface AccordionTriggerStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
24
27
|
disabled: boolean | null | undefined;
|
|
25
|
-
}
|
|
26
|
-
|
|
28
|
+
}> {
|
|
29
|
+
}
|
|
30
|
+
interface AccordionContentStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
27
31
|
forceMount: boolean;
|
|
28
|
-
}
|
|
29
|
-
|
|
32
|
+
}> {
|
|
33
|
+
}
|
|
34
|
+
interface AccordionHeaderStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
30
35
|
level: 1 | 2 | 3 | 4 | 5 | 6;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
value: Box<string> | Box<string[]>;
|
|
35
|
-
} & ReadableBoxedValues<{
|
|
36
|
+
}> {
|
|
37
|
+
}
|
|
38
|
+
interface AccordionRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
36
39
|
disabled: boolean;
|
|
37
40
|
orientation: Orientation;
|
|
38
41
|
loop: boolean;
|
|
39
|
-
}
|
|
42
|
+
}> {
|
|
43
|
+
type: "single" | "multiple";
|
|
44
|
+
value: Box<string> | Box<string[]>;
|
|
45
|
+
}
|
|
40
46
|
declare abstract class AccordionBaseState {
|
|
41
|
-
readonly opts:
|
|
42
|
-
readonly rovingFocusGroup:
|
|
47
|
+
readonly opts: AccordionBaseStateOpts;
|
|
48
|
+
readonly rovingFocusGroup: RovingFocusGroup;
|
|
43
49
|
abstract readonly isMulti: boolean;
|
|
44
|
-
constructor(opts:
|
|
50
|
+
constructor(opts: AccordionBaseStateOpts);
|
|
45
51
|
abstract includesItem(item: string): boolean;
|
|
46
52
|
abstract toggleItem(item: string): void;
|
|
47
53
|
readonly props: {
|
|
@@ -50,27 +56,31 @@ declare abstract class AccordionBaseState {
|
|
|
50
56
|
readonly "data-disabled": "" | undefined;
|
|
51
57
|
};
|
|
52
58
|
}
|
|
53
|
-
|
|
54
|
-
readonly opts:
|
|
59
|
+
declare class AccordionSingleState extends AccordionBaseState {
|
|
60
|
+
readonly opts: AccordionSingleStateOpts;
|
|
55
61
|
readonly isMulti: false;
|
|
56
|
-
constructor(opts:
|
|
57
|
-
includesItem
|
|
58
|
-
toggleItem
|
|
62
|
+
constructor(opts: AccordionSingleStateOpts);
|
|
63
|
+
includesItem(item: string): boolean;
|
|
64
|
+
toggleItem(item: string): void;
|
|
59
65
|
}
|
|
60
|
-
|
|
66
|
+
declare class AccordionMultiState extends AccordionBaseState {
|
|
61
67
|
#private;
|
|
62
68
|
readonly isMulti: true;
|
|
63
|
-
constructor(props:
|
|
64
|
-
includesItem
|
|
65
|
-
toggleItem
|
|
69
|
+
constructor(props: AccordionMultiStateOpts);
|
|
70
|
+
includesItem(item: string): boolean;
|
|
71
|
+
toggleItem(item: string): void;
|
|
72
|
+
}
|
|
73
|
+
export declare class AccordionRootState {
|
|
74
|
+
static create(props: AccordionRootStateOpts): AccordionRoot;
|
|
66
75
|
}
|
|
67
76
|
export declare class AccordionItemState {
|
|
68
|
-
|
|
69
|
-
readonly
|
|
77
|
+
static create(props: Omit<AccordionItemStateOpts, "rootState">): AccordionItemState;
|
|
78
|
+
readonly opts: AccordionItemStateOpts;
|
|
79
|
+
readonly root: AccordionRoot;
|
|
70
80
|
readonly isActive: boolean;
|
|
71
81
|
readonly isDisabled: boolean;
|
|
72
|
-
constructor(opts:
|
|
73
|
-
updateValue
|
|
82
|
+
constructor(opts: AccordionItemStateOpts);
|
|
83
|
+
updateValue(): void;
|
|
74
84
|
readonly props: {
|
|
75
85
|
readonly id: string;
|
|
76
86
|
readonly "data-state": "open" | "closed";
|
|
@@ -78,13 +88,14 @@ export declare class AccordionItemState {
|
|
|
78
88
|
readonly "data-orientation": "horizontal" | "vertical";
|
|
79
89
|
};
|
|
80
90
|
}
|
|
81
|
-
declare class AccordionTriggerState {
|
|
91
|
+
export declare class AccordionTriggerState {
|
|
82
92
|
#private;
|
|
83
|
-
readonly opts:
|
|
93
|
+
readonly opts: AccordionTriggerStateOpts;
|
|
84
94
|
readonly itemState: AccordionItemState;
|
|
85
|
-
constructor(opts:
|
|
86
|
-
|
|
87
|
-
|
|
95
|
+
constructor(opts: AccordionTriggerStateOpts, itemState: AccordionItemState);
|
|
96
|
+
static create(props: AccordionTriggerStateOpts): AccordionTriggerState;
|
|
97
|
+
onclick(e: BitsMouseEvent): void;
|
|
98
|
+
onkeydown(e: BitsKeyboardEvent): void;
|
|
88
99
|
readonly props: {
|
|
89
100
|
readonly id: string;
|
|
90
101
|
readonly disabled: boolean;
|
|
@@ -98,12 +109,13 @@ declare class AccordionTriggerState {
|
|
|
98
109
|
readonly onkeydown: (e: BitsKeyboardEvent) => void;
|
|
99
110
|
};
|
|
100
111
|
}
|
|
101
|
-
declare class AccordionContentState {
|
|
112
|
+
export declare class AccordionContentState {
|
|
102
113
|
#private;
|
|
103
|
-
readonly opts:
|
|
114
|
+
readonly opts: AccordionContentStateOpts;
|
|
104
115
|
readonly item: AccordionItemState;
|
|
105
|
-
readonly
|
|
106
|
-
constructor(opts:
|
|
116
|
+
readonly open: boolean;
|
|
117
|
+
constructor(opts: AccordionContentStateOpts, item: AccordionItemState);
|
|
118
|
+
static create(props: AccordionContentStateOpts): AccordionContentState;
|
|
107
119
|
readonly snippetProps: {
|
|
108
120
|
open: boolean;
|
|
109
121
|
};
|
|
@@ -118,10 +130,11 @@ declare class AccordionContentState {
|
|
|
118
130
|
};
|
|
119
131
|
};
|
|
120
132
|
}
|
|
121
|
-
declare class AccordionHeaderState {
|
|
122
|
-
readonly opts:
|
|
133
|
+
export declare class AccordionHeaderState {
|
|
134
|
+
readonly opts: AccordionHeaderStateOpts;
|
|
123
135
|
readonly item: AccordionItemState;
|
|
124
|
-
constructor(opts:
|
|
136
|
+
constructor(opts: AccordionHeaderStateOpts, item: AccordionItemState);
|
|
137
|
+
static create(props: AccordionHeaderStateOpts): AccordionHeaderState;
|
|
125
138
|
readonly props: {
|
|
126
139
|
readonly id: string;
|
|
127
140
|
readonly role: "heading";
|
|
@@ -131,9 +144,4 @@ declare class AccordionHeaderState {
|
|
|
131
144
|
readonly "data-orientation": "horizontal" | "vertical";
|
|
132
145
|
};
|
|
133
146
|
}
|
|
134
|
-
export declare function useAccordionRoot(props: InitAccordionProps): AccordionState;
|
|
135
|
-
export declare function useAccordionItem(props: Omit<AccordionItemStateProps, "rootState">): AccordionItemState;
|
|
136
|
-
export declare function useAccordionTrigger(props: AccordionTriggerStateProps): AccordionTriggerState;
|
|
137
|
-
export declare function useAccordionContent(props: AccordionContentStateProps): AccordionContentState;
|
|
138
|
-
export declare function useAccordionHeader(props: AccordionHeaderStateProps): AccordionHeaderState;
|
|
139
147
|
export {};
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import { afterTick, attachRef } from "svelte-toolbelt";
|
|
1
|
+
import { afterTick, attachRef, } from "svelte-toolbelt";
|
|
2
2
|
import { Context, watch } from "runed";
|
|
3
3
|
import { getAriaDisabled, getAriaExpanded, getDataDisabled, getDataOpenClosed, getDataOrientation, } from "../../internal/attrs.js";
|
|
4
4
|
import { kbd } from "../../internal/kbd.js";
|
|
5
|
-
import { useRovingFocus, } from "../../internal/use-roving-focus.svelte.js";
|
|
6
5
|
import { createBitsAttrs } from "../../internal/attrs.js";
|
|
6
|
+
import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
|
|
7
7
|
const accordionAttrs = createBitsAttrs({
|
|
8
8
|
component: "accordion",
|
|
9
9
|
parts: ["root", "trigger", "content", "item", "header"],
|
|
10
10
|
});
|
|
11
|
-
|
|
11
|
+
const AccordionRootContext = new Context("Accordion.Root");
|
|
12
|
+
const AccordionItemContext = new Context("Accordion.Item");
|
|
12
13
|
class AccordionBaseState {
|
|
13
14
|
opts;
|
|
14
15
|
rovingFocusGroup;
|
|
15
16
|
constructor(opts) {
|
|
16
17
|
this.opts = opts;
|
|
17
|
-
this.rovingFocusGroup =
|
|
18
|
+
this.rovingFocusGroup = new RovingFocusGroup({
|
|
18
19
|
rootNode: this.opts.ref,
|
|
19
20
|
candidateAttr: accordionAttrs.trigger,
|
|
20
21
|
loop: this.opts.loop,
|
|
@@ -29,36 +30,53 @@ class AccordionBaseState {
|
|
|
29
30
|
...attachRef(this.opts.ref),
|
|
30
31
|
}));
|
|
31
32
|
}
|
|
32
|
-
|
|
33
|
-
export class AccordionSingleState extends AccordionBaseState {
|
|
33
|
+
class AccordionSingleState extends AccordionBaseState {
|
|
34
34
|
opts;
|
|
35
35
|
isMulti = false;
|
|
36
36
|
constructor(opts) {
|
|
37
37
|
super(opts);
|
|
38
38
|
this.opts = opts;
|
|
39
|
+
this.includesItem = this.includesItem.bind(this);
|
|
40
|
+
this.toggleItem = this.toggleItem.bind(this);
|
|
39
41
|
}
|
|
40
|
-
includesItem
|
|
41
|
-
|
|
42
|
+
includesItem(item) {
|
|
43
|
+
return this.opts.value.current === item;
|
|
44
|
+
}
|
|
45
|
+
toggleItem(item) {
|
|
42
46
|
this.opts.value.current = this.includesItem(item) ? "" : item;
|
|
43
|
-
}
|
|
47
|
+
}
|
|
44
48
|
}
|
|
45
|
-
|
|
46
|
-
export class AccordionMultiState extends AccordionBaseState {
|
|
49
|
+
class AccordionMultiState extends AccordionBaseState {
|
|
47
50
|
#value;
|
|
48
51
|
isMulti = true;
|
|
49
52
|
constructor(props) {
|
|
50
53
|
super(props);
|
|
51
54
|
this.#value = props.value;
|
|
55
|
+
this.includesItem = this.includesItem.bind(this);
|
|
56
|
+
this.toggleItem = this.toggleItem.bind(this);
|
|
57
|
+
}
|
|
58
|
+
includesItem(item) {
|
|
59
|
+
return this.#value.current.includes(item);
|
|
52
60
|
}
|
|
53
|
-
|
|
54
|
-
toggleItem = (item) => {
|
|
61
|
+
toggleItem(item) {
|
|
55
62
|
this.#value.current = this.includesItem(item)
|
|
56
63
|
? this.#value.current.filter((v) => v !== item)
|
|
57
64
|
: [...this.#value.current, item];
|
|
58
|
-
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export class AccordionRootState {
|
|
68
|
+
static create(props) {
|
|
69
|
+
const { type, ...rest } = props;
|
|
70
|
+
const rootState = type === "single"
|
|
71
|
+
? new AccordionSingleState(rest)
|
|
72
|
+
: new AccordionMultiState(rest);
|
|
73
|
+
return AccordionRootContext.set(rootState);
|
|
74
|
+
}
|
|
59
75
|
}
|
|
60
|
-
// Item state
|
|
61
76
|
export class AccordionItemState {
|
|
77
|
+
static create(props) {
|
|
78
|
+
return AccordionItemContext.set(new AccordionItemState({ ...props, rootState: AccordionRootContext.get() }));
|
|
79
|
+
}
|
|
62
80
|
opts;
|
|
63
81
|
root;
|
|
64
82
|
isActive = $derived.by(() => this.root.includesItem(this.opts.value.current));
|
|
@@ -66,10 +84,11 @@ export class AccordionItemState {
|
|
|
66
84
|
constructor(opts) {
|
|
67
85
|
this.opts = opts;
|
|
68
86
|
this.root = opts.rootState;
|
|
87
|
+
this.updateValue = this.updateValue.bind(this);
|
|
69
88
|
}
|
|
70
|
-
updateValue
|
|
89
|
+
updateValue() {
|
|
71
90
|
this.root.toggleItem(this.opts.value.current);
|
|
72
|
-
}
|
|
91
|
+
}
|
|
73
92
|
props = $derived.by(() => ({
|
|
74
93
|
id: this.opts.id.current,
|
|
75
94
|
"data-state": getDataOpenClosed(this.isActive),
|
|
@@ -79,8 +98,7 @@ export class AccordionItemState {
|
|
|
79
98
|
...attachRef(this.opts.ref),
|
|
80
99
|
}));
|
|
81
100
|
}
|
|
82
|
-
|
|
83
|
-
class AccordionTriggerState {
|
|
101
|
+
export class AccordionTriggerState {
|
|
84
102
|
opts;
|
|
85
103
|
itemState;
|
|
86
104
|
#root;
|
|
@@ -91,15 +109,20 @@ class AccordionTriggerState {
|
|
|
91
109
|
this.opts = opts;
|
|
92
110
|
this.itemState = itemState;
|
|
93
111
|
this.#root = itemState.root;
|
|
112
|
+
this.onclick = this.onclick.bind(this);
|
|
113
|
+
this.onkeydown = this.onkeydown.bind(this);
|
|
114
|
+
}
|
|
115
|
+
static create(props) {
|
|
116
|
+
return new AccordionTriggerState(props, AccordionItemContext.get());
|
|
94
117
|
}
|
|
95
|
-
onclick
|
|
118
|
+
onclick(e) {
|
|
96
119
|
if (this.#isDisabled || e.button !== 0) {
|
|
97
120
|
e.preventDefault();
|
|
98
121
|
return;
|
|
99
122
|
}
|
|
100
123
|
this.itemState.updateValue();
|
|
101
|
-
}
|
|
102
|
-
onkeydown
|
|
124
|
+
}
|
|
125
|
+
onkeydown(e) {
|
|
103
126
|
if (this.#isDisabled)
|
|
104
127
|
return;
|
|
105
128
|
if (e.key === kbd.SPACE || e.key === kbd.ENTER) {
|
|
@@ -108,7 +131,7 @@ class AccordionTriggerState {
|
|
|
108
131
|
return;
|
|
109
132
|
}
|
|
110
133
|
this.#root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);
|
|
111
|
-
}
|
|
134
|
+
}
|
|
112
135
|
props = $derived.by(() => ({
|
|
113
136
|
id: this.opts.id.current,
|
|
114
137
|
disabled: this.#isDisabled,
|
|
@@ -124,14 +147,13 @@ class AccordionTriggerState {
|
|
|
124
147
|
...attachRef(this.opts.ref),
|
|
125
148
|
}));
|
|
126
149
|
}
|
|
127
|
-
|
|
128
|
-
class AccordionContentState {
|
|
150
|
+
export class AccordionContentState {
|
|
129
151
|
opts;
|
|
130
152
|
item;
|
|
131
153
|
#originalStyles = undefined;
|
|
132
154
|
#isMountAnimationPrevented = false;
|
|
133
155
|
#dimensions = $state({ width: 0, height: 0 });
|
|
134
|
-
|
|
156
|
+
open = $derived.by(() => this.opts.forceMount.current || this.item.isActive);
|
|
135
157
|
constructor(opts, item) {
|
|
136
158
|
this.opts = opts;
|
|
137
159
|
this.item = item;
|
|
@@ -144,7 +166,10 @@ class AccordionContentState {
|
|
|
144
166
|
return () => cancelAnimationFrame(rAF);
|
|
145
167
|
});
|
|
146
168
|
// Handle dimension updates
|
|
147
|
-
watch([() => this.
|
|
169
|
+
watch([() => this.open, () => this.opts.ref.current], this.#updateDimensions);
|
|
170
|
+
}
|
|
171
|
+
static create(props) {
|
|
172
|
+
return new AccordionContentState(props, AccordionItemContext.get());
|
|
148
173
|
}
|
|
149
174
|
#updateDimensions = ([_, node]) => {
|
|
150
175
|
if (!node)
|
|
@@ -184,14 +209,16 @@ class AccordionContentState {
|
|
|
184
209
|
...attachRef(this.opts.ref),
|
|
185
210
|
}));
|
|
186
211
|
}
|
|
187
|
-
|
|
188
|
-
class AccordionHeaderState {
|
|
212
|
+
export class AccordionHeaderState {
|
|
189
213
|
opts;
|
|
190
214
|
item;
|
|
191
215
|
constructor(opts, item) {
|
|
192
216
|
this.opts = opts;
|
|
193
217
|
this.item = item;
|
|
194
218
|
}
|
|
219
|
+
static create(props) {
|
|
220
|
+
return new AccordionHeaderState(props, AccordionItemContext.get());
|
|
221
|
+
}
|
|
195
222
|
props = $derived.by(() => ({
|
|
196
223
|
id: this.opts.id.current,
|
|
197
224
|
role: "heading",
|
|
@@ -203,25 +230,3 @@ class AccordionHeaderState {
|
|
|
203
230
|
...attachRef(this.opts.ref),
|
|
204
231
|
}));
|
|
205
232
|
}
|
|
206
|
-
const AccordionRootContext = new Context("Accordion.Root");
|
|
207
|
-
const AccordionItemContext = new Context("Accordion.Item");
|
|
208
|
-
export function useAccordionRoot(props) {
|
|
209
|
-
const { type, ...rest } = props;
|
|
210
|
-
const rootState = type === "single"
|
|
211
|
-
? new AccordionSingleState(rest)
|
|
212
|
-
: new AccordionMultiState(rest);
|
|
213
|
-
return AccordionRootContext.set(rootState);
|
|
214
|
-
}
|
|
215
|
-
export function useAccordionItem(props) {
|
|
216
|
-
const rootState = AccordionRootContext.get();
|
|
217
|
-
return AccordionItemContext.set(new AccordionItemState({ ...props, rootState }));
|
|
218
|
-
}
|
|
219
|
-
export function useAccordionTrigger(props) {
|
|
220
|
-
return new AccordionTriggerState(props, AccordionItemContext.get());
|
|
221
|
-
}
|
|
222
|
-
export function useAccordionContent(props) {
|
|
223
|
-
return new AccordionContentState(props, AccordionItemContext.get());
|
|
224
|
-
}
|
|
225
|
-
export function useAccordionHeader(props) {
|
|
226
|
-
return new AccordionHeaderState(props, AccordionItemContext.get());
|
|
227
|
-
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
|
-
import {
|
|
3
|
+
import { AccordionContentState } from "../accordion.svelte.js";
|
|
4
4
|
import type { AccordionContentProps } from "../types.js";
|
|
5
5
|
import { PresenceLayer } from "../../utilities/presence-layer/index.js";
|
|
6
6
|
import { createId } from "../../../internal/create-id.js";
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
...restProps
|
|
17
17
|
}: AccordionContentProps = $props();
|
|
18
18
|
|
|
19
|
-
const contentState =
|
|
19
|
+
const contentState = AccordionContentState.create({
|
|
20
20
|
forceMount: box.with(() => forceMount),
|
|
21
21
|
id: box.with(() => id),
|
|
22
22
|
ref: box.with(
|
|
@@ -26,10 +26,10 @@
|
|
|
26
26
|
});
|
|
27
27
|
</script>
|
|
28
28
|
|
|
29
|
-
<PresenceLayer forceMount={true}
|
|
29
|
+
<PresenceLayer forceMount={true} open={contentState.open} ref={contentState.opts.ref}>
|
|
30
30
|
{#snippet presence({ present })}
|
|
31
31
|
{@const mergedProps = mergeProps(restProps, contentState.props, {
|
|
32
|
-
hidden: forceMount ? undefined : !present
|
|
32
|
+
hidden: forceMount ? undefined : !present,
|
|
33
33
|
})}
|
|
34
34
|
{#if child}
|
|
35
35
|
{@render child({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { AccordionHeaderProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { AccordionHeaderState } from "../accordion.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
|
}: AccordionHeaderProps = $props();
|
|
17
17
|
|
|
18
|
-
const headerState =
|
|
18
|
+
const headerState = AccordionHeaderState.create({
|
|
19
19
|
id: box.with(() => id),
|
|
20
20
|
level: box.with(() => level),
|
|
21
21
|
ref: box.with(
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { AccordionItemProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { AccordionItemState } from "../accordion.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
|
}: AccordionItemProps = $props();
|
|
19
19
|
|
|
20
|
-
const itemState =
|
|
20
|
+
const itemState = AccordionItemState.create({
|
|
21
21
|
value: box.with(() => value),
|
|
22
22
|
disabled: box.with(() => disabled),
|
|
23
23
|
id: box.with(() => id),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { AccordionTriggerProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { AccordionTriggerState } from "../accordion.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
|
}: AccordionTriggerProps = $props();
|
|
17
17
|
|
|
18
|
-
const triggerState =
|
|
18
|
+
const triggerState = AccordionTriggerState.create({
|
|
19
19
|
disabled: box.with(() => disabled),
|
|
20
20
|
id: box.with(() => id),
|
|
21
21
|
ref: box.with(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { type WritableBox, box, mergeProps } from "svelte-toolbelt";
|
|
3
|
-
import {
|
|
3
|
+
import { AccordionRootState } from "../accordion.svelte.js";
|
|
4
4
|
import type { AccordionRootProps } from "../types.js";
|
|
5
5
|
import { noop } from "../../../internal/noop.js";
|
|
6
6
|
import { watch } from "runed";
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
}
|
|
38
38
|
);
|
|
39
39
|
|
|
40
|
-
const rootState =
|
|
40
|
+
const rootState = AccordionRootState.create({
|
|
41
41
|
type,
|
|
42
42
|
value: box.with(
|
|
43
43
|
() => value!,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { AlertDialogActionProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { DialogActionState } from "../../dialog/dialog.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
|
|
7
7
|
const uid = $props.id();
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
...restProps
|
|
15
15
|
}: AlertDialogActionProps = $props();
|
|
16
16
|
|
|
17
|
-
const actionState =
|
|
17
|
+
const actionState = DialogActionState.create({
|
|
18
18
|
id: box.with(() => id),
|
|
19
19
|
ref: box.with(
|
|
20
20
|
() => ref,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { AlertDialogCancelProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { AlertDialogCancelState } from "../../dialog/dialog.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
|
}: AlertDialogCancelProps = $props();
|
|
17
17
|
|
|
18
|
-
const cancelState =
|
|
18
|
+
const cancelState = AlertDialogCancelState.create({
|
|
19
19
|
id: box.with(() => id),
|
|
20
20
|
ref: box.with(
|
|
21
21
|
() => ref,
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
import { createId } from "../../../internal/create-id.js";
|
|
10
10
|
import { noop } from "../../../internal/noop.js";
|
|
11
11
|
import ScrollLock from "../../utilities/scroll-lock/scroll-lock.svelte";
|
|
12
|
-
import {
|
|
12
|
+
import { DialogContentState } from "../../dialog/dialog.svelte.js";
|
|
13
13
|
import { shouldTrapFocus } from "../../../internal/should-trap-focus.js";
|
|
14
14
|
|
|
15
15
|
const uid = $props.id();
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
...restProps
|
|
32
32
|
}: AlertDialogContentProps = $props();
|
|
33
33
|
|
|
34
|
-
const contentState =
|
|
34
|
+
const contentState = DialogContentState.create({
|
|
35
35
|
id: box.with(() => id),
|
|
36
36
|
ref: box.with(
|
|
37
37
|
() => ref,
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
|
|
45
45
|
<PresenceLayer
|
|
46
46
|
{forceMount}
|
|
47
|
-
|
|
47
|
+
open={contentState.root.opts.open.current || forceMount}
|
|
48
48
|
ref={contentState.opts.ref}
|
|
49
49
|
>
|
|
50
50
|
{#snippet presence()}
|
|
@@ -2,11 +2,16 @@
|
|
|
2
2
|
import { box } from "svelte-toolbelt";
|
|
3
3
|
import type { AlertDialogRootProps } from "../types.js";
|
|
4
4
|
import { noop } from "../../../internal/noop.js";
|
|
5
|
-
import {
|
|
5
|
+
import { DialogRootState } from "../../dialog/dialog.svelte.js";
|
|
6
6
|
|
|
7
|
-
let {
|
|
7
|
+
let {
|
|
8
|
+
open = $bindable(false),
|
|
9
|
+
onOpenChange = noop,
|
|
10
|
+
onOpenChangeComplete = noop,
|
|
11
|
+
children,
|
|
12
|
+
}: AlertDialogRootProps = $props();
|
|
8
13
|
|
|
9
|
-
|
|
14
|
+
DialogRootState.create({
|
|
10
15
|
variant: box.with(() => "alert-dialog"),
|
|
11
16
|
open: box.with(
|
|
12
17
|
() => open,
|
|
@@ -15,6 +20,7 @@
|
|
|
15
20
|
onOpenChange(v);
|
|
16
21
|
}
|
|
17
22
|
),
|
|
23
|
+
onOpenChangeComplete: box.with(() => onOpenChangeComplete),
|
|
18
24
|
});
|
|
19
25
|
</script>
|
|
20
26
|
|
|
@@ -1,19 +1,14 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
3
|
-
|
|
1
|
+
import { type ReadableBoxedValues } from "svelte-toolbelt";
|
|
2
|
+
import type { WithRefOpts } from "../../internal/types.js";
|
|
3
|
+
interface AspectRatioRootStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
4
4
|
ratio: number;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
width: string;
|
|
13
|
-
paddingBottom: string;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
props: {
|
|
5
|
+
}> {
|
|
6
|
+
}
|
|
7
|
+
export declare class AspectRatioRootState {
|
|
8
|
+
static create(opts: AspectRatioRootStateOpts): AspectRatioRootState;
|
|
9
|
+
readonly opts: AspectRatioRootStateOpts;
|
|
10
|
+
constructor(opts: AspectRatioRootStateOpts);
|
|
11
|
+
readonly props: {
|
|
17
12
|
readonly id: string;
|
|
18
13
|
readonly style: {
|
|
19
14
|
readonly position: "absolute";
|
|
@@ -24,5 +19,4 @@ declare class AspectRatioRootState {
|
|
|
24
19
|
};
|
|
25
20
|
};
|
|
26
21
|
}
|
|
27
|
-
export declare function useAspectRatioRoot(props: AspectRatioRootStateProps): AspectRatioRootState;
|
|
28
22
|
export {};
|