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,25 +1,24 @@
|
|
|
1
1
|
import type { Updater } from "svelte/store";
|
|
2
2
|
import { Time } from "@internationalized/date";
|
|
3
|
-
import { type WritableBox, DOMContext } from "svelte-toolbelt";
|
|
4
|
-
import type {
|
|
5
|
-
import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefProps } from "../../internal/types.js";
|
|
3
|
+
import { type WritableBox, DOMContext, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
|
|
4
|
+
import type { BitsFocusEvent, BitsKeyboardEvent, BitsMouseEvent, WithRefOpts } from "../../internal/types.js";
|
|
6
5
|
import type { TimeSegmentObj, SegmentPart, HourCycle, TimeValidator, TimeOnInvalid, EditableTimeSegmentPart } from "../../shared/date/types.js";
|
|
7
6
|
import { type TimeFormatter } from "../../internal/date-time/formatter.js";
|
|
8
7
|
import { type Announcer } from "../../internal/date-time/announcer.js";
|
|
9
8
|
import type { TimeValue } from "../../shared/date/types.js";
|
|
10
9
|
import type { TimeRangeFieldRootState } from "../time-range-field/time-range-field.svelte.js";
|
|
11
|
-
export declare const timeFieldAttrs: import("../../internal/attrs.js").
|
|
12
|
-
|
|
10
|
+
export declare const timeFieldAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["input", "label"]>;
|
|
11
|
+
interface SegmentConfig {
|
|
13
12
|
min: number | ((root: TimeFieldRootState) => number);
|
|
14
13
|
max: number | ((root: TimeFieldRootState) => number);
|
|
15
14
|
cycle: number;
|
|
16
15
|
canBeZero?: boolean;
|
|
17
16
|
padZero?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export
|
|
17
|
+
}
|
|
18
|
+
export interface TimeFieldRootStateOpts<T extends TimeValue = Time> extends WritableBoxedValues<{
|
|
20
19
|
value: T | undefined;
|
|
21
20
|
placeholder: TimeValue;
|
|
22
|
-
}
|
|
21
|
+
}>, ReadableBoxedValues<{
|
|
23
22
|
readonlySegments: SegmentPart[];
|
|
24
23
|
validate: TimeValidator<T> | undefined;
|
|
25
24
|
onInvalid: TimeOnInvalid | undefined;
|
|
@@ -34,44 +33,46 @@ export type TimeFieldRootStateProps<T extends TimeValue = Time> = WritableBoxedV
|
|
|
34
33
|
required: boolean;
|
|
35
34
|
errorMessageId: string | undefined;
|
|
36
35
|
isInvalidProp: boolean | undefined;
|
|
37
|
-
}
|
|
36
|
+
}> {
|
|
37
|
+
}
|
|
38
38
|
export declare class TimeFieldRootState<T extends TimeValue = Time> {
|
|
39
39
|
#private;
|
|
40
|
-
|
|
40
|
+
static create<T extends TimeValue = Time>(opts: TimeFieldRootStateOpts<T>, rangeRoot?: TimeRangeFieldRootState<T>): TimeFieldRootState<Time>;
|
|
41
|
+
value: TimeFieldRootStateOpts<T>["value"];
|
|
41
42
|
placeholder: WritableBox<TimeValue>;
|
|
42
|
-
validate:
|
|
43
|
-
minValue:
|
|
44
|
-
maxValue:
|
|
45
|
-
disabled:
|
|
46
|
-
readonly:
|
|
47
|
-
granularity:
|
|
48
|
-
readonlySegments:
|
|
49
|
-
hourCycleProp:
|
|
50
|
-
locale:
|
|
51
|
-
hideTimeZone:
|
|
52
|
-
required:
|
|
53
|
-
onInvalid:
|
|
54
|
-
errorMessageId:
|
|
55
|
-
isInvalidProp:
|
|
43
|
+
validate: TimeFieldRootStateOpts<T>["validate"];
|
|
44
|
+
minValue: TimeFieldRootStateOpts<T>["minValue"];
|
|
45
|
+
maxValue: TimeFieldRootStateOpts<T>["maxValue"];
|
|
46
|
+
disabled: TimeFieldRootStateOpts<T>["disabled"];
|
|
47
|
+
readonly: TimeFieldRootStateOpts<T>["readonly"];
|
|
48
|
+
granularity: TimeFieldRootStateOpts<T>["granularity"];
|
|
49
|
+
readonlySegments: TimeFieldRootStateOpts<T>["readonlySegments"];
|
|
50
|
+
hourCycleProp: TimeFieldRootStateOpts<T>["hourCycle"];
|
|
51
|
+
locale: TimeFieldRootStateOpts<T>["locale"];
|
|
52
|
+
hideTimeZone: TimeFieldRootStateOpts<T>["hideTimeZone"];
|
|
53
|
+
required: TimeFieldRootStateOpts<T>["required"];
|
|
54
|
+
onInvalid: TimeFieldRootStateOpts<T>["onInvalid"];
|
|
55
|
+
errorMessageId: TimeFieldRootStateOpts<T>["errorMessageId"];
|
|
56
|
+
isInvalidProp: TimeFieldRootStateOpts<T>["isInvalidProp"];
|
|
56
57
|
descriptionId: string;
|
|
57
58
|
formatter: TimeFormatter;
|
|
58
59
|
initialSegments: TimeSegmentObj;
|
|
59
60
|
segmentValues: TimeSegmentObj;
|
|
60
61
|
announcer: Announcer;
|
|
61
|
-
readonlySegmentsSet: Set<SegmentPart>;
|
|
62
|
+
readonly readonlySegmentsSet: Set<SegmentPart>;
|
|
62
63
|
segmentStates: import("../../shared/date/types.js").TimeSegmentStateMap;
|
|
63
64
|
descriptionNode: HTMLElement | null;
|
|
64
65
|
validationNode: HTMLElement | null;
|
|
65
66
|
states: import("../../shared/date/types.js").TimeSegmentStateMap;
|
|
66
67
|
dayPeriodNode: HTMLElement | null;
|
|
67
68
|
name: string;
|
|
68
|
-
maxValueTime: Time | undefined;
|
|
69
|
-
minValueTime: Time | undefined;
|
|
70
|
-
valueTime: Time | undefined;
|
|
71
|
-
hourCycle: HourCycle;
|
|
72
|
-
rangeRoot: TimeRangeFieldRootState<T> | undefined;
|
|
69
|
+
readonly maxValueTime: Time | undefined;
|
|
70
|
+
readonly minValueTime: Time | undefined;
|
|
71
|
+
readonly valueTime: Time | undefined;
|
|
72
|
+
readonly hourCycle: HourCycle;
|
|
73
|
+
readonly rangeRoot: TimeRangeFieldRootState<T> | undefined;
|
|
73
74
|
domContext: DOMContext;
|
|
74
|
-
constructor(props:
|
|
75
|
+
constructor(props: TimeFieldRootStateOpts<T>, rangeRoot?: TimeRangeFieldRootState<T>);
|
|
75
76
|
setName(name: string): void;
|
|
76
77
|
setFieldNode(node: HTMLElement | null): void;
|
|
77
78
|
/**
|
|
@@ -143,16 +144,18 @@ export declare class TimeFieldRootState<T extends TimeValue = Time> {
|
|
|
143
144
|
"data-segment": string;
|
|
144
145
|
};
|
|
145
146
|
}
|
|
146
|
-
|
|
147
|
+
interface TimeFieldInputStateOpts extends WithRefOpts, ReadableBoxedValues<{
|
|
147
148
|
name: string;
|
|
148
|
-
}
|
|
149
|
+
}> {
|
|
150
|
+
}
|
|
149
151
|
export declare class TimeFieldInputState {
|
|
150
152
|
#private;
|
|
151
|
-
|
|
153
|
+
static create(opts: TimeFieldInputStateOpts): TimeFieldInputState;
|
|
154
|
+
readonly opts: TimeFieldInputStateOpts;
|
|
152
155
|
readonly root: TimeFieldRootState;
|
|
153
156
|
domContext: DOMContext;
|
|
154
|
-
constructor(opts:
|
|
155
|
-
props: {
|
|
157
|
+
constructor(opts: TimeFieldInputStateOpts, root: TimeFieldRootState);
|
|
158
|
+
readonly props: {
|
|
156
159
|
readonly id: string;
|
|
157
160
|
readonly role: "group";
|
|
158
161
|
readonly "aria-labelledby": string | undefined;
|
|
@@ -162,24 +165,27 @@ export declare class TimeFieldInputState {
|
|
|
162
165
|
readonly "data-disabled": "" | undefined;
|
|
163
166
|
};
|
|
164
167
|
}
|
|
165
|
-
declare class TimeFieldHiddenInputState {
|
|
168
|
+
export declare class TimeFieldHiddenInputState {
|
|
169
|
+
static create(): TimeFieldHiddenInputState;
|
|
166
170
|
readonly root: TimeFieldRootState;
|
|
167
|
-
shouldRender: boolean;
|
|
168
|
-
isoValue: string | undefined;
|
|
171
|
+
readonly shouldRender: boolean;
|
|
172
|
+
readonly isoValue: string | undefined;
|
|
169
173
|
constructor(root: TimeFieldRootState);
|
|
170
|
-
props: {
|
|
174
|
+
readonly props: {
|
|
171
175
|
readonly name: string;
|
|
172
176
|
readonly value: string | undefined;
|
|
173
177
|
readonly required: boolean;
|
|
174
178
|
};
|
|
175
179
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
180
|
+
interface TimeFieldLabelStateOpts extends WithRefOpts {
|
|
181
|
+
}
|
|
182
|
+
export declare class TimeFieldLabelState {
|
|
183
|
+
static create(opts: TimeFieldLabelStateOpts): TimeFieldLabelState;
|
|
184
|
+
readonly opts: TimeFieldLabelStateOpts;
|
|
179
185
|
readonly root: TimeFieldRootState;
|
|
180
|
-
constructor(opts:
|
|
186
|
+
constructor(opts: TimeFieldLabelStateOpts, root: TimeFieldRootState);
|
|
181
187
|
onclick(_: BitsMouseEvent): void;
|
|
182
|
-
props: {
|
|
188
|
+
readonly props: {
|
|
183
189
|
readonly id: string;
|
|
184
190
|
readonly "data-invalid": "" | undefined;
|
|
185
191
|
readonly "data-disabled": "" | undefined;
|
|
@@ -188,12 +194,12 @@ declare class TimeFieldLabelState {
|
|
|
188
194
|
}
|
|
189
195
|
declare abstract class BaseTimeSegmentState {
|
|
190
196
|
#private;
|
|
191
|
-
readonly opts:
|
|
197
|
+
readonly opts: WithRefOpts;
|
|
192
198
|
readonly root: TimeFieldRootState;
|
|
193
199
|
readonly announcer: Announcer;
|
|
194
200
|
readonly part: string;
|
|
195
201
|
readonly config: SegmentConfig;
|
|
196
|
-
constructor(opts:
|
|
202
|
+
constructor(opts: WithRefOpts, root: TimeFieldRootState, part: string, config: SegmentConfig);
|
|
197
203
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
198
204
|
onfocusout(_: BitsFocusEvent): void;
|
|
199
205
|
getSegmentProps(): {
|
|
@@ -262,23 +268,24 @@ declare abstract class BaseTimeSegmentState {
|
|
|
262
268
|
};
|
|
263
269
|
}
|
|
264
270
|
declare class TimeFieldHourSegmentState extends BaseTimeSegmentState {
|
|
265
|
-
constructor(opts:
|
|
271
|
+
constructor(opts: WithRefOpts, root: TimeFieldRootState);
|
|
266
272
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
267
273
|
}
|
|
268
274
|
declare class TimeFieldMinuteSegmentState extends BaseTimeSegmentState {
|
|
269
|
-
constructor(opts:
|
|
275
|
+
constructor(opts: WithRefOpts, root: TimeFieldRootState);
|
|
270
276
|
}
|
|
271
277
|
declare class TimeFieldSecondSegmentState extends BaseTimeSegmentState {
|
|
272
|
-
constructor(opts:
|
|
278
|
+
constructor(opts: WithRefOpts, root: TimeFieldRootState);
|
|
279
|
+
}
|
|
280
|
+
interface TimeFieldDayPeriodSegmentStateOpts extends WithRefOpts {
|
|
273
281
|
}
|
|
274
|
-
type TimeFieldDayPeriodSegmentStateProps = WithRefProps;
|
|
275
282
|
declare class TimeFieldDayPeriodSegmentState {
|
|
276
283
|
#private;
|
|
277
|
-
readonly opts:
|
|
284
|
+
readonly opts: TimeFieldDayPeriodSegmentStateOpts;
|
|
278
285
|
readonly root: TimeFieldRootState;
|
|
279
|
-
constructor(opts:
|
|
286
|
+
constructor(opts: TimeFieldDayPeriodSegmentStateOpts, root: TimeFieldRootState);
|
|
280
287
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
281
|
-
props: {
|
|
288
|
+
readonly props: {
|
|
282
289
|
"aria-invalid": "true" | undefined;
|
|
283
290
|
"aria-disabled": "true" | "false";
|
|
284
291
|
"aria-readonly": "true" | "false";
|
|
@@ -334,12 +341,13 @@ declare class TimeFieldDayPeriodSegmentState {
|
|
|
334
341
|
};
|
|
335
342
|
} | undefined;
|
|
336
343
|
}
|
|
337
|
-
|
|
344
|
+
interface TimeFieldLiteralSegmentStateOpts extends WithRefOpts {
|
|
345
|
+
}
|
|
338
346
|
declare class TimeFieldLiteralSegmentState {
|
|
339
|
-
readonly opts:
|
|
347
|
+
readonly opts: TimeFieldLiteralSegmentStateOpts;
|
|
340
348
|
readonly root: TimeFieldRootState;
|
|
341
|
-
constructor(opts:
|
|
342
|
-
props: {
|
|
349
|
+
constructor(opts: TimeFieldLiteralSegmentStateOpts, root: TimeFieldRootState);
|
|
350
|
+
readonly props: {
|
|
343
351
|
readonly "aria-invalid": "true" | undefined;
|
|
344
352
|
readonly "aria-disabled": "true" | "false";
|
|
345
353
|
readonly "aria-readonly": "true" | "false";
|
|
@@ -366,11 +374,11 @@ declare class TimeFieldLiteralSegmentState {
|
|
|
366
374
|
};
|
|
367
375
|
}
|
|
368
376
|
declare class TimeFieldTimeZoneSegmentState {
|
|
369
|
-
readonly opts:
|
|
377
|
+
readonly opts: TimeFieldLiteralSegmentStateOpts;
|
|
370
378
|
readonly root: TimeFieldRootState;
|
|
371
|
-
constructor(opts:
|
|
379
|
+
constructor(opts: TimeFieldLiteralSegmentStateOpts, root: TimeFieldRootState);
|
|
372
380
|
onkeydown(e: BitsKeyboardEvent): void;
|
|
373
|
-
props: {
|
|
381
|
+
readonly props: {
|
|
374
382
|
readonly "data-readonly": "" | undefined;
|
|
375
383
|
readonly "aria-invalid": "true" | undefined;
|
|
376
384
|
readonly "aria-disabled": "true" | "false";
|
|
@@ -407,9 +415,7 @@ declare class TimeFieldTimeZoneSegmentState {
|
|
|
407
415
|
readonly onkeydown: (e: BitsKeyboardEvent) => void;
|
|
408
416
|
};
|
|
409
417
|
}
|
|
410
|
-
export declare
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
export declare function useTimeFieldSegment(part: SegmentPart, props: WithRefProps): TimeFieldHourSegmentState | TimeFieldMinuteSegmentState | TimeFieldSecondSegmentState | TimeFieldDayPeriodSegmentState | TimeFieldLiteralSegmentState | TimeFieldTimeZoneSegmentState;
|
|
414
|
-
export declare function useTimeFieldLabel(props: TimeFieldLabelStateProps): TimeFieldLabelState;
|
|
418
|
+
export declare class DateFieldSegmentState {
|
|
419
|
+
static create(part: SegmentPart, opts: WithRefOpts): TimeFieldHourSegmentState | TimeFieldMinuteSegmentState | TimeFieldSecondSegmentState | TimeFieldDayPeriodSegmentState | TimeFieldLiteralSegmentState | TimeFieldTimeZoneSegmentState;
|
|
420
|
+
}
|
|
415
421
|
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CalendarDateTime, Time, ZonedDateTime } from "@internationalized/date";
|
|
2
|
-
import { onDestroyEffect, attachRef, box, DOMContext } from "svelte-toolbelt";
|
|
2
|
+
import { onDestroyEffect, attachRef, box, DOMContext, } from "svelte-toolbelt";
|
|
3
3
|
import { onMount, untrack } from "svelte";
|
|
4
4
|
import { Context, watch } from "runed";
|
|
5
5
|
import { createBitsAttrs, getAriaDisabled, getAriaHidden, getAriaInvalid, getAriaReadonly, getDataDisabled, getDataInvalid, getDataReadonly, } from "../../internal/attrs.js";
|
|
@@ -17,6 +17,7 @@ export const timeFieldAttrs = createBitsAttrs({
|
|
|
17
17
|
component: "time-field",
|
|
18
18
|
parts: ["input", "label"],
|
|
19
19
|
});
|
|
20
|
+
const TimeFieldRootContext = new Context("TimeField.Root");
|
|
20
21
|
const SEGMENT_CONFIGS = {
|
|
21
22
|
hour: {
|
|
22
23
|
min: (root) => (root.hourCycle === 12 ? 1 : 0),
|
|
@@ -47,6 +48,9 @@ const SEGMENT_CONFIGS = {
|
|
|
47
48
|
},
|
|
48
49
|
};
|
|
49
50
|
export class TimeFieldRootState {
|
|
51
|
+
static create(opts, rangeRoot) {
|
|
52
|
+
return TimeFieldRootContext.set(new TimeFieldRootState(opts, rangeRoot));
|
|
53
|
+
}
|
|
50
54
|
value;
|
|
51
55
|
placeholder;
|
|
52
56
|
validate;
|
|
@@ -452,6 +456,9 @@ export class TimeFieldRootState {
|
|
|
452
456
|
}
|
|
453
457
|
}
|
|
454
458
|
export class TimeFieldInputState {
|
|
459
|
+
static create(opts) {
|
|
460
|
+
return new TimeFieldInputState(opts, TimeFieldRootContext.get());
|
|
461
|
+
}
|
|
455
462
|
opts;
|
|
456
463
|
root;
|
|
457
464
|
domContext;
|
|
@@ -484,7 +491,10 @@ export class TimeFieldInputState {
|
|
|
484
491
|
...attachRef(this.opts.ref, (v) => this.root.setFieldNode(v)),
|
|
485
492
|
}));
|
|
486
493
|
}
|
|
487
|
-
class TimeFieldHiddenInputState {
|
|
494
|
+
export class TimeFieldHiddenInputState {
|
|
495
|
+
static create() {
|
|
496
|
+
return new TimeFieldHiddenInputState(TimeFieldRootContext.get());
|
|
497
|
+
}
|
|
488
498
|
root;
|
|
489
499
|
shouldRender = $derived.by(() => this.root.name !== "");
|
|
490
500
|
isoValue = $derived.by(() => this.root.value.current ? getISOTimeValue(this.root.value.current) : undefined);
|
|
@@ -497,7 +507,10 @@ class TimeFieldHiddenInputState {
|
|
|
497
507
|
required: this.root.required.current,
|
|
498
508
|
}));
|
|
499
509
|
}
|
|
500
|
-
class TimeFieldLabelState {
|
|
510
|
+
export class TimeFieldLabelState {
|
|
511
|
+
static create(opts) {
|
|
512
|
+
return new TimeFieldLabelState(opts, TimeFieldRootContext.get());
|
|
513
|
+
}
|
|
501
514
|
opts;
|
|
502
515
|
root;
|
|
503
516
|
constructor(opts, root) {
|
|
@@ -924,6 +937,27 @@ class TimeFieldTimeZoneSegmentState {
|
|
|
924
937
|
...attachRef(this.opts.ref),
|
|
925
938
|
}));
|
|
926
939
|
}
|
|
940
|
+
export class DateFieldSegmentState {
|
|
941
|
+
static create(part, opts) {
|
|
942
|
+
const root = TimeFieldRootContext.get();
|
|
943
|
+
switch (part) {
|
|
944
|
+
case "hour":
|
|
945
|
+
return new TimeFieldHourSegmentState(opts, root);
|
|
946
|
+
case "minute":
|
|
947
|
+
return new TimeFieldMinuteSegmentState(opts, root);
|
|
948
|
+
case "second":
|
|
949
|
+
return new TimeFieldSecondSegmentState(opts, root);
|
|
950
|
+
case "dayPeriod":
|
|
951
|
+
return new TimeFieldDayPeriodSegmentState(opts, root);
|
|
952
|
+
case "literal":
|
|
953
|
+
return new TimeFieldLiteralSegmentState(opts, root);
|
|
954
|
+
case "timeZoneName":
|
|
955
|
+
return new TimeFieldTimeZoneSegmentState(opts, root);
|
|
956
|
+
default:
|
|
957
|
+
throw new Error(`Invalid part: ${part}`);
|
|
958
|
+
}
|
|
959
|
+
}
|
|
960
|
+
}
|
|
927
961
|
// Utils/helpers
|
|
928
962
|
function isAcceptableDayPeriodKey(key) {
|
|
929
963
|
return (isAcceptableSegmentKey(key) ||
|
|
@@ -941,42 +975,3 @@ function isArrowDown(key) {
|
|
|
941
975
|
function isBackspace(key) {
|
|
942
976
|
return key === kbd.BACKSPACE;
|
|
943
977
|
}
|
|
944
|
-
const TimeFieldRootContext = new Context("TimeField.Root");
|
|
945
|
-
export function useTimeFieldRoot(props, rangeRoot) {
|
|
946
|
-
return TimeFieldRootContext.set(new TimeFieldRootState(props, rangeRoot));
|
|
947
|
-
}
|
|
948
|
-
export function useTimeFieldInput(props) {
|
|
949
|
-
return new TimeFieldInputState(props, TimeFieldRootContext.get());
|
|
950
|
-
}
|
|
951
|
-
export function useTimeFieldHiddenInput() {
|
|
952
|
-
return new TimeFieldHiddenInputState(TimeFieldRootContext.get());
|
|
953
|
-
}
|
|
954
|
-
export function useTimeFieldSegment(part, props) {
|
|
955
|
-
return segmentPartToInstance({
|
|
956
|
-
part,
|
|
957
|
-
segmentProps: props,
|
|
958
|
-
root: TimeFieldRootContext.get(),
|
|
959
|
-
});
|
|
960
|
-
}
|
|
961
|
-
export function useTimeFieldLabel(props) {
|
|
962
|
-
return new TimeFieldLabelState(props, TimeFieldRootContext.get());
|
|
963
|
-
}
|
|
964
|
-
function segmentPartToInstance(props) {
|
|
965
|
-
switch (props.part) {
|
|
966
|
-
case "hour":
|
|
967
|
-
return new TimeFieldHourSegmentState(props.segmentProps, props.root);
|
|
968
|
-
case "minute":
|
|
969
|
-
return new TimeFieldMinuteSegmentState(props.segmentProps, props.root);
|
|
970
|
-
case "second":
|
|
971
|
-
return new TimeFieldSecondSegmentState(props.segmentProps, props.root);
|
|
972
|
-
case "dayPeriod":
|
|
973
|
-
return new TimeFieldDayPeriodSegmentState(props.segmentProps, props.root);
|
|
974
|
-
case "literal":
|
|
975
|
-
return new TimeFieldLiteralSegmentState(props.segmentProps, props.root);
|
|
976
|
-
case "timeZoneName":
|
|
977
|
-
return new TimeFieldTimeZoneSegmentState(props.segmentProps, props.root);
|
|
978
|
-
default:
|
|
979
|
-
// For any date-related parts that shouldn't appear in time field
|
|
980
|
-
throw new Error(`Invalid segment part for time field: ${props.part}`);
|
|
981
|
-
}
|
|
982
|
-
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
3
|
import type { TimeRangeFieldInputProps } from "../types.js";
|
|
4
|
-
import {
|
|
4
|
+
import { TimeRangeFieldInputState } from "../time-range-field.svelte.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
import TimeFieldHiddenInput from "../../time-field/components/time-field-hidden-input.svelte";
|
|
7
7
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
...restProps
|
|
18
18
|
}: TimeRangeFieldInputProps = $props();
|
|
19
19
|
|
|
20
|
-
const inputState =
|
|
20
|
+
const inputState = TimeRangeFieldInputState.create(
|
|
21
21
|
{
|
|
22
22
|
id: box.with(() => id),
|
|
23
23
|
ref: box.with(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
3
|
-
import {
|
|
3
|
+
import { TimeRangeFieldLabelState } from "../time-range-field.svelte.js";
|
|
4
4
|
import type { TimeRangeFieldLabelProps } from "../types.js";
|
|
5
5
|
import { createId } from "../../../internal/create-id.js";
|
|
6
6
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
...restProps
|
|
15
15
|
}: TimeRangeFieldLabelProps = $props();
|
|
16
16
|
|
|
17
|
-
const labelState =
|
|
17
|
+
const labelState = TimeRangeFieldLabelState.create({
|
|
18
18
|
id: box.with(() => id),
|
|
19
19
|
ref: box.with(
|
|
20
20
|
() => ref,
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<script lang="ts" generics="T extends TimeValue = Time">
|
|
9
9
|
import { watch } from "runed";
|
|
10
10
|
import { box, mergeProps } from "svelte-toolbelt";
|
|
11
|
-
import {
|
|
11
|
+
import { TimeRangeFieldRootState } from "../time-range-field.svelte.js";
|
|
12
12
|
import type { TimeRangeFieldRootProps } from "../types.js";
|
|
13
13
|
import { createId } from "../../../internal/create-id.js";
|
|
14
14
|
import { noop } from "../../../internal/noop.js";
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
}
|
|
85
85
|
);
|
|
86
86
|
|
|
87
|
-
const rootState =
|
|
87
|
+
const rootState = TimeRangeFieldRootState.create({
|
|
88
88
|
id: box.with(() => id),
|
|
89
89
|
ref: box.with(
|
|
90
90
|
() => ref,
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
import type { Time } from "@internationalized/date";
|
|
2
|
-
import { DOMContext } from "svelte-toolbelt";
|
|
2
|
+
import { DOMContext, type ReadableBoxedValues, type WritableBoxedValues } from "svelte-toolbelt";
|
|
3
3
|
import { Context } from "runed";
|
|
4
|
-
import
|
|
4
|
+
import { TimeFieldRootState } from "../time-field/time-field.svelte.js";
|
|
5
5
|
import { TimeFieldInputState } from "../time-field/time-field.svelte.js";
|
|
6
|
-
import type { ReadableBoxedValues, WritableBoxedValues } from "../../internal/box.svelte.js";
|
|
7
6
|
import type { TimeSegmentPart } from "../../shared/index.js";
|
|
8
|
-
import type {
|
|
7
|
+
import type { WithRefOpts } from "../../internal/types.js";
|
|
9
8
|
import type { TimeGranularity, TimeOnInvalid, TimeRange, TimeRangeValidator, TimeValue } from "../../shared/date/types.js";
|
|
10
9
|
import { type TimeFormatter } from "../../internal/date-time/formatter.js";
|
|
11
|
-
export declare const timeRangeFieldAttrs: import("../../internal/attrs.js").
|
|
12
|
-
|
|
10
|
+
export declare const timeRangeFieldAttrs: import("../../internal/attrs.js").CreateBitsAttrsReturn<readonly ["root", "label"]>;
|
|
11
|
+
export declare const TimeRangeFieldRootContext: Context<TimeRangeFieldRootState<Time>>;
|
|
12
|
+
interface TimeRangeFieldRootStateOpts<T extends TimeValue = Time> extends WithRefOpts, WritableBoxedValues<{
|
|
13
13
|
value: TimeRange<T>;
|
|
14
14
|
placeholder: TimeValue;
|
|
15
15
|
startValue: T | undefined;
|
|
16
16
|
endValue: T | undefined;
|
|
17
|
-
}
|
|
17
|
+
}>, ReadableBoxedValues<{
|
|
18
18
|
readonlySegments: TimeSegmentPart[];
|
|
19
19
|
validate: TimeRangeValidator<T> | undefined;
|
|
20
20
|
onInvalid: TimeOnInvalid | undefined;
|
|
@@ -28,10 +28,12 @@ type TimeRangeFieldRootStateProps<T extends TimeValue = Time> = WithRefProps<Wri
|
|
|
28
28
|
hideTimeZone: boolean;
|
|
29
29
|
required: boolean;
|
|
30
30
|
errorMessageId: string | undefined;
|
|
31
|
-
}
|
|
31
|
+
}> {
|
|
32
|
+
}
|
|
32
33
|
export declare class TimeRangeFieldRootState<T extends TimeValue = Time> {
|
|
33
34
|
#private;
|
|
34
|
-
|
|
35
|
+
static create<T extends TimeValue = Time>(opts: TimeRangeFieldRootStateOpts<T>): TimeRangeFieldRootState<Time>;
|
|
36
|
+
readonly opts: TimeRangeFieldRootStateOpts<T>;
|
|
35
37
|
startFieldState: TimeFieldRootState | undefined;
|
|
36
38
|
endFieldState: TimeFieldRootState | undefined;
|
|
37
39
|
descriptionId: string;
|
|
@@ -39,16 +41,16 @@ export declare class TimeRangeFieldRootState<T extends TimeValue = Time> {
|
|
|
39
41
|
fieldNode: HTMLElement | null;
|
|
40
42
|
labelNode: HTMLElement | null;
|
|
41
43
|
descriptionNode: HTMLElement | null;
|
|
42
|
-
startValueComplete: boolean;
|
|
43
|
-
endValueComplete: boolean;
|
|
44
|
-
rangeComplete: boolean;
|
|
45
|
-
startValueTime: Time | undefined;
|
|
46
|
-
endValueTime: Time | undefined;
|
|
47
|
-
minValueTime: Time | undefined;
|
|
48
|
-
maxValueTime: Time | undefined;
|
|
44
|
+
readonly startValueComplete: boolean;
|
|
45
|
+
readonly endValueComplete: boolean;
|
|
46
|
+
readonly rangeComplete: boolean;
|
|
47
|
+
readonly startValueTime: Time | undefined;
|
|
48
|
+
readonly endValueTime: Time | undefined;
|
|
49
|
+
readonly minValueTime: Time | undefined;
|
|
50
|
+
readonly maxValueTime: Time | undefined;
|
|
49
51
|
domContext: DOMContext;
|
|
50
|
-
constructor(opts:
|
|
51
|
-
validationStatus: false | {
|
|
52
|
+
constructor(opts: TimeRangeFieldRootStateOpts<T>);
|
|
53
|
+
readonly validationStatus: false | {
|
|
52
54
|
readonly reason: "custom";
|
|
53
55
|
readonly message: string | string[];
|
|
54
56
|
} | {
|
|
@@ -58,33 +60,35 @@ export declare class TimeRangeFieldRootState<T extends TimeValue = Time> {
|
|
|
58
60
|
readonly reason: "max";
|
|
59
61
|
readonly message?: undefined;
|
|
60
62
|
};
|
|
61
|
-
isInvalid: boolean;
|
|
63
|
+
readonly isInvalid: boolean;
|
|
62
64
|
props: {
|
|
63
65
|
readonly id: string;
|
|
64
66
|
readonly role: "group";
|
|
65
67
|
readonly "data-invalid": "" | undefined;
|
|
66
68
|
};
|
|
67
69
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
+
interface TimeRangeFieldLabelStateOpts extends WithRefOpts {
|
|
71
|
+
}
|
|
72
|
+
export declare class TimeRangeFieldLabelState {
|
|
70
73
|
#private;
|
|
71
|
-
|
|
74
|
+
static create(opts: TimeRangeFieldLabelStateOpts): TimeRangeFieldLabelState;
|
|
75
|
+
readonly opts: TimeRangeFieldLabelStateOpts;
|
|
72
76
|
readonly root: TimeRangeFieldRootState;
|
|
73
|
-
constructor(opts:
|
|
74
|
-
props: {
|
|
77
|
+
constructor(opts: TimeRangeFieldLabelStateOpts, root: TimeRangeFieldRootState);
|
|
78
|
+
readonly props: {
|
|
75
79
|
readonly id: string;
|
|
76
80
|
readonly "data-invalid": "" | undefined;
|
|
77
81
|
readonly "data-disabled": "" | undefined;
|
|
78
82
|
readonly onclick: () => void;
|
|
79
83
|
};
|
|
80
84
|
}
|
|
81
|
-
|
|
85
|
+
interface TimeRangeFieldInputStateOpts<T extends TimeValue = Time> extends WritableBoxedValues<{
|
|
82
86
|
value: T | undefined;
|
|
83
|
-
}
|
|
87
|
+
}>, ReadableBoxedValues<{
|
|
84
88
|
name: string;
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
export declare
|
|
88
|
-
|
|
89
|
-
|
|
89
|
+
}>, WithRefOpts {
|
|
90
|
+
}
|
|
91
|
+
export declare class TimeRangeFieldInputState {
|
|
92
|
+
static create(opts: Omit<TimeRangeFieldInputStateOpts, "value">, type: "start" | "end"): TimeFieldInputState;
|
|
93
|
+
}
|
|
90
94
|
export {};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { box, onDestroyEffect, attachRef, DOMContext } from "svelte-toolbelt";
|
|
1
|
+
import { box, onDestroyEffect, attachRef, DOMContext, } from "svelte-toolbelt";
|
|
2
2
|
import { Context, watch } from "runed";
|
|
3
|
-
import {
|
|
3
|
+
import { TimeFieldRootState } from "../time-field/time-field.svelte.js";
|
|
4
|
+
import { TimeFieldInputState } from "../time-field/time-field.svelte.js";
|
|
4
5
|
import { useId } from "../../internal/use-id.js";
|
|
5
6
|
import { createBitsAttrs, getDataDisabled, getDataInvalid } from "../../internal/attrs.js";
|
|
6
7
|
import { createTimeFormatter } from "../../internal/date-time/formatter.js";
|
|
@@ -11,7 +12,11 @@ export const timeRangeFieldAttrs = createBitsAttrs({
|
|
|
11
12
|
component: "time-range-field",
|
|
12
13
|
parts: ["root", "label"],
|
|
13
14
|
});
|
|
15
|
+
export const TimeRangeFieldRootContext = new Context("TimeRangeField.Root");
|
|
14
16
|
export class TimeRangeFieldRootState {
|
|
17
|
+
static create(opts) {
|
|
18
|
+
return TimeRangeFieldRootContext.set(new TimeRangeFieldRootState(opts));
|
|
19
|
+
}
|
|
15
20
|
opts;
|
|
16
21
|
startFieldState = undefined;
|
|
17
22
|
endFieldState = undefined;
|
|
@@ -158,7 +163,10 @@ export class TimeRangeFieldRootState {
|
|
|
158
163
|
...attachRef(this.opts.ref, (v) => (this.fieldNode = v)),
|
|
159
164
|
}));
|
|
160
165
|
}
|
|
161
|
-
class TimeRangeFieldLabelState {
|
|
166
|
+
export class TimeRangeFieldLabelState {
|
|
167
|
+
static create(opts) {
|
|
168
|
+
return new TimeRangeFieldLabelState(opts, TimeRangeFieldRootContext.get());
|
|
169
|
+
}
|
|
162
170
|
opts;
|
|
163
171
|
root;
|
|
164
172
|
constructor(opts, root) {
|
|
@@ -175,7 +183,6 @@ class TimeRangeFieldLabelState {
|
|
|
175
183
|
};
|
|
176
184
|
props = $derived.by(() => ({
|
|
177
185
|
id: this.opts.id.current,
|
|
178
|
-
// TODO: invalid state for field
|
|
179
186
|
"data-invalid": getDataInvalid(this.root.isInvalid),
|
|
180
187
|
"data-disabled": getDataDisabled(this.root.opts.disabled.current),
|
|
181
188
|
[timeRangeFieldAttrs.label]: "",
|
|
@@ -183,32 +190,27 @@ class TimeRangeFieldLabelState {
|
|
|
183
190
|
...attachRef(this.opts.ref, (v) => (this.root.labelNode = v)),
|
|
184
191
|
}));
|
|
185
192
|
}
|
|
186
|
-
export
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
onInvalid: root.opts.onInvalid,
|
|
210
|
-
errorMessageId: root.opts.errorMessageId,
|
|
211
|
-
isInvalidProp: box.with(() => root.isInvalid),
|
|
212
|
-
}, root);
|
|
213
|
-
return new TimeFieldInputState({ name: props.name, id: props.id, ref: props.ref }, fieldState);
|
|
193
|
+
export class TimeRangeFieldInputState {
|
|
194
|
+
static create(opts, type) {
|
|
195
|
+
const root = TimeRangeFieldRootContext.get();
|
|
196
|
+
const fieldState = TimeFieldRootState.create({
|
|
197
|
+
value: type === "start" ? root.opts.startValue : root.opts.endValue,
|
|
198
|
+
disabled: root.opts.disabled,
|
|
199
|
+
readonly: root.opts.readonly,
|
|
200
|
+
readonlySegments: root.opts.readonlySegments,
|
|
201
|
+
validate: box.with(() => undefined),
|
|
202
|
+
minValue: root.opts.minValue,
|
|
203
|
+
maxValue: root.opts.maxValue,
|
|
204
|
+
hourCycle: root.opts.hourCycle,
|
|
205
|
+
locale: root.opts.locale,
|
|
206
|
+
hideTimeZone: root.opts.hideTimeZone,
|
|
207
|
+
required: root.opts.required,
|
|
208
|
+
granularity: root.opts.granularity,
|
|
209
|
+
placeholder: root.opts.placeholder,
|
|
210
|
+
onInvalid: root.opts.onInvalid,
|
|
211
|
+
errorMessageId: root.opts.errorMessageId,
|
|
212
|
+
isInvalidProp: box.with(() => root.isInvalid),
|
|
213
|
+
}, root);
|
|
214
|
+
return new TimeFieldInputState({ name: opts.name, id: opts.id, ref: opts.ref }, fieldState);
|
|
215
|
+
}
|
|
214
216
|
}
|