bits-ui 2.7.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/bits/accordion/accordion.svelte.d.ts +66 -58
- package/dist/bits/accordion/accordion.svelte.js +56 -51
- package/dist/bits/accordion/components/accordion-content.svelte +4 -4
- package/dist/bits/accordion/components/accordion-header.svelte +2 -2
- package/dist/bits/accordion/components/accordion-item.svelte +2 -2
- package/dist/bits/accordion/components/accordion-trigger.svelte +2 -2
- package/dist/bits/accordion/components/accordion.svelte +2 -2
- package/dist/bits/alert-dialog/components/alert-dialog-action.svelte +2 -2
- package/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte +2 -2
- package/dist/bits/alert-dialog/components/alert-dialog-content.svelte +3 -3
- package/dist/bits/alert-dialog/components/alert-dialog.svelte +9 -3
- package/dist/bits/aspect-ratio/aspect-ratio.svelte.d.ts +10 -16
- package/dist/bits/aspect-ratio/aspect-ratio.svelte.js +4 -11
- package/dist/bits/aspect-ratio/components/aspect-ratio.svelte +2 -2
- package/dist/bits/avatar/avatar.svelte.d.ts +25 -33
- package/dist/bits/avatar/avatar.svelte.js +20 -21
- package/dist/bits/avatar/components/avatar-fallback.svelte +2 -2
- package/dist/bits/avatar/components/avatar-image.svelte +2 -2
- package/dist/bits/avatar/components/avatar.svelte +2 -2
- package/dist/bits/calendar/calendar.svelte.d.ts +117 -106
- package/dist/bits/calendar/calendar.svelte.js +51 -52
- package/dist/bits/calendar/components/calendar-cell.svelte +2 -2
- package/dist/bits/calendar/components/calendar-day.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid-body.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid-head.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid-row.svelte +2 -2
- package/dist/bits/calendar/components/calendar-grid.svelte +2 -2
- package/dist/bits/calendar/components/calendar-head-cell.svelte +2 -2
- package/dist/bits/calendar/components/calendar-header.svelte +2 -2
- package/dist/bits/calendar/components/calendar-heading.svelte +5 -5
- package/dist/bits/calendar/components/calendar-month-select.svelte +2 -2
- package/dist/bits/calendar/components/calendar-next-button.svelte +2 -2
- package/dist/bits/calendar/components/calendar-prev-button.svelte +2 -2
- package/dist/bits/calendar/components/calendar-year-select.svelte +2 -2
- package/dist/bits/calendar/components/calendar.svelte +2 -2
- package/dist/bits/checkbox/checkbox.svelte.d.ts +37 -34
- package/dist/bits/checkbox/checkbox.svelte.js +19 -22
- package/dist/bits/checkbox/components/checkbox-group-label.svelte +2 -2
- package/dist/bits/checkbox/components/checkbox-group.svelte +2 -2
- package/dist/bits/checkbox/components/checkbox-input.svelte +2 -2
- package/dist/bits/checkbox/components/checkbox.svelte +2 -2
- package/dist/bits/collapsible/collapsible.svelte.d.ts +30 -27
- package/dist/bits/collapsible/collapsible.svelte.js +23 -15
- package/dist/bits/collapsible/components/collapsible-content.svelte +5 -5
- package/dist/bits/collapsible/components/collapsible-content.svelte.d.ts +1 -4
- package/dist/bits/collapsible/components/collapsible-trigger.svelte +2 -2
- package/dist/bits/collapsible/components/collapsible.svelte +4 -2
- package/dist/bits/collapsible/types.d.ts +4 -0
- package/dist/bits/combobox/components/combobox-input.svelte +2 -2
- package/dist/bits/combobox/components/combobox-trigger.svelte +2 -2
- package/dist/bits/combobox/components/combobox.svelte +4 -2
- package/dist/bits/command/command.svelte.d.ts +103 -92
- package/dist/bits/command/command.svelte.js +55 -57
- package/dist/bits/command/components/_command-label.svelte +2 -2
- package/dist/bits/command/components/command-empty.svelte +2 -2
- package/dist/bits/command/components/command-group-heading.svelte +2 -2
- package/dist/bits/command/components/command-group-items.svelte +2 -2
- package/dist/bits/command/components/command-group.svelte +2 -2
- package/dist/bits/command/components/command-input.svelte +2 -2
- package/dist/bits/command/components/command-item.svelte +2 -2
- package/dist/bits/command/components/command-link-item.svelte +2 -2
- package/dist/bits/command/components/command-list.svelte +2 -2
- package/dist/bits/command/components/command-loading.svelte +2 -2
- package/dist/bits/command/components/command-separator.svelte +2 -2
- package/dist/bits/command/components/command-viewport.svelte +2 -2
- package/dist/bits/command/components/command.svelte +2 -2
- package/dist/bits/context-menu/components/context-menu-content-static.svelte +3 -3
- package/dist/bits/context-menu/components/context-menu-content.svelte +3 -3
- package/dist/bits/context-menu/components/context-menu-trigger.svelte +2 -2
- package/dist/bits/context-menu/components/context-menu.svelte +16 -11
- package/dist/bits/date-field/components/date-field-hidden-input.svelte +2 -2
- package/dist/bits/date-field/components/date-field-input.svelte +2 -2
- package/dist/bits/date-field/components/date-field-label.svelte +2 -2
- package/dist/bits/date-field/components/date-field-segment.svelte +2 -2
- package/dist/bits/date-field/components/date-field.svelte +2 -2
- package/dist/bits/date-field/date-field.svelte.d.ts +85 -74
- package/dist/bits/date-field/date-field.svelte.js +55 -53
- package/dist/bits/date-picker/components/date-picker-calendar.svelte +2 -2
- package/dist/bits/date-picker/components/date-picker.svelte +8 -6
- package/dist/bits/date-picker/date-picker.svelte.d.ts +10 -10
- package/dist/bits/date-picker/date-picker.svelte.js +6 -5
- package/dist/bits/date-picker/types.d.ts +4 -0
- package/dist/bits/date-range-field/components/date-range-field-input.svelte +2 -2
- package/dist/bits/date-range-field/components/date-range-field-label.svelte +2 -2
- package/dist/bits/date-range-field/components/date-range-field.svelte +2 -2
- package/dist/bits/date-range-field/date-range-field.svelte.d.ts +32 -29
- package/dist/bits/date-range-field/date-range-field.svelte.js +33 -32
- package/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte +2 -2
- package/dist/bits/date-range-picker/components/date-range-picker.svelte +8 -6
- package/dist/bits/date-range-picker/date-range-picker.svelte.d.ts +10 -10
- package/dist/bits/date-range-picker/date-range-picker.svelte.js +6 -5
- package/dist/bits/date-range-picker/types.d.ts +4 -0
- package/dist/bits/dialog/components/dialog-close.svelte +2 -2
- package/dist/bits/dialog/components/dialog-content.svelte +3 -3
- package/dist/bits/dialog/components/dialog-description.svelte +2 -2
- package/dist/bits/dialog/components/dialog-overlay.svelte +3 -6
- package/dist/bits/dialog/components/dialog-title.svelte +2 -2
- package/dist/bits/dialog/components/dialog-trigger.svelte +2 -2
- package/dist/bits/dialog/components/dialog.svelte +9 -3
- package/dist/bits/dialog/dialog.svelte.d.ts +75 -65
- package/dist/bits/dialog/dialog.svelte.js +47 -38
- package/dist/bits/dialog/types.d.ts +4 -0
- package/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte +3 -3
- package/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte +3 -3
- package/dist/bits/label/components/label.svelte +2 -2
- package/dist/bits/label/label.svelte.d.ts +8 -7
- package/dist/bits/label/label.svelte.js +4 -4
- package/dist/bits/link-preview/components/link-preview-content-static.svelte +3 -3
- package/dist/bits/link-preview/components/link-preview-content.svelte +3 -3
- package/dist/bits/link-preview/components/link-preview-trigger.svelte +2 -2
- package/dist/bits/link-preview/components/link-preview.svelte +4 -2
- package/dist/bits/link-preview/link-preview.svelte.d.ts +28 -25
- package/dist/bits/link-preview/link-preview.svelte.js +24 -16
- package/dist/bits/link-preview/types.d.ts +4 -0
- package/dist/bits/menu/components/menu-arrow.svelte +2 -2
- package/dist/bits/menu/components/menu-checkbox-group.svelte +2 -2
- package/dist/bits/menu/components/menu-checkbox-item.svelte +2 -2
- package/dist/bits/menu/components/menu-content-static.svelte +3 -3
- package/dist/bits/menu/components/menu-content.svelte +3 -3
- package/dist/bits/menu/components/menu-group-heading.svelte +2 -2
- package/dist/bits/menu/components/menu-group.svelte +2 -2
- package/dist/bits/menu/components/menu-item.svelte +2 -2
- package/dist/bits/menu/components/menu-radio-group.svelte +2 -2
- package/dist/bits/menu/components/menu-radio-item.svelte +2 -2
- package/dist/bits/menu/components/menu-separator.svelte +2 -2
- package/dist/bits/menu/components/menu-sub-content-static.svelte +3 -3
- package/dist/bits/menu/components/menu-sub-content.svelte +3 -3
- package/dist/bits/menu/components/menu-sub-trigger.svelte +2 -2
- package/dist/bits/menu/components/menu-sub.svelte +9 -3
- package/dist/bits/menu/components/menu-trigger.svelte +2 -2
- package/dist/bits/menu/components/menu.svelte +16 -11
- package/dist/bits/menu/menu.svelte.d.ts +136 -119
- package/dist/bits/menu/menu.svelte.js +106 -96
- package/dist/bits/menu/types.d.ts +8 -0
- package/dist/bits/menubar/components/menubar-content-static.svelte +2 -2
- package/dist/bits/menubar/components/menubar-content.svelte +2 -2
- package/dist/bits/menubar/components/menubar-menu.svelte +2 -2
- package/dist/bits/menubar/components/menubar-trigger.svelte +4 -4
- package/dist/bits/menubar/components/menubar.svelte +2 -2
- package/dist/bits/menubar/menubar.svelte.d.ts +37 -34
- package/dist/bits/menubar/menubar.svelte.js +21 -21
- package/dist/bits/meter/components/meter.svelte +2 -2
- package/dist/bits/meter/meter.svelte.d.ts +10 -9
- package/dist/bits/meter/meter.svelte.js +4 -4
- package/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-content.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu-item.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-link.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-list.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-sub.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte +2 -2
- package/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte +3 -3
- package/dist/bits/navigation-menu/components/navigation-menu.svelte +2 -2
- package/dist/bits/navigation-menu/navigation-menu.svelte.d.ts +116 -109
- package/dist/bits/navigation-menu/navigation-menu.svelte.js +78 -81
- package/dist/bits/pagination/components/pagination-next-button.svelte +2 -2
- package/dist/bits/pagination/components/pagination-page.svelte +2 -2
- package/dist/bits/pagination/components/pagination-prev-button.svelte +2 -2
- package/dist/bits/pagination/components/pagination.svelte +2 -2
- package/dist/bits/pagination/pagination.svelte.d.ts +34 -32
- package/dist/bits/pagination/pagination.svelte.js +15 -15
- package/dist/bits/pin-input/components/pin-input-cell.svelte +2 -2
- package/dist/bits/pin-input/components/pin-input.svelte +2 -2
- package/dist/bits/pin-input/pin-input.svelte.d.ts +22 -21
- package/dist/bits/pin-input/pin-input.svelte.js +9 -9
- package/dist/bits/popover/components/popover-close.svelte +2 -2
- package/dist/bits/popover/components/popover-content-static.svelte +3 -3
- package/dist/bits/popover/components/popover-content.svelte +3 -3
- package/dist/bits/popover/components/popover-trigger.svelte +2 -2
- package/dist/bits/popover/components/popover.svelte +9 -3
- package/dist/bits/popover/popover.svelte.d.ts +36 -31
- package/dist/bits/popover/popover.svelte.js +26 -21
- package/dist/bits/popover/types.d.ts +4 -0
- package/dist/bits/progress/components/progress.svelte +2 -2
- package/dist/bits/progress/progress.svelte.d.ts +10 -9
- package/dist/bits/progress/progress.svelte.js +4 -4
- package/dist/bits/radio-group/components/radio-group-input.svelte +2 -2
- package/dist/bits/radio-group/components/radio-group-item.svelte +2 -2
- package/dist/bits/radio-group/components/radio-group.svelte +2 -2
- package/dist/bits/radio-group/radio-group.svelte.d.ts +21 -19
- package/dist/bits/radio-group/radio-group.svelte.js +15 -15
- package/dist/bits/range-calendar/components/range-calendar-cell.svelte +2 -2
- package/dist/bits/range-calendar/components/range-calendar-day.svelte +2 -2
- package/dist/bits/range-calendar/components/range-calendar.svelte +2 -2
- package/dist/bits/range-calendar/range-calendar.svelte.d.ts +21 -20
- package/dist/bits/range-calendar/range-calendar.svelte.js +12 -12
- package/dist/bits/rating-group/components/rating-group-input.svelte +2 -2
- package/dist/bits/rating-group/components/rating-group-item.svelte +2 -2
- package/dist/bits/rating-group/components/rating-group.svelte +2 -2
- package/dist/bits/rating-group/rating-group.svelte.d.ts +19 -18
- package/dist/bits/rating-group/rating-group.svelte.js +16 -17
- package/dist/bits/scroll-area/components/scroll-area-corner-impl.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte +3 -3
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte +6 -6
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte +3 -3
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-shared.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-visible.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-x.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar-y.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-thumb-impl.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area-thumb.svelte +2 -5
- package/dist/bits/scroll-area/components/scroll-area-viewport.svelte +2 -2
- package/dist/bits/scroll-area/components/scroll-area.svelte +2 -2
- package/dist/bits/scroll-area/scroll-area.svelte.d.ts +98 -78
- package/dist/bits/scroll-area/scroll-area.svelte.js +78 -74
- package/dist/bits/select/components/select-content-static.svelte +3 -3
- package/dist/bits/select/components/select-content.svelte +3 -3
- package/dist/bits/select/components/select-group-heading.svelte +2 -2
- package/dist/bits/select/components/select-group.svelte +2 -2
- package/dist/bits/select/components/select-hidden-input.svelte +2 -2
- package/dist/bits/select/components/select-item.svelte +2 -2
- package/dist/bits/select/components/select-scroll-down-button.svelte +2 -2
- package/dist/bits/select/components/select-scroll-up-button.svelte +2 -2
- package/dist/bits/select/components/select-trigger.svelte +2 -2
- package/dist/bits/select/components/select-viewport.svelte +2 -2
- package/dist/bits/select/components/select.svelte +4 -2
- package/dist/bits/select/select.svelte.d.ts +127 -113
- package/dist/bits/select/select.svelte.js +72 -62
- package/dist/bits/select/types.d.ts +4 -0
- package/dist/bits/separator/components/separator.svelte +2 -2
- package/dist/bits/separator/separator.svelte.d.ts +9 -8
- package/dist/bits/separator/separator.svelte.js +4 -4
- package/dist/bits/slider/components/slider-range.svelte +2 -2
- package/dist/bits/slider/components/slider-thumb-label.svelte +2 -2
- package/dist/bits/slider/components/slider-thumb.svelte +2 -2
- package/dist/bits/slider/components/slider-tick-label.svelte +2 -2
- package/dist/bits/slider/components/slider-tick.svelte +2 -2
- package/dist/bits/slider/components/slider.svelte +2 -2
- package/dist/bits/slider/slider.svelte.d.ts +82 -73
- package/dist/bits/slider/slider.svelte.js +30 -28
- package/dist/bits/switch/components/switch-input.svelte +2 -2
- package/dist/bits/switch/components/switch-thumb.svelte +2 -2
- package/dist/bits/switch/components/switch.svelte +2 -2
- package/dist/bits/switch/switch.svelte.d.ts +19 -17
- package/dist/bits/switch/switch.svelte.js +13 -13
- package/dist/bits/tabs/components/tabs-content.svelte +2 -2
- package/dist/bits/tabs/components/tabs-list.svelte +2 -2
- package/dist/bits/tabs/components/tabs-trigger.svelte +2 -2
- package/dist/bits/tabs/components/tabs.svelte +2 -2
- package/dist/bits/tabs/tabs.svelte.d.ts +33 -29
- package/dist/bits/tabs/tabs.svelte.js +19 -19
- package/dist/bits/time-field/components/time-field-hidden-input.svelte +2 -2
- package/dist/bits/time-field/components/time-field-input.svelte +2 -2
- package/dist/bits/time-field/components/time-field-label.svelte +2 -2
- package/dist/bits/time-field/components/time-field-segment.svelte +2 -2
- package/dist/bits/time-field/components/time-field.svelte +2 -2
- package/dist/bits/time-field/time-field.svelte.d.ts +72 -66
- package/dist/bits/time-field/time-field.svelte.js +37 -42
- package/dist/bits/time-range-field/components/time-range-field-input.svelte +2 -2
- package/dist/bits/time-range-field/components/time-range-field-label.svelte +2 -2
- package/dist/bits/time-range-field/components/time-range-field.svelte +2 -2
- package/dist/bits/time-range-field/time-range-field.svelte.d.ts +35 -31
- package/dist/bits/time-range-field/time-range-field.svelte.js +34 -32
- package/dist/bits/toggle/components/toggle.svelte +2 -2
- package/dist/bits/toggle/toggle.svelte.d.ts +11 -10
- package/dist/bits/toggle/toggle.svelte.js +4 -4
- package/dist/bits/toggle-group/components/toggle-group-item.svelte +2 -2
- package/dist/bits/toggle-group/components/toggle-group.svelte +2 -2
- package/dist/bits/toggle-group/toggle-group.svelte.d.ts +48 -43
- package/dist/bits/toggle-group/toggle-group.svelte.js +24 -25
- package/dist/bits/toolbar/components/toolbar-button.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar-group-item.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar-group.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar-link.svelte +2 -2
- package/dist/bits/toolbar/components/toolbar.svelte +2 -2
- package/dist/bits/toolbar/toolbar.svelte.d.ts +59 -51
- package/dist/bits/toolbar/toolbar.svelte.js +32 -30
- package/dist/bits/tooltip/components/tooltip-content-static.svelte +3 -3
- package/dist/bits/tooltip/components/tooltip-content.svelte +3 -3
- package/dist/bits/tooltip/components/tooltip-provider.svelte +2 -2
- package/dist/bits/tooltip/components/tooltip-trigger.svelte +2 -2
- package/dist/bits/tooltip/components/tooltip.svelte +4 -2
- package/dist/bits/tooltip/tooltip.svelte.d.ts +33 -29
- package/dist/bits/tooltip/tooltip.svelte.js +33 -28
- package/dist/bits/tooltip/types.d.ts +4 -0
- package/dist/bits/utilities/config/bits-config.d.ts +1 -1
- package/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte +2 -2
- package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.d.ts +6 -7
- package/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js +3 -3
- package/dist/bits/utilities/escape-layer/escape-layer.svelte +2 -2
- package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.d.ts +6 -7
- package/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js +3 -3
- package/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte +2 -2
- package/dist/bits/utilities/floating-layer/components/floating-layer-arrow.svelte +2 -2
- package/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte +2 -2
- package/dist/bits/utilities/floating-layer/components/floating-layer.svelte +2 -2
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.d.ts +25 -23
- package/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js +25 -25
- package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.d.ts +1 -1
- package/dist/bits/utilities/focus-scope/use-focus-scope.svelte.js +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte.d.ts +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer-inner.svelte.d.ts +1 -1
- package/dist/bits/utilities/popper-layer/popper-layer.svelte +3 -3
- package/dist/bits/utilities/presence-layer/presence-layer.svelte +8 -8
- package/dist/bits/utilities/presence-layer/presence.svelte.d.ts +42 -0
- package/dist/bits/utilities/presence-layer/presence.svelte.js +116 -0
- package/dist/bits/utilities/presence-layer/types.d.ts +3 -5
- package/dist/bits/utilities/scroll-lock/scroll-lock.svelte +2 -2
- package/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte +2 -2
- package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.d.ts +7 -7
- package/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js +3 -3
- package/dist/internal/animations-complete.d.ts +12 -0
- package/dist/internal/animations-complete.js +55 -0
- package/dist/internal/arrays.js +20 -36
- package/dist/internal/attrs.d.ts +9 -2
- package/dist/internal/attrs.js +21 -11
- package/dist/internal/body-scroll-lock.svelte.d.ts +10 -0
- package/dist/internal/body-scroll-lock.svelte.js +106 -0
- package/dist/internal/data-typeahead.svelte.d.ts +15 -0
- package/dist/internal/data-typeahead.svelte.js +33 -0
- package/dist/internal/date-time/calendar-helpers.svelte.d.ts +1 -1
- package/dist/internal/dom-typeahead.svelte.d.ts +14 -0
- package/dist/internal/dom-typeahead.svelte.js +44 -0
- package/dist/internal/dom.d.ts +0 -2
- package/dist/internal/dom.js +0 -15
- package/dist/internal/{use-grace-area.svelte.d.ts → grace-area.svelte.d.ts} +5 -4
- package/dist/internal/{use-grace-area.svelte.js → grace-area.svelte.js} +60 -56
- package/dist/internal/open-change-complete.d.ts +13 -0
- package/dist/internal/open-change-complete.js +24 -0
- package/dist/internal/{use-roving-focus.svelte.d.ts → roving-focus-group.d.ts} +9 -8
- package/dist/internal/{use-roving-focus.svelte.js → roving-focus-group.js} +30 -34
- package/dist/internal/shared-state.svelte.d.ts +6 -0
- package/dist/internal/shared-state.svelte.js +31 -0
- package/dist/internal/should-trap-focus.js +1 -2
- package/dist/internal/state-machine.d.ts +16 -0
- package/dist/internal/state-machine.js +18 -0
- package/dist/internal/svelte-resize-observer.svelte.d.ts +6 -0
- package/dist/internal/svelte-resize-observer.svelte.js +25 -0
- package/dist/internal/tabbable.d.ts +0 -1
- package/dist/internal/tabbable.js +0 -11
- package/dist/internal/timeout-fn.d.ts +16 -0
- package/dist/internal/timeout-fn.js +38 -0
- package/dist/internal/types.d.ts +2 -2
- package/package.json +1 -1
- package/dist/bits/utilities/presence-layer/use-presence.svelte.d.ts +0 -4
- package/dist/bits/utilities/presence-layer/use-presence.svelte.js +0 -97
- package/dist/internal/box.svelte.d.ts +0 -21
- package/dist/internal/box.svelte.js +0 -26
- package/dist/internal/create-event-hook.svelte.d.ts +0 -18
- package/dist/internal/create-event-hook.svelte.js +0 -29
- package/dist/internal/create-shared-hook.svelte.d.ts +0 -2
- package/dist/internal/create-shared-hook.svelte.js +0 -27
- package/dist/internal/sleep.d.ts +0 -1
- package/dist/internal/sleep.js +0 -3
- package/dist/internal/use-after-animations.svelte.d.ts +0 -5
- package/dist/internal/use-after-animations.svelte.js +0 -27
- package/dist/internal/use-body-scroll-lock.svelte.d.ts +0 -6
- package/dist/internal/use-body-scroll-lock.svelte.js +0 -106
- package/dist/internal/use-data-typeahead.svelte.d.ts +0 -15
- package/dist/internal/use-data-typeahead.svelte.js +0 -34
- package/dist/internal/use-dom-typeahead.svelte.d.ts +0 -13
- package/dist/internal/use-dom-typeahead.svelte.js +0 -32
- package/dist/internal/use-form-control.svelte.d.ts +0 -4
- package/dist/internal/use-form-control.svelte.js +0 -16
- package/dist/internal/use-resize-observer.svelte.d.ts +0 -2
- package/dist/internal/use-resize-observer.svelte.js +0 -17
- package/dist/internal/use-state-machine.svelte.d.ts +0 -24
- package/dist/internal/use-state-machine.svelte.js +0 -28
- package/dist/internal/use-timeout-fn.svelte.d.ts +0 -25
- package/dist/internal/use-timeout-fn.svelte.js +0 -39
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
import { attachRef } from "svelte-toolbelt";
|
|
1
|
+
import { attachRef, } from "svelte-toolbelt";
|
|
2
2
|
import { Context } from "runed";
|
|
3
3
|
import { createBitsAttrs, getAriaChecked, getAriaPressed, getDataDisabled, getDataOrientation, getDisabled, } from "../../internal/attrs.js";
|
|
4
4
|
import { kbd } from "../../internal/kbd.js";
|
|
5
|
-
import {
|
|
5
|
+
import { RovingFocusGroup } from "../../internal/roving-focus-group.js";
|
|
6
6
|
export const toolbarAttrs = createBitsAttrs({
|
|
7
7
|
component: "toolbar",
|
|
8
8
|
parts: ["root", "item", "group", "group-item", "link", "button"],
|
|
9
9
|
});
|
|
10
|
-
|
|
10
|
+
const ToolbarRootContext = new Context("Toolbar.Root");
|
|
11
|
+
const ToolbarGroupContext = new Context("Toolbar.Group");
|
|
12
|
+
export class ToolbarRootState {
|
|
13
|
+
static create(opts) {
|
|
14
|
+
return ToolbarRootContext.set(new ToolbarRootState(opts));
|
|
15
|
+
}
|
|
11
16
|
opts;
|
|
12
17
|
rovingFocusGroup;
|
|
13
18
|
constructor(opts) {
|
|
14
19
|
this.opts = opts;
|
|
15
|
-
this.rovingFocusGroup =
|
|
20
|
+
this.rovingFocusGroup = new RovingFocusGroup({
|
|
16
21
|
orientation: this.opts.orientation,
|
|
17
22
|
loop: this.opts.loop,
|
|
18
23
|
rootNode: this.opts.ref,
|
|
@@ -87,7 +92,21 @@ class ToolbarGroupMultipleState extends ToolbarGroupBaseState {
|
|
|
87
92
|
}
|
|
88
93
|
}
|
|
89
94
|
}
|
|
90
|
-
class
|
|
95
|
+
export class ToolbarGroupState {
|
|
96
|
+
static create(opts) {
|
|
97
|
+
const { type, ...rest } = opts;
|
|
98
|
+
const rootState = ToolbarRootContext.get();
|
|
99
|
+
const groupState = type === "single"
|
|
100
|
+
? new ToolbarGroupSingleState(rest, rootState)
|
|
101
|
+
: new ToolbarGroupMultipleState(rest, rootState);
|
|
102
|
+
return ToolbarGroupContext.set(groupState);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
export class ToolbarGroupItemState {
|
|
106
|
+
static create(opts) {
|
|
107
|
+
const group = ToolbarGroupContext.get();
|
|
108
|
+
return new ToolbarGroupItemState(opts, group, group.root);
|
|
109
|
+
}
|
|
91
110
|
opts;
|
|
92
111
|
group;
|
|
93
112
|
root;
|
|
@@ -149,7 +168,10 @@ class ToolbarGroupItemState {
|
|
|
149
168
|
...attachRef(this.opts.ref),
|
|
150
169
|
}));
|
|
151
170
|
}
|
|
152
|
-
class ToolbarLinkState {
|
|
171
|
+
export class ToolbarLinkState {
|
|
172
|
+
static create(opts) {
|
|
173
|
+
return new ToolbarLinkState(opts, ToolbarRootContext.get());
|
|
174
|
+
}
|
|
153
175
|
opts;
|
|
154
176
|
root;
|
|
155
177
|
constructor(opts, root) {
|
|
@@ -184,7 +206,10 @@ class ToolbarLinkState {
|
|
|
184
206
|
...attachRef(this.opts.ref),
|
|
185
207
|
}));
|
|
186
208
|
}
|
|
187
|
-
class ToolbarButtonState {
|
|
209
|
+
export class ToolbarButtonState {
|
|
210
|
+
static create(opts) {
|
|
211
|
+
return new ToolbarButtonState(opts, ToolbarRootContext.get());
|
|
212
|
+
}
|
|
188
213
|
opts;
|
|
189
214
|
root;
|
|
190
215
|
constructor(opts, root) {
|
|
@@ -227,26 +252,3 @@ class ToolbarButtonState {
|
|
|
227
252
|
function getToggleItemDataState(condition) {
|
|
228
253
|
return condition ? "on" : "off";
|
|
229
254
|
}
|
|
230
|
-
const ToolbarRootContext = new Context("Toolbar.Root");
|
|
231
|
-
const ToolbarGroupContext = new Context("Toolbar.Group");
|
|
232
|
-
export function useToolbarRoot(props) {
|
|
233
|
-
return ToolbarRootContext.set(new ToolbarRootState(props));
|
|
234
|
-
}
|
|
235
|
-
export function useToolbarGroup(props) {
|
|
236
|
-
const { type, ...rest } = props;
|
|
237
|
-
const rootState = ToolbarRootContext.get();
|
|
238
|
-
const groupState = type === "single"
|
|
239
|
-
? new ToolbarGroupSingleState(rest, rootState)
|
|
240
|
-
: new ToolbarGroupMultipleState(rest, rootState);
|
|
241
|
-
return ToolbarGroupContext.set(groupState);
|
|
242
|
-
}
|
|
243
|
-
export function useToolbarGroupItem(props) {
|
|
244
|
-
const group = ToolbarGroupContext.get();
|
|
245
|
-
return new ToolbarGroupItemState(props, group, group.root);
|
|
246
|
-
}
|
|
247
|
-
export function useToolbarButton(props) {
|
|
248
|
-
return new ToolbarButtonState(props, ToolbarRootContext.get());
|
|
249
|
-
}
|
|
250
|
-
export function useToolbarLink(props) {
|
|
251
|
-
return new ToolbarLinkState(props, ToolbarRootContext.get());
|
|
252
|
-
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { TooltipContentStaticProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { TooltipContentState } from "../tooltip.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
|
|
7
7
|
import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
...restProps
|
|
22
22
|
}: TooltipContentStaticProps = $props();
|
|
23
23
|
|
|
24
|
-
const contentState =
|
|
24
|
+
const contentState = TooltipContentState.create({
|
|
25
25
|
id: box.with(() => id),
|
|
26
26
|
ref: box.with(
|
|
27
27
|
() => ref,
|
|
@@ -67,7 +67,7 @@
|
|
|
67
67
|
{...contentState.popperProps}
|
|
68
68
|
tooltip={true}
|
|
69
69
|
isStatic
|
|
70
|
-
|
|
70
|
+
open={contentState.root.opts.open.current}
|
|
71
71
|
{id}
|
|
72
72
|
trapFocus={false}
|
|
73
73
|
loop={false}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { TooltipContentProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { TooltipContentState } from "../tooltip.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
import PopperLayer from "../../utilities/popper-layer/popper-layer.svelte";
|
|
7
7
|
import { getFloatingContentCSSVars } from "../../../internal/floating-svelte/floating-utils.svelte.js";
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
...restProps
|
|
30
30
|
}: TooltipContentProps = $props();
|
|
31
31
|
|
|
32
|
-
const contentState =
|
|
32
|
+
const contentState = TooltipContentState.create({
|
|
33
33
|
id: box.with(() => id),
|
|
34
34
|
ref: box.with(
|
|
35
35
|
() => ref,
|
|
@@ -85,7 +85,7 @@
|
|
|
85
85
|
<PopperLayer
|
|
86
86
|
{...mergedProps}
|
|
87
87
|
{...contentState.popperProps}
|
|
88
|
-
|
|
88
|
+
open={contentState.root.opts.open.current}
|
|
89
89
|
{id}
|
|
90
90
|
trapFocus={false}
|
|
91
91
|
loop={false}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box } from "svelte-toolbelt";
|
|
3
3
|
import type { TooltipProviderProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { TooltipProviderState } from "../tooltip.svelte.js";
|
|
5
5
|
|
|
6
6
|
let {
|
|
7
7
|
children,
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
skipDelayDuration = 300,
|
|
14
14
|
}: TooltipProviderProps = $props();
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
TooltipProviderState.create({
|
|
17
17
|
delayDuration: box.with(() => delayDuration),
|
|
18
18
|
disableCloseOnTriggerClick: box.with(() => disableCloseOnTriggerClick),
|
|
19
19
|
disableHoverableContent: box.with(() => disableHoverableContent),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { TooltipTriggerProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { TooltipTriggerState } from "../tooltip.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
import FloatingLayerAnchor from "../../utilities/floating-layer/components/floating-layer-anchor.svelte";
|
|
7
7
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
...restProps
|
|
18
18
|
}: TooltipTriggerProps = $props();
|
|
19
19
|
|
|
20
|
-
const triggerState =
|
|
20
|
+
const triggerState = TooltipTriggerState.create({
|
|
21
21
|
id: box.with(() => id),
|
|
22
22
|
disabled: box.with(() => disabled ?? false),
|
|
23
23
|
ref: box.with(
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box } from "svelte-toolbelt";
|
|
3
3
|
import type { TooltipRootProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { TooltipRootState } from "../tooltip.svelte.js";
|
|
5
5
|
import FloatingLayer from "../../utilities/floating-layer/components/floating-layer.svelte";
|
|
6
6
|
import { noop } from "../../../internal/noop.js";
|
|
7
7
|
|
|
8
8
|
let {
|
|
9
9
|
open = $bindable(false),
|
|
10
10
|
onOpenChange = noop,
|
|
11
|
+
onOpenChangeComplete = noop,
|
|
11
12
|
disabled,
|
|
12
13
|
delayDuration,
|
|
13
14
|
disableCloseOnTriggerClick,
|
|
@@ -16,7 +17,7 @@
|
|
|
16
17
|
children,
|
|
17
18
|
}: TooltipRootProps = $props();
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
TooltipRootState.create({
|
|
20
21
|
open: box.with(
|
|
21
22
|
() => open,
|
|
22
23
|
(v) => {
|
|
@@ -29,6 +30,7 @@
|
|
|
29
30
|
disableHoverableContent: box.with(() => disableHoverableContent),
|
|
30
31
|
ignoreNonKeyboardFocus: box.with(() => ignoreNonKeyboardFocus),
|
|
31
32
|
disabled: box.with(() => disabled),
|
|
33
|
+
onOpenChangeComplete: box.with(() => onOpenChangeComplete),
|
|
32
34
|
});
|
|
33
35
|
</script>
|
|
34
36
|
|
|
@@ -1,38 +1,42 @@
|
|
|
1
|
-
import { DOMContext } from "svelte-toolbelt";
|
|
2
|
-
import type {
|
|
3
|
-
import type { WithRefProps } from "../../internal/types.js";
|
|
1
|
+
import { DOMContext, type WritableBoxedValues, type ReadableBoxedValues } from "svelte-toolbelt";
|
|
2
|
+
import type { OnChangeFn, WithRefOpts } from "../../internal/types.js";
|
|
4
3
|
import type { FocusEventHandler, MouseEventHandler, PointerEventHandler } from "svelte/elements";
|
|
5
|
-
export declare const tooltipAttrs: import("../../internal/attrs.js").
|
|
6
|
-
|
|
4
|
+
export declare const tooltipAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["content", "trigger"]>;
|
|
5
|
+
interface TooltipProviderStateOpts extends ReadableBoxedValues<{
|
|
7
6
|
delayDuration: number;
|
|
8
7
|
disableHoverableContent: boolean;
|
|
9
8
|
disableCloseOnTriggerClick: boolean;
|
|
10
9
|
disabled: boolean;
|
|
11
10
|
ignoreNonKeyboardFocus: boolean;
|
|
12
11
|
skipDelayDuration: number;
|
|
13
|
-
}
|
|
14
|
-
|
|
12
|
+
}> {
|
|
13
|
+
}
|
|
14
|
+
export declare class TooltipProviderState {
|
|
15
15
|
#private;
|
|
16
|
-
|
|
16
|
+
static create(opts: TooltipProviderStateOpts): TooltipProviderState;
|
|
17
|
+
readonly opts: TooltipProviderStateOpts;
|
|
17
18
|
isOpenDelayed: boolean;
|
|
18
19
|
isPointerInTransit: import("svelte-toolbelt").WritableBox<boolean>;
|
|
19
|
-
constructor(opts:
|
|
20
|
+
constructor(opts: TooltipProviderStateOpts);
|
|
20
21
|
onOpen: (tooltip: TooltipRootState) => void;
|
|
21
22
|
onClose: (tooltip: TooltipRootState) => void;
|
|
22
23
|
isTooltipOpen: (tooltip: TooltipRootState) => boolean;
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
interface TooltipRootStateOpts extends ReadableBoxedValues<{
|
|
25
26
|
delayDuration: number | undefined;
|
|
26
27
|
disableHoverableContent: boolean | undefined;
|
|
27
28
|
disableCloseOnTriggerClick: boolean | undefined;
|
|
28
29
|
disabled: boolean | undefined;
|
|
29
30
|
ignoreNonKeyboardFocus: boolean | undefined;
|
|
30
|
-
|
|
31
|
+
onOpenChangeComplete: OnChangeFn<boolean>;
|
|
32
|
+
}>, WritableBoxedValues<{
|
|
31
33
|
open: boolean;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
+
}> {
|
|
35
|
+
}
|
|
36
|
+
export declare class TooltipRootState {
|
|
34
37
|
#private;
|
|
35
|
-
|
|
38
|
+
static create(opts: TooltipRootStateOpts): TooltipRootState;
|
|
39
|
+
readonly opts: TooltipRootStateOpts;
|
|
36
40
|
readonly provider: TooltipProviderState;
|
|
37
41
|
readonly delayDuration: number;
|
|
38
42
|
readonly disableHoverableContent: boolean;
|
|
@@ -42,21 +46,23 @@ declare class TooltipRootState {
|
|
|
42
46
|
contentNode: HTMLElement | null;
|
|
43
47
|
triggerNode: HTMLElement | null;
|
|
44
48
|
readonly stateAttr: string;
|
|
45
|
-
constructor(opts:
|
|
49
|
+
constructor(opts: TooltipRootStateOpts, provider: TooltipProviderState);
|
|
46
50
|
handleOpen: () => void;
|
|
47
51
|
handleClose: () => void;
|
|
48
52
|
onTriggerEnter: () => void;
|
|
49
53
|
onTriggerLeave: () => void;
|
|
50
54
|
}
|
|
51
|
-
|
|
55
|
+
interface TooltipTriggerStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
52
56
|
disabled: boolean;
|
|
53
|
-
}
|
|
54
|
-
|
|
57
|
+
}> {
|
|
58
|
+
}
|
|
59
|
+
export declare class TooltipTriggerState {
|
|
55
60
|
#private;
|
|
56
|
-
|
|
61
|
+
static create(opts: TooltipTriggerStateOpts): TooltipTriggerState;
|
|
62
|
+
readonly opts: TooltipTriggerStateOpts;
|
|
57
63
|
readonly root: TooltipRootState;
|
|
58
64
|
domContext: DOMContext;
|
|
59
|
-
constructor(opts:
|
|
65
|
+
constructor(opts: TooltipTriggerStateOpts, root: TooltipRootState);
|
|
60
66
|
handlePointerUp: () => void;
|
|
61
67
|
readonly props: {
|
|
62
68
|
readonly id: string;
|
|
@@ -75,14 +81,16 @@ declare class TooltipTriggerState {
|
|
|
75
81
|
readonly onclick: MouseEventHandler<HTMLElement>;
|
|
76
82
|
};
|
|
77
83
|
}
|
|
78
|
-
|
|
84
|
+
interface TooltipContentStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
79
85
|
onInteractOutside: (e: PointerEvent) => void;
|
|
80
86
|
onEscapeKeydown: (e: KeyboardEvent) => void;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
|
|
87
|
+
}> {
|
|
88
|
+
}
|
|
89
|
+
export declare class TooltipContentState {
|
|
90
|
+
static create(opts: TooltipContentStateOpts): TooltipContentState;
|
|
91
|
+
readonly opts: TooltipContentStateOpts;
|
|
84
92
|
readonly root: TooltipRootState;
|
|
85
|
-
constructor(opts:
|
|
93
|
+
constructor(opts: TooltipContentStateOpts, root: TooltipRootState);
|
|
86
94
|
onInteractOutside: (e: PointerEvent) => void;
|
|
87
95
|
onEscapeKeydown: (e: KeyboardEvent) => void;
|
|
88
96
|
onOpenAutoFocus: (e: Event) => void;
|
|
@@ -106,8 +114,4 @@ declare class TooltipContentState {
|
|
|
106
114
|
onCloseAutoFocus: (e: Event) => void;
|
|
107
115
|
};
|
|
108
116
|
}
|
|
109
|
-
export declare function useTooltipProvider(props: TooltipProviderStateProps): TooltipProviderState;
|
|
110
|
-
export declare function useTooltipRoot(props: TooltipRootStateProps): TooltipRootState;
|
|
111
|
-
export declare function useTooltipTrigger(props: TooltipTriggerStateProps): TooltipTriggerState;
|
|
112
|
-
export declare function useTooltipContent(props: TooltipContentStateProps): TooltipContentState;
|
|
113
117
|
export {};
|
|
@@ -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),
|