bits-ui 2.6.2 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/bits/accordion/accordion.svelte.d.ts +66 -58
- package/dist/bits/accordion/accordion.svelte.js +56 -51
- package/dist/bits/accordion/components/accordion-content.svelte +4 -4
- package/dist/bits/accordion/components/accordion-header.svelte +2 -2
- package/dist/bits/accordion/components/accordion-item.svelte +2 -2
- package/dist/bits/accordion/components/accordion-trigger.svelte +2 -2
- package/dist/bits/accordion/components/accordion.svelte +2 -2
- package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +2 -2
- package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +2 -2
- package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +3 -3
- package/dist/bits/alert-dialog/components/alert-dialog.svelte +9 -3
- package/dist/bits/aspect-ratio/aspect-ratio.svelte.d.ts +10 -16
- package/dist/bits/aspect-ratio/aspect-ratio.svelte.js +4 -11
- package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +2 -2
- package/dist/bits/avatar/avatar.svelte.d.ts +25 -33
- package/dist/bits/avatar/avatar.svelte.js +20 -21
- package/dist/bits/avatar/components/avatar-fallback.svelte +2 -2
- package/dist/bits/avatar/components/avatar-image.svelte +2 -2
- package/dist/bits/avatar/components/avatar.svelte +2 -2
- package/dist/bits/calendar/calendar.svelte.d.ts +117 -106
- package/dist/bits/calendar/calendar.svelte.js +51 -52
- package/dist/bits/calendar/components/calendar-cell.svelte +2 -2
- package/dist/bits/calendar/components/calendar-day.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid-body.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid-head.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid-row.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid.svelte +2 -2
- package/dist/bits/calendar/components/calendar-head-cell.svelte +2 -2
- package/dist/bits/calendar/components/calendar-header.svelte +2 -2
- package/dist/bits/calendar/components/calendar-heading.svelte +5 -5
- package/dist/bits/calendar/components/calendar-month-select.svelte +2 -2
- package/dist/bits/calendar/components/calendar-next-button.svelte +2 -2
- package/dist/bits/calendar/components/calendar-prev-button.svelte +2 -2
- package/dist/bits/calendar/components/calendar-year-select.svelte +2 -2
- package/dist/bits/calendar/components/calendar.svelte +2 -2
- package/dist/bits/checkbox/checkbox.svelte.d.ts +37 -34
- package/dist/bits/checkbox/checkbox.svelte.js +19 -22
- package/dist/bits/checkbox/components/checkbox-group-label.svelte +2 -2
- package/dist/bits/checkbox/components/checkbox-group.svelte +2 -2
- package/dist/bits/checkbox/components/checkbox-input.svelte +2 -2
- package/dist/bits/checkbox/components/checkbox.svelte +2 -2
- package/dist/bits/collapsible/collapsible.svelte.d.ts +30 -27
- package/dist/bits/collapsible/collapsible.svelte.js +23 -15
- package/dist/bits/collapsible/components/collapsible-content.svelte +5 -5
- package/dist/bits/collapsible/components/collapsible-content.svelte.d.ts +1 -4
- package/dist/bits/collapsible/components/collapsible-trigger.svelte +2 -2
- package/dist/bits/collapsible/components/collapsible.svelte +4 -2
- package/dist/bits/collapsible/types.d.ts +4 -0
- package/dist/bits/combobox/components/combobox-input.svelte +2 -2
- package/dist/bits/combobox/components/combobox-trigger.svelte +2 -2
- package/dist/bits/combobox/components/combobox.svelte +4 -2
- package/dist/bits/command/command.svelte.d.ts +103 -92
- package/dist/bits/command/command.svelte.js +55 -57
- package/dist/bits/command/components/_command-label.svelte +2 -2
- package/dist/bits/command/components/command-empty.svelte +2 -2
- package/dist/bits/command/components/command-group-heading.svelte +2 -2
- package/dist/bits/command/components/command-group-items.svelte +2 -2
- package/dist/bits/command/components/command-group.svelte +2 -2
- package/dist/bits/command/components/command-input.svelte +2 -2
- package/dist/bits/command/components/command-item.svelte +2 -2
- package/dist/bits/command/components/command-link-item.svelte +2 -2
- package/dist/bits/command/components/command-list.svelte +2 -2
- package/dist/bits/command/components/command-loading.svelte +2 -2
- package/dist/bits/command/components/command-separator.svelte +2 -2
- package/dist/bits/command/components/command-viewport.svelte +2 -2
- package/dist/bits/command/components/command.svelte +2 -2
- package/dist/bits/context-menu/components/context-menu-content-static.svelte +3 -3
- package/dist/bits/context-menu/components/context-menu-content.svelte +3 -3
- package/dist/bits/context-menu/components/context-menu-trigger.svelte +2 -2
- package/dist/bits/context-menu/components/context-menu.svelte +16 -11
- package/dist/bits/date-field/components/date-field-hidden-input.svelte +2 -2
- package/dist/bits/date-field/components/date-field-input.svelte +2 -2
- package/dist/bits/date-field/components/date-field-label.svelte +2 -2
- package/dist/bits/date-field/components/date-field-segment.svelte +2 -2
- package/dist/bits/date-field/components/date-field.svelte +2 -2
- package/dist/bits/date-field/date-field.svelte.d.ts +85 -74
- package/dist/bits/date-field/date-field.svelte.js +55 -53
- package/dist/bits/date-picker/components/date-picker-calendar.svelte +2 -2
- package/dist/bits/date-picker/components/date-picker.svelte +8 -6
- package/dist/bits/date-picker/date-picker.svelte.d.ts +10 -10
- package/dist/bits/date-picker/date-picker.svelte.js +6 -5
- package/dist/bits/date-picker/types.d.ts +4 -0
- package/dist/bits/date-range-field/components/date-range-field-input.svelte +2 -2
- package/dist/bits/date-range-field/components/date-range-field-label.svelte +2 -2
- package/dist/bits/date-range-field/components/date-range-field.svelte +2 -2
- package/dist/bits/date-range-field/date-range-field.svelte.d.ts +32 -29
- package/dist/bits/date-range-field/date-range-field.svelte.js +33 -32
- package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +2 -2
- package/dist/bits/date-range-picker/components/date-range-picker.svelte +8 -6
- package/dist/bits/date-range-picker/date-range-picker.svelte.d.ts +10 -10
- package/dist/bits/date-range-picker/date-range-picker.svelte.js +6 -5
- package/dist/bits/date-range-picker/types.d.ts +4 -0
- package/dist/bits/dialog/components/dialog-close.svelte +2 -2
- package/dist/bits/dialog/components/dialog-content.svelte +3 -3
- package/dist/bits/dialog/components/dialog-description.svelte +2 -2
- package/dist/bits/dialog/components/dialog-overlay.svelte +3 -6
- package/dist/bits/dialog/components/dialog-title.svelte +2 -2
- package/dist/bits/dialog/components/dialog-trigger.svelte +2 -2
- package/dist/bits/dialog/components/dialog.svelte +9 -3
- package/dist/bits/dialog/dialog.svelte.d.ts +75 -65
- package/dist/bits/dialog/dialog.svelte.js +47 -38
- package/dist/bits/dialog/types.d.ts +4 -0
- package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +3 -3
- package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +3 -3
- package/dist/bits/label/components/label.svelte +2 -2
- package/dist/bits/label/label.svelte.d.ts +8 -7
- package/dist/bits/label/label.svelte.js +4 -4
- package/dist/bits/link-preview/components/link-preview-content-static.svelte +3 -3
- package/dist/bits/link-preview/components/link-preview-content.svelte +3 -3
- package/dist/bits/link-preview/components/link-preview-trigger.svelte +2 -2
- package/dist/bits/link-preview/components/link-preview.svelte +4 -2
- package/dist/bits/link-preview/link-preview.svelte.d.ts +28 -25
- package/dist/bits/link-preview/link-preview.svelte.js +24 -16
- package/dist/bits/link-preview/types.d.ts +4 -0
- package/dist/bits/menu/components/menu-arrow.svelte +2 -2
- package/dist/bits/menu/components/menu-checkbox-group.svelte +2 -2
- package/dist/bits/menu/components/menu-checkbox-item.svelte +2 -2
- package/dist/bits/menu/components/menu-content-static.svelte +3 -3
- package/dist/bits/menu/components/menu-content.svelte +3 -3
- package/dist/bits/menu/components/menu-group-heading.svelte +2 -2
- package/dist/bits/menu/components/menu-group.svelte +2 -2
- package/dist/bits/menu/components/menu-item.svelte +2 -2
- package/dist/bits/menu/components/menu-radio-group.svelte +2 -2
- package/dist/bits/menu/components/menu-radio-item.svelte +2 -2
- package/dist/bits/menu/components/menu-separator.svelte +2 -2
- package/dist/bits/menu/components/menu-sub-content-static.svelte +3 -3
- package/dist/bits/menu/components/menu-sub-content.svelte +3 -3
- package/dist/bits/menu/components/menu-sub-trigger.svelte +2 -2
- package/dist/bits/menu/components/menu-sub.svelte +9 -3
- package/dist/bits/menu/components/menu-trigger.svelte +2 -2
- package/dist/bits/menu/components/menu.svelte +16 -11
- package/dist/bits/menu/menu.svelte.d.ts +136 -119
- package/dist/bits/menu/menu.svelte.js +106 -96
- package/dist/bits/menu/types.d.ts +8 -0
- package/dist/bits/menubar/components/menubar-content-static.svelte +2 -2
- package/dist/bits/menubar/components/menubar-content.svelte +2 -2
- package/dist/bits/menubar/components/menubar-menu.svelte +2 -2
- package/dist/bits/menubar/components/menubar-trigger.svelte +4 -4
- package/dist/bits/menubar/components/menubar.svelte +2 -2
- package/dist/bits/menubar/menubar.svelte.d.ts +37 -34
- package/dist/bits/menubar/menubar.svelte.js +21 -21
- package/dist/bits/meter/components/meter.svelte +2 -2
- package/dist/bits/meter/meter.svelte.d.ts +10 -9
- package/dist/bits/meter/meter.svelte.js +4 -4
- package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu.svelte +2 -2
- package/dist/bits/navigation-menu/navigation-menu.svelte.d.ts +116 -109
- package/dist/bits/navigation-menu/navigation-menu.svelte.js +78 -81
- package/dist/bits/pagination/components/pagination-next-button.svelte +2 -2
- package/dist/bits/pagination/components/pagination-page.svelte +2 -2
- package/dist/bits/pagination/components/pagination-prev-button.svelte +2 -2
- package/dist/bits/pagination/components/pagination.svelte +2 -2
- package/dist/bits/pagination/pagination.svelte.d.ts +34 -32
- package/dist/bits/pagination/pagination.svelte.js +15 -15
- package/dist/bits/pin-input/components/pin-input-cell.svelte +2 -2
- package/dist/bits/pin-input/components/pin-input.svelte +2 -2
- package/dist/bits/pin-input/pin-input.svelte.d.ts +22 -21
- package/dist/bits/pin-input/pin-input.svelte.js +9 -9
- package/dist/bits/popover/components/popover-close.svelte +2 -2
- package/dist/bits/popover/components/popover-content-static.svelte +3 -3
- package/dist/bits/popover/components/popover-content.svelte +3 -3
- package/dist/bits/popover/components/popover-trigger.svelte +2 -2
- package/dist/bits/popover/components/popover.svelte +9 -3
- package/dist/bits/popover/popover.svelte.d.ts +36 -31
- package/dist/bits/popover/popover.svelte.js +26 -21
- package/dist/bits/popover/types.d.ts +4 -0
- package/dist/bits/progress/components/progress.svelte +2 -2
- package/dist/bits/progress/progress.svelte.d.ts +10 -9
- package/dist/bits/progress/progress.svelte.js +4 -4
- package/dist/bits/radio-group/components/radio-group-input.svelte +2 -2
- package/dist/bits/radio-group/components/radio-group-item.svelte +2 -2
- package/dist/bits/radio-group/components/radio-group.svelte +4 -2
- package/dist/bits/radio-group/radio-group.svelte.d.ts +26 -19
- package/dist/bits/radio-group/radio-group.svelte.js +26 -19
- package/dist/bits/radio-group/types.d.ts +13 -6
- package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -2
- package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -2
- package/dist/bits/range-calendar/components/range-calendar.svelte +2 -2
- package/dist/bits/range-calendar/range-calendar.svelte.d.ts +21 -20
- package/dist/bits/range-calendar/range-calendar.svelte.js +12 -12
- package/dist/bits/rating-group/components/rating-group-input.svelte +2 -2
- package/dist/bits/rating-group/components/rating-group-item.svelte +2 -2
- package/dist/bits/rating-group/components/rating-group.svelte +2 -2
- package/dist/bits/rating-group/rating-group.svelte.d.ts +19 -18
- package/dist/bits/rating-group/rating-group.svelte.js +16 -17
- package/dist/bits/scroll-area/components/scroll-area-corner-impl.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +3 -3
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +6 -6
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +3 -3
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-shared.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-visible.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-x.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-y.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-thumb-impl.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +2 -5
- package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area.svelte +2 -2
- package/dist/bits/scroll-area/scroll-area.svelte.d.ts +98 -78
- package/dist/bits/scroll-area/scroll-area.svelte.js +78 -74
- package/dist/bits/select/components/select-content-static.svelte +3 -3
- package/dist/bits/select/components/select-content.svelte +3 -3
- package/dist/bits/select/components/select-group-heading.svelte +2 -2
- package/dist/bits/select/components/select-group.svelte +2 -2
- package/dist/bits/select/components/select-hidden-input.svelte +2 -2
- package/dist/bits/select/components/select-item.svelte +2 -2
- package/dist/bits/select/components/select-scroll-down-button.svelte +2 -2
- package/dist/bits/select/components/select-scroll-up-button.svelte +2 -2
- package/dist/bits/select/components/select-trigger.svelte +2 -2
- package/dist/bits/select/components/select-viewport.svelte +2 -2
- package/dist/bits/select/components/select.svelte +4 -2
- package/dist/bits/select/select.svelte.d.ts +127 -113
- package/dist/bits/select/select.svelte.js +74 -62
- package/dist/bits/select/types.d.ts +4 -0
- package/dist/bits/separator/components/separator.svelte +2 -2
- package/dist/bits/separator/separator.svelte.d.ts +9 -8
- package/dist/bits/separator/separator.svelte.js +4 -4
- package/dist/bits/slider/components/slider-range.svelte +2 -2
- package/dist/bits/slider/components/slider-thumb-label.svelte +2 -2
- package/dist/bits/slider/components/slider-thumb.svelte +2 -2
- package/dist/bits/slider/components/slider-tick-label.svelte +2 -2
- package/dist/bits/slider/components/slider-tick.svelte +2 -2
- package/dist/bits/slider/components/slider.svelte +2 -2
- package/dist/bits/slider/slider.svelte.d.ts +82 -73
- package/dist/bits/slider/slider.svelte.js +30 -28
- package/dist/bits/switch/components/switch-input.svelte +2 -2
- package/dist/bits/switch/components/switch-thumb.svelte +2 -2
- package/dist/bits/switch/components/switch.svelte +2 -2
- package/dist/bits/switch/switch.svelte.d.ts +19 -17
- package/dist/bits/switch/switch.svelte.js +13 -13
- package/dist/bits/tabs/components/tabs-content.svelte +2 -2
- package/dist/bits/tabs/components/tabs-list.svelte +2 -2
- package/dist/bits/tabs/components/tabs-trigger.svelte +2 -2
- package/dist/bits/tabs/components/tabs.svelte +2 -2
- package/dist/bits/tabs/tabs.svelte.d.ts +33 -29
- package/dist/bits/tabs/tabs.svelte.js +19 -19
- package/dist/bits/time-field/components/time-field-hidden-input.svelte +2 -2
- package/dist/bits/time-field/components/time-field-input.svelte +2 -2
- package/dist/bits/time-field/components/time-field-label.svelte +2 -2
- package/dist/bits/time-field/components/time-field-segment.svelte +2 -2
- package/dist/bits/time-field/components/time-field.svelte +2 -2
- package/dist/bits/time-field/time-field.svelte.d.ts +72 -66
- package/dist/bits/time-field/time-field.svelte.js +37 -42
- package/dist/bits/time-range-field/components/time-range-field-input.svelte +2 -2
- package/dist/bits/time-range-field/components/time-range-field-label.svelte +2 -2
- package/dist/bits/time-range-field/components/time-range-field.svelte +2 -2
- package/dist/bits/time-range-field/time-range-field.svelte.d.ts +35 -31
- package/dist/bits/time-range-field/time-range-field.svelte.js +34 -32
- package/dist/bits/toggle/components/toggle.svelte +2 -2
- package/dist/bits/toggle/toggle.svelte.d.ts +11 -10
- package/dist/bits/toggle/toggle.svelte.js +4 -4
- package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -2
- package/dist/bits/toggle-group/components/toggle-group.svelte +2 -2
- package/dist/bits/toggle-group/toggle-group.svelte.d.ts +48 -43
- package/dist/bits/toggle-group/toggle-group.svelte.js +24 -25
- package/dist/bits/toolbar/components/toolbar-button.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar-group.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar-link.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar.svelte +2 -2
- package/dist/bits/toolbar/toolbar.svelte.d.ts +59 -51
- package/dist/bits/toolbar/toolbar.svelte.js +32 -30
- package/dist/bits/tooltip/components/tooltip-content-static.svelte +3 -3
- package/dist/bits/tooltip/components/tooltip-content.svelte +3 -3
- package/dist/bits/tooltip/components/tooltip-provider.svelte +2 -2
- package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -2
- package/dist/bits/tooltip/components/tooltip.svelte +4 -2
- package/dist/bits/tooltip/tooltip.svelte.d.ts +33 -29
- package/dist/bits/tooltip/tooltip.svelte.js +33 -28
- package/dist/bits/tooltip/types.d.ts +4 -0
- package/dist/bits/utilities/config/bits-config.d.ts +1 -1
- package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -2
- package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +6 -7
- package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +3 -3
- package/dist/bits/utilities/escape-layer/escape-layer.svelte +2 -2
- package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.d.ts +6 -7
- package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js +3 -3
- package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -2
- package/dist/bits/utilities/floating-layer/components/floating-layer-arrow.svelte +2 -2
- package/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte +2 -2
- package/dist/bits/utilities/floating-layer/components/floating-layer.svelte +2 -2
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +25 -23
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +25 -25
- package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +1 -1
- package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte.d.ts +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte.d.ts +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -3
- package/dist/bits/utilities/presence-layer/presence-layer.svelte +8 -8
- package/dist/bits/utilities/presence-layer/presence.svelte.d.ts +42 -0
- package/dist/bits/utilities/presence-layer/presence.svelte.js +116 -0
- package/dist/bits/utilities/presence-layer/types.d.ts +3 -5
- package/dist/bits/utilities/scroll-lock/scroll-lock.svelte +2 -2
- package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -2
- package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +7 -7
- package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +3 -3
- package/dist/internal/animations-complete.d.ts +12 -0
- package/dist/internal/animations-complete.js +55 -0
- package/dist/internal/arrays.js +20 -36
- package/dist/internal/attrs.d.ts +9 -2
- package/dist/internal/attrs.js +21 -11
- package/dist/internal/body-scroll-lock.svelte.d.ts +10 -0
- package/dist/internal/body-scroll-lock.svelte.js +106 -0
- package/dist/internal/data-typeahead.svelte.d.ts +15 -0
- package/dist/internal/data-typeahead.svelte.js +33 -0
- package/dist/internal/date-time/calendar-helpers.svelte.d.ts +1 -1
- package/dist/internal/dom-typeahead.svelte.d.ts +14 -0
- package/dist/internal/dom-typeahead.svelte.js +44 -0
- package/dist/internal/dom.d.ts +0 -2
- package/dist/internal/dom.js +0 -15
- package/dist/internal/{use-grace-area.svelte.d.ts → grace-area.svelte.d.ts} +5 -4
- package/dist/internal/{use-grace-area.svelte.js → grace-area.svelte.js} +60 -56
- package/dist/internal/open-change-complete.d.ts +13 -0
- package/dist/internal/open-change-complete.js +24 -0
- package/dist/internal/{use-roving-focus.svelte.d.ts → roving-focus-group.d.ts} +9 -8
- package/dist/internal/{use-roving-focus.svelte.js → roving-focus-group.js} +30 -34
- package/dist/internal/shared-state.svelte.d.ts +6 -0
- package/dist/internal/shared-state.svelte.js +31 -0
- package/dist/internal/should-trap-focus.js +1 -2
- package/dist/internal/state-machine.d.ts +16 -0
- package/dist/internal/state-machine.js +18 -0
- package/dist/internal/svelte-resize-observer.svelte.d.ts +6 -0
- package/dist/internal/svelte-resize-observer.svelte.js +25 -0
- package/dist/internal/tabbable.d.ts +0 -1
- package/dist/internal/tabbable.js +0 -11
- package/dist/internal/timeout-fn.d.ts +16 -0
- package/dist/internal/timeout-fn.js +38 -0
- package/dist/internal/types.d.ts +2 -2
- package/package.json +1 -1
- package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +0 -4
- package/dist/bits/utilities/presence-layer/use-presence.svelte.js +0 -97
- package/dist/internal/box.svelte.d.ts +0 -21
- package/dist/internal/box.svelte.js +0 -26
- package/dist/internal/create-event-hook.svelte.d.ts +0 -18
- package/dist/internal/create-event-hook.svelte.js +0 -29
- package/dist/internal/create-shared-hook.svelte.d.ts +0 -2
- package/dist/internal/create-shared-hook.svelte.js +0 -27
- package/dist/internal/sleep.d.ts +0 -1
- package/dist/internal/sleep.js +0 -3
- package/dist/internal/use-after-animations.svelte.d.ts +0 -5
- package/dist/internal/use-after-animations.svelte.js +0 -27
- package/dist/internal/use-body-scroll-lock.svelte.d.ts +0 -6
- package/dist/internal/use-body-scroll-lock.svelte.js +0 -106
- package/dist/internal/use-data-typeahead.svelte.d.ts +0 -15
- package/dist/internal/use-data-typeahead.svelte.js +0 -34
- package/dist/internal/use-dom-typeahead.svelte.d.ts +0 -13
- package/dist/internal/use-dom-typeahead.svelte.js +0 -32
- package/dist/internal/use-form-control.svelte.d.ts +0 -4
- package/dist/internal/use-form-control.svelte.js +0 -16
- package/dist/internal/use-resize-observer.svelte.d.ts +0 -2
- package/dist/internal/use-resize-observer.svelte.js +0 -17
- package/dist/internal/use-state-machine.svelte.d.ts +0 -24
- package/dist/internal/use-state-machine.svelte.js +0 -28
- package/dist/internal/use-timeout-fn.svelte.d.ts +0 -25
- package/dist/internal/use-timeout-fn.svelte.js +0 -39
|
@@ -1,15 +1,21 @@
|
|
|
1
|
-
import { box, onMountEffect, attachRef, DOMContext } from "svelte-toolbelt";
|
|
1
|
+
import { box, onMountEffect, attachRef, DOMContext, } from "svelte-toolbelt";
|
|
2
2
|
import { on } from "svelte/events";
|
|
3
3
|
import { Context, watch } from "runed";
|
|
4
|
-
import { useTimeoutFn } from "../../internal/use-timeout-fn.svelte.js";
|
|
5
4
|
import { isElement, isFocusVisible } from "../../internal/is.js";
|
|
6
|
-
import { useGraceArea } from "../../internal/use-grace-area.svelte.js";
|
|
7
5
|
import { createBitsAttrs, getDataDisabled } from "../../internal/attrs.js";
|
|
6
|
+
import { TimeoutFn } from "../../internal/timeout-fn.js";
|
|
7
|
+
import { GraceArea } from "../../internal/grace-area.svelte.js";
|
|
8
|
+
import { OpenChangeComplete } from "../../internal/open-change-complete.js";
|
|
8
9
|
export const tooltipAttrs = createBitsAttrs({
|
|
9
10
|
component: "tooltip",
|
|
10
11
|
parts: ["content", "trigger"],
|
|
11
12
|
});
|
|
12
|
-
|
|
13
|
+
const TooltipProviderContext = new Context("Tooltip.Provider");
|
|
14
|
+
const TooltipRootContext = new Context("Tooltip.Root");
|
|
15
|
+
export class TooltipProviderState {
|
|
16
|
+
static create(opts) {
|
|
17
|
+
return TooltipProviderContext.set(new TooltipProviderState(opts));
|
|
18
|
+
}
|
|
13
19
|
opts;
|
|
14
20
|
isOpenDelayed = $state(true);
|
|
15
21
|
isPointerInTransit = box(false);
|
|
@@ -17,7 +23,7 @@ class TooltipProviderState {
|
|
|
17
23
|
#openTooltip = $state(null);
|
|
18
24
|
constructor(opts) {
|
|
19
25
|
this.opts = opts;
|
|
20
|
-
this.#timerFn =
|
|
26
|
+
this.#timerFn = new TimeoutFn(() => {
|
|
21
27
|
this.isOpenDelayed = true;
|
|
22
28
|
}, this.opts.skipDelayDuration.current, { immediate: false });
|
|
23
29
|
}
|
|
@@ -51,7 +57,10 @@ class TooltipProviderState {
|
|
|
51
57
|
return this.#openTooltip === tooltip;
|
|
52
58
|
};
|
|
53
59
|
}
|
|
54
|
-
class TooltipRootState {
|
|
60
|
+
export class TooltipRootState {
|
|
61
|
+
static create(opts) {
|
|
62
|
+
return TooltipRootContext.set(new TooltipRootState(opts, TooltipProviderContext.get()));
|
|
63
|
+
}
|
|
55
64
|
opts;
|
|
56
65
|
provider;
|
|
57
66
|
delayDuration = $derived.by(() => this.opts.delayDuration.current ?? this.provider.opts.delayDuration.current);
|
|
@@ -74,14 +83,21 @@ class TooltipRootState {
|
|
|
74
83
|
constructor(opts, provider) {
|
|
75
84
|
this.opts = opts;
|
|
76
85
|
this.provider = provider;
|
|
77
|
-
this.#timerFn =
|
|
86
|
+
this.#timerFn = new TimeoutFn(() => {
|
|
78
87
|
this.#wasOpenDelayed = true;
|
|
79
88
|
this.opts.open.current = true;
|
|
80
89
|
}, this.delayDuration ?? 0, { immediate: false });
|
|
90
|
+
new OpenChangeComplete({
|
|
91
|
+
open: this.opts.open,
|
|
92
|
+
ref: box.with(() => this.contentNode),
|
|
93
|
+
onComplete: () => {
|
|
94
|
+
this.opts.onOpenChangeComplete.current(this.opts.open.current);
|
|
95
|
+
},
|
|
96
|
+
});
|
|
81
97
|
watch(() => this.delayDuration, () => {
|
|
82
98
|
if (this.delayDuration === undefined)
|
|
83
99
|
return;
|
|
84
|
-
this.#timerFn =
|
|
100
|
+
this.#timerFn = new TimeoutFn(() => {
|
|
85
101
|
this.#wasOpenDelayed = true;
|
|
86
102
|
this.opts.open.current = true;
|
|
87
103
|
}, this.delayDuration, { immediate: false });
|
|
@@ -131,7 +147,10 @@ class TooltipRootState {
|
|
|
131
147
|
}
|
|
132
148
|
};
|
|
133
149
|
}
|
|
134
|
-
class TooltipTriggerState {
|
|
150
|
+
export class TooltipTriggerState {
|
|
151
|
+
static create(opts) {
|
|
152
|
+
return new TooltipTriggerState(opts, TooltipRootContext.get());
|
|
153
|
+
}
|
|
135
154
|
opts;
|
|
136
155
|
root;
|
|
137
156
|
#isPointerDown = box(false);
|
|
@@ -215,13 +234,16 @@ class TooltipTriggerState {
|
|
|
215
234
|
...attachRef(this.opts.ref, (v) => (this.root.triggerNode = v)),
|
|
216
235
|
}));
|
|
217
236
|
}
|
|
218
|
-
class TooltipContentState {
|
|
237
|
+
export class TooltipContentState {
|
|
238
|
+
static create(opts) {
|
|
239
|
+
return new TooltipContentState(opts, TooltipRootContext.get());
|
|
240
|
+
}
|
|
219
241
|
opts;
|
|
220
242
|
root;
|
|
221
243
|
constructor(opts, root) {
|
|
222
244
|
this.opts = opts;
|
|
223
245
|
this.root = root;
|
|
224
|
-
|
|
246
|
+
new GraceArea({
|
|
225
247
|
triggerNode: () => this.root.triggerNode,
|
|
226
248
|
contentNode: () => this.root.contentNode,
|
|
227
249
|
enabled: () => this.root.opts.open.current && !this.root.disableHoverableContent,
|
|
@@ -287,20 +309,3 @@ class TooltipContentState {
|
|
|
287
309
|
onCloseAutoFocus: this.onCloseAutoFocus,
|
|
288
310
|
};
|
|
289
311
|
}
|
|
290
|
-
//
|
|
291
|
-
// CONTEXT METHODS
|
|
292
|
-
//
|
|
293
|
-
const TooltipProviderContext = new Context("Tooltip.Provider");
|
|
294
|
-
const TooltipRootContext = new Context("Tooltip.Root");
|
|
295
|
-
export function useTooltipProvider(props) {
|
|
296
|
-
return TooltipProviderContext.set(new TooltipProviderState(props));
|
|
297
|
-
}
|
|
298
|
-
export function useTooltipRoot(props) {
|
|
299
|
-
return TooltipRootContext.set(new TooltipRootState(props, TooltipProviderContext.get()));
|
|
300
|
-
}
|
|
301
|
-
export function useTooltipTrigger(props) {
|
|
302
|
-
return new TooltipTriggerState(props, TooltipRootContext.get());
|
|
303
|
-
}
|
|
304
|
-
export function useTooltipContent(props) {
|
|
305
|
-
return new TooltipContentState(props, TooltipRootContext.get());
|
|
306
|
-
}
|
|
@@ -57,6 +57,10 @@ export type TooltipRootPropsWithoutHTML = WithChildren<{
|
|
|
57
57
|
* A callback that will be called when the tooltip is opened or closed.
|
|
58
58
|
*/
|
|
59
59
|
onOpenChange?: OnChangeFn<boolean>;
|
|
60
|
+
/**
|
|
61
|
+
* A callback that will be called when the tooltip is opened or closed.
|
|
62
|
+
*/
|
|
63
|
+
onOpenChangeComplete?: OnChangeFn<boolean>;
|
|
60
64
|
/**
|
|
61
65
|
* The delay in milliseconds before the tooltip opens.
|
|
62
66
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context } from "runed";
|
|
2
|
-
import type
|
|
2
|
+
import { type ReadableBoxedValues } from "svelte-toolbelt";
|
|
3
3
|
import type { BitsConfigPropsWithoutChildren } from "./types.js";
|
|
4
4
|
type BitsConfigStateProps = ReadableBoxedValues<BitsConfigPropsWithoutChildren>;
|
|
5
5
|
export declare const BitsConfigContext: Context<BitsConfigState>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box } from "svelte-toolbelt";
|
|
3
3
|
import type { DismissibleLayerImplProps } from "./types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { DismissibleLayerState } from "./use-dismissable-layer.svelte.js";
|
|
5
5
|
import { noop } from "../../../internal/noop.js";
|
|
6
6
|
|
|
7
7
|
let {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
ref,
|
|
16
16
|
}: DismissibleLayerImplProps = $props();
|
|
17
17
|
|
|
18
|
-
const dismissibleLayerState =
|
|
18
|
+
const dismissibleLayerState = DismissibleLayerState.create({
|
|
19
19
|
id: box.with(() => id),
|
|
20
20
|
interactOutsideBehavior: box.with(() => interactOutsideBehavior),
|
|
21
21
|
onInteractOutside: box.with(() => onInteractOutside),
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { type WritableBox } from "svelte-toolbelt";
|
|
1
|
+
import { type WritableBox, type ReadableBoxedValues } from "svelte-toolbelt";
|
|
2
2
|
import type { DismissibleLayerImplProps } from "./types.js";
|
|
3
|
-
|
|
4
|
-
type DismissibleLayerStateProps = ReadableBoxedValues<Required<Omit<DismissibleLayerImplProps, "children" | "ref">>> & {
|
|
3
|
+
interface DismissibleLayerStateOpts extends ReadableBoxedValues<Required<Omit<DismissibleLayerImplProps, "children" | "ref">>> {
|
|
5
4
|
ref: WritableBox<HTMLElement | null>;
|
|
6
|
-
}
|
|
5
|
+
}
|
|
7
6
|
export declare class DismissibleLayerState {
|
|
8
7
|
#private;
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
static create(opts: DismissibleLayerStateOpts): DismissibleLayerState;
|
|
9
|
+
readonly opts: DismissibleLayerStateOpts;
|
|
10
|
+
constructor(opts: DismissibleLayerStateOpts);
|
|
11
11
|
props: {
|
|
12
12
|
onfocuscapture: () => void;
|
|
13
13
|
onblurcapture: () => void;
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
|
-
export declare function useDismissibleLayer(props: DismissibleLayerStateProps): DismissibleLayerState;
|
|
17
16
|
export type FocusOutsideEvent = CustomEvent<{
|
|
18
17
|
originalEvent: FocusEvent;
|
|
19
18
|
}>;
|
|
@@ -9,6 +9,9 @@ import { isElement } from "../../../internal/is.js";
|
|
|
9
9
|
import { isClickTrulyOutside } from "../../../internal/dom.js";
|
|
10
10
|
globalThis.bitsDismissableLayers ??= new Map();
|
|
11
11
|
export class DismissibleLayerState {
|
|
12
|
+
static create(opts) {
|
|
13
|
+
return new DismissibleLayerState(opts);
|
|
14
|
+
}
|
|
12
15
|
opts;
|
|
13
16
|
#interactOutsideProp;
|
|
14
17
|
#behaviorType;
|
|
@@ -162,9 +165,6 @@ export class DismissibleLayerState {
|
|
|
162
165
|
onblurcapture: this.#onblurcapture,
|
|
163
166
|
};
|
|
164
167
|
}
|
|
165
|
-
export function useDismissibleLayer(props) {
|
|
166
|
-
return new DismissibleLayerState(props);
|
|
167
|
-
}
|
|
168
168
|
function getTopMostLayer(layersArr) {
|
|
169
169
|
return layersArr.findLast(([_, { current: behaviorType }]) => behaviorType === "close" || behaviorType === "ignore");
|
|
170
170
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box } from "svelte-toolbelt";
|
|
3
3
|
import type { EscapeLayerImplProps } from "./types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { EscapeLayerState } from "./use-escape-layer.svelte.js";
|
|
5
5
|
import { noop } from "../../../internal/noop.js";
|
|
6
6
|
|
|
7
7
|
let {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
ref,
|
|
13
13
|
}: EscapeLayerImplProps = $props();
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
EscapeLayerState.create({
|
|
16
16
|
escapeKeydownBehavior: box.with(() => escapeKeydownBehavior),
|
|
17
17
|
onEscapeKeydown: box.with(() => onEscapeKeydown),
|
|
18
18
|
enabled: box.with(() => enabled),
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { DOMContext, type Box } from "svelte-toolbelt";
|
|
1
|
+
import { DOMContext, type Box, type ReadableBoxedValues } from "svelte-toolbelt";
|
|
2
2
|
import type { EscapeLayerImplProps } from "./types.js";
|
|
3
|
-
|
|
4
|
-
type EscapeLayerStateProps = ReadableBoxedValues<Required<Omit<EscapeLayerImplProps, "children" | "ref">>> & {
|
|
3
|
+
interface EscapeLayerStateOpts extends ReadableBoxedValues<Required<Omit<EscapeLayerImplProps, "children" | "ref">>> {
|
|
5
4
|
ref: Box<HTMLElement | null>;
|
|
6
|
-
}
|
|
5
|
+
}
|
|
7
6
|
export declare class EscapeLayerState {
|
|
8
7
|
#private;
|
|
9
|
-
|
|
8
|
+
static create(opts: EscapeLayerStateOpts): EscapeLayerState;
|
|
9
|
+
readonly opts: EscapeLayerStateOpts;
|
|
10
10
|
readonly domContext: DOMContext;
|
|
11
|
-
constructor(opts:
|
|
11
|
+
constructor(opts: EscapeLayerStateOpts);
|
|
12
12
|
}
|
|
13
|
-
export declare function useEscapeLayer(props: EscapeLayerStateProps): EscapeLayerState;
|
|
14
13
|
export {};
|
|
@@ -5,6 +5,9 @@ import { kbd } from "../../../internal/kbd.js";
|
|
|
5
5
|
import { noop } from "../../../internal/noop.js";
|
|
6
6
|
globalThis.bitsEscapeLayers ??= new Map();
|
|
7
7
|
export class EscapeLayerState {
|
|
8
|
+
static create(opts) {
|
|
9
|
+
return new EscapeLayerState(opts);
|
|
10
|
+
}
|
|
8
11
|
opts;
|
|
9
12
|
domContext;
|
|
10
13
|
constructor(opts) {
|
|
@@ -36,9 +39,6 @@ export class EscapeLayerState {
|
|
|
36
39
|
this.opts.onEscapeKeydown.current(clonedEvent);
|
|
37
40
|
};
|
|
38
41
|
}
|
|
39
|
-
export function useEscapeLayer(props) {
|
|
40
|
-
return new EscapeLayerState(props);
|
|
41
|
-
}
|
|
42
42
|
function isResponsibleEscapeLayer(instance) {
|
|
43
43
|
const layersArr = [...globalThis.bitsEscapeLayers];
|
|
44
44
|
/**
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box } from "svelte-toolbelt";
|
|
3
|
-
import {
|
|
3
|
+
import { FloatingAnchorState } from "../use-floating-layer.svelte.js";
|
|
4
4
|
import type { AnchorProps } from "./index.js";
|
|
5
5
|
import type { Measurable } from "../../../../internal/floating-svelte/types.js";
|
|
6
6
|
|
|
7
7
|
let { id, children, virtualEl, ref, tooltip = false }: AnchorProps = $props();
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
FloatingAnchorState.create(
|
|
10
10
|
{
|
|
11
11
|
id: box.with(() => id),
|
|
12
12
|
virtualEl: box.with(() => virtualEl as unknown as Measurable | null),
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
|
-
import {
|
|
3
|
+
import { FloatingArrowState } from "../use-floating-layer.svelte.js";
|
|
4
4
|
import { Arrow, type ArrowProps } from "../../arrow/index.js";
|
|
5
5
|
import { useId } from "../../../../internal/use-id.js";
|
|
6
6
|
|
|
7
7
|
let { id = useId(), ref = $bindable(null), ...restProps }: ArrowProps = $props();
|
|
8
8
|
|
|
9
|
-
const arrowState =
|
|
9
|
+
const arrowState = FloatingArrowState.create({
|
|
10
10
|
id: box.with(() => id),
|
|
11
11
|
ref: box.with(
|
|
12
12
|
() => ref,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
|
-
import {
|
|
3
|
+
import { FloatingContentState } from "../use-floating-layer.svelte.js";
|
|
4
4
|
import type { ContentImplProps } from "./index.js";
|
|
5
5
|
import { useId } from "../../../../internal/use-id.js";
|
|
6
6
|
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
tooltip = false,
|
|
29
29
|
}: ContentImplProps = $props();
|
|
30
30
|
|
|
31
|
-
const contentState =
|
|
31
|
+
const contentState = FloatingContentState.create(
|
|
32
32
|
{
|
|
33
33
|
side: box.with(() => side),
|
|
34
34
|
sideOffset: box.with(() => sideOffset),
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { Snippet } from "svelte";
|
|
3
|
-
import {
|
|
3
|
+
import { FloatingRootState } from "../use-floating-layer.svelte.js";
|
|
4
4
|
|
|
5
5
|
let { children, tooltip = false }: { children?: Snippet; tooltip?: boolean } = $props();
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
FloatingRootState.create(tooltip);
|
|
8
8
|
</script>
|
|
9
9
|
|
|
10
10
|
{@render children?.()}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { type Middleware, type Placement } from "@floating-ui/dom";
|
|
2
|
-
import { type ReadableBox } from "svelte-toolbelt";
|
|
3
|
-
import type { Arrayable,
|
|
4
|
-
import type { Box, ReadableBoxedValues } from "../../../internal/box.svelte.js";
|
|
2
|
+
import { type ReadableBoxedValues, type ReadableBox, type Box } from "svelte-toolbelt";
|
|
3
|
+
import type { Arrayable, WithRefOpts } from "../../../internal/types.js";
|
|
5
4
|
import type { Measurable, UseFloatingReturn } from "../../../internal/floating-svelte/types.js";
|
|
6
5
|
import type { Direction, StyleProperties } from "../../../shared/index.js";
|
|
7
6
|
export declare const SIDE_OPTIONS: readonly ["top", "right", "bottom", "left"];
|
|
@@ -9,13 +8,14 @@ export declare const ALIGN_OPTIONS: readonly ["start", "center", "end"];
|
|
|
9
8
|
export type Side = (typeof SIDE_OPTIONS)[number];
|
|
10
9
|
export type Align = (typeof ALIGN_OPTIONS)[number];
|
|
11
10
|
export type Boundary = Element | null;
|
|
12
|
-
declare class FloatingRootState {
|
|
11
|
+
export declare class FloatingRootState {
|
|
12
|
+
static create(tooltip?: boolean): FloatingRootState;
|
|
13
13
|
anchorNode: import("svelte-toolbelt").WritableBox<HTMLElement | Measurable | null>;
|
|
14
14
|
customAnchorNode: import("svelte-toolbelt").WritableBox<string | HTMLElement | Measurable | null>;
|
|
15
15
|
triggerNode: ReadableBox<Measurable | HTMLElement | null>;
|
|
16
16
|
constructor();
|
|
17
17
|
}
|
|
18
|
-
export
|
|
18
|
+
export interface FloatingContentStateOpts extends ReadableBoxedValues<{
|
|
19
19
|
id: string;
|
|
20
20
|
wrapperId: string;
|
|
21
21
|
side: Side;
|
|
@@ -35,10 +35,12 @@ export type FloatingContentStateProps = ReadableBoxedValues<{
|
|
|
35
35
|
style: StyleProperties | null | undefined | string;
|
|
36
36
|
enabled: boolean;
|
|
37
37
|
customAnchor: string | HTMLElement | null | Measurable;
|
|
38
|
-
}
|
|
39
|
-
|
|
38
|
+
}> {
|
|
39
|
+
}
|
|
40
|
+
export declare class FloatingContentState {
|
|
40
41
|
#private;
|
|
41
|
-
|
|
42
|
+
static create(opts: FloatingContentStateOpts, tooltip?: boolean): FloatingContentState;
|
|
43
|
+
readonly opts: FloatingContentStateOpts;
|
|
42
44
|
readonly root: FloatingRootState;
|
|
43
45
|
contentRef: import("svelte-toolbelt").WritableBox<HTMLElement | null>;
|
|
44
46
|
wrapperRef: import("svelte-toolbelt").WritableBox<HTMLElement | null>;
|
|
@@ -911,14 +913,16 @@ declare class FloatingContentState {
|
|
|
911
913
|
transform: string;
|
|
912
914
|
visibility: string | undefined;
|
|
913
915
|
};
|
|
914
|
-
constructor(opts:
|
|
916
|
+
constructor(opts: FloatingContentStateOpts, root: FloatingRootState);
|
|
917
|
+
}
|
|
918
|
+
interface FloatingArrowStateOpts extends WithRefOpts {
|
|
915
919
|
}
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
readonly opts:
|
|
920
|
+
export declare class FloatingArrowState {
|
|
921
|
+
static create(opts: FloatingArrowStateOpts): FloatingArrowState;
|
|
922
|
+
readonly opts: FloatingArrowStateOpts;
|
|
919
923
|
readonly content: FloatingContentState;
|
|
920
|
-
constructor(opts:
|
|
921
|
-
props: {
|
|
924
|
+
constructor(opts: FloatingArrowStateOpts, content: FloatingContentState);
|
|
925
|
+
readonly props: {
|
|
922
926
|
readonly id: string;
|
|
923
927
|
readonly style: {
|
|
924
928
|
[x: string]: string | number | undefined;
|
|
@@ -932,20 +936,18 @@ declare class FloatingArrowState {
|
|
|
932
936
|
readonly "data-side": "left" | "right" | "top" | "bottom";
|
|
933
937
|
};
|
|
934
938
|
}
|
|
935
|
-
|
|
939
|
+
interface FloatingAnchorStateOpts extends ReadableBoxedValues<{
|
|
936
940
|
id: string;
|
|
937
941
|
virtualEl?: Measurable | null;
|
|
938
942
|
ref: Measurable | HTMLElement | null;
|
|
939
|
-
}
|
|
940
|
-
|
|
941
|
-
|
|
943
|
+
}> {
|
|
944
|
+
}
|
|
945
|
+
export declare class FloatingAnchorState {
|
|
946
|
+
static create(opts: FloatingAnchorStateOpts, tooltip?: boolean): FloatingAnchorState;
|
|
947
|
+
readonly opts: FloatingAnchorStateOpts;
|
|
942
948
|
readonly root: FloatingRootState;
|
|
943
|
-
constructor(opts:
|
|
949
|
+
constructor(opts: FloatingAnchorStateOpts, root: FloatingRootState);
|
|
944
950
|
}
|
|
945
|
-
export declare function useFloatingRootState(tooltip?: boolean): FloatingRootState;
|
|
946
|
-
export declare function useFloatingContentState(props: FloatingContentStateProps, tooltip?: boolean): FloatingContentState;
|
|
947
|
-
export declare function useFloatingArrowState(props: FloatingArrowStateProps): FloatingArrowState;
|
|
948
|
-
export declare function useFloatingAnchorState(props: FloatingAnchorStateProps, tooltip?: boolean): FloatingAnchorState;
|
|
949
951
|
export declare function getSideFromPlacement(placement: Placement): "left" | "right" | "top" | "bottom";
|
|
950
952
|
export declare function getAlignFromPlacement(placement: Placement): "end" | "center" | "start";
|
|
951
953
|
export {};
|
|
@@ -12,7 +12,15 @@ const OPPOSITE_SIDE = {
|
|
|
12
12
|
bottom: "top",
|
|
13
13
|
left: "right",
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
const FloatingRootContext = new Context("Floating.Root");
|
|
16
|
+
const FloatingContentContext = new Context("Floating.Content");
|
|
17
|
+
const FloatingTooltipRootContext = new Context("Floating.Root");
|
|
18
|
+
export class FloatingRootState {
|
|
19
|
+
static create(tooltip = false) {
|
|
20
|
+
return tooltip
|
|
21
|
+
? FloatingTooltipRootContext.set(new FloatingRootState())
|
|
22
|
+
: FloatingRootContext.set(new FloatingRootState());
|
|
23
|
+
}
|
|
16
24
|
anchorNode = box(null);
|
|
17
25
|
customAnchorNode = box(null);
|
|
18
26
|
triggerNode = box(null);
|
|
@@ -32,7 +40,12 @@ class FloatingRootState {
|
|
|
32
40
|
});
|
|
33
41
|
}
|
|
34
42
|
}
|
|
35
|
-
class FloatingContentState {
|
|
43
|
+
export class FloatingContentState {
|
|
44
|
+
static create(opts, tooltip = false) {
|
|
45
|
+
return tooltip
|
|
46
|
+
? FloatingContentContext.set(new FloatingContentState(opts, FloatingTooltipRootContext.get()))
|
|
47
|
+
: FloatingContentContext.set(new FloatingContentState(opts, FloatingRootContext.get()));
|
|
48
|
+
}
|
|
36
49
|
opts;
|
|
37
50
|
root;
|
|
38
51
|
// nodes
|
|
@@ -202,7 +215,10 @@ class FloatingContentState {
|
|
|
202
215
|
});
|
|
203
216
|
}
|
|
204
217
|
}
|
|
205
|
-
class FloatingArrowState {
|
|
218
|
+
export class FloatingArrowState {
|
|
219
|
+
static create(opts) {
|
|
220
|
+
return new FloatingArrowState(opts, FloatingContentContext.get());
|
|
221
|
+
}
|
|
206
222
|
opts;
|
|
207
223
|
content;
|
|
208
224
|
constructor(opts, content) {
|
|
@@ -216,7 +232,12 @@ class FloatingArrowState {
|
|
|
216
232
|
...attachRef(this.content.arrowRef),
|
|
217
233
|
}));
|
|
218
234
|
}
|
|
219
|
-
class FloatingAnchorState {
|
|
235
|
+
export class FloatingAnchorState {
|
|
236
|
+
static create(opts, tooltip = false) {
|
|
237
|
+
return tooltip
|
|
238
|
+
? new FloatingAnchorState(opts, FloatingTooltipRootContext.get())
|
|
239
|
+
: new FloatingAnchorState(opts, FloatingRootContext.get());
|
|
240
|
+
}
|
|
220
241
|
opts;
|
|
221
242
|
root;
|
|
222
243
|
constructor(opts, root) {
|
|
@@ -230,27 +251,6 @@ class FloatingAnchorState {
|
|
|
230
251
|
}
|
|
231
252
|
}
|
|
232
253
|
}
|
|
233
|
-
const FloatingRootContext = new Context("Floating.Root");
|
|
234
|
-
const FloatingContentContext = new Context("Floating.Content");
|
|
235
|
-
const FloatingTooltipRootContext = new Context("Floating.Root");
|
|
236
|
-
export function useFloatingRootState(tooltip = false) {
|
|
237
|
-
return tooltip
|
|
238
|
-
? FloatingTooltipRootContext.set(new FloatingRootState())
|
|
239
|
-
: FloatingRootContext.set(new FloatingRootState());
|
|
240
|
-
}
|
|
241
|
-
export function useFloatingContentState(props, tooltip = false) {
|
|
242
|
-
return tooltip
|
|
243
|
-
? FloatingContentContext.set(new FloatingContentState(props, FloatingTooltipRootContext.get()))
|
|
244
|
-
: FloatingContentContext.set(new FloatingContentState(props, FloatingRootContext.get()));
|
|
245
|
-
}
|
|
246
|
-
export function useFloatingArrowState(props) {
|
|
247
|
-
return new FloatingArrowState(props, FloatingContentContext.get());
|
|
248
|
-
}
|
|
249
|
-
export function useFloatingAnchorState(props, tooltip = false) {
|
|
250
|
-
return tooltip
|
|
251
|
-
? new FloatingAnchorState(props, FloatingTooltipRootContext.get())
|
|
252
|
-
: new FloatingAnchorState(props, FloatingRootContext.get());
|
|
253
|
-
}
|
|
254
254
|
//
|
|
255
255
|
// HELPERS
|
|
256
256
|
//
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { type ReadableBoxedValues } from "svelte-toolbelt";
|
|
1
2
|
import { Context } from "runed";
|
|
2
|
-
import type { ReadableBoxedValues } from "../../../internal/box.svelte.js";
|
|
3
3
|
import { type EventCallback } from "../../../internal/events.js";
|
|
4
4
|
export type FocusScopeContextValue = {
|
|
5
5
|
ignoreCloseAutoFocus: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { afterSleep, afterTick, DOMContext, executeCallbacks } from "svelte-toolbelt";
|
|
1
|
+
import { afterSleep, afterTick, DOMContext, executeCallbacks, } from "svelte-toolbelt";
|
|
2
2
|
import { Context, watch } from "runed";
|
|
3
3
|
import { on } from "svelte/events";
|
|
4
4
|
import { createFocusScopeAPI, createFocusScopeStack, removeLinks, } from "./focus-scope-stack.svelte.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PopperLayerImplProps } from "./types.js";
|
|
2
|
-
type $$ComponentProps = Omit<PopperLayerImplProps, "
|
|
2
|
+
type $$ComponentProps = Omit<PopperLayerImplProps, "open"> & {
|
|
3
3
|
enabled: boolean;
|
|
4
4
|
};
|
|
5
5
|
declare const PopperLayerForceMount: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PopperLayerImplProps } from "./types.js";
|
|
2
|
-
type $$ComponentProps = Omit<PopperLayerImplProps, "
|
|
2
|
+
type $$ComponentProps = Omit<PopperLayerImplProps, "open" | "children"> & {
|
|
3
3
|
enabled: boolean;
|
|
4
4
|
};
|
|
5
5
|
declare const PopperLayerInner: import("svelte").Component<$$ComponentProps, {}, "">;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
let {
|
|
7
7
|
popper,
|
|
8
|
-
|
|
8
|
+
open,
|
|
9
9
|
onEscapeKeydown,
|
|
10
10
|
escapeKeydownBehavior,
|
|
11
11
|
preventOverflowTextSelection,
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
}: PopperLayerImplProps = $props();
|
|
45
45
|
</script>
|
|
46
46
|
|
|
47
|
-
<PresenceLayer {
|
|
47
|
+
<PresenceLayer {open} {ref}>
|
|
48
48
|
{#snippet presence()}
|
|
49
49
|
<PopperLayerInner
|
|
50
50
|
{popper}
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
{onPlaced}
|
|
74
74
|
{customAnchor}
|
|
75
75
|
{isStatic}
|
|
76
|
-
enabled={
|
|
76
|
+
enabled={open}
|
|
77
77
|
{onInteractOutside}
|
|
78
78
|
{onCloseAutoFocus}
|
|
79
79
|
{onOpenAutoFocus}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box } from "svelte-toolbelt";
|
|
3
3
|
import type { PresenceLayerImplProps } from "./types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { Presence } from "./presence.svelte.js";
|
|
5
5
|
|
|
6
|
-
let {
|
|
6
|
+
let { open, forceMount, presence, ref }: PresenceLayerImplProps = $props();
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
box.with(() =>
|
|
10
|
-
ref
|
|
11
|
-
);
|
|
8
|
+
const presenceState = new Presence({
|
|
9
|
+
open: box.with(() => open),
|
|
10
|
+
ref,
|
|
11
|
+
});
|
|
12
12
|
</script>
|
|
13
13
|
|
|
14
|
-
{#if forceMount ||
|
|
15
|
-
{@render presence?.({ present: isPresent })}
|
|
14
|
+
{#if forceMount || open || presenceState.isPresent}
|
|
15
|
+
{@render presence?.({ present: presenceState.isPresent })}
|
|
16
16
|
{/if}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type ReadableBox, type ReadableBoxedValues } from "svelte-toolbelt";
|
|
2
|
+
import { Previous } from "runed";
|
|
3
|
+
import { StateMachine } from "../../../internal/state-machine.js";
|
|
4
|
+
export interface PresenceOptions extends ReadableBoxedValues<{
|
|
5
|
+
open: boolean;
|
|
6
|
+
ref: HTMLElement | null;
|
|
7
|
+
}> {
|
|
8
|
+
}
|
|
9
|
+
type PresenceStatus = "unmounted" | "mounted" | "unmountSuspended";
|
|
10
|
+
declare const presenceMachine: {
|
|
11
|
+
readonly mounted: {
|
|
12
|
+
readonly UNMOUNT: "unmounted";
|
|
13
|
+
readonly ANIMATION_OUT: "unmountSuspended";
|
|
14
|
+
};
|
|
15
|
+
readonly unmountSuspended: {
|
|
16
|
+
readonly MOUNT: "mounted";
|
|
17
|
+
readonly ANIMATION_END: "unmounted";
|
|
18
|
+
};
|
|
19
|
+
readonly unmounted: {
|
|
20
|
+
readonly MOUNT: "mounted";
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
type PresenceMachine = StateMachine<typeof presenceMachine>;
|
|
24
|
+
export declare class Presence {
|
|
25
|
+
readonly opts: PresenceOptions;
|
|
26
|
+
prevAnimationNameState: string;
|
|
27
|
+
styles: CSSStyleDeclaration;
|
|
28
|
+
initialStatus: PresenceStatus;
|
|
29
|
+
previousPresent: Previous<boolean>;
|
|
30
|
+
machine: PresenceMachine;
|
|
31
|
+
present: ReadableBox<boolean>;
|
|
32
|
+
constructor(opts: PresenceOptions);
|
|
33
|
+
/**
|
|
34
|
+
* Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`
|
|
35
|
+
* event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we
|
|
36
|
+
* make sure we only trigger ANIMATION_END for the currently active animation.
|
|
37
|
+
*/
|
|
38
|
+
handleAnimationEnd(event: AnimationEvent): void;
|
|
39
|
+
handleAnimationStart(event: AnimationEvent): void;
|
|
40
|
+
isPresent: boolean;
|
|
41
|
+
}
|
|
42
|
+
export {};
|