8 lines
2.0 MiB
Plaintext
8 lines
2.0 MiB
Plaintext
{
|
||
"version": 3,
|
||
"sources": ["../../bits-ui/dist/bits/accordion/exports.js", "../../svelte-toolbelt/dist/utils/is.js", "../../svelte-toolbelt/dist/box/box-extras.svelte.js", "../../svelte-toolbelt/dist/box/box.svelte.js", "../../svelte-toolbelt/dist/utils/compose-handlers.js", "../../inline-style-parser/index.js", "../../style-to-object/src/index.ts", "../../svelte-toolbelt/dist/utils/strings.js", "../../svelte-toolbelt/dist/utils/css-to-style-obj.js", "../../svelte-toolbelt/dist/utils/execute-callbacks.js", "../../svelte-toolbelt/dist/utils/style-to-css.js", "../../svelte-toolbelt/dist/utils/style.js", "../../svelte-toolbelt/dist/utils/event-list.js", "../../svelte-toolbelt/dist/utils/merge-props.js", "../../svelte-toolbelt/dist/utils/sr-only-styles.js", "../../runed/dist/internal/configurable-globals.js", "../../runed/dist/internal/utils/dom.js", "../../runed/dist/utilities/active-element/active-element.svelte.js", "../../runed/dist/internal/utils/is.js", "../../runed/dist/utilities/extract/extract.svelte.js", "../../runed/dist/utilities/context/context.js", "../../runed/dist/utilities/use-debounce/use-debounce.svelte.js", "../../runed/dist/utilities/watch/watch.svelte.js", "../../runed/dist/internal/utils/get.js", "../../runed/dist/utilities/element-size/element-size.svelte.js", "../../runed/dist/utilities/is-mounted/is-mounted.svelte.js", "../../runed/dist/utilities/previous/previous.svelte.js", "../../runed/dist/utilities/resource/resource.svelte.js", "../../svelte-toolbelt/dist/utils/on-destroy-effect.svelte.js", "../../svelte-toolbelt/dist/utils/on-mount-effect.svelte.js", "../../svelte-toolbelt/dist/utils/after-sleep.js", "../../svelte-toolbelt/dist/utils/after-tick.js", "../../svelte-toolbelt/dist/utils/dom.js", "../../svelte-toolbelt/dist/utils/dom-context.svelte.js", "../../svelte-toolbelt/dist/utils/attach-ref.js", "../../bits-ui/dist/internal/attrs.js", "../../bits-ui/dist/internal/kbd-constants.js", "../../bits-ui/dist/internal/locale.js", "../../bits-ui/dist/internal/get-directional-keys.js", "../../bits-ui/dist/internal/is.js", "../../bits-ui/dist/internal/roving-focus-group.js", "../../bits-ui/dist/internal/animations-complete.js", "../../bits-ui/dist/internal/presence-manager.svelte.js", "../../bits-ui/dist/bits/accordion/accordion.svelte.js", "../../bits-ui/dist/internal/noop.js", "../../bits-ui/dist/internal/create-id.js", "../../bits-ui/dist/bits/accordion/components/accordion.svelte", "../../bits-ui/dist/bits/accordion/components/accordion-item.svelte", "../../bits-ui/dist/bits/accordion/components/accordion-header.svelte", "../../bits-ui/dist/bits/accordion/components/accordion-trigger.svelte", "../../bits-ui/dist/bits/accordion/components/accordion-content.svelte", "../../bits-ui/dist/bits/alert-dialog/exports.js", "../../bits-ui/dist/bits/dialog/dialog.svelte.js", "../../bits-ui/dist/bits/alert-dialog/components/alert-dialog.svelte", "../../bits-ui/dist/bits/dialog/components/dialog-title.svelte", "../../bits-ui/dist/bits/alert-dialog/components/alert-dialog-action.svelte", "../../bits-ui/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte", "../../bits-ui/dist/bits/utilities/portal/portal-consumer.svelte", "../../bits-ui/dist/bits/utilities/config/bits-config.js", "../../bits-ui/dist/bits/utilities/config/prop-resolvers.js", "../../bits-ui/dist/bits/utilities/portal/portal.svelte", "../../bits-ui/dist/internal/events.js", "../../bits-ui/dist/internal/debounce.js", "../../bits-ui/dist/internal/elements.js", "../../bits-ui/dist/internal/dom.js", "../../bits-ui/dist/bits/menu/utils.js", "../../bits-ui/dist/internal/focus.js", "../../bits-ui/dist/bits/utilities/is-using-keyboard/is-using-keyboard.svelte.js", "../../tabbable/src/index.js", "../../bits-ui/dist/internal/tabbable.js", "../../bits-ui/dist/internal/arrays.js", "../../bits-ui/dist/internal/box-auto-reset.svelte.js", "../../bits-ui/dist/internal/dom-typeahead.svelte.js", "../../bits-ui/dist/internal/grace-area.svelte.js", "../../bits-ui/dist/bits/menu/menu.svelte.js", "../../bits-ui/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js", "../../bits-ui/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte", "../../bits-ui/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js", "../../bits-ui/dist/bits/utilities/escape-layer/escape-layer.svelte", "../../bits-ui/dist/bits/utilities/focus-scope/focus-scope-manager.js", "../../bits-ui/dist/bits/utilities/focus-scope/focus-scope.svelte.js", "../../bits-ui/dist/bits/utilities/focus-scope/focus-scope.svelte", "../../bits-ui/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js", "../../bits-ui/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte", "../../bits-ui/dist/internal/use-id.js", "../../bits-ui/dist/internal/shared-state.svelte.js", "../../bits-ui/dist/internal/body-scroll-lock.svelte.js", "../../bits-ui/dist/bits/utilities/scroll-lock/scroll-lock.svelte", "../../bits-ui/dist/bits/alert-dialog/components/alert-dialog-content.svelte", "../../bits-ui/dist/bits/dialog/components/dialog-overlay.svelte", "../../bits-ui/dist/bits/dialog/components/dialog-trigger.svelte", "../../bits-ui/dist/bits/dialog/components/dialog-description.svelte", "../../bits-ui/dist/bits/aspect-ratio/exports.js", "../../bits-ui/dist/bits/aspect-ratio/aspect-ratio.svelte.js", "../../bits-ui/dist/bits/aspect-ratio/components/aspect-ratio.svelte", "../../bits-ui/dist/bits/avatar/exports.js", "../../bits-ui/dist/bits/avatar/avatar.svelte.js", "../../bits-ui/dist/bits/avatar/components/avatar.svelte", "../../bits-ui/dist/bits/avatar/components/avatar-image.svelte", "../../bits-ui/dist/bits/avatar/components/avatar-fallback.svelte", "../../bits-ui/dist/bits/utilities/config/components/bits-config.svelte", "../../bits-ui/dist/bits/button/exports.js", "../../bits-ui/dist/bits/button/components/button.svelte", "../../bits-ui/dist/bits/calendar/exports.js", "../../@internationalized/date/dist/packages/@internationalized/date/src/utils.ts", "../../@internationalized/date/dist/packages/@internationalized/date/src/calendars/GregorianCalendar.ts", "../../@internationalized/date/dist/packages/@internationalized/date/src/weekStartData.ts", "../../@internationalized/date/dist/packages/@internationalized/date/src/queries.ts", "../../@internationalized/date/dist/packages/@internationalized/date/src/conversion.ts", "../../@internationalized/date/dist/packages/@internationalized/date/src/manipulation.ts", "../../@internationalized/date/dist/packages/@internationalized/date/src/string.ts", "../../@swc/helpers/esm/_check_private_redeclaration.js", "../../@swc/helpers/esm/_class_private_field_init.js", "../../@internationalized/date/dist/packages/@internationalized/date/src/CalendarDate.ts", "../../@internationalized/date/dist/packages/@internationalized/date/src/calendars/HebrewCalendar.ts", "../../@internationalized/date/dist/packages/@internationalized/date/src/DateFormatter.ts", "../../bits-ui/dist/internal/date-time/announcer.js", "../../bits-ui/dist/internal/date-time/utils.js", "../../bits-ui/dist/internal/date-time/field/parts.js", "../../bits-ui/dist/internal/date-time/placeholders.js", "../../bits-ui/dist/internal/date-time/field/helpers.js", "../../bits-ui/dist/internal/date-time/field/segments.js", "../../bits-ui/dist/internal/date-time/field/time-helpers.js", "../../bits-ui/dist/internal/date-time/formatter.js", "../../bits-ui/dist/internal/date-time/calendar-helpers.svelte.js", "../../bits-ui/dist/bits/calendar/calendar.svelte.js", "../../bits-ui/dist/bits/calendar/components/calendar.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-day.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-grid.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-grid-body.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-cell.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-grid-head.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-head-cell.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-grid-row.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-header.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-heading.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-month-select.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-next-button.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-prev-button.svelte", "../../bits-ui/dist/bits/calendar/components/calendar-year-select.svelte", "../../bits-ui/dist/bits/checkbox/exports.js", "../../bits-ui/dist/bits/checkbox/checkbox.svelte.js", "../../bits-ui/dist/bits/utilities/hidden-input.svelte", "../../bits-ui/dist/bits/checkbox/components/checkbox-input.svelte", "../../bits-ui/dist/bits/checkbox/components/checkbox.svelte", "../../bits-ui/dist/bits/checkbox/components/checkbox-group.svelte", "../../bits-ui/dist/bits/checkbox/components/checkbox-group-label.svelte", "../../bits-ui/dist/bits/collapsible/exports.js", "../../bits-ui/dist/bits/collapsible/collapsible.svelte.js", "../../bits-ui/dist/bits/collapsible/components/collapsible.svelte", "../../bits-ui/dist/bits/collapsible/components/collapsible-content.svelte", "../../bits-ui/dist/bits/collapsible/components/collapsible-trigger.svelte", "../../bits-ui/dist/bits/combobox/exports.js", "../../@floating-ui/utils/dist/floating-ui.utils.mjs", "../../@floating-ui/core/dist/floating-ui.core.mjs", "../../@floating-ui/utils/dist/floating-ui.utils.dom.mjs", "../../@floating-ui/dom/dist/floating-ui.dom.mjs", "../../bits-ui/dist/internal/floating-svelte/floating-utils.svelte.js", "../../bits-ui/dist/internal/floating-svelte/use-floating.svelte.js", "../../bits-ui/dist/bits/utilities/floating-layer/use-floating-layer.svelte.js", "../../bits-ui/dist/bits/utilities/floating-layer/components/floating-layer.svelte", "../../bits-ui/dist/internal/data-typeahead.svelte.js", "../../bits-ui/dist/bits/select/select.svelte.js", "../../bits-ui/dist/bits/select/components/select-hidden-input.svelte", "../../bits-ui/dist/bits/combobox/components/combobox.svelte", "../../bits-ui/dist/bits/utilities/floating-layer/components/index.js", "../../bits-ui/dist/bits/utilities/floating-layer/components/floating-layer-anchor.svelte", "../../bits-ui/dist/bits/utilities/arrow/arrow.svelte", "../../bits-ui/dist/bits/utilities/floating-layer/components/floating-layer-arrow.svelte", "../../bits-ui/dist/bits/utilities/floating-layer/components/floating-layer-content.svelte", "../../bits-ui/dist/bits/utilities/floating-layer/components/floating-layer-content-static.svelte", "../../bits-ui/dist/bits/combobox/components/combobox-input.svelte", "../../bits-ui/dist/bits/separator/separator.svelte.js", "../../bits-ui/dist/bits/separator/components/separator.svelte", "../../bits-ui/dist/bits/combobox/components/combobox-trigger.svelte", "../../bits-ui/dist/bits/utilities/popper-layer/popper-content.svelte", "../../bits-ui/dist/bits/utilities/popper-layer/popper-layer-inner.svelte", "../../bits-ui/dist/bits/utilities/popper-layer/popper-layer.svelte", "../../bits-ui/dist/bits/utilities/popper-layer/popper-layer-force-mount.svelte", "../../bits-ui/dist/bits/select/components/select-content.svelte", "../../bits-ui/dist/bits/select/components/select-content-static.svelte", "../../bits-ui/dist/bits/utilities/mounted.svelte", "../../bits-ui/dist/bits/select/components/select-item.svelte", "../../bits-ui/dist/bits/select/components/select-group.svelte", "../../bits-ui/dist/bits/select/components/select-group-heading.svelte", "../../bits-ui/dist/bits/select/components/select-viewport.svelte", "../../bits-ui/dist/bits/select/components/select-scroll-down-button.svelte", "../../bits-ui/dist/bits/select/components/select-scroll-up-button.svelte", "../../bits-ui/dist/bits/command/exports.js", "../../bits-ui/dist/bits/command/utils.js", "../../bits-ui/dist/internal/css-escape.js", "../../bits-ui/dist/bits/command/command.svelte.js", "../../bits-ui/dist/bits/command/components/_command-label.svelte", "../../bits-ui/dist/bits/command/components/command.svelte", "../../bits-ui/dist/bits/command/components/command-empty.svelte", "../../bits-ui/dist/bits/command/components/command-group.svelte", "../../bits-ui/dist/bits/command/components/command-group-heading.svelte", "../../bits-ui/dist/bits/command/components/command-group-items.svelte", "../../bits-ui/dist/bits/command/components/command-input.svelte", "../../bits-ui/dist/bits/command/components/command-item.svelte", "../../bits-ui/dist/bits/command/components/command-link-item.svelte", "../../bits-ui/dist/bits/command/components/command-list.svelte", "../../bits-ui/dist/bits/command/components/command-viewport.svelte", "../../bits-ui/dist/bits/command/components/command-loading.svelte", "../../bits-ui/dist/bits/command/components/command-separator.svelte", "../../bits-ui/dist/bits/command/compute-command-score.js", "../../bits-ui/dist/bits/context-menu/exports.js", "../../bits-ui/dist/bits/context-menu/components/context-menu.svelte", "../../bits-ui/dist/bits/menu/components/menu-sub.svelte", "../../bits-ui/dist/bits/menu/components/menu-item.svelte", "../../bits-ui/dist/bits/menu/components/menu-group.svelte", "../../bits-ui/dist/bits/menu/components/menu-group-heading.svelte", "../../bits-ui/dist/bits/menu/components/menu-arrow.svelte", "../../bits-ui/dist/bits/context-menu/components/context-menu-content.svelte", "../../bits-ui/dist/bits/context-menu/components/context-menu-content-static.svelte", "../../bits-ui/dist/bits/context-menu/components/context-menu-trigger.svelte", "../../bits-ui/dist/bits/menu/components/menu-radio-item.svelte", "../../bits-ui/dist/bits/menu/components/menu-separator.svelte", "../../bits-ui/dist/bits/menu/components/menu-radio-group.svelte", "../../bits-ui/dist/bits/menu/components/menu-sub-content.svelte", "../../bits-ui/dist/bits/menu/components/menu-sub-content-static.svelte", "../../bits-ui/dist/bits/menu/components/menu-sub-trigger.svelte", "../../bits-ui/dist/bits/menu/components/menu-checkbox-item.svelte", "../../bits-ui/dist/bits/menu/components/menu-checkbox-group.svelte", "../../bits-ui/dist/bits/date-field/exports.js", "../../bits-ui/dist/bits/date-field/date-field.svelte.js", "../../bits-ui/dist/bits/date-field/components/date-field.svelte", "../../bits-ui/dist/bits/date-field/components/date-field-hidden-input.svelte", "../../bits-ui/dist/bits/date-field/components/date-field-input.svelte", "../../bits-ui/dist/bits/date-field/components/date-field-label.svelte", "../../bits-ui/dist/bits/date-field/components/date-field-segment.svelte", "../../bits-ui/dist/bits/date-picker/exports.js", "../../bits-ui/dist/bits/date-picker/date-picker.svelte.js", "../../bits-ui/dist/internal/safe-polygon.svelte.js", "../../bits-ui/dist/bits/popover/popover.svelte.js", "../../bits-ui/dist/bits/date-picker/components/date-picker.svelte", "../../bits-ui/dist/bits/date-picker/components/date-picker-calendar.svelte", "../../bits-ui/dist/bits/popover/components/popover-content.svelte", "../../bits-ui/dist/bits/date-picker/components/date-picker-content.svelte", "../../bits-ui/dist/bits/popover/components/popover-content-static.svelte", "../../bits-ui/dist/bits/date-picker/components/date-picker-content-static.svelte", "../../bits-ui/dist/bits/popover/components/popover-trigger.svelte", "../../bits-ui/dist/bits/date-picker/components/date-picker-trigger.svelte", "../../bits-ui/dist/bits/popover/components/popover-arrow.svelte", "../../bits-ui/dist/bits/popover/components/popover-close.svelte", "../../bits-ui/dist/bits/date-range-field/exports.js", "../../bits-ui/dist/bits/date-range-field/date-range-field.svelte.js", "../../bits-ui/dist/bits/date-range-field/components/date-range-field.svelte", "../../bits-ui/dist/bits/date-range-field/components/date-range-field-input.svelte", "../../bits-ui/dist/bits/date-range-field/components/date-range-field-label.svelte", "../../bits-ui/dist/bits/date-range-picker/exports.js", "../../bits-ui/dist/bits/date-range-picker/date-range-picker.svelte.js", "../../bits-ui/dist/bits/date-range-picker/components/date-range-picker.svelte", "../../bits-ui/dist/bits/range-calendar/range-calendar.svelte.js", "../../bits-ui/dist/bits/date-range-picker/components/date-range-picker-calendar.svelte", "../../bits-ui/dist/bits/date-range-picker/components/date-range-picker-trigger.svelte", "../../bits-ui/dist/bits/range-calendar/components/range-calendar-cell.svelte", "../../bits-ui/dist/bits/range-calendar/components/range-calendar-day.svelte", "../../bits-ui/dist/bits/dialog/exports.js", "../../bits-ui/dist/bits/dialog/components/dialog.svelte", "../../bits-ui/dist/bits/dialog/components/dialog-close.svelte", "../../bits-ui/dist/bits/dialog/components/dialog-content.svelte", "../../bits-ui/dist/bits/dropdown-menu/exports.js", "../../bits-ui/dist/bits/menu/components/menu.svelte", "../../bits-ui/dist/bits/dropdown-menu/components/dropdown-menu-content.svelte", "../../bits-ui/dist/bits/dropdown-menu/components/dropdown-menu-content-static.svelte", "../../bits-ui/dist/bits/menu/components/menu-trigger.svelte", "../../bits-ui/dist/bits/label/exports.js", "../../bits-ui/dist/bits/label/label.svelte.js", "../../bits-ui/dist/bits/label/components/label.svelte", "../../bits-ui/dist/bits/link-preview/exports.js", "../../bits-ui/dist/bits/link-preview/link-preview.svelte.js", "../../bits-ui/dist/bits/link-preview/components/link-preview.svelte", "../../bits-ui/dist/bits/link-preview/components/link-preview-content.svelte", "../../bits-ui/dist/bits/link-preview/components/link-preview-trigger.svelte", "../../bits-ui/dist/bits/link-preview/components/link-preview-content-static.svelte", "../../bits-ui/dist/bits/menubar/exports.js", "../../bits-ui/dist/bits/menubar/menubar.svelte.js", "../../bits-ui/dist/bits/menubar/components/menubar.svelte", "../../bits-ui/dist/bits/menubar/components/menubar-menu.svelte", "../../bits-ui/dist/bits/menu/components/menu-content.svelte", "../../bits-ui/dist/bits/menubar/components/menubar-content.svelte", "../../bits-ui/dist/bits/menu/components/menu-content-static.svelte", "../../bits-ui/dist/bits/menubar/components/menubar-content-static.svelte", "../../bits-ui/dist/bits/menubar/components/menubar-trigger.svelte", "../../bits-ui/dist/bits/meter/exports.js", "../../bits-ui/dist/bits/meter/meter.svelte.js", "../../bits-ui/dist/bits/meter/components/meter.svelte", "../../bits-ui/dist/bits/navigation-menu/exports.js", "../../bits-ui/dist/bits/pin-input/usePasswordManager.svelte.js", "../../bits-ui/dist/bits/pin-input/pin-input.svelte.js", "../../bits-ui/dist/internal/use-arrow-navigation.js", "../../bits-ui/dist/internal/svelte-resize-observer.svelte.js", "../../bits-ui/dist/bits/navigation-menu/navigation-menu.svelte.js", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-content-impl.svelte", "../../bits-ui/dist/internal/state-machine.js", "../../bits-ui/dist/bits/utilities/presence-layer/presence.svelte.js", "../../bits-ui/dist/bits/utilities/presence-layer/presence-layer.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-content.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-indicator-impl.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-indicator.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-item.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-link.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-list.svelte", "../../bits-ui/dist/bits/utilities/visually-hidden/visually-hidden.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-trigger.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-viewport.svelte", "../../bits-ui/dist/bits/navigation-menu/components/navigation-menu-sub.svelte", "../../bits-ui/dist/bits/pagination/exports.js", "../../bits-ui/dist/bits/pagination/pagination.svelte.js", "../../bits-ui/dist/bits/pagination/components/pagination.svelte", "../../bits-ui/dist/bits/pagination/components/pagination-prev-button.svelte", "../../bits-ui/dist/bits/pagination/components/pagination-next-button.svelte", "../../bits-ui/dist/bits/pagination/components/pagination-page.svelte", "../../bits-ui/dist/bits/pin-input/exports.js", "../../bits-ui/dist/bits/pin-input/components/pin-input.svelte", "../../bits-ui/dist/bits/pin-input/components/pin-input-cell.svelte", "../../bits-ui/dist/bits/popover/exports.js", "../../bits-ui/dist/bits/popover/components/popover.svelte", "../../bits-ui/dist/bits/popover/components/popover-overlay.svelte", "../../bits-ui/dist/bits/progress/exports.js", "../../bits-ui/dist/bits/progress/progress.svelte.js", "../../bits-ui/dist/bits/progress/components/progress.svelte", "../../bits-ui/dist/bits/radio-group/exports.js", "../../bits-ui/dist/bits/radio-group/radio-group.svelte.js", "../../bits-ui/dist/bits/radio-group/components/radio-group-input.svelte", "../../bits-ui/dist/bits/radio-group/components/radio-group.svelte", "../../bits-ui/dist/bits/radio-group/components/radio-group-item.svelte", "../../bits-ui/dist/bits/range-calendar/exports.js", "../../bits-ui/dist/bits/range-calendar/components/range-calendar.svelte", "../../bits-ui/dist/bits/rating-group/exports.js", "../../bits-ui/dist/bits/rating-group/rating-group.svelte.js", "../../bits-ui/dist/bits/rating-group/components/rating-group-input.svelte", "../../bits-ui/dist/bits/rating-group/components/rating-group.svelte", "../../bits-ui/dist/bits/rating-group/components/rating-group-item.svelte", "../../bits-ui/dist/bits/scroll-area/exports.js", "../../bits-ui/dist/internal/clamp.js", "../../bits-ui/dist/bits/scroll-area/scroll-area.svelte.js", "../../bits-ui/dist/bits/scroll-area/components/scroll-area.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-viewport.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-scrollbar-shared.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-scrollbar-x.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-scrollbar-y.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-scrollbar-visible.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-scrollbar-auto.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-scrollbar-scroll.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-scrollbar-hover.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-scrollbar.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-thumb-impl.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-thumb.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-corner-impl.svelte", "../../bits-ui/dist/bits/scroll-area/components/scroll-area-corner.svelte", "../../bits-ui/dist/bits/select/exports.js", "../../bits-ui/dist/bits/select/components/select.svelte", "../../bits-ui/dist/bits/select/components/select-trigger.svelte", "../../bits-ui/dist/bits/separator/exports.js", "../../bits-ui/dist/bits/slider/exports.js", "../../bits-ui/dist/bits/slider/helpers.js", "../../bits-ui/dist/internal/math.js", "../../bits-ui/dist/bits/slider/slider.svelte.js", "../../bits-ui/dist/bits/slider/components/slider.svelte", "../../bits-ui/dist/bits/slider/components/slider-range.svelte", "../../bits-ui/dist/bits/slider/components/slider-thumb.svelte", "../../bits-ui/dist/bits/slider/components/slider-tick.svelte", "../../bits-ui/dist/bits/slider/components/slider-tick-label.svelte", "../../bits-ui/dist/bits/slider/components/slider-thumb-label.svelte", "../../bits-ui/dist/bits/switch/exports.js", "../../bits-ui/dist/bits/switch/switch.svelte.js", "../../bits-ui/dist/bits/switch/components/switch-input.svelte", "../../bits-ui/dist/bits/switch/components/switch.svelte", "../../bits-ui/dist/bits/switch/components/switch-thumb.svelte", "../../bits-ui/dist/bits/tabs/exports.js", "../../bits-ui/dist/bits/tabs/tabs.svelte.js", "../../bits-ui/dist/bits/tabs/components/tabs.svelte", "../../bits-ui/dist/bits/tabs/components/tabs-content.svelte", "../../bits-ui/dist/bits/tabs/components/tabs-list.svelte", "../../bits-ui/dist/bits/tabs/components/tabs-trigger.svelte", "../../bits-ui/dist/bits/time-field/exports.js", "../../bits-ui/dist/bits/time-field/time-field.svelte.js", "../../bits-ui/dist/bits/time-field/components/time-field.svelte", "../../bits-ui/dist/bits/time-field/components/time-field-hidden-input.svelte", "../../bits-ui/dist/bits/time-field/components/time-field-input.svelte", "../../bits-ui/dist/bits/time-field/components/time-field-label.svelte", "../../bits-ui/dist/bits/time-field/components/time-field-segment.svelte", "../../bits-ui/dist/bits/time-range-field/exports.js", "../../bits-ui/dist/bits/time-range-field/time-range-field.svelte.js", "../../bits-ui/dist/bits/time-range-field/components/time-range-field.svelte", "../../bits-ui/dist/bits/time-range-field/components/time-range-field-input.svelte", "../../bits-ui/dist/bits/time-range-field/components/time-range-field-label.svelte", "../../bits-ui/dist/bits/toggle/exports.js", "../../bits-ui/dist/bits/toggle/toggle.svelte.js", "../../bits-ui/dist/bits/toggle/components/toggle.svelte", "../../bits-ui/dist/bits/toggle-group/exports.js", "../../bits-ui/dist/bits/toggle-group/toggle-group.svelte.js", "../../bits-ui/dist/bits/toggle-group/components/toggle-group.svelte", "../../bits-ui/dist/bits/toggle-group/components/toggle-group-item.svelte", "../../bits-ui/dist/bits/toolbar/exports.js", "../../bits-ui/dist/bits/toolbar/toolbar.svelte.js", "../../bits-ui/dist/bits/toolbar/components/toolbar.svelte", "../../bits-ui/dist/bits/toolbar/components/toolbar-button.svelte", "../../bits-ui/dist/bits/toolbar/components/toolbar-link.svelte", "../../bits-ui/dist/bits/toolbar/components/toolbar-group.svelte", "../../bits-ui/dist/bits/toolbar/components/toolbar-group-item.svelte", "../../bits-ui/dist/bits/tooltip/exports.js", "../../bits-ui/dist/internal/timeout-fn.js", "../../bits-ui/dist/bits/tooltip/tooltip.svelte.js", "../../bits-ui/dist/bits/tooltip/components/tooltip.svelte", "../../bits-ui/dist/bits/tooltip/components/tooltip-content.svelte", "../../bits-ui/dist/bits/tooltip/components/tooltip-content-static.svelte", "../../bits-ui/dist/bits/tooltip/components/tooltip-trigger.svelte", "../../bits-ui/dist/bits/tooltip/components/tooltip-arrow.svelte", "../../bits-ui/dist/bits/tooltip/components/tooltip-provider.svelte"],
|
||
"sourcesContent": ["export { default as Root } from \"./components/accordion.svelte\";\nexport { default as Item } from \"./components/accordion-item.svelte\";\nexport { default as Header } from \"./components/accordion-header.svelte\";\nexport { default as Trigger } from \"./components/accordion-trigger.svelte\";\nexport { default as Content } from \"./components/accordion-content.svelte\";\n", "export function isFunction(value) {\n return typeof value === \"function\";\n}\nexport function isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nconst CLASS_VALUE_PRIMITIVE_TYPES = [\"string\", \"number\", \"bigint\", \"boolean\"];\nexport function isClassValue(value) {\n // handle primitive types\n if (value === null || value === undefined)\n return true;\n if (CLASS_VALUE_PRIMITIVE_TYPES.includes(typeof value))\n return true;\n // handle arrays (ClassArray)\n if (Array.isArray(value))\n return value.every((item) => isClassValue(item));\n // handle objects (ClassDictionary)\n if (typeof value === \"object\") {\n // ensure it's a plain object and not some other object type\n if (Object.getPrototypeOf(value) !== Object.prototype)\n return false;\n return true;\n }\n return false;\n}\n", "import { isFunction, isObject } from \"../utils/is.js\";\nexport const BoxSymbol = Symbol(\"box\");\nexport const isWritableSymbol = Symbol(\"is-writable\");\nfunction boxWith(getter, setter) {\n const derived = $derived.by(getter);\n if (setter) {\n return {\n [BoxSymbol]: true,\n [isWritableSymbol]: true,\n get current() {\n return derived;\n },\n set current(v) {\n setter(v);\n }\n };\n }\n return {\n [BoxSymbol]: true,\n get current() {\n return getter();\n }\n };\n}\n/**\n * @returns Whether the value is a Box\n *\n * @see {@link https://runed.dev/docs/functions/box}\n */\nfunction isBox(value) {\n return isObject(value) && BoxSymbol in value;\n}\n/**\n * @returns Whether the value is a WritableBox\n *\n * @see {@link https://runed.dev/docs/functions/box}\n */\nfunction isWritableBox(value) {\n return isBox(value) && isWritableSymbol in value;\n}\nfunction boxFrom(value) {\n if (isBox(value))\n return value;\n if (isFunction(value))\n return boxWith(value);\n return simpleBox(value);\n}\n/**\n * Function that gets an object of boxes, and returns an object of reactive values\n *\n * @example\n * const count = box(0)\n * const flat = box.flatten({ count, double: box.with(() => count.current) })\n * // type of flat is { count: number, readonly double: number }\n *\n * @see {@link https://runed.dev/docs/functions/box}\n */\nfunction boxFlatten(boxes) {\n return Object.entries(boxes).reduce((acc, [key, b]) => {\n if (!isBox(b)) {\n return Object.assign(acc, { [key]: b });\n }\n if (isWritableBox(b)) {\n Object.defineProperty(acc, key, {\n get() {\n return b.current;\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(v) {\n b.current = v;\n }\n });\n }\n else {\n Object.defineProperty(acc, key, {\n get() {\n return b.current;\n }\n });\n }\n return acc;\n }, {});\n}\n/**\n * Function that converts a box to a readonly box.\n *\n * @example\n * const count = box(0) // WritableBox<number>\n * const countReadonly = box.readonly(count) // ReadableBox<number>\n *\n * @see {@link https://runed.dev/docs/functions/box}\n */\nfunction toReadonlyBox(b) {\n if (!isWritableBox(b))\n return b;\n return {\n [BoxSymbol]: true,\n get current() {\n return b.current;\n }\n };\n}\nfunction simpleBox(initialValue) {\n let current = $state(initialValue);\n return {\n [BoxSymbol]: true,\n [isWritableSymbol]: true,\n get current() {\n return current;\n },\n set current(v) {\n current = v;\n }\n };\n}\nexport { boxWith, isBox, isWritableBox, boxFrom, boxFlatten, toReadonlyBox, simpleBox };\n", "import { boxFrom, boxWith, boxFlatten, toReadonlyBox, isBox, isWritableBox, BoxSymbol, isWritableSymbol } from \"./box-extras.svelte.js\";\nexport function box(initialValue) {\n let current = $state(initialValue);\n return {\n [BoxSymbol]: true,\n [isWritableSymbol]: true,\n get current() {\n return current;\n },\n set current(v) {\n current = v;\n }\n };\n}\nbox.from = boxFrom;\nbox.with = boxWith;\nbox.flatten = boxFlatten;\nbox.readonly = toReadonlyBox;\nbox.isBox = isBox;\nbox.isWritableBox = isWritableBox;\n", "/**\n * Composes event handlers into a single function that can be called with an event.\n * If the previous handler cancels the event using `event.preventDefault()`, the handlers\n * that follow will not be called.\n */\nexport function composeHandlers(...handlers) {\n return function (e) {\n for (const handler of handlers) {\n if (!handler)\n continue;\n if (e.defaultPrevented)\n return;\n if (typeof handler === \"function\") {\n handler.call(this, e);\n }\n else {\n handler.current?.call(this, e);\n }\n }\n };\n}\n", "// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nexport default function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n}\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n", "import type { Declaration } from 'inline-style-parser';\nimport parse from 'inline-style-parser';\n\nexport { Declaration };\n\nexport interface StyleObject {\n [name: string]: string;\n}\n\ntype Iterator = (\n property: string,\n value: string,\n declaration: Declaration,\n) => void;\n\n/**\n * Parses inline style to object.\n *\n * @param style - Inline style.\n * @param iterator - Iterator.\n * @returns - Style object or null.\n *\n * @example Parsing inline style to object:\n *\n * ```js\n * import parse from 'style-to-object';\n * parse('line-height: 42;'); // { 'line-height': '42' }\n * ```\n */\nexport default function StyleToObject(\n style: string,\n iterator?: Iterator,\n): StyleObject | null {\n let styleObject: StyleObject | null = null;\n\n if (!style || typeof style !== 'string') {\n return styleObject;\n }\n\n const declarations = parse(style);\n const hasIterator = typeof iterator === 'function';\n\n declarations.forEach((declaration) => {\n if (declaration.type !== 'declaration') {\n return;\n }\n\n const { property, value } = declaration;\n\n if (hasIterator) {\n iterator(property, value, declaration);\n } else if (value) {\n styleObject = styleObject || {};\n styleObject[property] = value;\n }\n });\n\n return styleObject;\n}\n", "const NUMBER_CHAR_RE = /\\d/;\nconst STR_SPLITTERS = [\"-\", \"_\", \"/\", \".\"];\nfunction isUppercase(char = \"\") {\n if (NUMBER_CHAR_RE.test(char))\n return undefined;\n return char !== char.toLowerCase();\n}\nfunction splitByCase(str) {\n const parts = [];\n let buff = \"\";\n let previousUpper;\n let previousSplitter;\n for (const char of str) {\n // Splitter\n const isSplitter = STR_SPLITTERS.includes(char);\n if (isSplitter === true) {\n parts.push(buff);\n buff = \"\";\n previousUpper = undefined;\n continue;\n }\n const isUpper = isUppercase(char);\n if (previousSplitter === false) {\n // Case rising edge\n if (previousUpper === false && isUpper === true) {\n parts.push(buff);\n buff = char;\n previousUpper = isUpper;\n continue;\n }\n // Case falling edge\n if (previousUpper === true && isUpper === false && buff.length > 1) {\n const lastChar = buff.at(-1);\n parts.push(buff.slice(0, Math.max(0, buff.length - 1)));\n buff = lastChar + char;\n previousUpper = isUpper;\n continue;\n }\n }\n // Normal char\n buff += char;\n previousUpper = isUpper;\n previousSplitter = isSplitter;\n }\n parts.push(buff);\n return parts;\n}\nexport function pascalCase(str) {\n if (!str)\n return \"\";\n return splitByCase(str)\n .map((p) => upperFirst(p))\n .join(\"\");\n}\nexport function camelCase(str) {\n return lowerFirst(pascalCase(str || \"\"));\n}\nexport function kebabCase(str) {\n return str\n ? splitByCase(str)\n .map((p) => p.toLowerCase())\n .join(\"-\")\n : \"\";\n}\nfunction upperFirst(str) {\n return str ? str[0].toUpperCase() + str.slice(1) : \"\";\n}\nfunction lowerFirst(str) {\n return str ? str[0].toLowerCase() + str.slice(1) : \"\";\n}\n", "import parse from \"style-to-object\";\nimport { camelCase, pascalCase } from \"./strings.js\";\nexport function cssToStyleObj(css) {\n if (!css)\n return {};\n const styleObj = {};\n function iterator(name, value) {\n if (name.startsWith(\"-moz-\") ||\n name.startsWith(\"-webkit-\") ||\n name.startsWith(\"-ms-\") ||\n name.startsWith(\"-o-\")) {\n styleObj[pascalCase(name)] = value;\n return;\n }\n if (name.startsWith(\"--\")) {\n styleObj[name] = value;\n return;\n }\n styleObj[camelCase(name)] = value;\n }\n parse(css, iterator);\n return styleObj;\n}\n", "/**\n * Executes an array of callback functions with the same arguments.\n * @template T The types of the arguments that the callback functions take.\n * @param callbacks array of callback functions to execute.\n * @returns A new function that executes all of the original callback functions with the same arguments.\n */\nexport function executeCallbacks(...callbacks) {\n return (...args) => {\n for (const callback of callbacks) {\n if (typeof callback === \"function\") {\n callback(...args);\n }\n }\n };\n}\n", "function createParser(matcher, replacer) {\n const regex = RegExp(matcher, \"g\");\n return (str) => {\n // throw an error if not a string\n if (typeof str !== \"string\") {\n throw new TypeError(`expected an argument of type string, but got ${typeof str}`);\n }\n // if no match between string and matcher\n if (!str.match(regex))\n return str;\n // executes the replacer function for each match\n return str.replace(regex, replacer);\n };\n}\nconst camelToKebab = createParser(/[A-Z]/, (match) => `-${match.toLowerCase()}`);\nexport function styleToCSS(styleObj) {\n if (!styleObj || typeof styleObj !== \"object\" || Array.isArray(styleObj)) {\n throw new TypeError(`expected an argument of type object, but got ${typeof styleObj}`);\n }\n return Object.keys(styleObj)\n .map((property) => `${camelToKebab(property)}: ${styleObj[property]};`)\n .join(\"\\n\");\n}\n", "import { styleToCSS } from \"./style-to-css.js\";\nexport function styleToString(style = {}) {\n return styleToCSS(style).replace(\"\\n\", \" \");\n}\n", "const EVENT_LIST = [\n \"onabort\",\n \"onanimationcancel\",\n \"onanimationend\",\n \"onanimationiteration\",\n \"onanimationstart\",\n \"onauxclick\",\n \"onbeforeinput\",\n \"onbeforetoggle\",\n \"onblur\",\n \"oncancel\",\n \"oncanplay\",\n \"oncanplaythrough\",\n \"onchange\",\n \"onclick\",\n \"onclose\",\n \"oncompositionend\",\n \"oncompositionstart\",\n \"oncompositionupdate\",\n \"oncontextlost\",\n \"oncontextmenu\",\n \"oncontextrestored\",\n \"oncopy\",\n \"oncuechange\",\n \"oncut\",\n \"ondblclick\",\n \"ondrag\",\n \"ondragend\",\n \"ondragenter\",\n \"ondragleave\",\n \"ondragover\",\n \"ondragstart\",\n \"ondrop\",\n \"ondurationchange\",\n \"onemptied\",\n \"onended\",\n \"onerror\",\n \"onfocus\",\n \"onfocusin\",\n \"onfocusout\",\n \"onformdata\",\n \"ongotpointercapture\",\n \"oninput\",\n \"oninvalid\",\n \"onkeydown\",\n \"onkeypress\",\n \"onkeyup\",\n \"onload\",\n \"onloadeddata\",\n \"onloadedmetadata\",\n \"onloadstart\",\n \"onlostpointercapture\",\n \"onmousedown\",\n \"onmouseenter\",\n \"onmouseleave\",\n \"onmousemove\",\n \"onmouseout\",\n \"onmouseover\",\n \"onmouseup\",\n \"onpaste\",\n \"onpause\",\n \"onplay\",\n \"onplaying\",\n \"onpointercancel\",\n \"onpointerdown\",\n \"onpointerenter\",\n \"onpointerleave\",\n \"onpointermove\",\n \"onpointerout\",\n \"onpointerover\",\n \"onpointerup\",\n \"onprogress\",\n \"onratechange\",\n \"onreset\",\n \"onresize\",\n \"onscroll\",\n \"onscrollend\",\n \"onsecuritypolicyviolation\",\n \"onseeked\",\n \"onseeking\",\n \"onselect\",\n \"onselectionchange\",\n \"onselectstart\",\n \"onslotchange\",\n \"onstalled\",\n \"onsubmit\",\n \"onsuspend\",\n \"ontimeupdate\",\n \"ontoggle\",\n \"ontouchcancel\",\n \"ontouchend\",\n \"ontouchmove\",\n \"ontouchstart\",\n \"ontransitioncancel\",\n \"ontransitionend\",\n \"ontransitionrun\",\n \"ontransitionstart\",\n \"onvolumechange\",\n \"onwaiting\",\n \"onwebkitanimationend\",\n \"onwebkitanimationiteration\",\n \"onwebkitanimationstart\",\n \"onwebkittransitionend\",\n \"onwheel\"\n];\nexport const EVENT_LIST_SET = new Set(EVENT_LIST);\n", "/**\n * Modified from https://github.com/adobe/react-spectrum/blob/main/packages/%40react-aria/utils/src/mergeProps.ts (see NOTICE.txt for source)\n */\nimport { clsx } from \"clsx\";\nimport { composeHandlers } from \"./compose-handlers.js\";\nimport { cssToStyleObj } from \"./css-to-style-obj.js\";\nimport { isClassValue } from \"./is.js\";\nimport { executeCallbacks } from \"./execute-callbacks.js\";\nimport { styleToString } from \"./style.js\";\nimport { EVENT_LIST_SET } from \"./event-list.js\";\nfunction isEventHandler(key) {\n return EVENT_LIST_SET.has(key);\n}\n/**\n * Given a list of prop objects, merges them into a single object.\n * - Automatically composes event handlers (e.g. `onclick`, `oninput`, etc.)\n * - Chains regular functions with the same name so they are called in order\n * - Merges class strings with `clsx`\n * - Merges style objects and converts them to strings\n * - Handles a bug with Svelte where setting the `hidden` attribute to `false` doesn't remove it\n * - Overrides other values with the last one\n */\nexport function mergeProps(...args) {\n const result = { ...args[0] };\n for (let i = 1; i < args.length; i++) {\n const props = args[i];\n if (!props)\n continue;\n // Handle string keys\n for (const key of Object.keys(props)) {\n const a = result[key];\n const b = props[key];\n const aIsFunction = typeof a === \"function\";\n const bIsFunction = typeof b === \"function\";\n // compose event handlers\n if (aIsFunction && typeof bIsFunction && isEventHandler(key)) {\n // handle merging of event handlers\n const aHandler = a;\n const bHandler = b;\n result[key] = composeHandlers(aHandler, bHandler);\n }\n else if (aIsFunction && bIsFunction) {\n // chain non-event handler functions\n result[key] = executeCallbacks(a, b);\n }\n else if (key === \"class\") {\n // handle merging acceptable class values from clsx\n const aIsClassValue = isClassValue(a);\n const bIsClassValue = isClassValue(b);\n if (aIsClassValue && bIsClassValue) {\n result[key] = clsx(a, b);\n }\n else if (aIsClassValue) {\n result[key] = clsx(a);\n }\n else if (bIsClassValue) {\n result[key] = clsx(b);\n }\n }\n else if (key === \"style\") {\n const aIsObject = typeof a === \"object\";\n const bIsObject = typeof b === \"object\";\n const aIsString = typeof a === \"string\";\n const bIsString = typeof b === \"string\";\n if (aIsObject && bIsObject) {\n // both are style objects, merge them\n result[key] = { ...a, ...b };\n }\n else if (aIsObject && bIsString) {\n // a is style object, b is string, convert b to style object and merge\n const parsedStyle = cssToStyleObj(b);\n result[key] = { ...a, ...parsedStyle };\n }\n else if (aIsString && bIsObject) {\n // a is string, b is style object, convert a to style object and merge\n const parsedStyle = cssToStyleObj(a);\n result[key] = { ...parsedStyle, ...b };\n }\n else if (aIsString && bIsString) {\n // both are strings, convert both to objects and merge\n const parsedStyleA = cssToStyleObj(a);\n const parsedStyleB = cssToStyleObj(b);\n result[key] = { ...parsedStyleA, ...parsedStyleB };\n }\n else if (aIsObject) {\n result[key] = a;\n }\n else if (bIsObject) {\n result[key] = b;\n }\n else if (aIsString) {\n result[key] = a;\n }\n else if (bIsString) {\n result[key] = b;\n }\n }\n else {\n // override other values\n result[key] = b !== undefined ? b : a;\n }\n }\n // handle symbol keys (mostly for `Attachments`)\n for (const key of Object.getOwnPropertySymbols(props)) {\n const a = result[key];\n const b = props[key];\n // for matching symbols, we just override\n result[key] = b !== undefined ? b : a;\n }\n }\n // convert style object to string\n if (typeof result.style === \"object\") {\n result.style = styleToString(result.style).replaceAll(\"\\n\", \" \");\n }\n // handle weird svelte bug where `hidden` is not removed when set to `false`\n if (result.hidden === false) {\n result.hidden = undefined;\n delete result.hidden;\n }\n // handle weird svelte bug where `disabled` is not removed when set to `false`\n if (result.disabled === false) {\n result.disabled = undefined;\n delete result.disabled;\n }\n return result;\n}\n", "import { styleToString } from \"./style.js\";\nexport const srOnlyStyles = {\n position: \"absolute\",\n width: \"1px\",\n height: \"1px\",\n padding: \"0\",\n margin: \"-1px\",\n overflow: \"hidden\",\n clip: \"rect(0, 0, 0, 0)\",\n whiteSpace: \"nowrap\",\n borderWidth: \"0\",\n transform: \"translateX(-100%)\"\n};\nexport const srOnlyStylesString = styleToString(srOnlyStyles);\n", "import { BROWSER } from \"esm-env\";\nexport const defaultWindow = BROWSER && typeof window !== \"undefined\" ? window : undefined;\nexport const defaultDocument = BROWSER && typeof window !== \"undefined\" ? window.document : undefined;\nexport const defaultNavigator = BROWSER && typeof window !== \"undefined\" ? window.navigator : undefined;\nexport const defaultLocation = BROWSER && typeof window !== \"undefined\" ? window.location : undefined;\n", "import { defaultDocument } from \"../configurable-globals.js\";\n/**\n * Handles getting the active element in a document or shadow root.\n * If the active element is within a shadow root, it will traverse the shadow root\n * to find the active element.\n * If not, it will return the active element in the document.\n *\n * @param document A document or shadow root to get the active element from.\n * @returns The active element in the document or shadow root.\n */\nexport function getActiveElement(document) {\n let activeElement = document.activeElement;\n while (activeElement?.shadowRoot) {\n const node = activeElement.shadowRoot.activeElement;\n if (node === activeElement)\n break;\n else\n activeElement = node;\n }\n return activeElement;\n}\n/**\n * Returns the owner document of a given element.\n *\n * @param node The element to get the owner document from.\n * @returns\n */\nexport function getOwnerDocument(node, fallback = defaultDocument) {\n return node?.ownerDocument ?? fallback;\n}\n/**\n * Checks if an element is or is contained by another element.\n *\n * @param node The element to check if it or its descendants contain the target element.\n * @param target The element to check if it is contained by the node.\n * @returns\n */\nexport function isOrContainsTarget(node, target) {\n return node === target || node.contains(target);\n}\n", "import { defaultWindow, } from \"../../internal/configurable-globals.js\";\nimport { getActiveElement } from \"../../internal/utils/dom.js\";\nimport { on } from \"svelte/events\";\nimport { createSubscriber } from \"svelte/reactivity\";\nexport class ActiveElement {\n #document;\n #subscribe;\n constructor(options = {}) {\n const { window = defaultWindow, document = window?.document } = options;\n if (window === undefined)\n return;\n this.#document = document;\n this.#subscribe = createSubscriber((update) => {\n const cleanupFocusIn = on(window, \"focusin\", update);\n const cleanupFocusOut = on(window, \"focusout\", update);\n return () => {\n cleanupFocusIn();\n cleanupFocusOut();\n };\n });\n }\n get current() {\n this.#subscribe?.();\n if (!this.#document)\n return null;\n return getActiveElement(this.#document);\n }\n}\n/**\n * An object holding a reactive value that is equal to `document.activeElement`.\n * It automatically listens for changes, keeping the reference up to date.\n *\n * If you wish to use a custom document or shadowRoot, you should use\n * [useActiveElement](https://runed.dev/docs/utilities/active-element) instead.\n *\n * @see {@link https://runed.dev/docs/utilities/active-element}\n */\nexport const activeElement = new ActiveElement();\n", "export function isFunction(value) {\n return typeof value === \"function\";\n}\nexport function isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nexport function isElement(value) {\n return value instanceof Element;\n}\n", "import { isFunction } from \"../../internal/utils/is.js\";\nexport function extract(value, defaultValue) {\n if (isFunction(value)) {\n const getter = value;\n const gotten = getter();\n if (gotten === undefined)\n return defaultValue;\n return gotten;\n }\n if (value === undefined)\n return defaultValue;\n return value;\n}\n", "import { getContext, hasContext, setContext } from \"svelte\";\nexport class Context {\n #name;\n #key;\n /**\n * @param name The name of the context.\n * This is used for generating the context key and error messages.\n */\n constructor(name) {\n this.#name = name;\n this.#key = Symbol(name);\n }\n /**\n * The key used to get and set the context.\n *\n * It is not recommended to use this value directly.\n * Instead, use the methods provided by this class.\n */\n get key() {\n return this.#key;\n }\n /**\n * Checks whether this has been set in the context of a parent component.\n *\n * Must be called during component initialisation.\n */\n exists() {\n return hasContext(this.#key);\n }\n /**\n * Retrieves the context that belongs to the closest parent component.\n *\n * Must be called during component initialisation.\n *\n * @throws An error if the context does not exist.\n */\n get() {\n const context = getContext(this.#key);\n if (context === undefined) {\n throw new Error(`Context \"${this.#name}\" not found`);\n }\n return context;\n }\n /**\n * Retrieves the context that belongs to the closest parent component,\n * or the given fallback value if the context does not exist.\n *\n * Must be called during component initialisation.\n */\n getOr(fallback) {\n const context = getContext(this.#key);\n if (context === undefined) {\n return fallback;\n }\n return context;\n }\n /**\n * Associates the given value with the current component and returns it.\n *\n * Must be called during component initialisation.\n */\n set(context) {\n return setContext(this.#key, context);\n }\n}\n", "import { extract } from \"../extract/extract.svelte.js\";\n/**\n * Function that takes a callback, and returns a debounced version of it.\n * When calling the debounced function, it will wait for the specified time\n * before calling the original callback. If the debounced function is called\n * again before the time has passed, the timer will be reset.\n *\n * You can await the debounced function to get the value when it is eventually\n * called.\n *\n * The second parameter is the time to wait before calling the original callback.\n * Alternatively, it can also be a getter function that returns the time to wait.\n *\n * @see {@link https://runed.dev/docs/utilities/use-debounce}\n *\n * @param callback The callback to call when the time has passed.\n * @param wait The length of time to wait in ms, defaults to 250.\n */\nexport function useDebounce(callback, wait) {\n let context = $state(null);\n const wait$ = $derived(extract(wait, 250));\n function debounced(...args) {\n if (context) {\n // Old context will be reused so callers awaiting the promise will get the\n // new value\n if (context.timeout) {\n clearTimeout(context.timeout);\n }\n }\n else {\n // No old context, create a new one\n let resolve;\n let reject;\n const promise = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n context = {\n timeout: null,\n runner: null,\n promise,\n resolve: resolve,\n reject: reject,\n };\n }\n context.runner = async () => {\n // Grab the context and reset it\n // -> new debounced calls will create a new context\n if (!context)\n return;\n const ctx = context;\n context = null;\n try {\n ctx.resolve(await callback.apply(this, args));\n }\n catch (error) {\n ctx.reject(error);\n }\n };\n context.timeout = setTimeout(context.runner, wait$);\n return context.promise;\n }\n debounced.cancel = async () => {\n if (!context || context.timeout === null) {\n // Wait one event loop to see if something triggered the debounced function\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (!context || context.timeout === null)\n return;\n }\n clearTimeout(context.timeout);\n context.reject(\"Cancelled\");\n context = null;\n };\n debounced.runScheduledNow = async () => {\n if (!context || !context.timeout) {\n // Wait one event loop to see if something triggered the debounced function\n await new Promise((resolve) => setTimeout(resolve, 0));\n if (!context || !context.timeout)\n return;\n }\n clearTimeout(context.timeout);\n context.timeout = null;\n await context.runner?.();\n };\n Object.defineProperty(debounced, \"pending\", {\n enumerable: true,\n get() {\n return !!context?.timeout;\n },\n });\n return debounced;\n}\n", "import { untrack } from \"svelte\";\nfunction runEffect(flush, effect) {\n switch (flush) {\n case \"post\":\n $effect(effect);\n break;\n case \"pre\":\n $effect.pre(effect);\n break;\n }\n}\nfunction runWatcher(sources, flush, effect, options = {}) {\n const { lazy = false } = options;\n // Run the effect immediately if `lazy` is `false`.\n let active = !lazy;\n // On the first run, if the dependencies are an array, pass an empty array\n // to the previous value instead of `undefined` to allow destructuring.\n //\n // watch(() => [a, b], ([a, b], [prevA, prevB]) => { ... });\n let previousValues = Array.isArray(sources)\n ? []\n : undefined;\n runEffect(flush, () => {\n const values = Array.isArray(sources) ? sources.map((source) => source()) : sources();\n if (!active) {\n active = true;\n previousValues = values;\n return;\n }\n const cleanup = untrack(() => effect(values, previousValues));\n previousValues = values;\n return cleanup;\n });\n}\nfunction runWatcherOnce(sources, flush, effect) {\n const cleanupRoot = $effect.root(() => {\n let stop = false;\n runWatcher(sources, flush, (values, previousValues) => {\n if (stop) {\n cleanupRoot();\n return;\n }\n // Since `lazy` is `true`, `previousValues` is always defined.\n const cleanup = effect(values, previousValues);\n stop = true;\n return cleanup;\n }, \n // Running the effect immediately just once makes no sense at all.\n // That's just `onMount` with extra steps.\n { lazy: true });\n });\n $effect(() => {\n return cleanupRoot;\n });\n}\nexport function watch(sources, effect, options) {\n runWatcher(sources, \"post\", effect, options);\n}\nfunction watchPre(sources, effect, options) {\n runWatcher(sources, \"pre\", effect, options);\n}\nwatch.pre = watchPre;\nexport function watchOnce(source, effect) {\n runWatcherOnce(source, \"post\", effect);\n}\nfunction watchOncePre(source, effect) {\n runWatcherOnce(source, \"pre\", effect);\n}\nwatchOnce.pre = watchOncePre;\n", "import { isFunction } from \"./is.js\";\nexport function get(value) {\n if (isFunction(value)) {\n return value();\n }\n return value;\n}\n", "import { defaultWindow } from \"../../internal/configurable-globals.js\";\nimport { get } from \"../../internal/utils/get.js\";\nimport { createSubscriber } from \"svelte/reactivity\";\n/**\n * Returns a reactive value holding the size of `node`.\n *\n * Accepts an `options` object with the following properties:\n * - `initialSize`: The initial size of the element. Defaults to `{ width: 0, height: 0 }`.\n * - `box`: The box model to use. Can be either `\"content-box\"` or `\"border-box\"`. Defaults to `\"border-box\"`.\n *\n * @returns an object with `width` and `height` properties.\n *\n * @see {@link https://runed.dev/docs/utilities/element-size}\n */\nexport class ElementSize {\n // no need to use `$state` here since we are using createSubscriber\n #size = {\n width: 0,\n height: 0,\n };\n #observed = false;\n #options;\n #node;\n #window;\n // we use a derived here to extract the width so that if the width doesn't change we don't get a state update\n // which we would get if we would just use a getter since the version of the subscriber will be changing\n #width = $derived.by(() => {\n this.#subscribe?.();\n return this.getSize().width;\n });\n // we use a derived here to extract the height so that if the height doesn't change we don't get a state update\n // which we would get if we would just use a getter since the version of the subscriber will be changing\n #height = $derived.by(() => {\n this.#subscribe?.();\n return this.getSize().height;\n });\n // we need to use a derived here because the class will be created before the node is bound to the ref\n #subscribe = $derived.by(() => {\n const node$ = get(this.#node);\n if (!node$)\n return;\n return createSubscriber((update) => {\n if (!this.#window)\n return;\n const observer = new this.#window.ResizeObserver((entries) => {\n this.#observed = true;\n for (const entry of entries) {\n const boxSize = this.#options.box === \"content-box\" ? entry.contentBoxSize : entry.borderBoxSize;\n const boxSizeArr = Array.isArray(boxSize) ? boxSize : [boxSize];\n this.#size.width = boxSizeArr.reduce((acc, size) => Math.max(acc, size.inlineSize), 0);\n this.#size.height = boxSizeArr.reduce((acc, size) => Math.max(acc, size.blockSize), 0);\n }\n update();\n });\n observer.observe(node$);\n return () => {\n this.#observed = false;\n observer.disconnect();\n };\n });\n });\n constructor(node, options = { box: \"border-box\" }) {\n this.#window = options.window ?? defaultWindow;\n this.#options = options;\n this.#node = node;\n this.#size = {\n width: 0,\n height: 0,\n };\n }\n calculateSize() {\n const element = get(this.#node);\n // no element or no window, return undefined, we will return 0x0 in the getSize method\n if (!element || !this.#window) {\n return;\n }\n const offsetWidth = element.offsetWidth;\n const offsetHeight = element.offsetHeight;\n // easy mode, just return offsets\n if (this.#options.box === \"border-box\") {\n return {\n width: offsetWidth,\n height: offsetHeight,\n };\n }\n // hard mode, we need to calculate the content size\n const style = this.#window.getComputedStyle(element);\n const paddingWidth = parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n const paddingHeight = parseFloat(style.paddingTop) + parseFloat(style.paddingBottom);\n const borderWidth = parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n const borderHeight = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n const contentWidth = offsetWidth - paddingWidth - borderWidth;\n const contentHeight = offsetHeight - paddingHeight - borderHeight;\n return {\n width: contentWidth,\n height: contentHeight,\n };\n }\n getSize() {\n // if the resize observer already run we can just return the size\n // otherwise we calculate the size if possible or we return the initial size\n return this.#observed ? this.#size : (this.calculateSize() ?? this.#size);\n }\n get current() {\n this.#subscribe?.();\n return this.getSize();\n }\n get width() {\n return this.#width;\n }\n get height() {\n return this.#height;\n }\n}\n", "import { untrack } from \"svelte\";\n/**\n * Returns an object with the mounted state of the component\n * that invokes this function.\n *\n * @see {@link https://runed.dev/docs/utilities/is-mounted}\n */\nexport class IsMounted {\n #isMounted = $state(false);\n constructor() {\n $effect(() => {\n untrack(() => (this.#isMounted = true));\n return () => {\n this.#isMounted = false;\n };\n });\n }\n get current() {\n return this.#isMounted;\n }\n}\n", "/**\n * Holds the previous value of a getter.\n *\n * @see {@link https://runed.dev/docs/utilities/previous}\n */\nexport class Previous {\n #previousCallback = () => undefined;\n #previous = $derived.by(() => this.#previousCallback());\n constructor(getter, initialValue) {\n let actualPrevious = undefined;\n if (initialValue !== undefined)\n actualPrevious = initialValue;\n this.#previousCallback = () => {\n try {\n return actualPrevious;\n }\n finally {\n actualPrevious = getter();\n }\n };\n }\n get current() {\n return this.#previous;\n }\n}\n", "import { watch } from \"../watch/index.js\";\n// Helper functions for debounce and throttle\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction debounce(fn, delay) {\n let timeoutId;\n let lastResolve = null;\n return (...args) => {\n return new Promise((resolve) => {\n if (lastResolve) {\n lastResolve(undefined);\n }\n lastResolve = resolve;\n clearTimeout(timeoutId);\n timeoutId = setTimeout(async () => {\n const result = await fn(...args);\n if (lastResolve) {\n lastResolve(result);\n lastResolve = null;\n }\n }, delay);\n });\n };\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction throttle(fn, delay) {\n let lastRun = 0;\n let lastPromise = null;\n return (...args) => {\n const now = Date.now();\n if (lastRun && now - lastRun < delay) {\n return lastPromise ?? Promise.resolve(undefined);\n }\n lastRun = now;\n lastPromise = fn(...args);\n return lastPromise;\n };\n}\nfunction runResource(source, fetcher, options = {}, effectFn) {\n const { lazy = false, once = false, initialValue, debounce: debounceTime, throttle: throttleTime, } = options;\n // Create state\n let current = $state(initialValue);\n let loading = $state(false);\n let error = $state(undefined);\n let cleanupFns = $state([]);\n // Helper function to run cleanup functions\n const runCleanup = () => {\n cleanupFns.forEach((fn) => fn());\n cleanupFns = [];\n };\n // Helper function to register cleanup\n const onCleanup = (fn) => {\n cleanupFns = [...cleanupFns, fn];\n };\n // Create the base fetcher function\n const baseFetcher = async (value, previousValue, refetching = false) => {\n try {\n loading = true;\n error = undefined;\n runCleanup();\n // Create new AbortController for this fetch\n const controller = new AbortController();\n onCleanup(() => controller.abort());\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const result = await fetcher(value, previousValue, {\n data: current,\n refetching,\n onCleanup,\n signal: controller.signal,\n });\n current = result;\n return result;\n }\n catch (e) {\n if (!(e instanceof DOMException && e.name === \"AbortError\")) {\n error = e;\n }\n return undefined;\n }\n finally {\n loading = false;\n }\n };\n // Apply debounce or throttle if specified\n const runFetcher = debounceTime\n ? debounce(baseFetcher, debounceTime)\n : throttleTime\n ? throttle(baseFetcher, throttleTime)\n : baseFetcher;\n // Setup effect\n const sources = Array.isArray(source) ? source : [source];\n let prevValues;\n effectFn((values, previousValues) => {\n // Skip if once and already ran\n if (once && prevValues) {\n return;\n }\n prevValues = values;\n runFetcher(Array.isArray(source) ? values : values[0], Array.isArray(source) ? previousValues : previousValues?.[0]);\n }, { lazy });\n return {\n get current() {\n return current;\n },\n get loading() {\n return loading;\n },\n get error() {\n return error;\n },\n mutate: (value) => {\n current = value;\n },\n refetch: (info) => {\n const values = sources.map((s) => s());\n return runFetcher(Array.isArray(source) ? values : values[0], Array.isArray(source) ? values : values[0], info ?? true);\n },\n };\n}\n// Implementation\nexport function resource(source, fetcher, options) {\n return runResource(source, fetcher, options, (fn, options) => {\n const sources = Array.isArray(source) ? source : [source];\n const getters = () => sources.map((s) => s());\n watch(getters, (values, previousValues) => {\n fn(values, previousValues ?? []);\n }, options);\n });\n}\n// Implementation\nexport function resourcePre(source, fetcher, options) {\n return runResource(source, fetcher, options, (fn, options) => {\n const sources = Array.isArray(source) ? source : [source];\n const getter = () => sources.map((s) => s());\n watch.pre(getter, (values, previousValues) => {\n fn(values, previousValues ?? []);\n }, options);\n });\n}\nresource.pre = resourcePre;\n", "export function onDestroyEffect(fn) {\n $effect(() => {\n return () => {\n fn();\n };\n });\n}\n", "import { untrack } from \"svelte\";\nexport function onMountEffect(fn) {\n $effect(() => {\n const cleanup = untrack(() => fn());\n return cleanup;\n });\n}\n", "/**\n * A utility function that executes a callback after a specified number of milliseconds.\n */\nexport function afterSleep(ms, cb) {\n return setTimeout(cb, ms);\n}\n", "import { tick } from \"svelte\";\nexport function afterTick(fn) {\n tick().then(fn);\n}\n", "import { isObject } from \"./is.js\";\nconst ELEMENT_NODE = 1;\nconst DOCUMENT_NODE = 9;\nconst DOCUMENT_FRAGMENT_NODE = 11;\nexport function isHTMLElement(node) {\n return isObject(node) && node.nodeType === ELEMENT_NODE && typeof node.nodeName === \"string\";\n}\nexport function isDocument(node) {\n return isObject(node) && node.nodeType === DOCUMENT_NODE;\n}\nexport function isWindow(node) {\n return isObject(node) && node.constructor?.name === \"VisualViewport\";\n}\nexport function getNodeName(node) {\n if (isHTMLElement(node))\n return node.localName ?? \"\";\n return \"#document\";\n}\nexport function isNode(node) {\n return isObject(node) && node.nodeType !== undefined;\n}\nexport function isShadowRoot(node) {\n return isNode(node) && node.nodeType === DOCUMENT_FRAGMENT_NODE && \"host\" in node;\n}\nexport function contains(parent, child) {\n if (!parent || !child)\n return false;\n if (!isHTMLElement(parent) || !isHTMLElement(child))\n return false;\n const rootNode = child.getRootNode?.();\n if (parent === child)\n return true;\n if (parent.contains(child))\n return true;\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next)\n return true;\n // @ts-expect-error - host is not typed\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nexport function getDocument(node) {\n if (isDocument(node))\n return node;\n if (isWindow(node))\n return node.document;\n return node?.ownerDocument ?? document;\n}\nexport function getDocumentElement(node) {\n return getDocument(node).documentElement;\n}\nexport function getWindow(node) {\n if (isShadowRoot(node))\n return getWindow(node.host);\n if (isDocument(node))\n return node.defaultView ?? window;\n if (isHTMLElement(node))\n return node.ownerDocument?.defaultView ?? window;\n return window;\n}\nexport function getActiveElement(rootNode) {\n let activeElement = rootNode.activeElement;\n while (activeElement?.shadowRoot) {\n const el = activeElement.shadowRoot.activeElement;\n if (el === activeElement)\n break;\n else\n activeElement = el;\n }\n return activeElement;\n}\nexport function getParentNode(node) {\n if (getNodeName(node) === \"html\")\n return node;\n const result = \n // @ts-expect-error - assignedSlot is not typed\n node.assignedSlot ||\n node.parentNode ||\n (isShadowRoot(node) && node.host) ||\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\n", "import { boxWith } from \"../box/box-extras.svelte.js\";\nimport { getActiveElement, getDocument } from \"./dom.js\";\nexport class DOMContext {\n element;\n root = $derived.by(() => {\n if (!this.element.current)\n return document;\n const rootNode = this.element.current.getRootNode() ?? document;\n return rootNode;\n });\n constructor(element) {\n if (typeof element === \"function\") {\n this.element = boxWith(element);\n }\n else {\n this.element = element;\n }\n }\n getDocument = () => {\n return getDocument(this.root);\n };\n getWindow = () => {\n return this.getDocument().defaultView ?? window;\n };\n getActiveElement = () => {\n return getActiveElement(this.root);\n };\n isActiveElement = (node) => {\n return node === this.getActiveElement();\n };\n getElementById(id) {\n return this.root.getElementById(id);\n }\n querySelector = (selector) => {\n if (!this.root)\n return null;\n return this.root.querySelector(selector);\n };\n querySelectorAll = (selector) => {\n if (!this.root)\n return [];\n return this.root.querySelectorAll(selector);\n };\n setTimeout = (callback, delay) => {\n return this.getWindow().setTimeout(callback, delay);\n };\n clearTimeout = (timeoutId) => {\n return this.getWindow().clearTimeout(timeoutId);\n };\n}\n", "import { untrack } from \"svelte\";\nimport { isBox } from \"../box/box-extras.svelte.js\";\nimport { createAttachmentKey } from \"svelte/attachments\";\n/**\n * Creates a Svelte Attachment that attaches a DOM element to a ref.\n * The ref can be either a WritableBox or a callback function.\n *\n * @param ref - Either a WritableBox to store the element in, or a callback function that receives the element\n * @param onChange - Optional callback that fires when the ref changes\n * @returns An object with a spreadable attachment key that should be spread onto the element\n *\n * @example\n * // Using with WritableBox\n * const ref = box<HTMLDivElement | null>(null);\n * <div {...attachRef(ref)}>Content</div>\n *\n * @example\n * // Using with callback\n * <div {...attachRef((node) => myNode = node)}>Content</div>\n *\n * @example\n * // Using with onChange\n * <div {...attachRef(ref, (node) => console.log(node))}>Content</div>\n */\nexport function attachRef(ref, onChange) {\n return {\n [createAttachmentKey()]: (node) => {\n if (isBox(ref)) {\n ref.current = node;\n untrack(() => onChange?.(node));\n return () => {\n // we don't want to detach the node if it's still connected\n if (\"isConnected\" in node && node.isConnected)\n return;\n ref.current = null;\n onChange?.(null);\n };\n }\n ref(node);\n untrack(() => onChange?.(node));\n return () => {\n // we don't want to detach the node if it's still connected\n if (\"isConnected\" in node && node.isConnected)\n return;\n ref(null);\n onChange?.(null);\n };\n }\n };\n}\n", "export function boolToStr(condition) {\n return condition ? \"true\" : \"false\";\n}\nexport function boolToStrTrueOrUndef(condition) {\n return condition ? \"true\" : undefined;\n}\nexport function boolToEmptyStrOrUndef(condition) {\n return condition ? \"\" : undefined;\n}\nexport function boolToTrueOrUndef(condition) {\n return condition ? true : undefined;\n}\nexport function getDataOpenClosed(condition) {\n return condition ? \"open\" : \"closed\";\n}\nexport function getDataChecked(condition) {\n return condition ? \"checked\" : \"unchecked\";\n}\nexport function getAriaChecked(checked, indeterminate) {\n if (indeterminate) {\n return \"mixed\";\n }\n return checked ? \"true\" : \"false\";\n}\nexport class BitsAttrs {\n #variant;\n #prefix;\n attrs;\n constructor(config) {\n this.#variant = config.getVariant ? config.getVariant() : null;\n this.#prefix = this.#variant ? `data-${this.#variant}-` : `data-${config.component}-`;\n this.getAttr = this.getAttr.bind(this);\n this.selector = this.selector.bind(this);\n this.attrs = Object.fromEntries(config.parts.map((part) => [part, this.getAttr(part)]));\n }\n getAttr(part, variantOverride) {\n if (variantOverride)\n return `data-${variantOverride}-${part}`;\n return `${this.#prefix}${part}`;\n }\n selector(part, variantOverride) {\n return `[${this.getAttr(part, variantOverride)}]`;\n }\n}\nexport function createBitsAttrs(config) {\n const bitsAttrs = new BitsAttrs(config);\n return {\n ...bitsAttrs.attrs,\n selector: bitsAttrs.selector,\n getAttr: bitsAttrs.getAttr,\n };\n}\n", "export const ALT = \"Alt\";\nexport const ARROW_DOWN = \"ArrowDown\";\nexport const ARROW_LEFT = \"ArrowLeft\";\nexport const ARROW_RIGHT = \"ArrowRight\";\nexport const ARROW_UP = \"ArrowUp\";\nexport const BACKSPACE = \"Backspace\";\nexport const CAPS_LOCK = \"CapsLock\";\nexport const CONTROL = \"Control\";\nexport const DELETE = \"Delete\";\nexport const END = \"End\";\nexport const ENTER = \"Enter\";\nexport const ESCAPE = \"Escape\";\nexport const F1 = \"F1\";\nexport const F10 = \"F10\";\nexport const F11 = \"F11\";\nexport const F12 = \"F12\";\nexport const F2 = \"F2\";\nexport const F3 = \"F3\";\nexport const F4 = \"F4\";\nexport const F5 = \"F5\";\nexport const F6 = \"F6\";\nexport const F7 = \"F7\";\nexport const F8 = \"F8\";\nexport const F9 = \"F9\";\nexport const HOME = \"Home\";\nexport const META = \"Meta\";\nexport const PAGE_DOWN = \"PageDown\";\nexport const PAGE_UP = \"PageUp\";\nexport const SHIFT = \"Shift\";\nexport const SPACE = \" \";\nexport const TAB = \"Tab\";\nexport const CTRL = \"Control\";\nexport const ASTERISK = \"*\";\nexport const a = \"a\";\nexport const P = \"P\";\nexport const A = \"A\";\nexport const p = \"p\";\nexport const n = \"n\";\nexport const j = \"j\";\nexport const k = \"k\";\nexport const h = \"h\";\nexport const l = \"l\";\n", "/**\n * Detects the text direction in the element.\n * @returns {Direction} The text direction ('ltr' for left-to-right or 'rtl' for right-to-left).\n */\nexport function getElemDirection(elem) {\n const style = window.getComputedStyle(elem);\n const direction = style.getPropertyValue(\"direction\");\n return direction;\n}\n", "import { kbd } from \"./kbd.js\";\nexport const FIRST_KEYS = [kbd.ARROW_DOWN, kbd.PAGE_UP, kbd.HOME];\nexport const LAST_KEYS = [kbd.ARROW_UP, kbd.PAGE_DOWN, kbd.END];\nexport const FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nexport const SELECTION_KEYS = [kbd.SPACE, kbd.ENTER];\n/**\n * A utility function that returns the next key based on the direction and orientation.\n */\nexport function getNextKey(dir = \"ltr\", orientation = \"horizontal\") {\n return {\n horizontal: dir === \"rtl\" ? kbd.ARROW_LEFT : kbd.ARROW_RIGHT,\n vertical: kbd.ARROW_DOWN,\n }[orientation];\n}\n/**\n * A utility function that returns the previous key based on the direction and orientation.\n */\nexport function getPrevKey(dir = \"ltr\", orientation = \"horizontal\") {\n return {\n horizontal: dir === \"rtl\" ? kbd.ARROW_RIGHT : kbd.ARROW_LEFT,\n vertical: kbd.ARROW_UP,\n }[orientation];\n}\n/**\n * A utility function that returns the next and previous keys based on the direction\n * and orientation.\n */\nexport function getDirectionalKeys(dir = \"ltr\", orientation = \"horizontal\") {\n if (![\"ltr\", \"rtl\"].includes(dir))\n dir = \"ltr\";\n if (![\"horizontal\", \"vertical\"].includes(orientation))\n orientation = \"horizontal\";\n return {\n nextKey: getNextKey(dir, orientation),\n prevKey: getPrevKey(dir, orientation),\n };\n}\n", "export const isBrowser = typeof document !== \"undefined\";\nexport const isIOS = getIsIOS();\nfunction getIsIOS() {\n return (isBrowser &&\n window?.navigator?.userAgent &&\n (/iP(ad|hone|od)/.test(window.navigator.userAgent) ||\n // The new iPad Pro Gen3 does not identify itself as iPad, but as Macintosh.\n (window?.navigator?.maxTouchPoints > 2 &&\n /iPad|Macintosh/.test(window?.navigator.userAgent))));\n}\nexport function isFunction(value) {\n return typeof value === \"function\";\n}\nexport function isHTMLElement(element) {\n return element instanceof HTMLElement;\n}\nexport function isElement(element) {\n return element instanceof Element;\n}\nexport function isElementOrSVGElement(element) {\n return element instanceof Element || element instanceof SVGElement;\n}\nexport function isNumberString(value) {\n return !Number.isNaN(Number(value)) && !Number.isNaN(Number.parseFloat(value));\n}\nexport function isNull(value) {\n return value === null;\n}\nexport function isTouch(e) {\n return e.pointerType === \"touch\";\n}\nexport function isFocusVisible(element) {\n return element.matches(\":focus-visible\");\n}\nexport function isNotNull(value) {\n return value !== null;\n}\n/**\n * Determines if the provided object is a valid `HTMLInputElement` with\n * a `select` method available.\n */\nexport function isSelectableInput(element) {\n return element instanceof HTMLInputElement && \"select\" in element;\n}\n/**\n * Given a node, determine if it is hidden by walking up the\n * DOM tree until we hit the `stopAt` node (exclusive), if provided)\n * otherwise we stop at the document root.\n */\nexport function isElementHidden(node, stopAt) {\n if (getComputedStyle(node).visibility === \"hidden\")\n return true;\n while (node) {\n // we stop at `upTo` (excluding it)\n if (stopAt !== undefined && node === stopAt)\n return false;\n if (getComputedStyle(node).display === \"none\")\n return true;\n node = node.parentElement;\n }\n return false;\n}\n", "import { box } from \"svelte-toolbelt\";\nimport { getElemDirection } from \"./locale.js\";\nimport { getDirectionalKeys } from \"./get-directional-keys.js\";\nimport { kbd } from \"./kbd.js\";\nimport { BROWSER } from \"esm-env\";\nimport { isHTMLElement } from \"./is.js\";\nexport class RovingFocusGroup {\n #opts;\n #currentTabStopId = box(null);\n constructor(opts) {\n this.#opts = opts;\n }\n getCandidateNodes() {\n if (!BROWSER || !this.#opts.rootNode.current)\n return [];\n if (this.#opts.candidateSelector) {\n const candidates = Array.from(this.#opts.rootNode.current.querySelectorAll(this.#opts.candidateSelector));\n return candidates;\n }\n else if (this.#opts.candidateAttr) {\n const candidates = Array.from(this.#opts.rootNode.current.querySelectorAll(`[${this.#opts.candidateAttr}]:not([data-disabled])`));\n return candidates;\n }\n return [];\n }\n focusFirstCandidate() {\n const items = this.getCandidateNodes();\n if (!items.length)\n return;\n items[0]?.focus();\n }\n handleKeydown(node, e, both = false) {\n const rootNode = this.#opts.rootNode.current;\n if (!rootNode || !node)\n return;\n const items = this.getCandidateNodes();\n if (!items.length)\n return;\n const currentIndex = items.indexOf(node);\n const dir = getElemDirection(rootNode);\n const { nextKey, prevKey } = getDirectionalKeys(dir, this.#opts.orientation.current);\n const loop = this.#opts.loop.current;\n const keyToIndex = {\n [nextKey]: currentIndex + 1,\n [prevKey]: currentIndex - 1,\n [kbd.HOME]: 0,\n [kbd.END]: items.length - 1,\n };\n if (both) {\n const altNextKey = nextKey === kbd.ARROW_DOWN ? kbd.ARROW_RIGHT : kbd.ARROW_DOWN;\n const altPrevKey = prevKey === kbd.ARROW_UP ? kbd.ARROW_LEFT : kbd.ARROW_UP;\n keyToIndex[altNextKey] = currentIndex + 1;\n keyToIndex[altPrevKey] = currentIndex - 1;\n }\n let itemIndex = keyToIndex[e.key];\n if (itemIndex === undefined)\n return;\n e.preventDefault();\n if (itemIndex < 0 && loop) {\n itemIndex = items.length - 1;\n }\n else if (itemIndex === items.length && loop) {\n itemIndex = 0;\n }\n const itemToFocus = items[itemIndex];\n if (!itemToFocus)\n return;\n itemToFocus.focus();\n this.#currentTabStopId.current = itemToFocus.id;\n this.#opts.onCandidateFocus?.(itemToFocus);\n return itemToFocus;\n }\n getTabIndex(node) {\n const items = this.getCandidateNodes();\n const anyActive = this.#currentTabStopId.current !== null;\n if (node && !anyActive && items[0] === node) {\n this.#currentTabStopId.current = node.id;\n return 0;\n }\n else if (node?.id === this.#currentTabStopId.current) {\n return 0;\n }\n return -1;\n }\n setCurrentTabStopId(id) {\n this.#currentTabStopId.current = id;\n }\n focusCurrentTabStop() {\n const currentTabStopId = this.#currentTabStopId.current;\n if (!currentTabStopId)\n return;\n const currentTabStop = this.#opts.rootNode.current?.querySelector(`#${currentTabStopId}`);\n if (!currentTabStop || !isHTMLElement(currentTabStop))\n return;\n currentTabStop.focus();\n }\n}\n", "import { afterTick, onDestroyEffect } from \"svelte-toolbelt\";\nexport class AnimationsComplete {\n #opts;\n #currentFrame = null;\n constructor(opts) {\n this.#opts = opts;\n onDestroyEffect(() => this.#cleanup());\n }\n #cleanup() {\n if (!this.#currentFrame)\n return;\n window.cancelAnimationFrame(this.#currentFrame);\n this.#currentFrame = null;\n }\n run(fn) {\n // if already running, cleanup and restart\n this.#cleanup();\n const node = this.#opts.ref.current;\n if (!node)\n return;\n if (typeof node.getAnimations !== \"function\") {\n this.#executeCallback(fn);\n return;\n }\n this.#currentFrame = window.requestAnimationFrame(() => {\n const animations = node.getAnimations();\n if (animations.length === 0) {\n this.#executeCallback(fn);\n return;\n }\n Promise.allSettled(animations.map((animation) => animation.finished)).then(() => {\n this.#executeCallback(fn);\n });\n });\n }\n #executeCallback(fn) {\n const execute = () => {\n fn();\n };\n if (this.#opts.afterTick) {\n afterTick(execute);\n }\n else {\n execute();\n }\n }\n}\n", "import { watch } from \"runed\";\nimport { AnimationsComplete } from \"./animations-complete.js\";\nexport class PresenceManager {\n #opts;\n #enabled;\n #afterAnimations;\n #shouldRender = $state(false);\n constructor(opts) {\n this.#opts = opts;\n this.#shouldRender = opts.open.current;\n this.#enabled = opts.enabled ?? true;\n this.#afterAnimations = new AnimationsComplete({\n ref: this.#opts.ref,\n afterTick: this.#opts.open,\n });\n watch(() => this.#opts.open.current, (isOpen) => {\n if (isOpen)\n this.#shouldRender = true;\n if (!this.#enabled)\n return;\n this.#afterAnimations.run(() => {\n if (isOpen === this.#opts.open.current) {\n if (!this.#opts.open.current) {\n this.#shouldRender = false;\n }\n this.#opts.onComplete?.();\n }\n });\n });\n }\n get shouldRender() {\n return this.#shouldRender;\n }\n}\n", "import { afterTick, attachRef, boxWith, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { boolToStr, boolToEmptyStrOrUndef, getDataOpenClosed } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { createBitsAttrs } from \"../../internal/attrs.js\";\nimport { RovingFocusGroup } from \"../../internal/roving-focus-group.js\";\nimport { on } from \"svelte/events\";\nimport { PresenceManager } from \"../../internal/presence-manager.svelte.js\";\nconst accordionAttrs = createBitsAttrs({\n component: \"accordion\",\n parts: [\"root\", \"trigger\", \"content\", \"item\", \"header\"],\n});\nconst AccordionRootContext = new Context(\"Accordion.Root\");\nconst AccordionItemContext = new Context(\"Accordion.Item\");\nclass AccordionBaseState {\n opts;\n rovingFocusGroup;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.rovingFocusGroup = new RovingFocusGroup({\n rootNode: this.opts.ref,\n candidateAttr: accordionAttrs.trigger,\n loop: this.opts.loop,\n orientation: this.opts.orientation,\n });\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-orientation\": this.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n [accordionAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nclass AccordionSingleState extends AccordionBaseState {\n opts;\n isMulti = false;\n constructor(opts) {\n super(opts);\n this.opts = opts;\n this.includesItem = this.includesItem.bind(this);\n this.toggleItem = this.toggleItem.bind(this);\n }\n includesItem(item) {\n return this.opts.value.current === item;\n }\n toggleItem(item) {\n this.opts.value.current = this.includesItem(item) ? \"\" : item;\n }\n}\nclass AccordionMultiState extends AccordionBaseState {\n #value;\n isMulti = true;\n constructor(props) {\n super(props);\n this.#value = props.value;\n this.includesItem = this.includesItem.bind(this);\n this.toggleItem = this.toggleItem.bind(this);\n }\n includesItem(item) {\n return this.#value.current.includes(item);\n }\n toggleItem(item) {\n this.#value.current = this.includesItem(item)\n ? this.#value.current.filter((v) => v !== item)\n : [...this.#value.current, item];\n }\n}\nexport class AccordionRootState {\n static create(props) {\n const { type, ...rest } = props;\n const rootState = type === \"single\"\n ? new AccordionSingleState(rest)\n : new AccordionMultiState(rest);\n return AccordionRootContext.set(rootState);\n }\n}\nexport class AccordionItemState {\n static create(props) {\n return AccordionItemContext.set(new AccordionItemState({ ...props, rootState: AccordionRootContext.get() }));\n }\n opts;\n root;\n isActive = $derived.by(() => this.root.includesItem(this.opts.value.current));\n isDisabled = $derived.by(() => this.opts.disabled.current || this.root.opts.disabled.current);\n attachment;\n contentNode = $state(null);\n contentPresence;\n constructor(opts) {\n this.opts = opts;\n this.root = opts.rootState;\n this.updateValue = this.updateValue.bind(this);\n this.attachment = attachRef(this.opts.ref);\n this.contentPresence = new PresenceManager({\n ref: boxWith(() => this.contentNode),\n open: boxWith(() => this.isActive),\n });\n }\n updateValue() {\n this.root.toggleItem(this.opts.value.current);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-state\": getDataOpenClosed(this.isActive),\n \"data-disabled\": boolToEmptyStrOrUndef(this.isDisabled),\n \"data-orientation\": this.root.opts.orientation.current,\n [accordionAttrs.item]: \"\",\n ...this.attachment,\n }));\n}\nexport class AccordionTriggerState {\n opts;\n itemState;\n #root;\n #isDisabled = $derived.by(() => this.opts.disabled.current ||\n this.itemState.opts.disabled.current ||\n this.#root.opts.disabled.current);\n attachment;\n constructor(opts, itemState) {\n this.opts = opts;\n this.itemState = itemState;\n this.#root = itemState.root;\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n this.attachment = attachRef(this.opts.ref);\n }\n static create(props) {\n return new AccordionTriggerState(props, AccordionItemContext.get());\n }\n onclick(e) {\n if (this.#isDisabled || e.button !== 0) {\n e.preventDefault();\n return;\n }\n this.itemState.updateValue();\n }\n onkeydown(e) {\n if (this.#isDisabled)\n return;\n if (e.key === kbd.SPACE || e.key === kbd.ENTER) {\n e.preventDefault();\n this.itemState.updateValue();\n return;\n }\n this.#root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n disabled: this.#isDisabled,\n \"aria-expanded\": boolToStr(this.itemState.isActive),\n \"aria-disabled\": boolToStr(this.#isDisabled),\n \"data-disabled\": boolToEmptyStrOrUndef(this.#isDisabled),\n \"data-state\": getDataOpenClosed(this.itemState.isActive),\n \"data-orientation\": this.#root.opts.orientation.current,\n [accordionAttrs.trigger]: \"\",\n tabindex: this.opts.tabindex.current,\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class AccordionContentState {\n opts;\n item;\n attachment;\n #originalStyles = undefined;\n #isMountAnimationPrevented = false;\n #dimensions = $state({ width: 0, height: 0 });\n open = $derived.by(() => {\n if (this.opts.hiddenUntilFound.current)\n return this.item.isActive;\n return this.opts.forceMount.current || this.item.isActive;\n });\n constructor(opts, item) {\n this.opts = opts;\n this.item = item;\n this.#isMountAnimationPrevented = this.item.isActive;\n this.attachment = attachRef(this.opts.ref, (v) => (this.item.contentNode = v));\n // Prevent mount animations on initial render\n $effect(() => {\n const rAF = requestAnimationFrame(() => {\n this.#isMountAnimationPrevented = false;\n });\n return () => cancelAnimationFrame(rAF);\n });\n watch.pre([() => this.opts.ref.current, () => this.opts.hiddenUntilFound.current], ([node, hiddenUntilFound]) => {\n if (!node || !hiddenUntilFound)\n return;\n const handleBeforeMatch = () => {\n if (this.item.isActive)\n return;\n // we need to defer opening until after browser completes search highlighting\n // otherwise the browser will immediately open the accordion\n // and the search highlighting will not be visible\n requestAnimationFrame(() => {\n this.item.updateValue();\n });\n };\n return on(node, \"beforematch\", handleBeforeMatch);\n });\n // Handle dimension updates\n watch([() => this.open, () => this.opts.ref.current], this.#updateDimensions);\n }\n static create(props) {\n return new AccordionContentState(props, AccordionItemContext.get());\n }\n #updateDimensions = ([_, node]) => {\n if (!node)\n return;\n afterTick(() => {\n const element = this.opts.ref.current;\n if (!element)\n return;\n // store original styles on first run\n this.#originalStyles ??= {\n transitionDuration: element.style.transitionDuration,\n animationName: element.style.animationName,\n };\n // temporarily disable animations for measurement\n element.style.transitionDuration = \"0s\";\n element.style.animationName = \"none\";\n const rect = element.getBoundingClientRect();\n this.#dimensions = { width: rect.width, height: rect.height };\n // restore animations if not initial mount\n if (!this.#isMountAnimationPrevented && this.#originalStyles) {\n element.style.transitionDuration = this.#originalStyles.transitionDuration;\n element.style.animationName = this.#originalStyles.animationName;\n }\n });\n };\n get shouldRender() {\n return this.item.contentPresence.shouldRender;\n }\n snippetProps = $derived.by(() => ({ open: this.item.isActive }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-state\": getDataOpenClosed(this.item.isActive),\n \"data-disabled\": boolToEmptyStrOrUndef(this.item.isDisabled),\n \"data-orientation\": this.item.root.opts.orientation.current,\n [accordionAttrs.content]: \"\",\n style: {\n \"--bits-accordion-content-height\": `${this.#dimensions.height}px`,\n \"--bits-accordion-content-width\": `${this.#dimensions.width}px`,\n },\n hidden: this.opts.hiddenUntilFound.current && !this.item.isActive\n ? \"until-found\"\n : undefined,\n ...(this.opts.hiddenUntilFound.current && !this.shouldRender\n ? {}\n : {\n hidden: this.opts.hiddenUntilFound.current\n ? !this.shouldRender\n : this.opts.forceMount.current\n ? undefined\n : !this.shouldRender,\n }),\n ...this.attachment,\n }));\n}\nexport class AccordionHeaderState {\n opts;\n item;\n attachment;\n constructor(opts, item) {\n this.opts = opts;\n this.item = item;\n this.attachment = attachRef(this.opts.ref);\n }\n static create(props) {\n return new AccordionHeaderState(props, AccordionItemContext.get());\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"heading\",\n \"aria-level\": this.opts.level.current,\n \"data-heading-level\": this.opts.level.current,\n \"data-state\": getDataOpenClosed(this.item.isActive),\n \"data-orientation\": this.item.root.opts.orientation.current,\n [accordionAttrs.header]: \"\",\n ...this.attachment,\n }));\n}\n", "/**\n * A no operation function (does nothing)\n */\nexport function noop() { }\n", "export function createId(prefixOrUid, uid) {\n if (uid === undefined)\n return `bits-${prefixOrUid}`;\n return `bits-${prefixOrUid}-${uid}`;\n}\n", "<script lang=\"ts\">\n\timport { type WritableBox, boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { AccordionRootState } from \"../accordion.svelte.js\";\n\timport type { AccordionRootProps } from \"../types.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { watch } from \"runed\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tdisabled = false,\n\t\tchildren,\n\t\tchild,\n\t\ttype,\n\t\tvalue = $bindable(),\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tonValueChange = noop,\n\t\tloop = true,\n\t\torientation = \"vertical\",\n\t\t...restProps\n\t}: AccordionRootProps = $props();\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tvalue = type === \"single\" ? \"\" : [];\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tconst rootState = AccordionRootState.create({\n\t\ttype,\n\t\tvalue: boxWith(\n\t\t\t() => value!,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\t// oxlint-disable-next-line no-explicit-any\n\t\t\t\tonValueChange(v as any);\n\t\t\t}\n\t\t) as WritableBox<string> | WritableBox<string[]>,\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled),\n\t\tloop: boxWith(() => loop),\n\t\torientation: boxWith(() => orientation),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AccordionItemProps } from \"../types.js\";\n\timport { AccordionItemState } from \"../accordion.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\tconst defaultId = createId(uid);\n\n\tlet {\n\t\tid = defaultId,\n\t\tdisabled = false,\n\t\tvalue = defaultId,\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: AccordionItemProps = $props();\n\n\tconst itemState = AccordionItemState.create({\n\t\tvalue: boxWith(() => value),\n\t\tdisabled: boxWith(() => disabled),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, itemState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AccordionHeaderProps } from \"../types.js\";\n\timport { AccordionHeaderState } from \"../accordion.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tlevel = 2,\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: AccordionHeaderProps = $props();\n\n\tconst headerState = AccordionHeaderState.create({\n\t\tid: boxWith(() => id),\n\t\tlevel: boxWith(() => level),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, headerState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AccordionTriggerProps } from \"../types.js\";\n\timport { AccordionTriggerState } from \"../accordion.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tdisabled = false,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\ttabindex = 0,\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: AccordionTriggerProps = $props();\n\n\tconst triggerState = AccordionTriggerState.create({\n\t\tdisabled: boxWith(() => disabled),\n\t\tid: boxWith(() => id),\n\t\ttabindex: boxWith(() => tabindex ?? 0),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button type=\"button\" {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport { mergeProps, boxWith } from \"svelte-toolbelt\";\n\timport { AccordionContentState } from \"../accordion.svelte.js\";\n\timport type { AccordionContentProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tforceMount = false,\n\t\tchildren,\n\t\thiddenUntilFound = false,\n\t\t...restProps\n\t}: AccordionContentProps = $props();\n\n\tconst contentState = AccordionContentState.create({\n\t\tforceMount: boxWith(() => forceMount),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\thiddenUntilFound: boxWith(() => hiddenUntilFound),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if child}\n\t{@render child({\n\t\tprops: mergedProps,\n\t\t...contentState.snippetProps,\n\t})}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/alert-dialog.svelte\";\nexport { default as Title } from \"../dialog/components/dialog-title.svelte\";\nexport { default as Action } from \"./components/alert-dialog-action.svelte\";\nexport { default as Cancel } from \"./components/alert-dialog-cancel.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\nexport { default as Content } from \"./components/alert-dialog-content.svelte\";\nexport { default as Overlay } from \"../dialog/components/dialog-overlay.svelte\";\nexport { default as Trigger } from \"../dialog/components/dialog-trigger.svelte\";\nexport { default as Description } from \"../dialog/components/dialog-description.svelte\";\n", "import { attachRef, boxWith, onDestroyEffect, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { createBitsAttrs, boolToStr, getDataOpenClosed, boolToEmptyStrOrUndef, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { PresenceManager } from \"../../internal/presence-manager.svelte.js\";\nconst dialogAttrs = createBitsAttrs({\n component: \"dialog\",\n parts: [\"content\", \"trigger\", \"overlay\", \"title\", \"description\", \"close\", \"cancel\", \"action\"],\n});\nconst DialogRootContext = new Context(\"Dialog.Root | AlertDialog.Root\");\nexport class DialogRootState {\n static create(opts) {\n const parent = DialogRootContext.getOr(null);\n return DialogRootContext.set(new DialogRootState(opts, parent));\n }\n opts;\n triggerNode = $state(null);\n contentNode = $state(null);\n overlayNode = $state(null);\n descriptionNode = $state(null);\n contentId = $state(undefined);\n titleId = $state(undefined);\n triggerId = $state(undefined);\n descriptionId = $state(undefined);\n cancelNode = $state(null);\n nestedOpenCount = $state(0);\n depth;\n parent;\n contentPresence;\n overlayPresence;\n constructor(opts, parent) {\n this.opts = opts;\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n this.handleOpen = this.handleOpen.bind(this);\n this.handleClose = this.handleClose.bind(this);\n this.contentPresence = new PresenceManager({\n ref: boxWith(() => this.contentNode),\n open: this.opts.open,\n enabled: true,\n onComplete: () => {\n this.opts.onOpenChangeComplete.current(this.opts.open.current);\n },\n });\n this.overlayPresence = new PresenceManager({\n ref: boxWith(() => this.overlayNode),\n open: this.opts.open,\n enabled: true,\n });\n watch(() => this.opts.open.current, (isOpen) => {\n if (!this.parent)\n return;\n if (isOpen) {\n this.parent.incrementNested();\n }\n else {\n this.parent.decrementNested();\n }\n }, { lazy: true });\n onDestroyEffect(() => {\n if (this.opts.open.current) {\n this.parent?.decrementNested();\n }\n });\n }\n handleOpen() {\n if (this.opts.open.current)\n return;\n this.opts.open.current = true;\n }\n handleClose() {\n if (!this.opts.open.current)\n return;\n this.opts.open.current = false;\n }\n getBitsAttr = (part) => {\n return dialogAttrs.getAttr(part, this.opts.variant.current);\n };\n incrementNested() {\n this.nestedOpenCount++;\n this.parent?.incrementNested();\n }\n decrementNested() {\n if (this.nestedOpenCount === 0)\n return;\n this.nestedOpenCount--;\n this.parent?.decrementNested();\n }\n sharedProps = $derived.by(() => ({\n \"data-state\": getDataOpenClosed(this.opts.open.current),\n }));\n}\nexport class DialogTriggerState {\n static create(opts) {\n return new DialogTriggerState(opts, DialogRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => {\n this.root.triggerNode = v;\n this.root.triggerId = v?.id;\n });\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n onclick(e) {\n if (this.opts.disabled.current)\n return;\n if (e.button > 0)\n return;\n this.root.handleOpen();\n }\n onkeydown(e) {\n if (this.opts.disabled.current)\n return;\n if (e.key === kbd.SPACE || e.key === kbd.ENTER) {\n e.preventDefault();\n this.root.handleOpen();\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": boolToStr(this.root.opts.open.current),\n \"aria-controls\": this.root.contentId,\n [this.root.getBitsAttr(\"trigger\")]: \"\",\n onkeydown: this.onkeydown,\n onclick: this.onclick,\n disabled: this.opts.disabled.current ? true : undefined,\n ...this.root.sharedProps,\n ...this.attachment,\n }));\n}\nexport class DialogCloseState {\n static create(opts) {\n return new DialogCloseState(opts, DialogRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n onclick(e) {\n if (this.opts.disabled.current)\n return;\n if (e.button > 0)\n return;\n this.root.handleClose();\n }\n onkeydown(e) {\n if (this.opts.disabled.current)\n return;\n if (e.key === kbd.SPACE || e.key === kbd.ENTER) {\n e.preventDefault();\n this.root.handleClose();\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [this.root.getBitsAttr(this.opts.variant.current)]: \"\",\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n disabled: this.opts.disabled.current ? true : undefined,\n tabindex: 0,\n ...this.root.sharedProps,\n ...this.attachment,\n }));\n}\nexport class DialogActionState {\n static create(opts) {\n return new DialogActionState(opts, DialogRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [this.root.getBitsAttr(\"action\")]: \"\",\n ...this.root.sharedProps,\n ...this.attachment,\n }));\n}\nexport class DialogTitleState {\n static create(opts) {\n return new DialogTitleState(opts, DialogRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.root.titleId = this.opts.id.current;\n this.attachment = attachRef(this.opts.ref);\n watch.pre(() => this.opts.id.current, (id) => {\n this.root.titleId = id;\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"heading\",\n \"aria-level\": this.opts.level.current,\n [this.root.getBitsAttr(\"title\")]: \"\",\n ...this.root.sharedProps,\n ...this.attachment,\n }));\n}\nexport class DialogDescriptionState {\n static create(opts) {\n return new DialogDescriptionState(opts, DialogRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.root.descriptionId = this.opts.id.current;\n this.attachment = attachRef(this.opts.ref, (v) => {\n this.root.descriptionNode = v;\n });\n watch.pre(() => this.opts.id.current, (id) => {\n this.root.descriptionId = id;\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [this.root.getBitsAttr(\"description\")]: \"\",\n ...this.root.sharedProps,\n ...this.attachment,\n }));\n}\nexport class DialogContentState {\n static create(opts) {\n return new DialogContentState(opts, DialogRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => {\n this.root.contentNode = v;\n this.root.contentId = v?.id;\n });\n }\n snippetProps = $derived.by(() => ({ open: this.root.opts.open.current }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: this.root.opts.variant.current === \"alert-dialog\" ? \"alertdialog\" : \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-describedby\": this.root.descriptionId,\n \"aria-labelledby\": this.root.titleId,\n [this.root.getBitsAttr(\"content\")]: \"\",\n style: {\n pointerEvents: \"auto\",\n outline: this.root.opts.variant.current === \"alert-dialog\" ? \"none\" : undefined,\n \"--bits-dialog-depth\": this.root.depth,\n \"--bits-dialog-nested-count\": this.root.nestedOpenCount,\n // CSS containment isolates style/layout calculations from the rest of the page,\n // improving performance when there's a large DOM behind the dialog.\n // Paint is omitted so tooltips/selects can render outside dialog bounds.\n contain: \"layout style\",\n },\n tabindex: this.root.opts.variant.current === \"alert-dialog\" ? -1 : undefined,\n \"data-nested-open\": boolToEmptyStrOrUndef(this.root.nestedOpenCount > 0),\n \"data-nested\": boolToEmptyStrOrUndef(this.root.parent !== null),\n ...this.root.sharedProps,\n ...this.attachment,\n }));\n get shouldRender() {\n return this.root.contentPresence.shouldRender;\n }\n}\nexport class DialogOverlayState {\n static create(opts) {\n return new DialogOverlayState(opts, DialogRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.overlayNode = v));\n }\n snippetProps = $derived.by(() => ({ open: this.root.opts.open.current }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [this.root.getBitsAttr(\"overlay\")]: \"\",\n style: {\n pointerEvents: \"auto\",\n \"--bits-dialog-depth\": this.root.depth,\n \"--bits-dialog-nested-count\": this.root.nestedOpenCount,\n },\n \"data-nested-open\": boolToEmptyStrOrUndef(this.root.nestedOpenCount > 0),\n \"data-nested\": boolToEmptyStrOrUndef(this.root.parent !== null),\n ...this.root.sharedProps,\n ...this.attachment,\n }));\n get shouldRender() {\n return this.root.overlayPresence.shouldRender;\n }\n}\nexport class AlertDialogCancelState {\n static create(opts) {\n return new AlertDialogCancelState(opts, DialogRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.cancelNode = v));\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n onclick(e) {\n if (this.opts.disabled.current)\n return;\n if (e.button > 0)\n return;\n this.root.handleClose();\n }\n onkeydown(e) {\n if (this.opts.disabled.current)\n return;\n if (e.key === kbd.SPACE || e.key === kbd.ENTER) {\n e.preventDefault();\n this.root.handleClose();\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [this.root.getBitsAttr(\"cancel\")]: \"\",\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n tabindex: 0,\n ...this.root.sharedProps,\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { AlertDialogRootProps } from \"../types.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { DialogRootState } from \"../../dialog/dialog.svelte.js\";\n\n\tlet {\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tchildren,\n\t}: AlertDialogRootProps = $props();\n\n\tDialogRootState.create({\n\t\tvariant: boxWith(() => \"alert-dialog\"),\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n</script>\n\n{@render children?.()}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DialogTitleState } from \"../dialog.svelte.js\";\n\timport type { DialogTitleProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\tlevel = 2,\n\t\t...restProps\n\t}: DialogTitleProps = $props();\n\n\tconst titleState = DialogTitleState.create({\n\t\tid: boxWith(() => id),\n\t\tlevel: boxWith(() => level),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, titleState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AlertDialogActionProps } from \"../types.js\";\n\timport { DialogActionState } from \"../../dialog/dialog.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: AlertDialogActionProps = $props();\n\n\tconst actionState = DialogActionState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, actionState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AlertDialogCancelProps } from \"../types.js\";\n\timport { AlertDialogCancelState } from \"../../dialog/dialog.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\tdisabled = false,\n\t\t...restProps\n\t}: AlertDialogCancelProps = $props();\n\n\tconst cancelState = AlertDialogCancelState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, cancelState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport type { Snippet } from \"svelte\";\n\n\tconst { children }: { children?: Snippet } = $props();\n</script>\n\n{#key children}\n\t{@render children?.()}\n{/key}\n", "import { Context } from \"runed\";\nimport { boxWith } from \"svelte-toolbelt\";\nexport const BitsConfigContext = new Context(\"BitsConfig\");\n/**\n * Gets the current Bits UI configuration state from the context.\n *\n * Returns a default configuration (where all values are `undefined`) if no configuration is found.\n */\nexport function getBitsConfig() {\n const fallback = new BitsConfigState(null, {});\n return BitsConfigContext.getOr(fallback).opts;\n}\n/**\n * Creates and sets a new Bits UI configuration state that inherits from parent configs.\n *\n * @param opts - Configuration options for this level\n * @returns The configuration state instance\n *\n * @example\n * ```typescript\n * // In a component that wants to set a default portal target\n * const config = useBitsConfig({ defaultPortalTo: box(\"#some-element\") });\n *\n * // Child components will inherit this config and can override specific values\n * const childConfig = useBitsConfig({ someOtherProp: box(\"value\") });\n * // childConfig still has defaultPortalTo=\"#some-element\" from parent\n * ```\n */\nexport function useBitsConfig(opts) {\n return BitsConfigContext.set(new BitsConfigState(BitsConfigContext.getOr(null), opts));\n}\n/**\n * Configuration state that inherits from parent configurations.\n *\n * @example\n * Config resolution:\n * ```\n * Level 1: { defaultPortalTo: \"#some-element\", theme: \"dark\" }\n * Level 2: { spacing: \"large\" } // inherits defaultPortalTo=\"#some-element\", theme=\"dark\"\n * Level 3: { theme: \"light\" } // inherits defaultPortalTo=\"#some-element\", spacing=\"large\", overrides theme=\"light\"\n * ```\n */\nexport class BitsConfigState {\n opts;\n constructor(parent, opts) {\n const resolveConfigOption = createConfigResolver(parent, opts);\n this.opts = {\n defaultPortalTo: resolveConfigOption((config) => config.defaultPortalTo),\n defaultLocale: resolveConfigOption((config) => config.defaultLocale),\n };\n }\n}\n/**\n * Returns a config resolver that resolves a given config option's value.\n *\n * The resolver creates reactive boxes that resolve config option values using this priority:\n * 1. Current level's value (if defined)\n * 2. Parent level's value (if defined and current is undefined)\n * 3. `undefined` (if no value is found in either parent or child)\n *\n * @param parent - Parent configuration state (null if this is root level)\n * @param currentOpts - Current level's configuration options\n *\n * @example\n * ```typescript\n * // Given this hierarchy:\n * // Root: { defaultPortalTo: \"#some-element\" }\n * // Child: { someOtherProp: \"value\" } // no defaultPortalTo specified\n *\n * const resolveConfigOption = createConfigResolver(parent, opts);\n * const portalTo = resolveConfigOption(config => config.defaultPortalTo);\n *\n * // portalTo.current === \"#some-element\" (inherited from parent)\n * // even when child didn't specify `defaultPortalTo`\n * ```\n */\nfunction createConfigResolver(parent, currentOpts) {\n return (getter) => {\n const configOption = boxWith(() => {\n // try current opts first\n const value = getter(currentOpts)?.current;\n if (value !== undefined)\n return value;\n // if no parent, return undefined\n if (parent === null)\n return undefined;\n // get value from parent (which already has its own chain resolved)\n return getter(parent.opts)?.current;\n });\n return configOption;\n };\n}\n", "import { boxWith } from \"svelte-toolbelt\";\nimport { getBitsConfig } from \"./bits-config.js\";\n/**\n * Creates a generic prop resolver that follows a standard priority chain:\n * 1. The getter's prop value (if defined)\n * 2. The config default value (if no getter prop value is defined)\n * 3. The fallback value (if no config value found)\n */\nfunction createPropResolver(configOption, fallback) {\n return (getProp) => {\n const config = getBitsConfig();\n return boxWith(() => {\n // 1. return the prop's value, if provided\n const propValue = getProp();\n if (propValue !== undefined)\n return propValue;\n // 2. return the resolved config option value, if available\n const option = configOption(config).current;\n if (option !== undefined)\n return option;\n // 3. return the fallback if no other value is found\n return fallback;\n });\n };\n}\n/**\n * Resolves a locale value using the prop, the config default, or a fallback.\n *\n * Default value: `\"en\"`\n */\nexport const resolveLocaleProp = createPropResolver((config) => config.defaultLocale, \"en\");\n/**\n * Resolves a portal's `to` value using the prop, the config default, or a fallback.\n *\n * Default value: `\"body\"`\n */\nexport const resolvePortalToProp = createPropResolver((config) => config.defaultPortalTo, \"body\");\n", "<script lang=\"ts\">\n\timport { getAllContexts, mount, unmount } from \"svelte\";\n\timport { DEV } from \"esm-env\";\n\timport { watch } from \"runed\";\n\timport PortalConsumer from \"./portal-consumer.svelte\";\n\timport type { PortalProps } from \"./types.js\";\n\timport { isBrowser } from \"../../../internal/is.js\";\n\timport { resolvePortalToProp } from \"../config/prop-resolvers.js\";\n\n\tlet { to: toProp, children, disabled }: PortalProps = $props();\n\n\tconst to = resolvePortalToProp(() => toProp);\n\tconst context = getAllContexts();\n\n\tlet target = $derived(getTarget());\n\n\tfunction getTarget() {\n\t\tif (!isBrowser || disabled) return null;\n\n\t\tlet localTarget: Element | null = null;\n\n\t\tif (typeof to.current === \"string\") {\n\t\t\tconst target = document.querySelector(to.current);\n\t\t\tif (DEV && target === null) {\n\t\t\t\tthrow new Error(`Target element \"${to.current}\" not found.`);\n\t\t\t}\n\t\t\tlocalTarget = target;\n\t\t} else {\n\t\t\tlocalTarget = to.current;\n\t\t}\n\n\t\tif (DEV && !(localTarget instanceof Element)) {\n\t\t\tconst type = localTarget === null ? \"null\" : typeof localTarget;\n\t\t\tthrow new TypeError(\n\t\t\t\t`Unknown portal target type: ${type}. Allowed types: string (query selector) or Element.`\n\t\t\t);\n\t\t}\n\n\t\treturn localTarget;\n\t}\n\n\tlet instance: ReturnType<typeof mount> | null;\n\n\tfunction unmountInstance() {\n\t\tif (instance) {\n\t\t\tunmount(instance);\n\t\t\tinstance = null;\n\t\t}\n\t}\n\n\twatch([() => target, () => disabled], ([target, disabled]) => {\n\t\tif (!target || disabled) {\n\t\t\tunmountInstance();\n\t\t\treturn;\n\t\t}\n\t\tinstance = mount(PortalConsumer, {\n\t\t\ttarget: target,\n\t\t\tprops: { children },\n\t\t\tcontext,\n\t\t});\n\n\t\treturn () => {\n\t\t\tunmountInstance();\n\t\t};\n\t});\n</script>\n\n{#if disabled}\n\t{@render children?.()}\n{/if}\n", "import { on } from \"svelte/events\";\n/**\n * Creates a typed event dispatcher and listener pair for custom events\n * @template T - The type of data that will be passed in the event detail\n * @param eventName - The name of the custom event\n * @param options - CustomEvent options (bubbles, cancelable, etc.)\n */\nexport class CustomEventDispatcher {\n eventName;\n options;\n constructor(eventName, options = { bubbles: true, cancelable: true }) {\n this.eventName = eventName;\n this.options = options;\n }\n createEvent(detail) {\n return new CustomEvent(this.eventName, {\n ...this.options,\n detail,\n });\n }\n dispatch(element, detail) {\n const event = this.createEvent(detail);\n element.dispatchEvent(event);\n return event;\n }\n listen(element, callback, options) {\n const handler = (event) => {\n callback(event);\n };\n return on(element, this.eventName, handler, options);\n }\n}\n", "// oxlint-disable-next-line no-explicit-any\nexport function debounce(fn, wait = 500) {\n let timeout = null;\n const debounced = (...args) => {\n if (timeout !== null) {\n clearTimeout(timeout);\n }\n timeout = setTimeout(() => {\n fn(...args);\n }, wait);\n };\n debounced.destroy = () => {\n if (timeout !== null) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n return debounced;\n}\n", "export function isOrContainsTarget(node, target) {\n return node === target || node.contains(target);\n}\nexport function getOwnerDocument(el) {\n return el?.ownerDocument ?? document;\n}\n", "export function getFirstNonCommentChild(element) {\n if (!element)\n return null;\n for (const child of element.childNodes) {\n if (child.nodeType !== Node.COMMENT_NODE) {\n return child;\n }\n }\n return null;\n}\n/**\n * Determines if the click event truly occurred outside the content node.\n * This was added to handle password managers and other elements that may be injected\n * into the DOM but visually appear inside the content.\n */\nexport function isClickTrulyOutside(event, contentNode) {\n const { clientX, clientY } = event;\n const rect = contentNode.getBoundingClientRect();\n return (clientX < rect.left || clientX > rect.right || clientY < rect.top || clientY > rect.bottom);\n}\n", "import { kbd } from \"../../internal/kbd.js\";\nexport const SELECTION_KEYS = [kbd.ENTER, kbd.SPACE];\nexport const FIRST_KEYS = [kbd.ARROW_DOWN, kbd.PAGE_UP, kbd.HOME];\nexport const LAST_KEYS = [kbd.ARROW_UP, kbd.PAGE_DOWN, kbd.END];\nexport const FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nexport const SUB_OPEN_KEYS = {\n ltr: [...SELECTION_KEYS, kbd.ARROW_RIGHT],\n rtl: [...SELECTION_KEYS, kbd.ARROW_LEFT],\n};\nexport const SUB_CLOSE_KEYS = {\n ltr: [kbd.ARROW_LEFT],\n rtl: [kbd.ARROW_RIGHT],\n};\nexport function isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nexport function getCheckedState(checked) {\n return isIndeterminate(checked) ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\";\n}\nexport function isMouseEvent(event) {\n return event.pointerType === \"mouse\";\n}\n", "import { getDocument, getWindow } from \"svelte-toolbelt\";\nimport { isBrowser, isElementHidden, isSelectableInput } from \"./is.js\";\n/**\n * Handles `initialFocus` prop behavior for the\n * Calendar & RangeCalendar components.\n */\nexport function handleCalendarInitialFocus(calendar) {\n if (!isBrowser)\n return;\n const selectedDay = calendar.querySelector(\"[data-selected]\");\n if (selectedDay)\n return focusWithoutScroll(selectedDay);\n const today = calendar.querySelector(\"[data-today]\");\n if (today)\n return focusWithoutScroll(today);\n const firstDay = calendar.querySelector(\"[data-calendar-date]\");\n if (firstDay)\n return focusWithoutScroll(firstDay);\n}\n/**\n * A utility function that focuses an element without scrolling.\n */\nexport function focusWithoutScroll(element) {\n const doc = getDocument(element);\n const win = getWindow(element);\n const scrollPosition = {\n x: win.pageXOffset || doc.documentElement.scrollLeft,\n y: win.pageYOffset || doc.documentElement.scrollTop,\n };\n element.focus();\n win.scrollTo(scrollPosition.x, scrollPosition.y);\n}\n/**\n * A utility function that focuses an element.\n */\nexport function focus(element, { select = false } = {}) {\n if (!element || !element.focus)\n return;\n const doc = getDocument(element);\n if (doc.activeElement === element)\n return;\n const previouslyFocusedElement = doc.activeElement;\n // prevent scroll on focus\n element.focus({ preventScroll: true });\n // only elect if its not the same element, it supports selection, and we need to select it\n if (element !== previouslyFocusedElement && isSelectableInput(element) && select) {\n element.select();\n }\n}\n/**\n * Attempts to focus the first element in a list of candidates.\n * Stops when focus is successful.\n */\nexport function focusFirst(candidates, { select = false } = {}, getActiveElement) {\n const previouslyFocusedElement = getActiveElement();\n for (const candidate of candidates) {\n focus(candidate, { select });\n if (getActiveElement() !== previouslyFocusedElement)\n return true;\n }\n}\n/**\n * Returns the first visible element in a list.\n * NOTE: Only checks visibility up to the `container`.\n */\nexport function findVisible(elements, container) {\n for (const element of elements) {\n // we stop checking if it's hidden at the `container` level (excluding)\n if (!isElementHidden(element, container))\n return element;\n }\n}\n/**\n * Returns a list of potential tabbable candidates.\n *\n * NOTE: This is only a close approximation. For example it doesn't take into account cases like when\n * elements are not visible. This cannot be worked out easily by just reading a property, but rather\n * necessitate runtime knowledge (computed styles, etc). We deal with these cases separately.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/TreeWalker\n * Credit: https://github.com/discord/focus-layers/blob/master/src/util/wrapFocus.tsx#L1\n */\nexport function getTabbableCandidates(container) {\n const nodes = [];\n const doc = getDocument(container);\n const walker = doc.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {\n // oxlint-disable-next-line no-explicit-any\n acceptNode: (node) => {\n const isHiddenInput = node.tagName === \"INPUT\" && node.type === \"hidden\";\n if (node.disabled || node.hidden || isHiddenInput)\n return NodeFilter.FILTER_SKIP;\n // `.tabIndex` is not the same as the `tabindex` attribute. It works on the\n // runtime's understanding of tabbability, so this automatically accounts\n // for any kind of element that could be tabbed to.\n return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n },\n });\n while (walker.nextNode())\n nodes.push(walker.currentNode);\n // we do not take into account the order of nodes with positive `tabIndex` as it\n // hinders accessibility to have tab order different from visual order.\n return nodes;\n}\n/**\n * A utility function that returns the first and last elements within a container that are\n * visible and focusable.\n */\nexport function getTabbableEdges(container) {\n const candidates = getTabbableCandidates(container);\n const first = findVisible(candidates, container);\n const last = findVisible(candidates.reverse(), container);\n return [first, last];\n}\n", "import { executeCallbacks } from \"svelte-toolbelt\";\nimport { on } from \"svelte/events\";\n// Using global state to avoid multiple listeners.\nlet isUsingKeyboard = $state(false);\n/**\n * Detects whether the user is currently using the keyboard\n * or not by listening to keyboard and pointer events. Uses shared global\n * state to avoid listener duplication.\n */\nexport class IsUsingKeyboard {\n static _refs = 0; // Reference counting to avoid multiple listeners.\n static _cleanup;\n constructor() {\n $effect(() => {\n if (IsUsingKeyboard._refs === 0) {\n IsUsingKeyboard._cleanup = $effect.root(() => {\n const callbacksToDispose = [];\n const handlePointer = (_) => {\n isUsingKeyboard = false;\n };\n const handleKeydown = (_) => {\n isUsingKeyboard = true;\n };\n callbacksToDispose.push(on(document, \"pointerdown\", handlePointer, {\n capture: true,\n }), on(document, \"pointermove\", handlePointer, {\n capture: true,\n }), on(document, \"keydown\", handleKeydown, {\n capture: true,\n }));\n // Don't forget to spread and call twice.\n return executeCallbacks(...callbacksToDispose);\n });\n }\n IsUsingKeyboard._refs++;\n return () => {\n IsUsingKeyboard._refs--;\n if (IsUsingKeyboard._refs === 0) {\n isUsingKeyboard = false;\n IsUsingKeyboard._cleanup?.();\n }\n };\n });\n }\n get current() {\n return isUsingKeyboard;\n }\n set current(value) {\n isUsingKeyboard = value;\n }\n}\n", "// NOTE: separate `:not()` selectors has broader browser support than the newer\n// `:not([inert], [inert] *)` (Feb 2023)\nconst candidateSelectors = [\n 'input:not([inert]):not([inert] *)',\n 'select:not([inert]):not([inert] *)',\n 'textarea:not([inert]):not([inert] *)',\n 'a[href]:not([inert]):not([inert] *)',\n 'button:not([inert]):not([inert] *)',\n '[tabindex]:not(slot):not([inert]):not([inert] *)',\n 'audio[controls]:not([inert]):not([inert] *)',\n 'video[controls]:not([inert]):not([inert] *)',\n '[contenteditable]:not([contenteditable=\"false\"]):not([inert]):not([inert] *)',\n 'details>summary:first-of-type:not([inert]):not([inert] *)',\n 'details:not([inert]):not([inert] *)',\n];\nconst candidateSelector = /* #__PURE__ */ candidateSelectors.join(',');\n\nconst NoElement = typeof Element === 'undefined';\n\nconst matches = NoElement\n ? function () {}\n : Element.prototype.matches ||\n Element.prototype.msMatchesSelector ||\n Element.prototype.webkitMatchesSelector;\n\nconst getRootNode =\n !NoElement && Element.prototype.getRootNode\n ? (element) => element?.getRootNode?.()\n : (element) => element?.ownerDocument;\n\n/**\n * Determines if a node is inert or in an inert ancestor.\n * @param {Node} [node]\n * @param {boolean} [lookUp] If true and `node` is not inert, looks up at ancestors to\n * see if any of them are inert. If false, only `node` itself is considered.\n * @returns {boolean} True if inert itself or by way of being in an inert ancestor.\n * False if `node` is falsy.\n */\nconst isInert = function (node, lookUp = true) {\n // CAREFUL: JSDom does not support inert at all, so we can't use the `HTMLElement.inert`\n // JS API property; we have to check the attribute, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's an active element\n const inertAtt = node?.getAttribute?.('inert');\n const inert = inertAtt === '' || inertAtt === 'true';\n\n // NOTE: this could also be handled with `node.matches('[inert], :is([inert] *)')`\n // if it weren't for `matches()` not being a function on shadow roots; the following\n // code works for any kind of node\n const result =\n inert ||\n (lookUp &&\n node &&\n // closest does not exist on shadow roots, so we fall back to a manual\n // lookup upward, in case it is not defined.\n (typeof node.closest === 'function'\n ? node.closest('[inert]')\n : isInert(node.parentNode)));\n\n return result;\n};\n\n/**\n * Determines if a node's content is editable.\n * @param {Element} [node]\n * @returns True if it's content-editable; false if it's not or `node` is falsy.\n */\nconst isContentEditable = function (node) {\n // CAREFUL: JSDom does not support the `HTMLElement.isContentEditable` API so we have\n // to use the attribute directly to check for this, which can either be empty or 'true';\n // if it's `null` (not specified) or 'false', it's a non-editable element\n const attValue = node?.getAttribute?.('contenteditable');\n return attValue === '' || attValue === 'true';\n};\n\n/**\n * @param {Element} el container to check in\n * @param {boolean} includeContainer add container to check\n * @param {(node: Element) => boolean} filter filter candidates\n * @returns {Element[]}\n */\nconst getCandidates = function (el, includeContainer, filter) {\n // even if `includeContainer=false`, we still have to check it for inertness because\n // if it's inert (either by itself or via its parent), then all its children are inert\n if (isInert(el)) {\n return [];\n }\n\n let candidates = Array.prototype.slice.apply(\n el.querySelectorAll(candidateSelector)\n );\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\n\n/**\n * @callback GetShadowRoot\n * @param {Element} element to check for shadow root\n * @returns {ShadowRoot|boolean} ShadowRoot if available or boolean indicating if a shadowRoot is attached but not available.\n */\n\n/**\n * @callback ShadowRootFilter\n * @param {Element} shadowHostNode the element which contains shadow content\n * @returns {boolean} true if a shadow root could potentially contain valid candidates.\n */\n\n/**\n * @typedef {Object} CandidateScope\n * @property {Element} scopeParent contains inner candidates\n * @property {Element[]} candidates list of candidates found in the scope parent\n */\n\n/**\n * @typedef {Object} IterativeOptions\n * @property {GetShadowRoot|boolean} getShadowRoot true if shadow support is enabled; falsy if not;\n * if a function, implies shadow support is enabled and either returns the shadow root of an element\n * or a boolean stating if it has an undisclosed shadow root\n * @property {(node: Element) => boolean} filter filter candidates\n * @property {boolean} flatten if true then result will flatten any CandidateScope into the returned list\n * @property {ShadowRootFilter} shadowRootFilter filter shadow roots;\n */\n\n/**\n * @param {Element[]} elements list of element containers to match candidates from\n * @param {boolean} includeContainer add container list to check\n * @param {IterativeOptions} options\n * @returns {Array.<Element|CandidateScope>}\n */\nconst getCandidatesIteratively = function (\n elements,\n includeContainer,\n options\n) {\n const candidates = [];\n const elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n const element = elementsToCheck.shift();\n if (isInert(element, false)) {\n // no need to look up since we're drilling down\n // anything inside this container will also be inert\n continue;\n }\n\n if (element.tagName === 'SLOT') {\n // add shadow dom slot scope (slot itself cannot be focusable)\n const assigned = element.assignedElements();\n const content = assigned.length ? assigned : element.children;\n const nestedCandidates = getCandidatesIteratively(content, true, options);\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // check candidate element\n const validCandidate = matches.call(element, candidateSelector);\n if (\n validCandidate &&\n options.filter(element) &&\n (includeContainer || !elements.includes(element))\n ) {\n candidates.push(element);\n }\n\n // iterate over shadow content if possible\n const shadowRoot =\n element.shadowRoot ||\n // check for an undisclosed shadow\n (typeof options.getShadowRoot === 'function' &&\n options.getShadowRoot(element));\n\n // no inert look up because we're already drilling down and checking for inertness\n // on the way down, so all containers to this root node should have already been\n // vetted as non-inert\n const validShadowRoot =\n !isInert(shadowRoot, false) &&\n (!options.shadowRootFilter || options.shadowRootFilter(element));\n\n if (shadowRoot && validShadowRoot) {\n // add shadow dom scope IIF a shadow root node was given; otherwise, an undisclosed\n // shadow exists, so look at light dom children as fallback BUT create a scope for any\n // child candidates found because they're likely slotted elements (elements that are\n // children of the web component element (which has the shadow), in the light dom, but\n // slotted somewhere _inside_ the undisclosed shadow) -- the scope is created below,\n // _after_ we return from this recursive call\n const nestedCandidates = getCandidatesIteratively(\n shadowRoot === true ? element.children : shadowRoot.children,\n true,\n options\n );\n\n if (options.flatten) {\n candidates.push(...nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates,\n });\n }\n } else {\n // there's not shadow so just dig into the element's (light dom) children\n // __without__ giving the element special scope treatment\n elementsToCheck.unshift(...element.children);\n }\n }\n }\n return candidates;\n};\n\n/**\n * @private\n * Determines if the node has an explicitly specified `tabindex` attribute.\n * @param {HTMLElement} node\n * @returns {boolean} True if so; false if not.\n */\nconst hasTabIndex = function (node) {\n return !isNaN(parseInt(node.getAttribute('tabindex'), 10));\n};\n\n/**\n * Determine the tab index of a given node.\n * @param {HTMLElement} node\n * @returns {number} Tab order (negative, 0, or positive number).\n * @throws {Error} If `node` is falsy.\n */\nconst getTabIndex = function (node) {\n if (!node) {\n throw new Error('No node provided');\n }\n\n if (node.tabIndex < 0) {\n // in Chrome, <details/>, <audio controls/> and <video controls/> elements get a default\n // `tabIndex` of -1 when the 'tabindex' attribute isn't specified in the DOM,\n // yet they are still part of the regular tab order; in FF, they get a default\n // `tabIndex` of 0; since Chrome still puts those elements in the regular tab\n // order, consider their tab index to be 0.\n // Also browsers do not return `tabIndex` correctly for contentEditable nodes;\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n if (\n (/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) ||\n isContentEditable(node)) &&\n !hasTabIndex(node)\n ) {\n return 0;\n }\n }\n\n return node.tabIndex;\n};\n\n/**\n * Determine the tab index of a given node __for sort order purposes__.\n * @param {HTMLElement} node\n * @param {boolean} [isScope] True for a custom element with shadow root or slot that, by default,\n * has tabIndex -1, but needs to be sorted by document order in order for its content to be\n * inserted into the correct sort position.\n * @returns {number} Tab order (negative, 0, or positive number).\n */\nconst getSortOrderTabIndex = function (node, isScope) {\n const tabIndex = getTabIndex(node);\n\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n\n return tabIndex;\n};\n\nconst sortOrderedTabbables = function (a, b) {\n return a.tabIndex === b.tabIndex\n ? a.documentOrder - b.documentOrder\n : a.tabIndex - b.tabIndex;\n};\n\nconst isInput = function (node) {\n return node.tagName === 'INPUT';\n};\n\nconst isHiddenInput = function (node) {\n return isInput(node) && node.type === 'hidden';\n};\n\nconst isDetailsWithSummary = function (node) {\n const r =\n node.tagName === 'DETAILS' &&\n Array.prototype.slice\n .apply(node.children)\n .some((child) => child.tagName === 'SUMMARY');\n return r;\n};\n\nconst getCheckedRadio = function (nodes, form) {\n for (let i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\n\nconst isTabbableRadio = function (node) {\n if (!node.name) {\n return true;\n }\n const radioScope = node.form || getRootNode(node);\n const queryRadios = function (name) {\n return radioScope.querySelectorAll(\n 'input[type=\"radio\"][name=\"' + name + '\"]'\n );\n };\n\n let radioSet;\n if (\n typeof window !== 'undefined' &&\n typeof window.CSS !== 'undefined' &&\n typeof window.CSS.escape === 'function'\n ) {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n // eslint-disable-next-line no-console\n console.error(\n 'Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s',\n err.message\n );\n return false;\n }\n }\n\n const checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\n\nconst isRadio = function (node) {\n return isInput(node) && node.type === 'radio';\n};\n\nconst isNonTabbableRadio = function (node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\n\n// determines if a node is ultimately attached to the window's document\nconst isNodeAttached = function (node) {\n // The root node is the shadow root if the node is in a shadow DOM; some document otherwise\n // (but NOT _the_ document; see second 'If' comment below for more).\n // If rootNode is shadow root, it'll have a host, which is the element to which the shadow\n // is attached, and the one we need to check if it's in the document or not (because the\n // shadow, and all nodes it contains, is never considered in the document since shadows\n // behave like self-contained DOMs; but if the shadow's HOST, which is part of the document,\n // is hidden, or is not in the document itself but is detached, it will affect the shadow's\n // visibility, including all the nodes it contains). The host could be any normal node,\n // or a custom element (i.e. web component). Either way, that's the one that is considered\n // part of the document, not the shadow root, nor any of its children (i.e. the node being\n // tested).\n // To further complicate things, we have to look all the way up until we find a shadow HOST\n // that is attached (or find none) because the node might be in nested shadows...\n // If rootNode is not a shadow root, it won't have a host, and so rootNode should be the\n // document (per the docs) and while it's a Document-type object, that document does not\n // appear to be the same as the node's `ownerDocument` for some reason, so it's safer\n // to ignore the rootNode at this point, and use `node.ownerDocument`. Otherwise,\n // using `rootNode.contains(node)` will _always_ be true we'll get false-positives when\n // node is actually detached.\n // NOTE: If `nodeRootHost` or `node` happens to be the `document` itself (which is possible\n // if a tabbable/focusable node was quickly added to the DOM, focused, and then removed\n // from the DOM as in https://github.com/focus-trap/focus-trap-react/issues/905), then\n // `ownerDocument` will be `null`, hence the optional chaining on it.\n let nodeRoot = node && getRootNode(node);\n let nodeRootHost = nodeRoot?.host;\n\n // in some cases, a detached node will return itself as the root instead of a document or\n // shadow root object, in which case, we shouldn't try to look further up the host chain\n let attached = false;\n if (nodeRoot && nodeRoot !== node) {\n attached = !!(\n nodeRootHost?.ownerDocument?.contains(nodeRootHost) ||\n node?.ownerDocument?.contains(node)\n );\n\n while (!attached && nodeRootHost) {\n // since it's not attached and we have a root host, the node MUST be in a nested shadow DOM,\n // which means we need to get the host's host and check if that parent host is contained\n // in (i.e. attached to) the document\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = nodeRoot?.host;\n attached = !!nodeRootHost?.ownerDocument?.contains(nodeRootHost);\n }\n }\n\n return attached;\n};\n\nconst isZeroArea = function (node) {\n const { width, height } = node.getBoundingClientRect();\n return width === 0 && height === 0;\n};\nconst isHidden = function (node, { displayCheck, getShadowRoot }) {\n if (displayCheck === 'full-native') {\n if ('checkVisibility' in node) {\n // Chrome >= 105, Edge >= 105, Firefox >= 106, Safari >= 17.4\n // @see https://developer.mozilla.org/en-US/docs/Web/API/Element/checkVisibility#browser_compatibility\n const visible = node.checkVisibility({\n // Checking opacity might be desirable for some use cases, but natively,\n // opacity zero elements _are_ focusable and tabbable.\n checkOpacity: false,\n opacityProperty: false,\n\n contentVisibilityAuto: true,\n visibilityProperty: true,\n // This is an alias for `visibilityProperty`. Contemporary browsers\n // support both. However, this alias has wider browser support (Chrome\n // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so\n // we include it anyway.\n checkVisibilityCSS: true,\n });\n return !visible;\n }\n // Fall through to manual visibility checks\n }\n\n // NOTE: visibility will be `undefined` if node is detached from the document\n // (see notes about this further down), which means we will consider it visible\n // (this is legacy behavior from a very long way back)\n // NOTE: we check this regardless of `displayCheck=\"none\"` because this is a\n // _visibility_ check, not a _display_ check\n if (getComputedStyle(node).visibility === 'hidden') {\n return true;\n }\n\n const isDirectSummary = matches.call(node, 'details>summary:first-of-type');\n const nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, 'details:not([open]) *')) {\n return true;\n }\n\n if (\n !displayCheck ||\n displayCheck === 'full' ||\n // full-native can run this branch when it falls through in case\n // Element#checkVisibility is unsupported\n displayCheck === 'full-native' ||\n displayCheck === 'legacy-full'\n ) {\n if (typeof getShadowRoot === 'function') {\n // figure out if we should consider the node to be in an undisclosed shadow and use the\n // 'non-zero-area' fallback\n const originalNode = node;\n while (node) {\n const parentElement = node.parentElement;\n const rootNode = getRootNode(node);\n if (\n parentElement &&\n !parentElement.shadowRoot &&\n getShadowRoot(parentElement) === true // check if there's an undisclosed shadow\n ) {\n // node has an undisclosed shadow which means we can only treat it as a black box, so we\n // fall back to a non-zero-area test\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n // iterate up slot\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n // cross shadow boundary\n node = rootNode.host;\n } else {\n // iterate up normal dom\n node = parentElement;\n }\n }\n\n node = originalNode;\n }\n // else, `getShadowRoot` might be true, but all that does is enable shadow DOM support\n // (i.e. it does not also presume that all nodes might have undisclosed shadows); or\n // it might be a falsy value, which means shadow DOM support is disabled\n\n // Since we didn't find it sitting in an undisclosed shadow (or shadows are disabled)\n // now we can just test to see if it would normally be visible or not, provided it's\n // attached to the main document.\n // NOTE: We must consider case where node is inside a shadow DOM and given directly to\n // `isTabbable()` or `isFocusable()` -- regardless of `getShadowRoot` option setting.\n\n if (isNodeAttached(node)) {\n // this works wherever the node is: if there's at least one client rect, it's\n // somehow displayed; it also covers the CSS 'display: contents' case where the\n // node itself is hidden in place of its contents; and there's no need to search\n // up the hierarchy either\n return !node.getClientRects().length;\n }\n\n // Else, the node isn't attached to the document, which means the `getClientRects()`\n // API will __always__ return zero rects (this can happen, for example, if React\n // is used to render nodes onto a detached tree, as confirmed in this thread:\n // https://github.com/facebook/react/issues/9117#issuecomment-284228870)\n //\n // It also means that even window.getComputedStyle(node).display will return `undefined`\n // because styles are only computed for nodes that are in the document.\n //\n // NOTE: THIS HAS BEEN THE CASE FOR YEARS. It is not new, nor is it caused by tabbable\n // somehow. Though it was never stated officially, anyone who has ever used tabbable\n // APIs on nodes in detached containers has actually implicitly used tabbable in what\n // was later (as of v5.2.0 on Apr 9, 2021) called `displayCheck=\"none\"` mode -- essentially\n // considering __everything__ to be visible because of the innability to determine styles.\n //\n // v6.0.0: As of this major release, the default 'full' option __no longer treats detached\n // nodes as visible with the 'none' fallback.__\n if (displayCheck !== 'legacy-full') {\n return true; // hidden\n }\n // else, fallback to 'none' mode and consider the node visible\n } else if (displayCheck === 'non-zero-area') {\n // NOTE: Even though this tests that the node's client rect is non-zero to determine\n // whether it's displayed, and that a detached node will __always__ have a zero-area\n // client rect, we don't special-case for whether the node is attached or not. In\n // this mode, we do want to consider nodes that have a zero area to be hidden at all\n // times, and that includes attached or not.\n return isZeroArea(node);\n }\n\n // visible, as far as we can tell, or per current `displayCheck=none` mode, we assume\n // it's visible\n return false;\n};\n\n// form fields (nested) inside a disabled fieldset are not focusable/tabbable\n// unless they are in the _first_ <legend> element of the top-most disabled\n// fieldset\nconst isDisabledFromFieldset = function (node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n let parentNode = node.parentElement;\n // check if `node` is contained in a disabled <fieldset>\n while (parentNode) {\n if (parentNode.tagName === 'FIELDSET' && parentNode.disabled) {\n // look for the first <legend> among the children of the disabled <fieldset>\n for (let i = 0; i < parentNode.children.length; i++) {\n const child = parentNode.children.item(i);\n // when the first <legend> (in document order) is found\n if (child.tagName === 'LEGEND') {\n // if its parent <fieldset> is not nested in another disabled <fieldset>,\n // return whether `node` is a descendant of its first <legend>\n return matches.call(parentNode, 'fieldset[disabled] *')\n ? true\n : !child.contains(node);\n }\n }\n // the disabled <fieldset> containing `node` has no <legend>\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n\n // else, node's tabbable/focusable state should not be affected by a fieldset's\n // enabled/disabled state\n return false;\n};\n\nconst isNodeMatchingSelectorFocusable = function (options, node) {\n if (\n node.disabled ||\n isHiddenInput(node) ||\n isHidden(node, options) ||\n // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) ||\n isDisabledFromFieldset(node)\n ) {\n return false;\n }\n return true;\n};\n\nconst isNodeMatchingSelectorTabbable = function (options, node) {\n if (\n isNonTabbableRadio(node) ||\n getTabIndex(node) < 0 ||\n !isNodeMatchingSelectorFocusable(options, node)\n ) {\n return false;\n }\n return true;\n};\n\nconst isShadowRootTabbable = function (shadowHostNode) {\n const tabIndex = parseInt(shadowHostNode.getAttribute('tabindex'), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n // If a custom element has an explicit negative tabindex,\n // browsers will not allow tab targeting said element's children.\n return false;\n};\n\n/**\n * @param {Array.<Element|CandidateScope>} candidates\n * @returns Element[]\n */\nconst sortByOrder = function (candidates) {\n const regularTabbables = [];\n const orderedTabbables = [];\n candidates.forEach(function (item, i) {\n const isScope = !!item.scopeParent;\n const element = isScope ? item.scopeParent : item;\n const candidateTabindex = getSortOrderTabIndex(element, isScope);\n const elements = isScope ? sortByOrder(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope\n ? regularTabbables.push(...elements)\n : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item: item,\n isScope: isScope,\n content: elements,\n });\n }\n });\n\n return orderedTabbables\n .sort(sortOrderedTabbables)\n .reduce((acc, sortable) => {\n sortable.isScope\n ? acc.push(...sortable.content)\n : acc.push(sortable.content);\n return acc;\n }, [])\n .concat(regularTabbables);\n};\n\nconst tabbable = function (container, options) {\n options = options || {};\n\n let candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively(\n [container],\n options.includeContainer,\n {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isShadowRootTabbable,\n }\n );\n } else {\n candidates = getCandidates(\n container,\n options.includeContainer,\n isNodeMatchingSelectorTabbable.bind(null, options)\n );\n }\n return sortByOrder(candidates);\n};\n\nconst focusable = function (container, options) {\n options = options || {};\n\n let candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively(\n [container],\n options.includeContainer,\n {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot,\n }\n );\n } else {\n candidates = getCandidates(\n container,\n options.includeContainer,\n isNodeMatchingSelectorFocusable.bind(null, options)\n );\n }\n\n return candidates;\n};\n\nconst isTabbable = function (node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\n\nconst focusableCandidateSelector = /* #__PURE__ */ candidateSelectors\n .concat('iframe:not([inert]):not([inert] *)')\n .join(',');\n\nconst isFocusable = function (node, options) {\n options = options || {};\n if (!node) {\n throw new Error('No node provided');\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n\nexport { tabbable, focusable, isTabbable, isFocusable, getTabIndex };\n", "import { focusable, isFocusable, isTabbable, tabbable } from \"tabbable\";\nimport { getDocument } from \"svelte-toolbelt\";\nfunction getTabbableOptions() {\n return {\n getShadowRoot: true,\n displayCheck: \n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === \"function\" &&\n ResizeObserver.toString().includes(\"[native code]\")\n ? \"full\"\n : \"none\",\n };\n}\n/**\n * Gets all tabbable elements in the body and finds the next/previous tabbable element\n * from the `currentNode` based on the `direction` provided.\n * @param currentNode - the node we want to get the next/previous tabbable from\n */\nexport function getTabbableFrom(currentNode, direction) {\n if (!isTabbable(currentNode, getTabbableOptions())) {\n return getTabbableFromFocusable(currentNode, direction);\n }\n const doc = getDocument(currentNode);\n const allTabbable = tabbable(doc.body, getTabbableOptions());\n if (direction === \"prev\")\n allTabbable.reverse();\n const activeIndex = allTabbable.indexOf(currentNode);\n if (activeIndex === -1)\n return doc.body;\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nexport function getTabbableFromFocusable(currentNode, direction) {\n const doc = getDocument(currentNode);\n if (!isFocusable(currentNode, getTabbableOptions()))\n return doc.body;\n // find all focusable nodes, since some elements may be focusable but not tabbable\n // such as context menu triggers\n const allFocusable = focusable(doc.body, getTabbableOptions());\n // find index of current node among focusable siblings\n if (direction === \"prev\")\n allFocusable.reverse();\n const activeIndex = allFocusable.indexOf(currentNode);\n if (activeIndex === -1)\n return doc.body;\n const nextFocusableElements = allFocusable.slice(activeIndex + 1);\n // find the next focusable node that is also tabbable\n return nextFocusableElements.find((node) => isTabbable(node, getTabbableOptions())) ?? doc.body;\n}\n", "/**\n * Checks if two arrays are equal by comparing their values.\n */\nexport function arraysAreEqual(arr1, arr2) {\n if (arr1.length !== arr2.length)\n return false;\n return arr1.every((value, index) => isEqual(value, arr2[index]));\n}\n/**\n * A utility function that compares two values for equality.\n */\nfunction isEqual(a, b) {\n if (Number.isNaN(a) && Number.isNaN(b))\n return true;\n if (Array.isArray(a) && Array.isArray(b))\n return arraysAreEqual(a, b);\n if (typeof a === \"object\" && typeof b === \"object\")\n return isDeepEqual(a, b);\n return Object.is(a, b);\n}\n/**\n * A utility function that compares two values for deep equality.\n */\nfunction isDeepEqual(a, b) {\n if (typeof a !== \"object\" || typeof b !== \"object\" || a === null || b === null)\n return false;\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length)\n return false;\n for (const key of aKeys) {\n if (!bKeys.includes(key))\n return false;\n if (!isEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n}\n/**\n * Splits an array into chunks of a given size.\n * @param arr The array to split.\n * @param size The size of each chunk.\n * @returns An array of arrays, where each sub-array has `size` elements from the original array.\n * @example ```ts\n * const arr = [1, 2, 3, 4, 5, 6, 7, 8];\n * const chunks = chunk(arr, 3);\n * // chunks = [[1, 2, 3], [4, 5, 6], [7, 8]]\n * ```\n */\nexport function chunk(arr, size) {\n if (size <= 0)\n return [];\n const result = [];\n for (let i = 0; i < arr.length; i += size) {\n result.push(arr.slice(i, i + size));\n }\n return result;\n}\n/**\n * Checks if the given index is valid for the given array.\n *\n * @param index - The index to check\n * @param arr - The array to check\n */\nexport function isValidIndex(index, arr) {\n return index >= 0 && index < arr.length;\n}\n/**\n * Returns the array element after the given index, or undefined for out-of-bounds or empty arrays.\n * @param array the array.\n * @param index the index of the current element.\n * @param loop loop to the beginning of the array if the next index is out of bounds?\n */\n/**\n * Returns the array element after the given index, or undefined for out-of-bounds or empty arrays.\n * For single-element arrays, returns the element if the index is 0.\n * @param array the array.\n * @param index the index of the current element.\n * @param loop loop to the beginning of the array if the next index is out of bounds?\n */\nexport function next(array, index, loop = true) {\n if (array.length === 0 || index < 0 || index >= array.length)\n return;\n if (array.length === 1 && index === 0)\n return array[0];\n if (index === array.length - 1)\n return loop ? array[0] : undefined;\n return array[index + 1];\n}\n/**\n * Returns the array element prior to the given index, or undefined for out-of-bounds or empty arrays.\n * For single-element arrays, returns the element if the index is 0.\n * @param array the array.\n * @param index the index of the current element.\n * @param loop loop to the end of the array if the previous index is out of bounds?\n */\nexport function prev(array, index, loop = true) {\n if (array.length === 0 || index < 0 || index >= array.length)\n return;\n if (array.length === 1 && index === 0)\n return array[0];\n if (index === 0)\n return loop ? array[array.length - 1] : undefined;\n return array[index - 1];\n}\n/**\n * Returns the element some number after the given index. If the target index is out of bounds:\n * - If looping is disabled, the first or last element will be returned.\n * - If looping is enabled, it will wrap around the array.\n * Returns undefined for empty arrays or out-of-bounds initial indices.\n * @param array the array.\n * @param index the index of the current element.\n * @param increment the number of elements to move forward (can be negative).\n * @param loop loop around the array if the target index is out of bounds?\n */\nexport function forward(array, index, increment, loop = true) {\n if (array.length === 0 || index < 0 || index >= array.length)\n return;\n let targetIndex = index + increment;\n if (loop) {\n // Ensure positive modulus\n targetIndex = ((targetIndex % array.length) + array.length) % array.length;\n }\n else {\n // Clamp to array bounds when not looping\n targetIndex = Math.max(0, Math.min(targetIndex, array.length - 1));\n }\n return array[targetIndex];\n}\n/**\n * Returns the element some number before the given index. If the target index is out of bounds:\n * - If looping is disabled, the first or last element will be returned.\n * - If looping is enabled, it will wrap around the array.\n * Returns undefined for empty arrays or out-of-bounds initial indices.\n * @param array the array.\n * @param index the index of the current element.\n * @param decrement the number of elements to move backward (can be negative).\n * @param loop loop around the array if the target index is out of bounds?\n */\nexport function backward(array, index, decrement, loop = true) {\n if (array.length === 0 || index < 0 || index >= array.length)\n return;\n let targetIndex = index - decrement;\n if (loop) {\n // Ensure positive modulus\n targetIndex = ((targetIndex % array.length) + array.length) % array.length;\n }\n else {\n // Clamp to array bounds when not looping\n targetIndex = Math.max(0, Math.min(targetIndex, array.length - 1));\n }\n return array[targetIndex];\n}\n/**\n * Finds the next matching item from a list of values based on a search string.\n *\n * This function handles several special cases in typeahead behavior:\n *\n * 1. Space handling: When a search string ends with a space, it handles it specially:\n * - If there's only one match for the text before the space, it ignores the space\n * - If there are multiple matches and the current match already starts with the search prefix\n * followed by a space, it keeps the current match (doesn't change selection on space)\n * - Only after typing characters beyond the space will it move to a more specific match\n *\n * 2. Repeated character handling: If a search consists of repeated characters (e.g., \"aaa\"),\n * it treats it as a single character for matching purposes\n *\n * 3. Cycling behavior: The function wraps around the values array starting from the current match\n * to find the next appropriate match, creating a cycling selection behavior\n *\n * @param values - Array of string values to search through (e.g., the text content of menu items)\n * @param search - The current search string typed by the user\n * @param currentMatch - The currently selected/matched item, if any\n * @returns The next matching value that should be selected, or undefined if no match is found\n */\nexport function getNextMatch(values, search, currentMatch) {\n const lowerSearch = search.toLowerCase();\n if (lowerSearch.endsWith(\" \")) {\n const searchWithoutSpace = lowerSearch.slice(0, -1);\n const matchesWithoutSpace = values.filter((value) => value.toLowerCase().startsWith(searchWithoutSpace));\n /**\n * If there's only one match for the prefix without space, we don't\n * watch to match with space.\n */\n if (matchesWithoutSpace.length <= 1) {\n return getNextMatch(values, searchWithoutSpace, currentMatch);\n }\n const currentMatchLowercase = currentMatch?.toLowerCase();\n /**\n * If the current match already starts with the search prefix and has a space afterward,\n * and the user has only typed up to that space, keep the current match until they\n * disambiguate.\n */\n if (currentMatchLowercase &&\n currentMatchLowercase.startsWith(searchWithoutSpace) &&\n currentMatchLowercase.charAt(searchWithoutSpace.length) === \" \" &&\n search.trim() === searchWithoutSpace) {\n return currentMatch;\n }\n /**\n * With multiple matches, find items that match the full search string with space\n */\n const spacedMatches = values.filter((value) => value.toLowerCase().startsWith(lowerSearch));\n /**\n * If we found matches with the space, use the first one that's not the current match\n */\n if (spacedMatches.length > 0) {\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedMatches = wrapArray(spacedMatches, Math.max(currentMatchIndex, 0));\n // return the first match that is not the current one.\n const nextMatch = wrappedMatches.find((match) => match !== currentMatch);\n // fallback to current if no other is found.\n return nextMatch || currentMatch;\n }\n }\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const normalizedSearch = isRepeated ? search[0] : search;\n const normalizedLowerSearch = normalizedSearch.toLowerCase();\n const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;\n let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));\n const excludeCurrentMatch = normalizedSearch.length === 1;\n if (excludeCurrentMatch)\n wrappedValues = wrappedValues.filter((v) => v !== currentMatch);\n const nextMatch = wrappedValues.find((value) => value?.toLowerCase().startsWith(normalizedLowerSearch));\n return nextMatch !== currentMatch ? nextMatch : undefined;\n}\n/**\n * Wraps an array around itself at a given start index\n * Example: `wrapArray(['a', 'b', 'c', 'd'], 2) === ['c', 'd', 'a', 'b']`\n */\nexport function wrapArray(array, startIndex) {\n return array.map((_, index) => array[(startIndex + index) % array.length]);\n}\n", "import { boxWith } from \"svelte-toolbelt\";\nimport { noop } from \"./noop.js\";\nconst defaultOptions = {\n afterMs: 10000,\n onChange: noop,\n};\n/**\n * Creates a box which will be reset to the default value after some time.\n *\n * @param defaultValue The value which will be set.\n * @param afterMs A zero-or-greater delay in milliseconds.\n */\nexport function boxAutoReset(defaultValue, options) {\n const { afterMs, onChange, getWindow } = { ...defaultOptions, ...options };\n let timeout = null;\n let value = $state(defaultValue);\n function resetAfter() {\n return getWindow().setTimeout(() => {\n value = defaultValue;\n onChange?.(defaultValue);\n }, afterMs);\n }\n $effect(() => {\n return () => {\n if (timeout)\n getWindow().clearTimeout(timeout);\n };\n });\n return boxWith(() => value, (v) => {\n value = v;\n onChange?.(v);\n if (timeout)\n getWindow().clearTimeout(timeout);\n timeout = resetAfter();\n });\n}\n", "import { getNextMatch } from \"./arrays.js\";\nimport { boxAutoReset } from \"./box-auto-reset.svelte.js\";\nexport class DOMTypeahead {\n #opts;\n #search;\n #onMatch = $derived.by(() => {\n if (this.#opts.onMatch)\n return this.#opts.onMatch;\n return (node) => node.focus();\n });\n #getCurrentItem = $derived.by(() => {\n if (this.#opts.getCurrentItem)\n return this.#opts.getCurrentItem;\n return this.#opts.getActiveElement;\n });\n constructor(opts) {\n this.#opts = opts;\n this.#search = boxAutoReset(\"\", {\n afterMs: 1000,\n getWindow: opts.getWindow,\n });\n this.handleTypeaheadSearch = this.handleTypeaheadSearch.bind(this);\n this.resetTypeahead = this.resetTypeahead.bind(this);\n }\n handleTypeaheadSearch(key, candidates) {\n if (!candidates.length)\n return;\n this.#search.current = this.#search.current + key;\n const currentItem = this.#getCurrentItem();\n const currentMatch = candidates.find((item) => item === currentItem)?.textContent?.trim() ?? \"\";\n const values = candidates.map((item) => item.textContent?.trim() ?? \"\");\n const nextMatch = getNextMatch(values, this.#search.current, currentMatch);\n const newItem = candidates.find((item) => item.textContent?.trim() === nextMatch);\n if (newItem)\n this.#onMatch(newItem);\n return newItem;\n }\n resetTypeahead() {\n this.#search.current = \"\";\n }\n get search() {\n return this.#search.current;\n }\n}\n", "import { executeCallbacks, getDocument, getWindow, } from \"svelte-toolbelt\";\nimport { on } from \"svelte/events\";\nimport { watch } from \"runed\";\nimport { boxAutoReset } from \"./box-auto-reset.svelte.js\";\nimport { isElement, isHTMLElement } from \"./is.js\";\nexport class GraceArea {\n #opts;\n #enabled;\n #isPointerInTransit;\n #pointerGraceArea = $state(null);\n constructor(opts) {\n this.#opts = opts;\n this.#enabled = $derived(this.#opts.enabled());\n this.#isPointerInTransit = boxAutoReset(false, {\n afterMs: opts.transitTimeout ?? 300,\n onChange: (value) => {\n if (!this.#enabled)\n return;\n this.#opts.setIsPointerInTransit?.(value);\n },\n getWindow: () => getWindow(this.#opts.triggerNode()),\n });\n watch([opts.triggerNode, opts.contentNode, opts.enabled], ([triggerNode, contentNode, enabled]) => {\n if (!triggerNode || !contentNode || !enabled)\n return;\n const handleTriggerLeave = (e) => {\n this.#createGraceArea(e, contentNode);\n };\n const handleContentLeave = (e) => {\n this.#createGraceArea(e, triggerNode);\n };\n return executeCallbacks(on(triggerNode, \"pointerleave\", handleTriggerLeave), on(contentNode, \"pointerleave\", handleContentLeave));\n });\n watch(() => this.#pointerGraceArea, () => {\n const handleTrackPointerGrace = (e) => {\n if (!this.#pointerGraceArea)\n return;\n const target = e.target;\n if (!isElement(target))\n return;\n const pointerPosition = { x: e.clientX, y: e.clientY };\n const hasEnteredTarget = opts.triggerNode()?.contains(target) ||\n opts.contentNode()?.contains(target);\n const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, this.#pointerGraceArea);\n if (hasEnteredTarget) {\n this.#removeGraceArea();\n }\n else if (isPointerOutsideGraceArea) {\n this.#removeGraceArea();\n opts.onPointerExit();\n }\n };\n const doc = getDocument(opts.triggerNode() ?? opts.contentNode());\n if (!doc)\n return;\n return on(doc, \"pointermove\", handleTrackPointerGrace);\n });\n }\n #removeGraceArea() {\n this.#pointerGraceArea = null;\n this.#isPointerInTransit.current = false;\n }\n #createGraceArea(e, hoverTarget) {\n const currentTarget = e.currentTarget;\n if (!isHTMLElement(currentTarget))\n return;\n const exitPoint = { x: e.clientX, y: e.clientY };\n const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n this.#pointerGraceArea = graceArea;\n this.#isPointerInTransit.current = true;\n }\n}\nfunction getExitSideFromRect(point, rect) {\n const top = Math.abs(rect.top - point.y);\n const bottom = Math.abs(rect.bottom - point.y);\n const right = Math.abs(rect.right - point.x);\n const left = Math.abs(rect.left - point.x);\n switch (Math.min(top, bottom, right, left)) {\n case left:\n return \"left\";\n case right:\n return \"right\";\n case top:\n return \"top\";\n case bottom:\n return \"bottom\";\n default:\n throw new Error(\"unreachable\");\n }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n // we extend the tip of the exit point to make it easier to navigate without\n // a minor jitter triggering a pointer exit\n const tipPadding = padding * 1.5;\n switch (exitSide) {\n case \"top\":\n return [\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n { x: exitPoint.x, y: exitPoint.y - tipPadding },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n ];\n case \"bottom\":\n return [\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x, y: exitPoint.y + tipPadding },\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n ];\n case \"left\":\n return [\n { x: exitPoint.x + padding, y: exitPoint.y - padding },\n { x: exitPoint.x - tipPadding, y: exitPoint.y },\n { x: exitPoint.x + padding, y: exitPoint.y + padding },\n ];\n case \"right\":\n return [\n { x: exitPoint.x - padding, y: exitPoint.y - padding },\n { x: exitPoint.x + tipPadding, y: exitPoint.y },\n { x: exitPoint.x - padding, y: exitPoint.y + padding },\n ];\n }\n}\nfunction getPointsFromRect(rect) {\n const { top, right, bottom, left } = rect;\n return [\n { x: left, y: top },\n { x: right, y: top },\n { x: right, y: bottom },\n { x: left, y: bottom },\n ];\n}\n// Determine if a point is inside of a polygon.\n// Based on https://github.com/substack/point-in-polygon\nfunction isPointInPolygon(point, polygon) {\n const { x, y } = point;\n let inside = false;\n for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n const xi = polygon[i].x;\n const yi = polygon[i].y;\n const xj = polygon[j].x;\n const yj = polygon[j].y;\n // prettier-ignore\n const intersect = ((yi > y) !== (yj > y)) && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n if (intersect)\n inside = !inside;\n }\n return inside;\n}\n// Returns a new array of points representing the convex hull of the given set of points.\n// https://www.nayuki.io/page/convex-hull-algorithm\nfunction getHull(points) {\n const newPoints = points.slice();\n newPoints.sort((a, b) => {\n if (a.x < b.x)\n return -1;\n else if (a.x > b.x)\n return +1;\n else if (a.y < b.y)\n return -1;\n else if (a.y > b.y)\n return +1;\n else\n return 0;\n });\n return getHullPresorted(newPoints);\n}\n// Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.\nfunction getHullPresorted(points) {\n if (points.length <= 1)\n return points.slice();\n const upperHull = [];\n for (let i = 0; i < points.length; i++) {\n const p = points[i];\n while (upperHull.length >= 2) {\n const q = upperHull[upperHull.length - 1];\n const r = upperHull[upperHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n upperHull.pop();\n else\n break;\n }\n upperHull.push(p);\n }\n upperHull.pop();\n const lowerHull = [];\n for (let i = points.length - 1; i >= 0; i--) {\n const p = points[i];\n while (lowerHull.length >= 2) {\n const q = lowerHull[lowerHull.length - 1];\n const r = lowerHull[lowerHull.length - 2];\n if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x))\n lowerHull.pop();\n else\n break;\n }\n lowerHull.push(p);\n }\n lowerHull.pop();\n if (upperHull.length === 1 &&\n lowerHull.length === 1 &&\n upperHull[0].x === lowerHull[0].x &&\n upperHull[0].y === lowerHull[0].y)\n return upperHull;\n else\n return upperHull.concat(lowerHull);\n}\n", "import { afterTick, mergeProps, onDestroyEffect, attachRef, DOMContext, getWindow, simpleBox, boxWith, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { FIRST_LAST_KEYS, LAST_KEYS, SELECTION_KEYS, SUB_OPEN_KEYS, getCheckedState, isMouseEvent, } from \"./utils.js\";\nimport { focusFirst } from \"../../internal/focus.js\";\nimport { CustomEventDispatcher } from \"../../internal/events.js\";\nimport { isElement, isElementOrSVGElement, isHTMLElement } from \"../../internal/is.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { createBitsAttrs, getAriaChecked, boolToStr, getDataOpenClosed, boolToEmptyStrOrUndef, } from \"../../internal/attrs.js\";\nimport { IsUsingKeyboard } from \"../utilities/is-using-keyboard/is-using-keyboard.svelte.js\";\nimport { getTabbableFrom } from \"../../internal/tabbable.js\";\nimport { isTabbable } from \"tabbable\";\nimport { DOMTypeahead } from \"../../internal/dom-typeahead.svelte.js\";\nimport { RovingFocusGroup } from \"../../internal/roving-focus-group.js\";\nimport { GraceArea } from \"../../internal/grace-area.svelte.js\";\nimport { PresenceManager } from \"../../internal/presence-manager.svelte.js\";\nimport { arraysAreEqual } from \"../../internal/arrays.js\";\nexport const CONTEXT_MENU_TRIGGER_ATTR = \"data-context-menu-trigger\";\nexport const CONTEXT_MENU_CONTENT_ATTR = \"data-context-menu-content\";\nconst MenuRootContext = new Context(\"Menu.Root\");\nconst MenuMenuContext = new Context(\"Menu.Root | Menu.Sub\");\nconst MenuContentContext = new Context(\"Menu.Content\");\nconst MenuGroupContext = new Context(\"Menu.Group | Menu.RadioGroup\");\nconst MenuRadioGroupContext = new Context(\"Menu.RadioGroup\");\nexport const MenuCheckboxGroupContext = new Context(\"Menu.CheckboxGroup\");\nexport const MenuOpenEvent = new CustomEventDispatcher(\"bitsmenuopen\", {\n bubbles: false,\n cancelable: true,\n});\nexport const menuAttrs = createBitsAttrs({\n component: \"menu\",\n parts: [\n \"trigger\",\n \"content\",\n \"sub-trigger\",\n \"item\",\n \"group\",\n \"group-heading\",\n \"checkbox-group\",\n \"checkbox-item\",\n \"radio-group\",\n \"radio-item\",\n \"separator\",\n \"sub-content\",\n \"arrow\",\n ],\n});\nexport class MenuRootState {\n static create(opts) {\n const root = new MenuRootState(opts);\n return MenuRootContext.set(root);\n }\n opts;\n isUsingKeyboard = new IsUsingKeyboard();\n ignoreCloseAutoFocus = $state(false);\n isPointerInTransit = $state(false);\n constructor(opts) {\n this.opts = opts;\n }\n getBitsAttr = (part) => {\n return menuAttrs.getAttr(part, this.opts.variant.current);\n };\n}\nexport class MenuMenuState {\n static create(opts, root) {\n return MenuMenuContext.set(new MenuMenuState(opts, root, null));\n }\n opts;\n root;\n parentMenu;\n contentId = boxWith(() => \"\");\n contentNode = $state(null);\n contentPresence;\n triggerNode = $state(null);\n constructor(opts, root, parentMenu) {\n this.opts = opts;\n this.root = root;\n this.parentMenu = parentMenu;\n this.contentPresence = new PresenceManager({\n ref: boxWith(() => this.contentNode),\n open: this.opts.open,\n onComplete: () => {\n this.opts.onOpenChangeComplete.current(this.opts.open.current);\n },\n });\n if (parentMenu) {\n watch(() => parentMenu.opts.open.current, () => {\n if (parentMenu.opts.open.current)\n return;\n this.opts.open.current = false;\n });\n }\n }\n toggleOpen() {\n this.opts.open.current = !this.opts.open.current;\n }\n onOpen() {\n this.opts.open.current = true;\n }\n onClose() {\n this.opts.open.current = false;\n }\n}\nexport class MenuContentState {\n static create(opts) {\n return MenuContentContext.set(new MenuContentState(opts, MenuMenuContext.get()));\n }\n opts;\n parentMenu;\n rovingFocusGroup;\n domContext;\n attachment;\n search = $state(\"\");\n #timer = 0;\n #handleTypeaheadSearch;\n mounted = $state(false);\n #isSub;\n constructor(opts, parentMenu) {\n this.opts = opts;\n this.parentMenu = parentMenu;\n this.domContext = new DOMContext(opts.ref);\n this.attachment = attachRef(this.opts.ref, (v) => {\n if (this.parentMenu.contentNode !== v) {\n this.parentMenu.contentNode = v;\n }\n });\n parentMenu.contentId = opts.id;\n this.#isSub = opts.isSub ?? false;\n this.onkeydown = this.onkeydown.bind(this);\n this.onblur = this.onblur.bind(this);\n this.onfocus = this.onfocus.bind(this);\n this.handleInteractOutside = this.handleInteractOutside.bind(this);\n new GraceArea({\n contentNode: () => this.parentMenu.contentNode,\n triggerNode: () => this.parentMenu.triggerNode,\n enabled: () => this.parentMenu.opts.open.current &&\n Boolean(this.parentMenu.triggerNode?.hasAttribute(this.parentMenu.root.getBitsAttr(\"sub-trigger\"))),\n onPointerExit: () => {\n this.parentMenu.opts.open.current = false;\n },\n setIsPointerInTransit: (value) => {\n this.parentMenu.root.isPointerInTransit = value;\n },\n });\n this.#handleTypeaheadSearch = new DOMTypeahead({\n getActiveElement: () => this.domContext.getActiveElement(),\n getWindow: () => this.domContext.getWindow(),\n }).handleTypeaheadSearch;\n this.rovingFocusGroup = new RovingFocusGroup({\n rootNode: boxWith(() => this.parentMenu.contentNode),\n candidateAttr: this.parentMenu.root.getBitsAttr(\"item\"),\n loop: this.opts.loop,\n orientation: boxWith(() => \"vertical\"),\n });\n watch(() => this.parentMenu.contentNode, (contentNode) => {\n if (!contentNode)\n return;\n const handler = () => {\n afterTick(() => {\n if (!this.parentMenu.root.isUsingKeyboard.current)\n return;\n this.rovingFocusGroup.focusFirstCandidate();\n });\n };\n return MenuOpenEvent.listen(contentNode, handler);\n });\n $effect(() => {\n if (!this.parentMenu.opts.open.current) {\n this.domContext.getWindow().clearTimeout(this.#timer);\n }\n });\n }\n #getCandidateNodes() {\n const node = this.parentMenu.contentNode;\n if (!node)\n return [];\n const candidates = Array.from(node.querySelectorAll(`[${this.parentMenu.root.getBitsAttr(\"item\")}]:not([data-disabled])`));\n return candidates;\n }\n #isPointerMovingToSubmenu() {\n return this.parentMenu.root.isPointerInTransit;\n }\n onCloseAutoFocus = (e) => {\n this.opts.onCloseAutoFocus.current?.(e);\n if (e.defaultPrevented || this.#isSub)\n return;\n if (this.parentMenu.triggerNode && isTabbable(this.parentMenu.triggerNode)) {\n e.preventDefault();\n this.parentMenu.triggerNode.focus();\n }\n };\n handleTabKeyDown(e) {\n /**\n * We locate the root `menu`'s trigger by going up the tree until\n * we find a menu that has no parent. This will allow us to focus the next\n * tabbable element before/after the root trigger.\n */\n let rootMenu = this.parentMenu;\n while (rootMenu.parentMenu !== null) {\n rootMenu = rootMenu.parentMenu;\n }\n // if for some unforeseen reason the root menu has no trigger, we bail\n if (!rootMenu.triggerNode)\n return;\n // cancel default tab behavior\n e.preventDefault();\n // find the next/previous tabbable\n const nodeToFocus = getTabbableFrom(rootMenu.triggerNode, e.shiftKey ? \"prev\" : \"next\");\n if (nodeToFocus) {\n /**\n * We set a flag to ignore the `onCloseAutoFocus` event handler\n * as well as the fallbacks inside the focus scope to prevent\n * race conditions causing focus to fall back to the body even\n * though we're trying to focus the next tabbable element.\n */\n this.parentMenu.root.ignoreCloseAutoFocus = true;\n rootMenu.onClose();\n afterTick(() => {\n nodeToFocus.focus();\n afterTick(() => {\n this.parentMenu.root.ignoreCloseAutoFocus = false;\n });\n });\n }\n else {\n this.domContext.getDocument().body.focus();\n }\n }\n onkeydown(e) {\n if (e.defaultPrevented)\n return;\n if (e.key === kbd.TAB) {\n this.handleTabKeyDown(e);\n return;\n }\n const target = e.target;\n const currentTarget = e.currentTarget;\n if (!isHTMLElement(target) || !isHTMLElement(currentTarget))\n return;\n const isKeydownInside = target.closest(`[${this.parentMenu.root.getBitsAttr(\"content\")}]`)?.id ===\n this.parentMenu.contentId.current;\n const isModifierKey = e.ctrlKey || e.altKey || e.metaKey;\n const isCharacterKey = e.key.length === 1;\n const kbdFocusedEl = this.rovingFocusGroup.handleKeydown(target, e);\n if (kbdFocusedEl)\n return;\n // prevent space from being considered with typeahead\n if (e.code === \"Space\")\n return;\n const candidateNodes = this.#getCandidateNodes();\n if (isKeydownInside) {\n if (!isModifierKey && isCharacterKey) {\n this.#handleTypeaheadSearch(e.key, candidateNodes);\n }\n }\n // focus first/last based on key pressed\n if (e.target?.id !== this.parentMenu.contentId.current)\n return;\n if (!FIRST_LAST_KEYS.includes(e.key))\n return;\n e.preventDefault();\n if (LAST_KEYS.includes(e.key)) {\n candidateNodes.reverse();\n }\n focusFirst(candidateNodes, { select: false }, () => this.domContext.getActiveElement());\n }\n onblur(e) {\n if (!isElement(e.currentTarget))\n return;\n if (!isElement(e.target))\n return;\n // clear search buffer when leaving the menu\n if (!e.currentTarget.contains?.(e.target)) {\n this.domContext.getWindow().clearTimeout(this.#timer);\n this.search = \"\";\n }\n }\n onfocus(_) {\n if (!this.parentMenu.root.isUsingKeyboard.current)\n return;\n afterTick(() => this.rovingFocusGroup.focusFirstCandidate());\n }\n onItemEnter() {\n return this.#isPointerMovingToSubmenu();\n }\n onItemLeave(e) {\n if (e.currentTarget.hasAttribute(this.parentMenu.root.getBitsAttr(\"sub-trigger\")))\n return;\n if (this.#isPointerMovingToSubmenu() || this.parentMenu.root.isUsingKeyboard.current)\n return;\n const contentNode = this.parentMenu.contentNode;\n contentNode?.focus();\n this.rovingFocusGroup.setCurrentTabStopId(\"\");\n }\n onTriggerLeave() {\n if (this.#isPointerMovingToSubmenu())\n return true;\n return false;\n }\n handleInteractOutside(e) {\n if (!isElementOrSVGElement(e.target))\n return;\n const triggerId = this.parentMenu.triggerNode?.id;\n if (e.target.id === triggerId) {\n e.preventDefault();\n return;\n }\n if (e.target.closest(`#${triggerId}`)) {\n e.preventDefault();\n }\n }\n get shouldRender() {\n return this.parentMenu.contentPresence.shouldRender;\n }\n snippetProps = $derived.by(() => ({ open: this.parentMenu.opts.open.current }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"menu\",\n \"aria-orientation\": \"vertical\",\n [this.parentMenu.root.getBitsAttr(\"content\")]: \"\",\n \"data-state\": getDataOpenClosed(this.parentMenu.opts.open.current),\n onkeydown: this.onkeydown,\n onblur: this.onblur,\n onfocus: this.onfocus,\n dir: this.parentMenu.root.opts.dir.current,\n style: {\n pointerEvents: \"auto\",\n // CSS containment isolates style/layout/paint calculations from the rest of the page\n contain: \"layout style\",\n },\n ...this.attachment,\n }));\n popperProps = {\n onCloseAutoFocus: (e) => this.onCloseAutoFocus(e),\n };\n}\nclass MenuItemSharedState {\n opts;\n content;\n attachment;\n #isFocused = $state(false);\n constructor(opts, content) {\n this.opts = opts;\n this.content = content;\n this.attachment = attachRef(this.opts.ref);\n this.onpointermove = this.onpointermove.bind(this);\n this.onpointerleave = this.onpointerleave.bind(this);\n this.onfocus = this.onfocus.bind(this);\n this.onblur = this.onblur.bind(this);\n }\n onpointermove(e) {\n if (e.defaultPrevented)\n return;\n if (!isMouseEvent(e))\n return;\n if (this.opts.disabled.current) {\n this.content.onItemLeave(e);\n }\n else {\n const defaultPrevented = this.content.onItemEnter();\n if (defaultPrevented)\n return;\n const item = e.currentTarget;\n if (!isHTMLElement(item))\n return;\n item.focus();\n }\n }\n onpointerleave(e) {\n if (e.defaultPrevented)\n return;\n if (!isMouseEvent(e))\n return;\n this.content.onItemLeave(e);\n }\n onfocus(e) {\n afterTick(() => {\n if (e.defaultPrevented || this.opts.disabled.current)\n return;\n this.#isFocused = true;\n });\n }\n onblur(e) {\n afterTick(() => {\n if (e.defaultPrevented)\n return;\n this.#isFocused = false;\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n tabindex: -1,\n role: \"menuitem\",\n \"aria-disabled\": boolToStr(this.opts.disabled.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-highlighted\": this.#isFocused ? \"\" : undefined,\n [this.content.parentMenu.root.getBitsAttr(\"item\")]: \"\",\n //\n onpointermove: this.onpointermove,\n onpointerleave: this.onpointerleave,\n onfocus: this.onfocus,\n onblur: this.onblur,\n ...this.attachment,\n }));\n}\nexport class MenuItemState {\n static create(opts) {\n const item = new MenuItemSharedState(opts, MenuContentContext.get());\n return new MenuItemState(opts, item);\n }\n opts;\n item;\n root;\n #isPointerDown = false;\n constructor(opts, item) {\n this.opts = opts;\n this.item = item;\n this.root = item.content.parentMenu.root;\n this.onkeydown = this.onkeydown.bind(this);\n this.onclick = this.onclick.bind(this);\n this.onpointerdown = this.onpointerdown.bind(this);\n this.onpointerup = this.onpointerup.bind(this);\n }\n #handleSelect() {\n if (this.item.opts.disabled.current)\n return;\n const selectEvent = new CustomEvent(\"menuitemselect\", { bubbles: true, cancelable: true });\n this.opts.onSelect.current(selectEvent);\n if (selectEvent.defaultPrevented) {\n this.item.content.parentMenu.root.isUsingKeyboard.current = false;\n return;\n }\n if (this.opts.closeOnSelect.current) {\n this.item.content.parentMenu.root.opts.onClose();\n }\n }\n onkeydown(e) {\n const isTypingAhead = this.item.content.search !== \"\";\n if (this.item.opts.disabled.current || (isTypingAhead && e.key === kbd.SPACE))\n return;\n if (SELECTION_KEYS.includes(e.key)) {\n if (!isHTMLElement(e.currentTarget))\n return;\n e.currentTarget.click();\n /**\n * We prevent default browser behavior for selection keys as they should trigger\n * a selection only:\n * - prevents space from scrolling the page.\n * - if keydown causes focus to move, prevents keydown from firing on the new target.\n */\n e.preventDefault();\n }\n }\n onclick(_) {\n if (this.item.opts.disabled.current)\n return;\n this.#handleSelect();\n }\n onpointerup(e) {\n if (e.defaultPrevented)\n return;\n if (!this.#isPointerDown) {\n if (!isHTMLElement(e.currentTarget))\n return;\n e.currentTarget?.click();\n }\n }\n onpointerdown(_) {\n this.#isPointerDown = true;\n }\n props = $derived.by(() => mergeProps(this.item.props, {\n onclick: this.onclick,\n onpointerdown: this.onpointerdown,\n onpointerup: this.onpointerup,\n onkeydown: this.onkeydown,\n }));\n}\nexport class MenuSubTriggerState {\n static create(opts) {\n const content = MenuContentContext.get();\n const item = new MenuItemSharedState(opts, content);\n const submenu = MenuMenuContext.get();\n return new MenuSubTriggerState(opts, item, content, submenu);\n }\n opts;\n item;\n content;\n submenu;\n attachment;\n #openTimer = null;\n constructor(opts, item, content, submenu) {\n this.opts = opts;\n this.item = item;\n this.content = content;\n this.submenu = submenu;\n this.attachment = attachRef(this.opts.ref, (v) => (this.submenu.triggerNode = v));\n this.onpointerleave = this.onpointerleave.bind(this);\n this.onpointermove = this.onpointermove.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n this.onclick = this.onclick.bind(this);\n onDestroyEffect(() => {\n this.#clearOpenTimer();\n });\n }\n #clearOpenTimer() {\n if (this.#openTimer === null)\n return;\n this.content.domContext.getWindow().clearTimeout(this.#openTimer);\n this.#openTimer = null;\n }\n onpointermove(e) {\n if (!isMouseEvent(e))\n return;\n if (!this.item.opts.disabled.current &&\n !this.submenu.opts.open.current &&\n !this.#openTimer &&\n !this.content.parentMenu.root.isPointerInTransit) {\n this.#openTimer = this.content.domContext.setTimeout(() => {\n this.submenu.onOpen();\n this.#clearOpenTimer();\n }, this.opts.openDelay.current);\n }\n }\n onpointerleave(e) {\n if (!isMouseEvent(e))\n return;\n this.#clearOpenTimer();\n }\n onkeydown(e) {\n const isTypingAhead = this.content.search !== \"\";\n if (this.item.opts.disabled.current || (isTypingAhead && e.key === kbd.SPACE))\n return;\n if (SUB_OPEN_KEYS[this.submenu.root.opts.dir.current].includes(e.key)) {\n e.currentTarget.click();\n e.preventDefault();\n }\n }\n onclick(e) {\n if (this.item.opts.disabled.current)\n return;\n /**\n * We manually focus because iOS Safari doesn't always focus on click (e.g. buttons)\n * and we rely heavily on `onFocusOutside` for submenus to close when switching\n * between separate submenus.\n */\n if (!isHTMLElement(e.currentTarget))\n return;\n e.currentTarget.focus();\n const selectEvent = new CustomEvent(\"menusubtriggerselect\", {\n bubbles: true,\n cancelable: true,\n });\n this.opts.onSelect.current(selectEvent);\n if (!this.submenu.opts.open.current) {\n this.submenu.onOpen();\n afterTick(() => {\n const contentNode = this.submenu.contentNode;\n if (!contentNode)\n return;\n MenuOpenEvent.dispatch(contentNode);\n });\n }\n }\n props = $derived.by(() => mergeProps({\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": boolToStr(this.submenu.opts.open.current),\n \"data-state\": getDataOpenClosed(this.submenu.opts.open.current),\n \"aria-controls\": this.submenu.opts.open.current\n ? this.submenu.contentId.current\n : undefined,\n [this.submenu.root.getBitsAttr(\"sub-trigger\")]: \"\",\n onclick: this.onclick,\n onpointermove: this.onpointermove,\n onpointerleave: this.onpointerleave,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }, this.item.props));\n}\nexport class MenuCheckboxItemState {\n static create(opts, checkboxGroup) {\n const item = new MenuItemState(opts, new MenuItemSharedState(opts, MenuContentContext.get()));\n return new MenuCheckboxItemState(opts, item, checkboxGroup);\n }\n opts;\n item;\n group;\n constructor(opts, item, group = null) {\n this.opts = opts;\n this.item = item;\n this.group = group;\n // Watch for value changes in the group if we're part of one\n if (this.group) {\n watch(() => this.group.opts.value.current, (groupValues) => {\n this.opts.checked.current = groupValues.includes(this.opts.value.current);\n });\n // Watch for checked state changes and sync with group\n watch(() => this.opts.checked.current, (checked) => {\n if (checked) {\n this.group.addValue(this.opts.value.current);\n }\n else {\n this.group.removeValue(this.opts.value.current);\n }\n });\n }\n }\n toggleChecked() {\n if (this.opts.indeterminate.current) {\n this.opts.indeterminate.current = false;\n this.opts.checked.current = true;\n }\n else {\n this.opts.checked.current = !this.opts.checked.current;\n }\n }\n snippetProps = $derived.by(() => ({\n checked: this.opts.checked.current,\n indeterminate: this.opts.indeterminate.current,\n }));\n props = $derived.by(() => ({\n ...this.item.props,\n role: \"menuitemcheckbox\",\n \"aria-checked\": getAriaChecked(this.opts.checked.current, this.opts.indeterminate.current),\n \"data-state\": getCheckedState(this.opts.checked.current),\n [this.item.root.getBitsAttr(\"checkbox-item\")]: \"\",\n }));\n}\nexport class MenuGroupState {\n static create(opts) {\n return MenuGroupContext.set(new MenuGroupState(opts, MenuRootContext.get()));\n }\n opts;\n root;\n attachment;\n groupHeadingId = $state(undefined);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n \"aria-labelledby\": this.groupHeadingId,\n [this.root.getBitsAttr(\"group\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class MenuGroupHeadingState {\n static create(opts) {\n // Try to get checkbox group first, then radio group, then regular group\n const checkboxGroup = MenuCheckboxGroupContext.getOr(null);\n if (checkboxGroup)\n return new MenuGroupHeadingState(opts, checkboxGroup);\n const radioGroup = MenuRadioGroupContext.getOr(null);\n if (radioGroup)\n return new MenuGroupHeadingState(opts, radioGroup);\n return new MenuGroupHeadingState(opts, MenuGroupContext.get());\n }\n opts;\n group;\n attachment;\n constructor(opts, group) {\n this.opts = opts;\n this.group = group;\n this.attachment = attachRef(this.opts.ref, (v) => (this.group.groupHeadingId = v?.id));\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n [this.group.root.getBitsAttr(\"group-heading\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class MenuSeparatorState {\n static create(opts) {\n return new MenuSeparatorState(opts, MenuRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n [this.root.getBitsAttr(\"separator\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class MenuArrowState {\n static create() {\n return new MenuArrowState(MenuRootContext.get());\n }\n root;\n constructor(root) {\n this.root = root;\n }\n props = $derived.by(() => ({\n [this.root.getBitsAttr(\"arrow\")]: \"\",\n }));\n}\nexport class MenuRadioGroupState {\n static create(opts) {\n return MenuGroupContext.set(MenuRadioGroupContext.set(new MenuRadioGroupState(opts, MenuContentContext.get())));\n }\n opts;\n content;\n attachment;\n groupHeadingId = $state(null);\n root;\n constructor(opts, content) {\n this.opts = opts;\n this.content = content;\n this.root = content.parentMenu.root;\n this.attachment = attachRef(this.opts.ref);\n }\n setValue(v) {\n this.opts.value.current = v;\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [this.root.getBitsAttr(\"radio-group\")]: \"\",\n role: \"group\",\n \"aria-labelledby\": this.groupHeadingId,\n ...this.attachment,\n }));\n}\nexport class MenuRadioItemState {\n static create(opts) {\n const radioGroup = MenuRadioGroupContext.get();\n const sharedItem = new MenuItemSharedState(opts, radioGroup.content);\n const item = new MenuItemState(opts, sharedItem);\n return new MenuRadioItemState(opts, item, radioGroup);\n }\n opts;\n item;\n group;\n attachment;\n isChecked = $derived.by(() => this.group.opts.value.current === this.opts.value.current);\n constructor(opts, item, group) {\n this.opts = opts;\n this.item = item;\n this.group = group;\n this.attachment = attachRef(this.opts.ref);\n }\n selectValue() {\n this.group.setValue(this.opts.value.current);\n }\n props = $derived.by(() => ({\n [this.group.root.getBitsAttr(\"radio-item\")]: \"\",\n ...this.item.props,\n role: \"menuitemradio\",\n \"aria-checked\": getAriaChecked(this.isChecked, false),\n \"data-state\": getCheckedState(this.isChecked),\n ...this.attachment,\n }));\n}\nexport class DropdownMenuTriggerState {\n static create(opts) {\n return new DropdownMenuTriggerState(opts, MenuMenuContext.get());\n }\n opts;\n parentMenu;\n attachment;\n constructor(opts, parentMenu) {\n this.opts = opts;\n this.parentMenu = parentMenu;\n this.attachment = attachRef(this.opts.ref, (v) => (this.parentMenu.triggerNode = v));\n }\n onclick = (e) => {\n /**\n * MacOS VoiceOver sends a click in Safari/Firefox bypassing the keydown event\n * when V0+Space is pressed. Since we already handle the keydown event and the\n * pointerdown events separately, we ignore it if the detail is not 0.\n */\n if (this.opts.disabled.current || e.detail !== 0)\n return;\n this.parentMenu.toggleOpen();\n e.preventDefault();\n };\n onpointerdown = (e) => {\n if (this.opts.disabled.current)\n return;\n if (e.pointerType === \"touch\")\n return e.preventDefault();\n if (e.button === 0 && e.ctrlKey === false) {\n this.parentMenu.toggleOpen();\n // prevent trigger focusing when opening to allow\n // the content to be given focus without competition\n if (!this.parentMenu.opts.open.current)\n e.preventDefault();\n }\n };\n onpointerup = (e) => {\n if (this.opts.disabled.current)\n return;\n if (e.pointerType === \"touch\") {\n e.preventDefault();\n this.parentMenu.toggleOpen();\n }\n };\n onkeydown = (e) => {\n if (this.opts.disabled.current)\n return;\n if (e.key === kbd.SPACE || e.key === kbd.ENTER) {\n this.parentMenu.toggleOpen();\n e.preventDefault();\n return;\n }\n if (e.key === kbd.ARROW_DOWN) {\n this.parentMenu.onOpen();\n e.preventDefault();\n }\n };\n #ariaControls = $derived.by(() => {\n if (this.parentMenu.opts.open.current && this.parentMenu.contentId.current)\n return this.parentMenu.contentId.current;\n return undefined;\n });\n props = $derived.by(() => ({\n id: this.opts.id.current,\n disabled: this.opts.disabled.current,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": boolToStr(this.parentMenu.opts.open.current),\n \"aria-controls\": this.#ariaControls,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-state\": getDataOpenClosed(this.parentMenu.opts.open.current),\n [this.parentMenu.root.getBitsAttr(\"trigger\")]: \"\",\n //\n onclick: this.onclick,\n onpointerdown: this.onpointerdown,\n onpointerup: this.onpointerup,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class ContextMenuTriggerState {\n static create(opts) {\n return new ContextMenuTriggerState(opts, MenuMenuContext.get());\n }\n opts;\n parentMenu;\n attachment;\n #point = $state({ x: 0, y: 0 });\n virtualElement = simpleBox({\n getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...this.#point }),\n });\n #longPressTimer = null;\n constructor(opts, parentMenu) {\n this.opts = opts;\n this.parentMenu = parentMenu;\n this.attachment = attachRef(this.opts.ref, (v) => (this.parentMenu.triggerNode = v));\n this.oncontextmenu = this.oncontextmenu.bind(this);\n this.onpointerdown = this.onpointerdown.bind(this);\n this.onpointermove = this.onpointermove.bind(this);\n this.onpointercancel = this.onpointercancel.bind(this);\n this.onpointerup = this.onpointerup.bind(this);\n watch(() => this.#point, (point) => {\n this.virtualElement.current = {\n getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point }),\n };\n });\n watch(() => this.opts.disabled.current, (isDisabled) => {\n if (isDisabled) {\n this.#clearLongPressTimer();\n }\n });\n onDestroyEffect(() => this.#clearLongPressTimer());\n }\n #clearLongPressTimer() {\n if (this.#longPressTimer === null)\n return;\n getWindow(this.opts.ref.current).clearTimeout(this.#longPressTimer);\n }\n #handleOpen(e) {\n this.#point = { x: e.clientX, y: e.clientY };\n this.parentMenu.onOpen();\n }\n oncontextmenu(e) {\n if (e.defaultPrevented || this.opts.disabled.current)\n return;\n this.#clearLongPressTimer();\n this.#handleOpen(e);\n e.preventDefault();\n this.parentMenu.contentNode?.focus();\n }\n onpointerdown(e) {\n if (this.opts.disabled.current || isMouseEvent(e))\n return;\n this.#clearLongPressTimer();\n this.#longPressTimer = getWindow(this.opts.ref.current).setTimeout(() => this.#handleOpen(e), 700);\n }\n onpointermove(e) {\n if (this.opts.disabled.current || isMouseEvent(e))\n return;\n this.#clearLongPressTimer();\n }\n onpointercancel(e) {\n if (this.opts.disabled.current || isMouseEvent(e))\n return;\n this.#clearLongPressTimer();\n }\n onpointerup(e) {\n if (this.opts.disabled.current || isMouseEvent(e))\n return;\n this.#clearLongPressTimer();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n disabled: this.opts.disabled.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-state\": getDataOpenClosed(this.parentMenu.opts.open.current),\n [CONTEXT_MENU_TRIGGER_ATTR]: \"\",\n tabindex: -1,\n //\n onpointerdown: this.onpointerdown,\n onpointermove: this.onpointermove,\n onpointercancel: this.onpointercancel,\n onpointerup: this.onpointerup,\n oncontextmenu: this.oncontextmenu,\n ...this.attachment,\n }));\n}\nexport class MenuCheckboxGroupState {\n static create(opts) {\n return MenuCheckboxGroupContext.set(new MenuCheckboxGroupState(opts, MenuContentContext.get()));\n }\n opts;\n content;\n root;\n attachment;\n groupHeadingId = $state(null);\n constructor(opts, content) {\n this.opts = opts;\n this.content = content;\n this.root = content.parentMenu.root;\n this.attachment = attachRef(this.opts.ref);\n }\n addValue(checkboxValue) {\n if (!checkboxValue)\n return;\n if (!this.opts.value.current.includes(checkboxValue)) {\n const newValue = [...$state.snapshot(this.opts.value.current), checkboxValue];\n this.opts.value.current = newValue;\n if (arraysAreEqual(this.opts.value.current, newValue))\n return;\n this.opts.onValueChange.current(newValue);\n }\n }\n removeValue(checkboxValue) {\n if (!checkboxValue)\n return;\n const index = this.opts.value.current.indexOf(checkboxValue);\n if (index === -1)\n return;\n const newValue = this.opts.value.current.filter((v) => v !== checkboxValue);\n this.opts.value.current = newValue;\n if (arraysAreEqual(this.opts.value.current, newValue))\n return;\n this.opts.onValueChange.current(newValue);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [this.root.getBitsAttr(\"checkbox-group\")]: \"\",\n role: \"group\",\n \"aria-labelledby\": this.groupHeadingId,\n ...this.attachment,\n }));\n}\nexport class MenuSubmenuState {\n static create(opts) {\n const menu = MenuMenuContext.get();\n return MenuMenuContext.set(new MenuMenuState(opts, menu.root, menu));\n }\n}\n", "import { afterSleep, afterTick, executeCallbacks, onDestroyEffect, } from \"svelte-toolbelt\";\nimport { watch } from \"runed\";\nimport { on } from \"svelte/events\";\nimport {} from \"../../../internal/events.js\";\nimport { debounce } from \"../../../internal/debounce.js\";\nimport { noop } from \"../../../internal/noop.js\";\nimport { getOwnerDocument, isOrContainsTarget } from \"../../../internal/elements.js\";\nimport { isElementOrSVGElement } from \"../../../internal/is.js\";\nimport { isClickTrulyOutside } from \"../../../internal/dom.js\";\nimport { CONTEXT_MENU_CONTENT_ATTR, CONTEXT_MENU_TRIGGER_ATTR, } from \"../../menu/menu.svelte.js\";\nglobalThis.bitsDismissableLayers ??= new Map();\nexport class DismissibleLayerState {\n static create(opts) {\n return new DismissibleLayerState(opts);\n }\n opts;\n #interactOutsideProp;\n #behaviorType;\n #interceptedEvents = {\n pointerdown: false,\n };\n #isResponsibleLayer = false;\n #isFocusInsideDOMTree = false;\n #documentObj = undefined;\n #onFocusOutside;\n #unsubClickListener = noop;\n constructor(opts) {\n this.opts = opts;\n this.#behaviorType = opts.interactOutsideBehavior;\n this.#interactOutsideProp = opts.onInteractOutside;\n this.#onFocusOutside = opts.onFocusOutside;\n $effect(() => {\n this.#documentObj = getOwnerDocument(this.opts.ref.current);\n });\n let unsubEvents = noop;\n const cleanup = () => {\n this.#resetState();\n globalThis.bitsDismissableLayers.delete(this);\n this.#handleInteractOutside.destroy();\n unsubEvents();\n };\n watch([() => this.opts.enabled.current, () => this.opts.ref.current], () => {\n if (!this.opts.enabled.current || !this.opts.ref.current)\n return;\n afterSleep(1, () => {\n if (!this.opts.ref.current)\n return;\n globalThis.bitsDismissableLayers.set(this, this.#behaviorType);\n unsubEvents();\n unsubEvents = this.#addEventListeners();\n });\n return cleanup;\n });\n onDestroyEffect(() => {\n this.#resetState.destroy();\n globalThis.bitsDismissableLayers.delete(this);\n this.#handleInteractOutside.destroy();\n this.#unsubClickListener();\n unsubEvents();\n });\n }\n #handleFocus = (event) => {\n if (event.defaultPrevented)\n return;\n if (!this.opts.ref.current)\n return;\n afterTick(() => {\n if (!this.opts.ref.current || this.#isTargetWithinLayer(event.target))\n return;\n if (event.target && !this.#isFocusInsideDOMTree) {\n this.#onFocusOutside.current?.(event);\n }\n });\n };\n #addEventListeners() {\n return executeCallbacks(\n /**\n * CAPTURE INTERACTION START\n * mark interaction-start event as intercepted.\n * mark responsible layer during interaction start\n * to avoid checking if is responsible layer during interaction end\n * when a new floating element may have been opened.\n */\n on(this.#documentObj, \"pointerdown\", executeCallbacks(this.#markInterceptedEvent, this.#markResponsibleLayer), { capture: true }), \n /**\n * BUBBLE INTERACTION START\n * Mark interaction-start event as non-intercepted. Debounce `onInteractOutsideStart`\n * to avoid prematurely checking if other events were intercepted.\n */\n on(this.#documentObj, \"pointerdown\", executeCallbacks(this.#markNonInterceptedEvent, this.#handleInteractOutside)), \n /**\n * HANDLE FOCUS OUTSIDE\n */\n on(this.#documentObj, \"focusin\", this.#handleFocus));\n }\n #handleDismiss = (e) => {\n let event = e;\n if (event.defaultPrevented) {\n event = createWrappedEvent(e);\n }\n this.#interactOutsideProp.current(e);\n };\n #handleInteractOutside = debounce((e) => {\n if (!this.opts.ref.current) {\n this.#unsubClickListener();\n return;\n }\n const isEventValid = this.opts.isValidEvent.current(e, this.opts.ref.current) ||\n isValidEvent(e, this.opts.ref.current);\n if (!this.#isResponsibleLayer || this.#isAnyEventIntercepted() || !isEventValid) {\n this.#unsubClickListener();\n return;\n }\n let event = e;\n if (event.defaultPrevented) {\n event = createWrappedEvent(event);\n }\n if (this.#behaviorType.current !== \"close\" &&\n this.#behaviorType.current !== \"defer-otherwise-close\") {\n this.#unsubClickListener();\n return;\n }\n if (e.pointerType === \"touch\") {\n this.#unsubClickListener();\n this.#unsubClickListener = on(this.#documentObj, \"click\", this.#handleDismiss, {\n once: true,\n });\n }\n else {\n this.#interactOutsideProp.current(event);\n }\n }, 10);\n #markInterceptedEvent = (e) => {\n this.#interceptedEvents[e.type] = true;\n };\n #markNonInterceptedEvent = (e) => {\n this.#interceptedEvents[e.type] = false;\n };\n #markResponsibleLayer = () => {\n if (!this.opts.ref.current)\n return;\n this.#isResponsibleLayer = isResponsibleLayer(this.opts.ref.current);\n };\n #isTargetWithinLayer = (target) => {\n if (!this.opts.ref.current)\n return false;\n return isOrContainsTarget(this.opts.ref.current, target);\n };\n #resetState = debounce(() => {\n for (const eventType in this.#interceptedEvents) {\n this.#interceptedEvents[eventType] = false;\n }\n this.#isResponsibleLayer = false;\n }, 20);\n #isAnyEventIntercepted() {\n const i = Object.values(this.#interceptedEvents).some(Boolean);\n return i;\n }\n #onfocuscapture = () => {\n this.#isFocusInsideDOMTree = true;\n };\n #onblurcapture = () => {\n this.#isFocusInsideDOMTree = false;\n };\n props = {\n onfocuscapture: this.#onfocuscapture,\n onblurcapture: this.#onblurcapture,\n };\n}\nexport function getTopMostDismissableLayer(layersArr = [\n ...globalThis.bitsDismissableLayers,\n]) {\n return layersArr.findLast(([_, { current: behaviorType }]) => behaviorType === \"close\" || behaviorType === \"ignore\");\n}\nfunction isResponsibleLayer(node) {\n const layersArr = [...globalThis.bitsDismissableLayers];\n /**\n * We first check if we can find a top layer with `close` or `ignore`.\n * If that top layer was found and matches the provided node, then the node is\n * responsible for the outside interaction. Otherwise, we know that all layers defer so\n * the first layer is the responsible one.\n */\n const topMostLayer = getTopMostDismissableLayer(layersArr);\n if (topMostLayer)\n return topMostLayer[0].opts.ref.current === node;\n const [firstLayerNode] = layersArr[0];\n return firstLayerNode.opts.ref.current === node;\n}\nfunction isValidEvent(e, node) {\n const target = e.target;\n if (!isElementOrSVGElement(target))\n return false;\n const targetIsContextMenuTrigger = Boolean(target.closest(`[${CONTEXT_MENU_TRIGGER_ATTR}]`));\n if (\"button\" in e && e.button > 0 && !targetIsContextMenuTrigger)\n return false;\n if (\"button\" in e && e.button === 0 && targetIsContextMenuTrigger)\n return true;\n const nodeIsContextMenu = Boolean(node.closest(`[${CONTEXT_MENU_CONTENT_ATTR}]`));\n if (targetIsContextMenuTrigger && nodeIsContextMenu)\n return false;\n const ownerDocument = getOwnerDocument(target);\n const isValid = ownerDocument.documentElement.contains(target) &&\n !isOrContainsTarget(node, target) &&\n isClickTrulyOutside(e, node);\n return isValid;\n}\nfunction createWrappedEvent(e) {\n const capturedCurrentTarget = e.currentTarget;\n const capturedTarget = e.target;\n let newEvent;\n if (e instanceof PointerEvent) {\n newEvent = new PointerEvent(e.type, e);\n }\n else {\n newEvent = new PointerEvent(\"pointerdown\", e);\n }\n // track the prevented state separately\n let isPrevented = false;\n // Create a proxy to intercept property access and method calls\n const wrappedEvent = new Proxy(newEvent, {\n get: (target, prop) => {\n if (prop === \"currentTarget\") {\n return capturedCurrentTarget;\n }\n if (prop === \"target\") {\n return capturedTarget;\n }\n if (prop === \"preventDefault\") {\n return () => {\n isPrevented = true;\n if (typeof target.preventDefault === \"function\") {\n target.preventDefault();\n }\n };\n }\n if (prop === \"defaultPrevented\") {\n return isPrevented;\n }\n if (prop in target) {\n // oxlint-disable-next-line no-explicit-any\n return target[prop];\n }\n // oxlint-disable-next-line no-explicit-any\n return e[prop];\n },\n });\n return wrappedEvent;\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { DismissibleLayerImplProps } from \"./types.js\";\n\timport { DismissibleLayerState } from \"./use-dismissable-layer.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tlet {\n\t\tinteractOutsideBehavior = \"close\",\n\t\tonInteractOutside = noop,\n\t\tonFocusOutside = noop,\n\t\tid,\n\t\tchildren,\n\t\tenabled,\n\t\tisValidEvent = () => false,\n\t\tref,\n\t}: DismissibleLayerImplProps = $props();\n\n\tconst dismissibleLayerState = DismissibleLayerState.create({\n\t\tid: boxWith(() => id),\n\t\tinteractOutsideBehavior: boxWith(() => interactOutsideBehavior),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tenabled: boxWith(() => enabled),\n\t\tonFocusOutside: boxWith(() => onFocusOutside),\n\t\tisValidEvent: boxWith(() => isValidEvent),\n\t\tref,\n\t});\n</script>\n\n{@render children?.({ props: dismissibleLayerState.props })}\n", "import { DOMContext } from \"svelte-toolbelt\";\nimport { watch } from \"runed\";\nimport { on } from \"svelte/events\";\nimport { kbd } from \"../../../internal/kbd.js\";\nimport { noop } from \"../../../internal/noop.js\";\nglobalThis.bitsEscapeLayers ??= new Map();\nexport class EscapeLayerState {\n static create(opts) {\n return new EscapeLayerState(opts);\n }\n opts;\n domContext;\n constructor(opts) {\n this.opts = opts;\n this.domContext = new DOMContext(this.opts.ref);\n let unsubEvents = noop;\n watch(() => opts.enabled.current, (enabled) => {\n if (enabled) {\n globalThis.bitsEscapeLayers.set(this, opts.escapeKeydownBehavior);\n unsubEvents = this.#addEventListener();\n }\n return () => {\n unsubEvents();\n globalThis.bitsEscapeLayers.delete(this);\n };\n });\n }\n #addEventListener = () => {\n return on(this.domContext.getDocument(), \"keydown\", this.#onkeydown, { passive: false });\n };\n #onkeydown = (e) => {\n if (e.key !== kbd.ESCAPE || !isResponsibleEscapeLayer(this))\n return;\n const clonedEvent = new KeyboardEvent(e.type, e);\n e.preventDefault();\n const behaviorType = this.opts.escapeKeydownBehavior.current;\n if (behaviorType !== \"close\" && behaviorType !== \"defer-otherwise-close\")\n return;\n this.opts.onEscapeKeydown.current(clonedEvent);\n };\n}\nfunction isResponsibleEscapeLayer(instance) {\n const layersArr = [...globalThis.bitsEscapeLayers];\n /**\n * We first check if we can find a top layer with `close` or `ignore`.\n * If that top layer was found and matches the provided node, then the node is\n * responsible for the escape. Otherwise, we know that all layers defer so\n * the first layer is the responsible one.\n */\n const topMostLayer = layersArr.findLast(([_, { current: behaviorType }]) => behaviorType === \"close\" || behaviorType === \"ignore\");\n if (topMostLayer)\n return topMostLayer[0] === instance;\n const [firstLayerNode] = layersArr[0];\n return firstLayerNode === instance;\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { EscapeLayerImplProps } from \"./types.js\";\n\timport { EscapeLayerState } from \"./use-escape-layer.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tlet {\n\t\tescapeKeydownBehavior = \"close\",\n\t\tonEscapeKeydown = noop,\n\t\tchildren,\n\t\tenabled,\n\t\tref,\n\t}: EscapeLayerImplProps = $props();\n\n\tEscapeLayerState.create({\n\t\tescapeKeydownBehavior: boxWith(() => escapeKeydownBehavior),\n\t\tonEscapeKeydown: boxWith(() => onEscapeKeydown),\n\t\tenabled: boxWith(() => enabled),\n\t\tref,\n\t});\n</script>\n\n{@render children?.()}\n", "import { simpleBox } from \"svelte-toolbelt\";\nimport { FocusScope } from \"./focus-scope.svelte.js\";\nexport class FocusScopeManager {\n static instance;\n #scopeStack = simpleBox([]);\n #focusHistory = new WeakMap();\n #preFocusHistory = new WeakMap();\n static getInstance() {\n if (!this.instance) {\n this.instance = new FocusScopeManager();\n }\n return this.instance;\n }\n register(scope) {\n const current = this.getActive();\n if (current && current !== scope) {\n current.pause();\n }\n // capture the currently focused element before this scope becomes active\n const activeElement = document.activeElement;\n if (activeElement && activeElement !== document.body) {\n this.#preFocusHistory.set(scope, activeElement);\n }\n this.#scopeStack.current = this.#scopeStack.current.filter((s) => s !== scope);\n this.#scopeStack.current.unshift(scope);\n }\n unregister(scope) {\n this.#scopeStack.current = this.#scopeStack.current.filter((s) => s !== scope);\n const next = this.getActive();\n if (next) {\n next.resume();\n }\n }\n getActive() {\n return this.#scopeStack.current[0];\n }\n setFocusMemory(scope, element) {\n this.#focusHistory.set(scope, element);\n }\n getFocusMemory(scope) {\n return this.#focusHistory.get(scope);\n }\n isActiveScope(scope) {\n return this.getActive() === scope;\n }\n setPreFocusMemory(scope, element) {\n this.#preFocusHistory.set(scope, element);\n }\n getPreFocusMemory(scope) {\n return this.#preFocusHistory.get(scope);\n }\n clearPreFocusMemory(scope) {\n this.#preFocusHistory.delete(scope);\n }\n}\n", "import { onDestroyEffect } from \"svelte-toolbelt\";\nimport { FocusScopeManager } from \"./focus-scope-manager.js\";\nimport { focusable, isFocusable, tabbable } from \"tabbable\";\nimport { on } from \"svelte/events\";\nimport { watch } from \"runed\";\nexport class FocusScope {\n #paused = false;\n #container = null;\n #manager = FocusScopeManager.getInstance();\n #cleanupFns = [];\n #opts;\n constructor(opts) {\n this.#opts = opts;\n }\n get paused() {\n return this.#paused;\n }\n pause() {\n this.#paused = true;\n }\n resume() {\n this.#paused = false;\n }\n #cleanup() {\n for (const fn of this.#cleanupFns) {\n fn();\n }\n this.#cleanupFns = [];\n }\n mount(container) {\n if (this.#container) {\n this.unmount();\n }\n this.#container = container;\n this.#manager.register(this);\n this.#setupEventListeners();\n this.#handleOpenAutoFocus();\n }\n unmount() {\n if (!this.#container)\n return;\n this.#cleanup();\n // handle close auto-focus\n this.#handleCloseAutoFocus();\n this.#manager.unregister(this);\n this.#manager.clearPreFocusMemory(this);\n this.#container = null;\n }\n #handleOpenAutoFocus() {\n if (!this.#container)\n return;\n const event = new CustomEvent(\"focusScope.onOpenAutoFocus\", {\n bubbles: false,\n cancelable: true,\n });\n this.#opts.onOpenAutoFocus.current(event);\n if (!event.defaultPrevented) {\n requestAnimationFrame(() => {\n if (!this.#container)\n return;\n const firstTabbable = this.#getFirstTabbable();\n if (firstTabbable) {\n firstTabbable.focus();\n this.#manager.setFocusMemory(this, firstTabbable);\n }\n else {\n this.#container.focus();\n }\n });\n }\n }\n #handleCloseAutoFocus() {\n const event = new CustomEvent(\"focusScope.onCloseAutoFocus\", {\n bubbles: false,\n cancelable: true,\n });\n this.#opts.onCloseAutoFocus.current?.(event);\n if (!event.defaultPrevented) {\n // return focus to the element that was focused before this scope opened\n const preFocusedElement = this.#manager.getPreFocusMemory(this);\n if (preFocusedElement && document.contains(preFocusedElement)) {\n // ensure the element is still focusable and in the document\n try {\n preFocusedElement.focus();\n }\n catch {\n // fallback if focus fails\n document.body.focus();\n }\n }\n }\n }\n #setupEventListeners() {\n if (!this.#container || !this.#opts.trap.current)\n return;\n const container = this.#container;\n const doc = container.ownerDocument;\n const handleFocus = (e) => {\n if (this.#paused || !this.#manager.isActiveScope(this))\n return;\n const target = e.target;\n if (!target)\n return;\n const isInside = container.contains(target);\n if (isInside) {\n // store last focused element\n this.#manager.setFocusMemory(this, target);\n }\n else {\n // focus escaped - bring it back\n const lastFocused = this.#manager.getFocusMemory(this);\n if (lastFocused && container.contains(lastFocused) && isFocusable(lastFocused)) {\n e.preventDefault();\n lastFocused.focus();\n }\n else {\n // fallback to first tabbable or first focusable or container\n const firstTabbable = this.#getFirstTabbable();\n const firstFocusable = this.#getAllFocusables()[0];\n (firstTabbable || firstFocusable || container).focus();\n }\n }\n };\n const handleKeydown = (e) => {\n if (!this.#opts.loop || this.#paused || e.key !== \"Tab\")\n return;\n if (!this.#manager.isActiveScope(this))\n return;\n const tabbables = this.#getTabbables();\n if (tabbables.length === 0)\n return;\n const first = tabbables[0];\n const last = tabbables[tabbables.length - 1];\n if (!e.shiftKey && doc.activeElement === last) {\n e.preventDefault();\n first.focus();\n }\n else if (e.shiftKey && doc.activeElement === first) {\n e.preventDefault();\n last.focus();\n }\n };\n this.#cleanupFns.push(on(doc, \"focusin\", handleFocus, { capture: true }), on(container, \"keydown\", handleKeydown));\n const observer = new MutationObserver(() => {\n const lastFocused = this.#manager.getFocusMemory(this);\n if (lastFocused && !container.contains(lastFocused)) {\n // last focused element was removed\n const firstTabbable = this.#getFirstTabbable();\n const firstFocusable = this.#getAllFocusables()[0];\n const elementToFocus = firstTabbable || firstFocusable;\n if (elementToFocus) {\n elementToFocus.focus();\n this.#manager.setFocusMemory(this, elementToFocus);\n }\n else {\n // no focusable elements left, focus container\n container.focus();\n }\n }\n });\n observer.observe(container, {\n childList: true,\n subtree: true,\n });\n this.#cleanupFns.push(() => observer.disconnect());\n }\n #getTabbables() {\n if (!this.#container)\n return [];\n return tabbable(this.#container, {\n includeContainer: false,\n getShadowRoot: true,\n });\n }\n #getFirstTabbable() {\n const tabbables = this.#getTabbables();\n return tabbables[0] || null;\n }\n #getAllFocusables() {\n if (!this.#container)\n return [];\n return focusable(this.#container, {\n includeContainer: false,\n getShadowRoot: true,\n });\n }\n static use(opts) {\n let scope = null;\n watch([() => opts.ref.current, () => opts.enabled.current], ([ref, enabled]) => {\n if (ref && enabled) {\n if (!scope) {\n scope = new FocusScope(opts);\n }\n scope.mount(ref);\n }\n else if (scope) {\n scope.unmount();\n scope = null;\n }\n });\n onDestroyEffect(() => {\n scope?.unmount();\n });\n return {\n get props() {\n return {\n tabindex: -1,\n };\n },\n };\n }\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { FocusScopeImplProps } from \"./types.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { FocusScope } from \"./focus-scope.svelte.js\";\n\n\tlet {\n\t\tenabled = false,\n\t\ttrapFocus = false,\n\t\tloop = false,\n\t\tonCloseAutoFocus = noop,\n\t\tonOpenAutoFocus = noop,\n\t\tfocusScope,\n\t\tref,\n\t}: FocusScopeImplProps = $props();\n\n\tconst focusScopeState = FocusScope.use({\n\t\tenabled: boxWith(() => enabled),\n\t\ttrap: boxWith(() => trapFocus),\n\t\tloop: loop,\n\t\tonCloseAutoFocus: boxWith(() => onCloseAutoFocus),\n\t\tonOpenAutoFocus: boxWith(() => onOpenAutoFocus),\n\t\tref,\n\t});\n</script>\n\n{@render focusScope?.({ props: focusScopeState.props })}\n", "import { DOMContext, composeHandlers, contains, executeCallbacks, } from \"svelte-toolbelt\";\nimport { watch } from \"runed\";\nimport { on } from \"svelte/events\";\nimport { noop } from \"../../../internal/noop.js\";\nimport { isHTMLElement } from \"../../../internal/is.js\";\nglobalThis.bitsTextSelectionLayers ??= new Map();\nexport class TextSelectionLayerState {\n static create(opts) {\n return new TextSelectionLayerState(opts);\n }\n opts;\n domContext;\n #unsubSelectionLock = noop;\n constructor(opts) {\n this.opts = opts;\n this.domContext = new DOMContext(opts.ref);\n let unsubEvents = noop;\n watch(() => this.opts.enabled.current, (isEnabled) => {\n if (isEnabled) {\n globalThis.bitsTextSelectionLayers.set(this, this.opts.enabled);\n unsubEvents();\n unsubEvents = this.#addEventListeners();\n }\n return () => {\n unsubEvents();\n this.#resetSelectionLock();\n globalThis.bitsTextSelectionLayers.delete(this);\n };\n });\n }\n #addEventListeners() {\n return executeCallbacks(on(this.domContext.getDocument(), \"pointerdown\", this.#pointerdown), on(this.domContext.getDocument(), \"pointerup\", composeHandlers(this.#resetSelectionLock, this.opts.onPointerUp.current)));\n }\n #pointerdown = (e) => {\n const node = this.opts.ref.current;\n const target = e.target;\n if (!isHTMLElement(node) || !isHTMLElement(target) || !this.opts.enabled.current)\n return;\n /**\n * We only lock user-selection overflow if layer is the top most layer and\n * pointerdown occurred inside the node. You are still allowed to select text\n * outside the node provided pointerdown occurs outside the node.\n */\n if (!isHighestLayer(this) || !contains(node, target))\n return;\n this.opts.onPointerDown.current(e);\n if (e.defaultPrevented)\n return;\n this.#unsubSelectionLock = preventTextSelectionOverflow(node, this.domContext.getDocument().body);\n };\n #resetSelectionLock = () => {\n this.#unsubSelectionLock();\n this.#unsubSelectionLock = noop;\n };\n}\nconst getUserSelect = (node) => node.style.userSelect || node.style.webkitUserSelect;\nfunction preventTextSelectionOverflow(node, body) {\n const originalBodyUserSelect = getUserSelect(body);\n const originalNodeUserSelect = getUserSelect(node);\n setUserSelect(body, \"none\");\n setUserSelect(node, \"text\");\n return () => {\n setUserSelect(body, originalBodyUserSelect);\n setUserSelect(node, originalNodeUserSelect);\n };\n}\nfunction setUserSelect(node, value) {\n node.style.userSelect = value;\n node.style.webkitUserSelect = value;\n}\nfunction isHighestLayer(instance) {\n const layersArr = [...globalThis.bitsTextSelectionLayers];\n if (!layersArr.length)\n return false;\n const highestLayer = layersArr.at(-1);\n if (!highestLayer)\n return false;\n return highestLayer[0] === instance;\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { TextSelectionLayerImplProps } from \"./types.js\";\n\timport { TextSelectionLayerState } from \"./use-text-selection-layer.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tlet {\n\t\tpreventOverflowTextSelection = true,\n\t\tonPointerDown = noop,\n\t\tonPointerUp = noop,\n\t\tid,\n\t\tchildren,\n\t\tenabled,\n\t\tref,\n\t}: TextSelectionLayerImplProps = $props();\n\n\tTextSelectionLayerState.create({\n\t\tid: boxWith(() => id),\n\t\tonPointerDown: boxWith(() => onPointerDown),\n\t\tonPointerUp: boxWith(() => onPointerUp),\n\t\tenabled: boxWith(() => enabled && preventOverflowTextSelection),\n\t\tref,\n\t});\n</script>\n\n{@render children?.()}\n", "globalThis.bitsIdCounter ??= { current: 0 };\n/**\n * Generates a unique ID based on a global counter.\n */\nexport function useId(prefix = \"bits\") {\n globalThis.bitsIdCounter.current++;\n return `${prefix}-${globalThis.bitsIdCounter.current}`;\n}\n", "export class SharedState {\n #factory;\n #subscribers = 0;\n #state = $state();\n #scope;\n constructor(factory) {\n this.#factory = factory;\n }\n #dispose() {\n this.#subscribers -= 1;\n if (this.#scope && this.#subscribers <= 0) {\n this.#scope();\n this.#state = undefined;\n this.#scope = undefined;\n }\n }\n get(...args) {\n this.#subscribers += 1;\n if (this.#state === undefined) {\n this.#scope = $effect.root(() => {\n this.#state = this.#factory(...args);\n });\n }\n $effect(() => {\n return () => {\n this.#dispose();\n };\n });\n return this.#state;\n }\n}\n", "import { SvelteMap } from \"svelte/reactivity\";\nimport { afterTick, boxWith, onDestroyEffect, } from \"svelte-toolbelt\";\nimport { isIOS } from \"./is.js\";\nimport { useId } from \"./use-id.js\";\nimport { watch } from \"runed\";\nimport { SharedState } from \"./shared-state.svelte.js\";\nimport { BROWSER } from \"esm-env\";\nimport { on } from \"svelte/events\";\n/** A map of lock ids to their `locked` state. */\nconst lockMap = new SvelteMap();\nlet initialBodyStyle = $state(null);\nlet stopTouchMoveListener = null;\nlet cleanupTimeoutId = null;\nlet isInCleanupTransition = false;\nconst anyLocked = boxWith(() => {\n for (const value of lockMap.values()) {\n if (value)\n return true;\n }\n return false;\n});\n/**\n * We track the time we scheduled the cleanup to prevent race conditions\n * when multiple locks are created/destroyed in the same tick, ensuring\n * only the last one to schedule the cleanup will run.\n *\n * reference: https://github.com/huntabyte/bits-ui/issues/1639\n */\nlet cleanupScheduledAt = null;\nconst bodyLockStackCount = new SharedState(() => {\n function resetBodyStyle() {\n if (!BROWSER)\n return;\n document.body.setAttribute(\"style\", initialBodyStyle ?? \"\");\n document.body.style.removeProperty(\"--scrollbar-width\");\n isIOS && stopTouchMoveListener?.();\n // reset initialBodyStyle so next locker captures the correct styles\n initialBodyStyle = null;\n }\n function cancelPendingCleanup() {\n if (cleanupTimeoutId === null)\n return;\n window.clearTimeout(cleanupTimeoutId);\n cleanupTimeoutId = null;\n }\n function scheduleCleanupIfNoNewLocks(delay, callback) {\n cancelPendingCleanup();\n isInCleanupTransition = true;\n cleanupScheduledAt = Date.now();\n const currentCleanupId = cleanupScheduledAt;\n /**\n * We schedule the cleanup to run after a delay to allow new locks to register\n * that might have been added in the same tick as the current cleanup.\n *\n * If a new lock is added in the same tick, the cleanup will be cancelled and\n * a new cleanup will be scheduled.\n *\n * This is to prevent the cleanup from running too early and resetting the body\n * style before the new lock has had a chance to apply its styles.\n */\n const cleanupFn = () => {\n cleanupTimeoutId = null;\n // check if this cleanup is still valid (no newer cleanups scheduled)\n if (cleanupScheduledAt !== currentCleanupId)\n return;\n // ensure no new locks were added during the delay\n if (!isAnyLocked(lockMap)) {\n isInCleanupTransition = false;\n callback();\n }\n else {\n isInCleanupTransition = false;\n }\n };\n const actualDelay = delay === null ? 24 : delay;\n cleanupTimeoutId = window.setTimeout(cleanupFn, actualDelay);\n }\n function ensureInitialStyleCaptured() {\n // only capture initial style once, when no locks exist and no cleanup is in progress\n if (initialBodyStyle === null && lockMap.size === 0 && !isInCleanupTransition) {\n initialBodyStyle = document.body.getAttribute(\"style\");\n }\n }\n watch(() => anyLocked.current, () => {\n if (!anyLocked.current)\n return;\n // ensure we've captured the initial style before applying any lock styles\n ensureInitialStyleCaptured();\n // if we're applying lock styles, we're no longer in a cleanup transition\n isInCleanupTransition = false;\n const htmlStyle = getComputedStyle(document.documentElement);\n const bodyStyle = getComputedStyle(document.body);\n // check if scrollbar-gutter: stable is already handling scrollbar space\n const hasStableGutter = htmlStyle.scrollbarGutter?.includes(\"stable\") ||\n bodyStyle.scrollbarGutter?.includes(\"stable\");\n // TODO: account for RTL direction, etc.\n const verticalScrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const paddingRight = Number.parseInt(bodyStyle.paddingRight ?? \"0\", 10);\n const config = {\n padding: paddingRight + verticalScrollbarWidth,\n margin: Number.parseInt(bodyStyle.marginRight ?? \"0\", 10),\n };\n // only add padding compensation if stable gutter isn't handling it\n if (verticalScrollbarWidth > 0 && !hasStableGutter) {\n document.body.style.paddingRight = `${config.padding}px`;\n document.body.style.marginRight = `${config.margin}px`;\n document.body.style.setProperty(\"--scrollbar-width\", `${verticalScrollbarWidth}px`);\n }\n document.body.style.overflow = \"hidden\";\n if (isIOS) {\n // IOS devices are special and require a touchmove listener to prevent scrolling\n stopTouchMoveListener = on(document, \"touchmove\", (e) => {\n if (e.target !== document.documentElement)\n return;\n if (e.touches.length > 1)\n return;\n e.preventDefault();\n }, { passive: false });\n }\n /**\n * We ensure pointer-events: none is applied _after_ DOM updates, so that any focus/\n * interaction changes from opening overlays/menus complete _before_ we block pointer\n * events.\n *\n * this avoids race conditions where pointer-events could be set too early and break\n * focus/interaction.\n */\n afterTick(() => {\n document.body.style.pointerEvents = \"none\";\n document.body.style.overflow = \"hidden\";\n });\n });\n onDestroyEffect(() => {\n return () => {\n stopTouchMoveListener?.();\n };\n });\n return {\n get lockMap() {\n return lockMap;\n },\n resetBodyStyle,\n scheduleCleanupIfNoNewLocks,\n cancelPendingCleanup,\n ensureInitialStyleCaptured,\n };\n});\nexport class BodyScrollLock {\n #id = useId();\n #initialState;\n #restoreScrollDelay = () => null;\n #countState;\n locked;\n constructor(initialState, restoreScrollDelay = () => null) {\n this.#initialState = initialState;\n this.#restoreScrollDelay = restoreScrollDelay;\n this.#countState = bodyLockStackCount.get();\n if (!this.#countState)\n return;\n /**\n * Since a new lock is being created, we cancel any pending cleanup to\n * prevent the cleanup from running too early and resetting the body style\n * before the new lock has had a chance to apply its styles.\n *\n * reference: https://github.com/huntabyte/bits-ui/issues/1639\n */\n this.#countState.cancelPendingCleanup();\n // capture initial style before this lock is registered\n this.#countState.ensureInitialStyleCaptured();\n this.#countState.lockMap.set(this.#id, this.#initialState ?? false);\n this.locked = boxWith(() => this.#countState.lockMap.get(this.#id) ?? false, (v) => this.#countState.lockMap.set(this.#id, v));\n onDestroyEffect(() => {\n this.#countState.lockMap.delete(this.#id);\n // if not the last lock, we don't need to do anything\n if (isAnyLocked(this.#countState.lockMap))\n return;\n const restoreScrollDelay = this.#restoreScrollDelay();\n /**\n * We schedule the cleanup to run after a delay to handle same-tick\n * destroy/create scenarios.\n *\n * reference: https://github.com/huntabyte/bits-ui/issues/1639\n */\n this.#countState.scheduleCleanupIfNoNewLocks(restoreScrollDelay, () => {\n this.#countState.resetBodyStyle();\n });\n });\n }\n}\nfunction isAnyLocked(map) {\n for (const [_, value] of map) {\n if (value)\n return true;\n }\n return false;\n}\n", "<script lang=\"ts\">\n\timport type { ScrollLockProps } from \"./index.js\";\n\timport { BodyScrollLock } from \"../../../internal/body-scroll-lock.svelte.js\";\n\n\tlet { preventScroll = true, restoreScrollDelay = null }: ScrollLockProps = $props();\n\n\tif (preventScroll) {\n\t\tnew BodyScrollLock(preventScroll, () => restoreScrollDelay);\n\t}\n</script>\n", "<script lang=\"ts\">\n\timport { afterSleep, boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AlertDialogContentProps } from \"../types.js\";\n\timport DismissibleLayer from \"../../utilities/dismissible-layer/dismissible-layer.svelte\";\n\timport EscapeLayer from \"../../utilities/escape-layer/escape-layer.svelte\";\n\timport FocusScope from \"../../utilities/focus-scope/focus-scope.svelte\";\n\timport TextSelectionLayer from \"../../utilities/text-selection-layer/text-selection-layer.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport ScrollLock from \"../../utilities/scroll-lock/scroll-lock.svelte\";\n\timport { DialogContentState } from \"../../dialog/dialog.svelte.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tforceMount = false,\n\t\tinteractOutsideBehavior = \"ignore\",\n\t\tonCloseAutoFocus = noop,\n\t\tonEscapeKeydown = noop,\n\t\tonOpenAutoFocus = noop,\n\t\tonInteractOutside = noop,\n\t\tpreventScroll = true,\n\t\ttrapFocus = true,\n\t\trestoreScrollDelay = null,\n\t\t...restProps\n\t}: AlertDialogContentProps = $props();\n\n\tconst contentState = DialogContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if contentState.shouldRender || forceMount}\n\t<FocusScope\n\t\tref={contentState.opts.ref}\n\t\tloop\n\t\t{trapFocus}\n\t\tenabled={contentState.root.opts.open.current}\n\t\t{onCloseAutoFocus}\n\t\tonOpenAutoFocus={(e) => {\n\t\t\tonOpenAutoFocus(e);\n\t\t\tif (e.defaultPrevented) return;\n\t\t\te.preventDefault();\n\t\t\tafterSleep(0, () => contentState.opts.ref.current?.focus());\n\t\t}}\n\t>\n\t\t{#snippet focusScope({ props: focusScopeProps })}\n\t\t\t<EscapeLayer\n\t\t\t\t{...mergedProps}\n\t\t\t\tenabled={contentState.root.opts.open.current}\n\t\t\t\tref={contentState.opts.ref}\n\t\t\t\tonEscapeKeydown={(e) => {\n\t\t\t\t\tonEscapeKeydown(e);\n\t\t\t\t\tif (e.defaultPrevented) return;\n\t\t\t\t\tcontentState.root.handleClose();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<DismissibleLayer\n\t\t\t\t\t{...mergedProps}\n\t\t\t\t\tref={contentState.opts.ref}\n\t\t\t\t\tenabled={contentState.root.opts.open.current}\n\t\t\t\t\t{interactOutsideBehavior}\n\t\t\t\t\tonInteractOutside={(e) => {\n\t\t\t\t\t\tonInteractOutside(e);\n\t\t\t\t\t\tif (e.defaultPrevented) return;\n\t\t\t\t\t\tcontentState.root.handleClose();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<TextSelectionLayer\n\t\t\t\t\t\t{...mergedProps}\n\t\t\t\t\t\tref={contentState.opts.ref}\n\t\t\t\t\t\tenabled={contentState.root.opts.open.current}\n\t\t\t\t\t>\n\t\t\t\t\t\t{#if child}\n\t\t\t\t\t\t\t{#if contentState.root.opts.open.current}\n\t\t\t\t\t\t\t\t<ScrollLock {preventScroll} {restoreScrollDelay} />\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t{@render child({\n\t\t\t\t\t\t\t\tprops: mergeProps(mergedProps, focusScopeProps),\n\t\t\t\t\t\t\t\t...contentState.snippetProps,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t<ScrollLock {preventScroll} />\n\t\t\t\t\t\t\t<div {...mergeProps(mergedProps, focusScopeProps)}>\n\t\t\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t</TextSelectionLayer>\n\t\t\t\t</DismissibleLayer>\n\t\t\t</EscapeLayer>\n\t\t{/snippet}\n\t</FocusScope>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DialogOverlayState } from \"../dialog.svelte.js\";\n\timport type { DialogOverlayProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tforceMount = false,\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: DialogOverlayProps = $props();\n\n\tconst overlayState = DialogOverlayState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, overlayState.props));\n</script>\n\n{#if overlayState.shouldRender || forceMount}\n\t{#if child}\n\t\t{@render child({ props: mergeProps(mergedProps), ...overlayState.snippetProps })}\n\t{:else}\n\t\t<div {...mergeProps(mergedProps)}>\n\t\t\t{@render children?.(overlayState.snippetProps)}\n\t\t</div>\n\t{/if}\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DialogTriggerState } from \"../dialog.svelte.js\";\n\timport type { DialogTriggerProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\tdisabled = false,\n\t\t...restProps\n\t}: DialogTriggerProps = $props();\n\n\tconst triggerState = DialogTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DialogDescriptionState } from \"../dialog.svelte.js\";\n\timport type { DialogDescriptionProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: DialogDescriptionProps = $props();\n\n\tconst descriptionState = DialogDescriptionState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, descriptionState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/aspect-ratio.svelte\";\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { createBitsAttrs } from \"../../internal/attrs.js\";\nconst aspectRatioAttrs = createBitsAttrs({\n component: \"aspect-ratio\",\n parts: [\"root\"],\n});\nexport class AspectRatioRootState {\n static create(opts) {\n return new AspectRatioRootState(opts);\n }\n opts;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n style: {\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n },\n [aspectRatioAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AspectRatioRootProps } from \"../types.js\";\n\timport { AspectRatioRootState } from \"../aspect-ratio.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tratio = 1,\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: AspectRatioRootProps = $props();\n\n\tconst rootState = AspectRatioRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tratio: boxWith(() => ratio),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n<div style:position=\"relative\" style:width=\"100%\" style:padding-bottom=\"{ratio ? 100 / ratio : 0}%\">\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n</div>\n", "export { default as Root } from \"./components/avatar.svelte\";\nexport { default as Image } from \"./components/avatar-image.svelte\";\nexport { default as Fallback } from \"./components/avatar-fallback.svelte\";\n", "import { DOMContext, attachRef, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { createBitsAttrs } from \"../../internal/attrs.js\";\nconst avatarAttrs = createBitsAttrs({\n component: \"avatar\",\n parts: [\"root\", \"image\", \"fallback\"],\n});\nconst AvatarRootContext = new Context(\"Avatar.Root\");\nexport class AvatarRootState {\n static create(opts) {\n return AvatarRootContext.set(new AvatarRootState(opts));\n }\n opts;\n domContext;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.domContext = new DOMContext(this.opts.ref);\n this.loadImage = this.loadImage.bind(this);\n this.attachment = attachRef(this.opts.ref);\n }\n loadImage(src, crossorigin, referrerPolicy) {\n if (this.opts.loadingStatus.current === \"loaded\")\n return;\n let imageTimerId;\n const image = new Image();\n image.src = src;\n if (crossorigin !== undefined)\n image.crossOrigin = crossorigin;\n if (referrerPolicy)\n image.referrerPolicy = referrerPolicy;\n this.opts.loadingStatus.current = \"loading\";\n image.onload = () => {\n imageTimerId = this.domContext.setTimeout(() => {\n this.opts.loadingStatus.current = \"loaded\";\n }, this.opts.delayMs.current);\n };\n image.onerror = () => {\n this.opts.loadingStatus.current = \"error\";\n };\n return () => {\n if (!imageTimerId)\n return;\n this.domContext.clearTimeout(imageTimerId);\n };\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [avatarAttrs.root]: \"\",\n \"data-status\": this.opts.loadingStatus.current,\n ...this.attachment,\n }));\n}\nexport class AvatarImageState {\n static create(opts) {\n return new AvatarImageState(opts, AvatarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n watch.pre([() => this.opts.src.current, () => this.opts.crossOrigin.current], ([src, crossOrigin]) => {\n if (!src) {\n this.root.opts.loadingStatus.current = \"error\";\n return;\n }\n this.root.loadImage(src, crossOrigin, this.opts.referrerPolicy.current);\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n style: {\n display: this.root.opts.loadingStatus.current === \"loaded\" ? \"block\" : \"none\",\n },\n \"data-status\": this.root.opts.loadingStatus.current,\n [avatarAttrs.image]: \"\",\n src: this.opts.src.current,\n crossorigin: this.opts.crossOrigin.current,\n referrerpolicy: this.opts.referrerPolicy.current,\n ...this.attachment,\n }));\n}\nexport class AvatarFallbackState {\n static create(opts) {\n return new AvatarFallbackState(opts, AvatarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n style = $derived.by(() => this.root.opts.loadingStatus.current === \"loaded\" ? { display: \"none\" } : undefined);\n props = $derived.by(() => ({\n style: this.style,\n \"data-status\": this.root.opts.loadingStatus.current,\n [avatarAttrs.fallback]: \"\",\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AvatarRootProps } from \"../types.js\";\n\timport { AvatarRootState } from \"../avatar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tdelayMs = 0,\n\t\tloadingStatus = $bindable(\"loading\"),\n\t\tonLoadingStatusChange,\n\t\tchild,\n\t\tchildren,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: AvatarRootProps = $props();\n\n\tconst rootState = AvatarRootState.create({\n\t\tdelayMs: boxWith(() => delayMs),\n\t\tloadingStatus: boxWith(\n\t\t\t() => loadingStatus,\n\t\t\t(v) => {\n\t\t\t\tif (loadingStatus !== v) {\n\t\t\t\t\tloadingStatus = v;\n\t\t\t\t\tonLoadingStatusChange?.(v);\n\t\t\t\t}\n\t\t\t}\n\t\t),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AvatarImageProps } from \"../types.js\";\n\timport { AvatarImageState } from \"../avatar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tsrc,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tcrossorigin = undefined,\n\t\treferrerpolicy = undefined,\n\t\t...restProps\n\t}: AvatarImageProps = $props();\n\n\tconst imageState = AvatarImageState.create({\n\t\tsrc: boxWith(() => src),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tcrossOrigin: boxWith(() => crossorigin),\n\t\treferrerPolicy: boxWith(() => referrerpolicy),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, imageState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<img {...mergedProps} {src} />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { AvatarFallbackProps } from \"../types.js\";\n\timport { AvatarFallbackState } from \"../avatar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: AvatarFallbackProps = $props();\n\n\tconst fallbackState = AvatarFallbackState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, fallbackState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.()}\n\t</span>\n{/if}\n", "<script lang=\"ts\">\n\timport type { BitsConfigProps } from \"../types.js\";\n\timport { useBitsConfig } from \"../bits-config.js\";\n\timport { boxWith } from \"svelte-toolbelt\";\n\n\tlet { children, defaultPortalTo, defaultLocale }: BitsConfigProps = $props();\n\n\tuseBitsConfig({\n\t\tdefaultPortalTo: boxWith(() => defaultPortalTo),\n\t\tdefaultLocale: boxWith(() => defaultLocale),\n\t});\n</script>\n\n{@render children?.()}\n", "export { default as Root } from \"./components/button.svelte\";\n", "<script lang=\"ts\">\n\timport type { ButtonRootProps } from \"../types.js\";\n\n\tlet {\n\t\thref,\n\t\ttype,\n\t\tchildren,\n\t\tdisabled = false,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: ButtonRootProps = $props();\n</script>\n\n<svelte:element\n\tthis={href ? \"a\" : \"button\"}\n\tdata-button-root\n\ttype={href ? undefined : type}\n\thref={href && !disabled ? href : undefined}\n\tdisabled={href ? undefined : disabled}\n\taria-disabled={href ? disabled : undefined}\n\trole={href && disabled ? \"link\" : undefined}\n\ttabindex={href && disabled ? -1 : 0}\n\tbind:this={ref}\n\t{...restProps}\n>\n\t{@render children?.()}\n</svelte:element>\n", "export { default as Root } from \"./components/calendar.svelte\";\nexport { default as Day } from \"./components/calendar-day.svelte\";\nexport { default as Grid } from \"./components/calendar-grid.svelte\";\nexport { default as GridBody } from \"./components/calendar-grid-body.svelte\";\nexport { default as Cell } from \"./components/calendar-cell.svelte\";\nexport { default as GridHead } from \"./components/calendar-grid-head.svelte\";\nexport { default as HeadCell } from \"./components/calendar-head-cell.svelte\";\nexport { default as GridRow } from \"./components/calendar-grid-row.svelte\";\nexport { default as Header } from \"./components/calendar-header.svelte\";\nexport { default as Heading } from \"./components/calendar-heading.svelte\";\nexport { default as MonthSelect } from \"./components/calendar-month-select.svelte\";\nexport { default as NextButton } from \"./components/calendar-next-button.svelte\";\nexport { default as PrevButton } from \"./components/calendar-prev-button.svelte\";\nexport { default as YearSelect } from \"./components/calendar-year-select.svelte\";\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nexport type Mutable<T> = {\n -readonly[P in keyof T]: T[P]\n};\n\nexport function mod(amount: number, numerator: number): number {\n return amount - numerator * Math.floor(amount / numerator);\n}\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, Calendar, CalendarIdentifier} from '../types';\nimport {CalendarDate} from '../CalendarDate';\nimport {mod, Mutable} from '../utils';\n\nconst EPOCH = 1721426; // 001/01/03 Julian C.E.\nexport function gregorianToJulianDay(era: string, year: number, month: number, day: number): number {\n year = getExtendedYear(era, year);\n\n let y1 = year - 1;\n let monthOffset = -2;\n if (month <= 2) {\n monthOffset = 0;\n } else if (isLeapYear(year)) {\n monthOffset = -1;\n }\n\n return (\n EPOCH -\n 1 +\n 365 * y1 +\n Math.floor(y1 / 4) -\n Math.floor(y1 / 100) +\n Math.floor(y1 / 400) +\n Math.floor((367 * month - 362) / 12 + monthOffset + day)\n );\n}\n\nexport function isLeapYear(year: number): boolean {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function getExtendedYear(era: string, year: number): number {\n return era === 'BC' ? 1 - year : year;\n}\n\nexport function fromExtendedYear(year: number): [string, number] {\n let era = 'AD';\n if (year <= 0) {\n era = 'BC';\n year = 1 - year;\n }\n\n return [era, year];\n}\n\nconst daysInMonth = {\n standard: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n leapyear: [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]\n};\n\n/**\n * The Gregorian calendar is the most commonly used calendar system in the world. It supports two eras: BC, and AD.\n * Years always contain 12 months, and 365 or 366 days depending on whether it is a leap year.\n */\nexport class GregorianCalendar implements Calendar {\n identifier: CalendarIdentifier = 'gregory';\n\n fromJulianDay(jd: number): CalendarDate {\n let jd0 = jd;\n let depoch = jd0 - EPOCH;\n let quadricent = Math.floor(depoch / 146097);\n let dqc = mod(depoch, 146097);\n let cent = Math.floor(dqc / 36524);\n let dcent = mod(dqc, 36524);\n let quad = Math.floor(dcent / 1461);\n let dquad = mod(dcent, 1461);\n let yindex = Math.floor(dquad / 365);\n\n let extendedYear = quadricent * 400 + cent * 100 + quad * 4 + yindex + (cent !== 4 && yindex !== 4 ? 1 : 0);\n let [era, year] = fromExtendedYear(extendedYear);\n let yearDay = jd0 - gregorianToJulianDay(era, year, 1, 1);\n let leapAdj = 2;\n if (jd0 < gregorianToJulianDay(era, year, 3, 1)) {\n leapAdj = 0;\n } else if (isLeapYear(year)) {\n leapAdj = 1;\n }\n let month = Math.floor(((yearDay + leapAdj) * 12 + 373) / 367);\n let day = jd0 - gregorianToJulianDay(era, year, month, 1) + 1;\n\n return new CalendarDate(era, year, month, day);\n }\n\n toJulianDay(date: AnyCalendarDate): number {\n return gregorianToJulianDay(date.era, date.year, date.month, date.day);\n }\n\n getDaysInMonth(date: AnyCalendarDate): number {\n return daysInMonth[isLeapYear(date.year) ? 'leapyear' : 'standard'][date.month - 1];\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getMonthsInYear(date: AnyCalendarDate): number {\n return 12;\n }\n\n getDaysInYear(date: AnyCalendarDate): number {\n return isLeapYear(date.year) ? 366 : 365;\n }\n\n getMaximumMonthsInYear(): number {\n return 12;\n }\n\n getMaximumDaysInMonth(): number {\n return 31;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n getYearsInEra(date: AnyCalendarDate): number {\n return 9999;\n }\n\n getEras(): string[] {\n return ['BC', 'AD'];\n }\n\n isInverseEra(date: AnyCalendarDate): boolean {\n return date.era === 'BC';\n }\n\n balanceDate(date: Mutable<AnyCalendarDate>): void {\n if (date.year <= 0) {\n date.era = date.era === 'BC' ? 'AD' : 'BC';\n date.year = 1 - date.year;\n }\n }\n}\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Data from https://github.com/unicode-cldr/cldr-core/blob/master/supplemental/weekData.json\n// Locales starting on Sunday have been removed for compression.\nexport const weekStartData = {\n '001': 1,\n AD: 1,\n AE: 6,\n AF: 6,\n AI: 1,\n AL: 1,\n AM: 1,\n AN: 1,\n AR: 1,\n AT: 1,\n AU: 1,\n AX: 1,\n AZ: 1,\n BA: 1,\n BE: 1,\n BG: 1,\n BH: 6,\n BM: 1,\n BN: 1,\n BY: 1,\n CH: 1,\n CL: 1,\n CM: 1,\n CN: 1,\n CR: 1,\n CY: 1,\n CZ: 1,\n DE: 1,\n DJ: 6,\n DK: 1,\n DZ: 6,\n EC: 1,\n EE: 1,\n EG: 6,\n ES: 1,\n FI: 1,\n FJ: 1,\n FO: 1,\n FR: 1,\n GB: 1,\n GE: 1,\n GF: 1,\n GP: 1,\n GR: 1,\n HR: 1,\n HU: 1,\n IE: 1,\n IQ: 6,\n IR: 6,\n IS: 1,\n IT: 1,\n JO: 6,\n KG: 1,\n KW: 6,\n KZ: 1,\n LB: 1,\n LI: 1,\n LK: 1,\n LT: 1,\n LU: 1,\n LV: 1,\n LY: 6,\n MC: 1,\n MD: 1,\n ME: 1,\n MK: 1,\n MN: 1,\n MQ: 1,\n MV: 5,\n MY: 1,\n NL: 1,\n NO: 1,\n NZ: 1,\n OM: 6,\n PL: 1,\n QA: 6,\n RE: 1,\n RO: 1,\n RS: 1,\n RU: 1,\n SD: 6,\n SE: 1,\n SI: 1,\n SK: 1,\n SM: 1,\n SY: 6,\n TJ: 1,\n TM: 1,\n TR: 1,\n UA: 1,\n UY: 1,\n UZ: 1,\n VA: 1,\n VN: 1,\n XK: 1\n};\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AnyCalendarDate, AnyTime, Calendar} from './types';\nimport {CalendarDate, CalendarDateTime, ZonedDateTime} from './CalendarDate';\nimport {fromAbsolute, toAbsolute, toCalendar, toCalendarDate} from './conversion';\nimport {weekStartData} from './weekStartData';\n\ntype DateValue = CalendarDate | CalendarDateTime | ZonedDateTime;\n\n/** Returns whether the given dates occur on the same day, regardless of the time or calendar system. */\nexport function isSameDay(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n return a.era === b.era && a.year === b.year && a.month === b.month && a.day === b.day;\n}\n\n/** Returns whether the given dates occur in the same month, using the calendar system of the first date. */\nexport function isSameMonth(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n // In the Japanese calendar, months can span multiple eras/years, so only compare the first of the month.\n a = startOfMonth(a);\n b = startOfMonth(b);\n return a.era === b.era && a.year === b.year && a.month === b.month;\n}\n\n/** Returns whether the given dates occur in the same year, using the calendar system of the first date. */\nexport function isSameYear(a: DateValue, b: DateValue): boolean {\n b = toCalendar(b, a.calendar);\n a = startOfYear(a);\n b = startOfYear(b);\n return a.era === b.era && a.year === b.year;\n}\n\n/** Returns whether the given dates occur on the same day, and are of the same calendar system. */\nexport function isEqualDay(a: DateValue, b: DateValue): boolean {\n return isEqualCalendar(a.calendar, b.calendar) && isSameDay(a, b);\n}\n\n/** Returns whether the given dates occur in the same month, and are of the same calendar system. */\nexport function isEqualMonth(a: DateValue, b: DateValue): boolean {\n return isEqualCalendar(a.calendar, b.calendar) && isSameMonth(a, b);\n}\n\n/** Returns whether the given dates occur in the same year, and are of the same calendar system. */\nexport function isEqualYear(a: DateValue, b: DateValue): boolean {\n return isEqualCalendar(a.calendar, b.calendar) && isSameYear(a, b);\n}\n\n/** Returns whether two calendars are the same. */\nexport function isEqualCalendar(a: Calendar, b: Calendar): boolean {\n return a.isEqual?.(b) ?? b.isEqual?.(a) ?? a.identifier === b.identifier;\n}\n\n/** Returns whether the date is today in the given time zone. */\nexport function isToday(date: DateValue, timeZone: string): boolean {\n return isSameDay(date, today(timeZone));\n}\n\nconst DAY_MAP = {\n sun: 0,\n mon: 1,\n tue: 2,\n wed: 3,\n thu: 4,\n fri: 5,\n sat: 6\n};\n\ntype DayOfWeek = 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat';\n\n/**\n * Returns the day of week for the given date and locale. Days are numbered from zero to six,\n * where zero is the first day of the week in the given locale. For example, in the United States,\n * the first day of the week is Sunday, but in France it is Monday.\n */\nexport function getDayOfWeek(date: DateValue, locale: string, firstDayOfWeek?: DayOfWeek): number {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let weekStart = firstDayOfWeek ? DAY_MAP[firstDayOfWeek] : getWeekStart(locale);\n let dayOfWeek = Math.ceil(julian + 1 - weekStart) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n return dayOfWeek;\n}\n\n/** Returns the current time in the given time zone. */\nexport function now(timeZone: string): ZonedDateTime {\n return fromAbsolute(Date.now(), timeZone);\n}\n\n/** Returns today's date in the given time zone. */\nexport function today(timeZone: string): CalendarDate {\n return toCalendarDate(now(timeZone));\n}\n\nexport function compareDate(a: AnyCalendarDate, b: AnyCalendarDate): number {\n return a.calendar.toJulianDay(a) - b.calendar.toJulianDay(b);\n}\n\nexport function compareTime(a: AnyTime, b: AnyTime): number {\n return timeToMs(a) - timeToMs(b);\n}\n\nfunction timeToMs(a: AnyTime): number {\n return a.hour * 60 * 60 * 1000 + a.minute * 60 * 1000 + a.second * 1000 + a.millisecond;\n}\n\n/**\n * Returns the number of hours in the given date and time zone.\n * Usually this is 24, but it could be 23 or 25 if the date is on a daylight saving transition.\n */\nexport function getHoursInDay(a: CalendarDate, timeZone: string): number {\n let ms = toAbsolute(a, timeZone);\n let tomorrow = a.add({days: 1});\n let tomorrowMs = toAbsolute(tomorrow, timeZone);\n return (tomorrowMs - ms) / 3600000;\n}\n\nlet localTimeZone: string | null = null;\n\n/** Returns the time zone identifier for the current user. */\nexport function getLocalTimeZone(): string {\n if (localTimeZone == null) {\n localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n return localTimeZone!;\n}\n\n/** Sets the time zone identifier for the current user. */\nexport function setLocalTimeZone(timeZone: string): void {\n localTimeZone = timeZone;\n}\n\n/** Resets the time zone identifier for the current user. */\nexport function resetLocalTimeZone(): void {\n localTimeZone = null;\n}\n\n/** Returns the first date of the month for the given date. */\nexport function startOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function startOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function startOfMonth(date: CalendarDate): CalendarDate;\nexport function startOfMonth(date: DateValue): DateValue;\nexport function startOfMonth(date: DateValue): DateValue {\n // Use `subtract` instead of `set` so we don't get constrained in an era.\n return date.subtract({days: date.day - 1});\n}\n\n/** Returns the last date of the month for the given date. */\nexport function endOfMonth(date: ZonedDateTime): ZonedDateTime;\nexport function endOfMonth(date: CalendarDateTime): CalendarDateTime;\nexport function endOfMonth(date: CalendarDate): CalendarDate;\nexport function endOfMonth(date: DateValue): DateValue;\nexport function endOfMonth(date: DateValue): DateValue {\n return date.add({days: date.calendar.getDaysInMonth(date) - date.day});\n}\n\n/** Returns the first day of the year for the given date. */\nexport function startOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function startOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function startOfYear(date: CalendarDate): CalendarDate;\nexport function startOfYear(date: DateValue): DateValue;\nexport function startOfYear(date: DateValue): DateValue {\n return startOfMonth(date.subtract({months: date.month - 1}));\n}\n\n/** Returns the last day of the year for the given date. */\nexport function endOfYear(date: ZonedDateTime): ZonedDateTime;\nexport function endOfYear(date: CalendarDateTime): CalendarDateTime;\nexport function endOfYear(date: CalendarDate): CalendarDate;\nexport function endOfYear(date: DateValue): DateValue;\nexport function endOfYear(date: DateValue): DateValue {\n return endOfMonth(date.add({months: date.calendar.getMonthsInYear(date) - date.month}));\n}\n\nexport function getMinimumMonthInYear(date: AnyCalendarDate): number {\n if (date.calendar.getMinimumMonthInYear) {\n return date.calendar.getMinimumMonthInYear(date);\n }\n\n return 1;\n}\n\nexport function getMinimumDayInMonth(date: AnyCalendarDate): number {\n if (date.calendar.getMinimumDayInMonth) {\n return date.calendar.getMinimumDayInMonth(date);\n }\n\n return 1;\n}\n\n/** Returns the first date of the week for the given date and locale. */\nexport function startOfWeek(date: ZonedDateTime, locale: string, firstDayOfWeek?: DayOfWeek): ZonedDateTime;\nexport function startOfWeek(date: CalendarDateTime, locale: string, firstDayOfWeek?: DayOfWeek): CalendarDateTime;\nexport function startOfWeek(date: CalendarDate, locale: string, firstDayOfWeek?: DayOfWeek): CalendarDate;\nexport function startOfWeek(date: DateValue, locale: string, firstDayOfWeek?: DayOfWeek): DateValue;\nexport function startOfWeek(date: DateValue, locale: string, firstDayOfWeek?: DayOfWeek): DateValue {\n let dayOfWeek = getDayOfWeek(date, locale, firstDayOfWeek);\n return date.subtract({days: dayOfWeek});\n}\n\n/** Returns the last date of the week for the given date and locale. */\nexport function endOfWeek(date: ZonedDateTime, locale: string, firstDayOfWeek?: DayOfWeek): ZonedDateTime;\nexport function endOfWeek(date: CalendarDateTime, locale: string, firstDayOfWeek?: DayOfWeek): CalendarDateTime;\nexport function endOfWeek(date: CalendarDate, locale: string, firstDayOfWeek?: DayOfWeek): CalendarDate;\nexport function endOfWeek(date: DateValue, locale: string, firstDayOfWeek?: DayOfWeek): DateValue;\nexport function endOfWeek(date: DateValue, locale: string, firstDayOfWeek?: DayOfWeek): DateValue {\n return startOfWeek(date, locale, firstDayOfWeek).add({days: 6});\n}\n\nconst cachedRegions = new Map<string, string>();\nconst cachedWeekInfo = new Map<string, {firstDay: number}>();\n\nfunction getRegion(locale: string): string | undefined {\n // If the Intl.Locale API is available, use it to get the region for the locale.\n // @ts-ignore\n if (Intl.Locale) {\n // Constructing an Intl.Locale is expensive, so cache the result.\n let region = cachedRegions.get(locale);\n if (!region) {\n // @ts-ignore\n region = new Intl.Locale(locale).maximize().region;\n if (region) {\n cachedRegions.set(locale, region);\n }\n }\n return region;\n }\n\n // If not, just try splitting the string.\n // If the second part of the locale string is 'u',\n // then this is a unicode extension, so ignore it.\n // Otherwise, it should be the region.\n let part = locale.split('-')[1];\n return part === 'u' ? undefined : part;\n}\n\nfunction getWeekStart(locale: string): number {\n // TODO: use Intl.Locale for this once browsers support the weekInfo property\n // https://github.com/tc39/proposal-intl-locale-info\n let weekInfo = cachedWeekInfo.get(locale);\n if (!weekInfo) {\n if (Intl.Locale) {\n // @ts-ignore\n let localeInst = new Intl.Locale(locale);\n if ('getWeekInfo' in localeInst) {\n // @ts-expect-error\n weekInfo = localeInst.getWeekInfo();\n if (weekInfo) {\n cachedWeekInfo.set(locale, weekInfo);\n return weekInfo.firstDay;\n }\n }\n }\n let region = getRegion(locale);\n if (locale.includes('-fw-')) {\n // pull the value for the attribute fw from strings such as en-US-u-ca-iso8601-fw-tue or en-US-u-ca-iso8601-fw-mon-nu-thai\n // where the fw attribute could be followed by another unicode locale extension or not\n let day = locale.split('-fw-')[1].split('-')[0];\n if (day === 'mon') {\n weekInfo = {firstDay: 1};\n } else if (day === 'tue') {\n weekInfo = {firstDay: 2};\n } else if (day === 'wed') {\n weekInfo = {firstDay: 3};\n } else if (day === 'thu') {\n weekInfo = {firstDay: 4};\n } else if (day === 'fri') {\n weekInfo = {firstDay: 5};\n } else if (day === 'sat') {\n weekInfo = {firstDay: 6};\n } else {\n weekInfo = {firstDay: 0};\n }\n } else if (locale.includes('-ca-iso8601')) {\n weekInfo = {firstDay: 1};\n } else {\n weekInfo = {firstDay: region ? weekStartData[region] || 0 : 0};\n }\n cachedWeekInfo.set(locale, weekInfo);\n }\n\n return weekInfo.firstDay;\n}\n\n/** Returns the number of weeks in the given month and locale. */\nexport function getWeeksInMonth(date: DateValue, locale: string, firstDayOfWeek?: DayOfWeek): number {\n let days = date.calendar.getDaysInMonth(date);\n return Math.ceil((getDayOfWeek(startOfMonth(date), locale, firstDayOfWeek) + days) / 7);\n}\n\n/** Returns the lesser of the two provider dates. */\nexport function minDate<A extends DateValue, B extends DateValue>(a?: A | null, b?: B | null): A | B | null | undefined {\n if (a && b) {\n return a.compare(b) <= 0 ? a : b;\n }\n\n return a || b;\n}\n\n/** Returns the greater of the two provider dates. */\nexport function maxDate<A extends DateValue, B extends DateValue>(a?: A | null, b?: B | null): A | B | null | undefined {\n if (a && b) {\n return a.compare(b) >= 0 ? a : b;\n }\n\n return a || b;\n}\n\nconst WEEKEND_DATA = {\n AF: [4, 5],\n AE: [5, 6],\n BH: [5, 6],\n DZ: [5, 6],\n EG: [5, 6],\n IL: [5, 6],\n IQ: [5, 6],\n IR: [5, 5],\n JO: [5, 6],\n KW: [5, 6],\n LY: [5, 6],\n OM: [5, 6],\n QA: [5, 6],\n SA: [5, 6],\n SD: [5, 6],\n SY: [5, 6],\n YE: [5, 6]\n};\n\n/** Returns whether the given date is on a weekend in the given locale. */\nexport function isWeekend(date: DateValue, locale: string): boolean {\n let julian = date.calendar.toJulianDay(date);\n\n // If julian is negative, then julian % 7 will be negative, so we adjust\n // accordingly. Julian day 0 is Monday.\n let dayOfWeek = Math.ceil(julian + 1) % 7;\n if (dayOfWeek < 0) {\n dayOfWeek += 7;\n }\n\n let region = getRegion(locale);\n // Use Intl.Locale for this once weekInfo is supported.\n // https://github.com/tc39/proposal-intl-locale-info\n let [start, end] = WEEKEND_DATA[region!] || [6, 0];\n return dayOfWeek === start || dayOfWeek === end;\n}\n\n/** Returns whether the given date is on a weekday in the given locale. */\nexport function isWeekday(date: DateValue, locale: string): boolean {\n return !isWeekend(date, locale);\n}\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from the TC39 Temporal proposal.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, AnyDateTime, AnyTime, Calendar, DateFields, Disambiguation, TimeFields} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {constrain} from './manipulation';\nimport {getExtendedYear, GregorianCalendar} from './calendars/GregorianCalendar';\nimport {getLocalTimeZone, isEqualCalendar} from './queries';\nimport {Mutable} from './utils';\n\nexport function epochFromDate(date: AnyDateTime): number {\n date = toCalendar(date, new GregorianCalendar());\n let year = getExtendedYear(date.era, date.year);\n return epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);\n}\n\nfunction epochFromParts(year: number, month: number, day: number, hour: number, minute: number, second: number, millisecond: number): number {\n // Note: Date.UTC() interprets one and two-digit years as being in the\n // 20th century, so don't use it\n let date = new Date();\n date.setUTCHours(hour, minute, second, millisecond);\n date.setUTCFullYear(year, month - 1, day);\n return date.getTime();\n}\n\nexport function getTimeZoneOffset(ms: number, timeZone: string): number {\n // Fast path for UTC.\n if (timeZone === 'UTC') {\n return 0;\n }\n\n // Fast path: for local timezone after 1970, use native Date.\n if (ms > 0 && timeZone === getLocalTimeZone()) {\n return new Date(ms).getTimezoneOffset() * -60 * 1000;\n }\n\n let {year, month, day, hour, minute, second} = getTimeZoneParts(ms, timeZone);\n let utc = epochFromParts(year, month, day, hour, minute, second, 0);\n return utc - Math.floor(ms / 1000) * 1000;\n}\n\nconst formattersByTimeZone = new Map<string, Intl.DateTimeFormat>();\n\nfunction getTimeZoneParts(ms: number, timeZone: string) {\n let formatter = formattersByTimeZone.get(timeZone);\n if (!formatter) {\n formatter = new Intl.DateTimeFormat('en-US', {\n timeZone,\n hour12: false,\n era: 'short',\n year: 'numeric',\n month: 'numeric',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n });\n\n formattersByTimeZone.set(timeZone, formatter);\n }\n\n let parts = formatter.formatToParts(new Date(ms));\n let namedParts: {[name: string]: string} = {};\n for (let part of parts) {\n if (part.type !== 'literal') {\n namedParts[part.type] = part.value;\n }\n }\n\n\n return {\n // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253\n year: namedParts.era === 'BC' || namedParts.era === 'B' ? -namedParts.year + 1 : +namedParts.year,\n month: +namedParts.month,\n day: +namedParts.day,\n hour: namedParts.hour === '24' ? 0 : +namedParts.hour, // bugs.chromium.org/p/chromium/issues/detail?id=1045791\n minute: +namedParts.minute,\n second: +namedParts.second\n };\n}\n\nconst DAYMILLIS = 86400000;\n\nexport function possibleAbsolutes(date: CalendarDateTime, timeZone: string): number[] {\n let ms = epochFromDate(date);\n let earlier = ms - getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let later = ms - getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n return getValidWallTimes(date, timeZone, earlier, later);\n}\n\nfunction getValidWallTimes(date: CalendarDateTime, timeZone: string, earlier: number, later: number): number[] {\n let found = earlier === later ? [earlier] : [earlier, later];\n return found.filter(absolute => isValidWallTime(date, timeZone, absolute));\n}\n\nfunction isValidWallTime(date: CalendarDateTime, timeZone: string, absolute: number) {\n let parts = getTimeZoneParts(absolute, timeZone);\n return date.year === parts.year\n && date.month === parts.month\n && date.day === parts.day\n && date.hour === parts.hour\n && date.minute === parts.minute\n && date.second === parts.second;\n}\n\nexport function toAbsolute(date: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): number {\n let dateTime = toCalendarDateTime(date);\n\n // Fast path: if the time zone is UTC, use native Date.\n if (timeZone === 'UTC') {\n return epochFromDate(dateTime);\n }\n\n // Fast path: if the time zone is the local timezone and disambiguation is compatible, use native Date.\n if (timeZone === getLocalTimeZone() && disambiguation === 'compatible') {\n dateTime = toCalendar(dateTime, new GregorianCalendar());\n\n // Don't use Date constructor here because two-digit years are interpreted in the 20th century.\n let date = new Date();\n let year = getExtendedYear(dateTime.era, dateTime.year);\n date.setFullYear(year, dateTime.month - 1, dateTime.day);\n date.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n return date.getTime();\n }\n\n let ms = epochFromDate(dateTime);\n let offsetBefore = getTimeZoneOffset(ms - DAYMILLIS, timeZone);\n let offsetAfter = getTimeZoneOffset(ms + DAYMILLIS, timeZone);\n let valid = getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);\n\n if (valid.length === 1) {\n return valid[0];\n }\n\n if (valid.length > 1) {\n switch (disambiguation) {\n // 'compatible' means 'earlier' for \"fall back\" transitions\n case 'compatible':\n case 'earlier':\n return valid[0];\n case 'later':\n return valid[valid.length - 1];\n case 'reject':\n throw new RangeError('Multiple possible absolute times found');\n }\n }\n\n switch (disambiguation) {\n case 'earlier':\n return Math.min(ms - offsetBefore, ms - offsetAfter);\n // 'compatible' means 'later' for \"spring forward\" transitions\n case 'compatible':\n case 'later':\n return Math.max(ms - offsetBefore, ms - offsetAfter);\n case 'reject':\n throw new RangeError('No such absolute time found');\n }\n}\n\nexport function toDate(dateTime: CalendarDate | CalendarDateTime, timeZone: string, disambiguation: Disambiguation = 'compatible'): Date {\n return new Date(toAbsolute(dateTime, timeZone, disambiguation));\n}\n\n/**\n * Takes a Unix epoch (milliseconds since 1970) and converts it to the provided time zone.\n */\nexport function fromAbsolute(ms: number, timeZone: string): ZonedDateTime {\n let offset = getTimeZoneOffset(ms, timeZone);\n let date = new Date(ms + offset);\n let year = date.getUTCFullYear();\n let month = date.getUTCMonth() + 1;\n let day = date.getUTCDate();\n let hour = date.getUTCHours();\n let minute = date.getUTCMinutes();\n let second = date.getUTCSeconds();\n let millisecond = date.getUTCMilliseconds();\n\n return new ZonedDateTime(year < 1 ? 'BC' : 'AD', year < 1 ? -year + 1 : year, month, day, timeZone, offset, hour, minute, second, millisecond);\n}\n\n/**\n * Takes a `Date` object and converts it to the provided time zone.\n */\nexport function fromDate(date: Date, timeZone: string): ZonedDateTime {\n return fromAbsolute(date.getTime(), timeZone);\n}\n\nexport function fromDateToLocal(date: Date): ZonedDateTime {\n return fromDate(date, getLocalTimeZone());\n}\n\n/** Converts a value with date components such as a `CalendarDateTime` or `ZonedDateTime` into a `CalendarDate`. */\nexport function toCalendarDate(dateTime: AnyCalendarDate): CalendarDate {\n return new CalendarDate(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);\n}\n\nexport function toDateFields(date: AnyCalendarDate): DateFields {\n return {\n era: date.era,\n year: date.year,\n month: date.month,\n day: date.day\n };\n}\n\nexport function toTimeFields(date: AnyTime): TimeFields {\n return {\n hour: date.hour,\n minute: date.minute,\n second: date.second,\n millisecond: date.millisecond\n };\n}\n\n/**\n * Converts a date value to a `CalendarDateTime`. An optional `Time` value can be passed to set the time\n * of the resulting value, otherwise it will default to midnight.\n */\nexport function toCalendarDateTime(date: CalendarDate | CalendarDateTime | ZonedDateTime, time?: AnyTime): CalendarDateTime {\n let hour = 0, minute = 0, second = 0, millisecond = 0;\n if ('timeZone' in date) {\n ({hour, minute, second, millisecond} = date);\n } else if ('hour' in date && !time) {\n return date;\n }\n\n if (time) {\n ({hour, minute, second, millisecond} = time);\n }\n\n return new CalendarDateTime(\n date.calendar,\n date.era,\n date.year,\n date.month,\n date.day,\n hour,\n minute,\n second,\n millisecond\n );\n}\n\n/** Extracts the time components from a value containing a date and time. */\nexport function toTime(dateTime: CalendarDateTime | ZonedDateTime): Time {\n return new Time(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);\n}\n\n/** Converts a date from one calendar system to another. */\nexport function toCalendar<T extends AnyCalendarDate>(date: T, calendar: Calendar): T {\n if (isEqualCalendar(date.calendar, calendar)) {\n return date;\n }\n\n let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));\n let copy: Mutable<T> = date.copy();\n copy.calendar = calendar;\n copy.era = calendarDate.era;\n copy.year = calendarDate.year;\n copy.month = calendarDate.month;\n copy.day = calendarDate.day;\n constrain(copy);\n return copy;\n}\n\n/**\n * Converts a date value to a `ZonedDateTime` in the provided time zone. The `disambiguation` option can be set\n * to control how values that fall on daylight saving time changes are interpreted.\n */\nexport function toZoned(date: CalendarDate | CalendarDateTime | ZonedDateTime, timeZone: string, disambiguation?: Disambiguation): ZonedDateTime {\n if (date instanceof ZonedDateTime) {\n if (date.timeZone === timeZone) {\n return date;\n }\n\n return toTimeZone(date, timeZone);\n }\n\n let ms = toAbsolute(date, timeZone, disambiguation);\n return fromAbsolute(ms, timeZone);\n}\n\nexport function zonedToDate(date: ZonedDateTime): Date {\n let ms = epochFromDate(date) - date.offset;\n return new Date(ms);\n}\n\n/** Converts a `ZonedDateTime` from one time zone to another. */\nexport function toTimeZone(date: ZonedDateTime, timeZone: string): ZonedDateTime {\n let ms = epochFromDate(date) - date.offset;\n return toCalendar(fromAbsolute(ms, timeZone), date.calendar);\n}\n\n/** Converts the given `ZonedDateTime` into the user's local time zone. */\nexport function toLocalTimeZone(date: ZonedDateTime): ZonedDateTime {\n return toTimeZone(date, getLocalTimeZone());\n}\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AnyCalendarDate, AnyDateTime, AnyTime, CycleOptions, CycleTimeOptions, DateDuration, DateField, DateFields, DateTimeDuration, Disambiguation, TimeDuration, TimeField, TimeFields} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {epochFromDate, fromAbsolute, toAbsolute, toCalendar, toCalendarDateTime} from './conversion';\nimport {GregorianCalendar} from './calendars/GregorianCalendar';\nimport {Mutable} from './utils';\n\nconst ONE_HOUR = 3600000;\n\nexport function add(date: CalendarDateTime, duration: DateTimeDuration): CalendarDateTime;\nexport function add(date: CalendarDate, duration: DateDuration): CalendarDate;\nexport function add(date: CalendarDate | CalendarDateTime, duration: DateTimeDuration): CalendarDate | CalendarDateTime;\nexport function add(date: CalendarDate | CalendarDateTime, duration: DateTimeDuration): Mutable<AnyCalendarDate | AnyDateTime> {\n let mutableDate: Mutable<AnyCalendarDate | AnyDateTime> = date.copy();\n let days = 'hour' in mutableDate ? addTimeFields(mutableDate, duration) : 0;\n\n addYears(mutableDate, duration.years || 0);\n if (mutableDate.calendar.balanceYearMonth) {\n mutableDate.calendar.balanceYearMonth(mutableDate, date);\n }\n\n mutableDate.month += duration.months || 0;\n\n balanceYearMonth(mutableDate);\n constrainMonthDay(mutableDate);\n\n mutableDate.day += (duration.weeks || 0) * 7;\n mutableDate.day += duration.days || 0;\n mutableDate.day += days;\n\n balanceDay(mutableDate);\n\n if (mutableDate.calendar.balanceDate) {\n mutableDate.calendar.balanceDate(mutableDate);\n }\n\n // Constrain in case adding ended up with a date outside the valid range for the calendar system.\n // The behavior here is slightly different than when constraining in the `set` function in that\n // we adjust smaller fields to their minimum/maximum values rather than constraining each field\n // individually. This matches the general behavior of `add` vs `set` regarding how fields are balanced.\n if (mutableDate.year < 1) {\n mutableDate.year = 1;\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n\n let maxYear = mutableDate.calendar.getYearsInEra(mutableDate);\n if (mutableDate.year > maxYear) {\n let isInverseEra = mutableDate.calendar.isInverseEra?.(mutableDate);\n mutableDate.year = maxYear;\n mutableDate.month = isInverseEra ? 1 : mutableDate.calendar.getMonthsInYear(mutableDate);\n mutableDate.day = isInverseEra ? 1 : mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n\n if (mutableDate.month < 1) {\n mutableDate.month = 1;\n mutableDate.day = 1;\n }\n\n let maxMonth = mutableDate.calendar.getMonthsInYear(mutableDate);\n if (mutableDate.month > maxMonth) {\n mutableDate.month = maxMonth;\n mutableDate.day = mutableDate.calendar.getDaysInMonth(mutableDate);\n }\n\n mutableDate.day = Math.max(1, Math.min(mutableDate.calendar.getDaysInMonth(mutableDate), mutableDate.day));\n return mutableDate;\n}\n\nfunction addYears(date: Mutable<AnyCalendarDate>, years: number) {\n if (date.calendar.isInverseEra?.(date)) {\n years = -years;\n }\n\n date.year += years;\n}\n\nfunction balanceYearMonth(date: Mutable<AnyCalendarDate>) {\n while (date.month < 1) {\n addYears(date, -1);\n date.month += date.calendar.getMonthsInYear(date);\n }\n\n let monthsInYear = 0;\n while (date.month > (monthsInYear = date.calendar.getMonthsInYear(date))) {\n date.month -= monthsInYear;\n addYears(date, 1);\n }\n}\n\nfunction balanceDay(date: Mutable<AnyCalendarDate>) {\n while (date.day < 1) {\n date.month--;\n balanceYearMonth(date);\n date.day += date.calendar.getDaysInMonth(date);\n }\n\n while (date.day > date.calendar.getDaysInMonth(date)) {\n date.day -= date.calendar.getDaysInMonth(date);\n date.month++;\n balanceYearMonth(date);\n }\n}\n\nfunction constrainMonthDay(date: Mutable<AnyCalendarDate>) {\n date.month = Math.max(1, Math.min(date.calendar.getMonthsInYear(date), date.month));\n date.day = Math.max(1, Math.min(date.calendar.getDaysInMonth(date), date.day));\n}\n\nexport function constrain(date: Mutable<AnyCalendarDate>): void {\n if (date.calendar.constrainDate) {\n date.calendar.constrainDate(date);\n }\n\n date.year = Math.max(1, Math.min(date.calendar.getYearsInEra(date), date.year));\n constrainMonthDay(date);\n}\n\nexport function invertDuration(duration: DateTimeDuration): DateTimeDuration {\n let inverseDuration = {};\n for (let key in duration) {\n if (typeof duration[key] === 'number') {\n inverseDuration[key] = -duration[key];\n }\n }\n\n return inverseDuration;\n}\n\nexport function subtract(date: CalendarDateTime, duration: DateTimeDuration): CalendarDateTime;\nexport function subtract(date: CalendarDate, duration: DateDuration): CalendarDate;\nexport function subtract(date: CalendarDate | CalendarDateTime, duration: DateTimeDuration): CalendarDate | CalendarDateTime {\n return add(date, invertDuration(duration));\n}\n\nexport function set(date: CalendarDateTime, fields: DateFields): CalendarDateTime;\nexport function set(date: CalendarDate, fields: DateFields): CalendarDate;\nexport function set(date: CalendarDate | CalendarDateTime, fields: DateFields): Mutable<AnyCalendarDate> {\n let mutableDate: Mutable<AnyCalendarDate> = date.copy();\n\n if (fields.era != null) {\n mutableDate.era = fields.era;\n }\n\n if (fields.year != null) {\n mutableDate.year = fields.year;\n }\n\n if (fields.month != null) {\n mutableDate.month = fields.month;\n }\n\n if (fields.day != null) {\n mutableDate.day = fields.day;\n }\n\n constrain(mutableDate);\n return mutableDate;\n}\n\nexport function setTime(value: CalendarDateTime, fields: TimeFields): CalendarDateTime;\nexport function setTime(value: Time, fields: TimeFields): Time;\nexport function setTime(value: Time | CalendarDateTime, fields: TimeFields): Mutable<Time | CalendarDateTime> {\n let mutableValue: Mutable<Time | CalendarDateTime> = value.copy();\n\n if (fields.hour != null) {\n mutableValue.hour = fields.hour;\n }\n\n if (fields.minute != null) {\n mutableValue.minute = fields.minute;\n }\n\n if (fields.second != null) {\n mutableValue.second = fields.second;\n }\n\n if (fields.millisecond != null) {\n mutableValue.millisecond = fields.millisecond;\n }\n\n constrainTime(mutableValue);\n return mutableValue;\n}\n\nfunction balanceTime(time: Mutable<AnyTime>): number {\n time.second += Math.floor(time.millisecond / 1000);\n time.millisecond = nonNegativeMod(time.millisecond, 1000);\n\n time.minute += Math.floor(time.second / 60);\n time.second = nonNegativeMod(time.second, 60);\n\n time.hour += Math.floor(time.minute / 60);\n time.minute = nonNegativeMod(time.minute, 60);\n\n let days = Math.floor(time.hour / 24);\n time.hour = nonNegativeMod(time.hour, 24);\n\n return days;\n}\n\nexport function constrainTime(time: Mutable<AnyTime>): void {\n time.millisecond = Math.max(0, Math.min(time.millisecond, 1000));\n time.second = Math.max(0, Math.min(time.second, 59));\n time.minute = Math.max(0, Math.min(time.minute, 59));\n time.hour = Math.max(0, Math.min(time.hour, 23));\n}\n\nfunction nonNegativeMod(a: number, b: number) {\n let result = a % b;\n if (result < 0) {\n result += b;\n }\n return result;\n}\n\nfunction addTimeFields(time: Mutable<AnyTime>, duration: TimeDuration): number {\n time.hour += duration.hours || 0;\n time.minute += duration.minutes || 0;\n time.second += duration.seconds || 0;\n time.millisecond += duration.milliseconds || 0;\n return balanceTime(time);\n}\n\nexport function addTime(time: Time, duration: TimeDuration): Time {\n let res = time.copy();\n addTimeFields(res, duration);\n return res;\n}\n\nexport function subtractTime(time: Time, duration: TimeDuration): Time {\n return addTime(time, invertDuration(duration));\n}\n\nexport function cycleDate(value: CalendarDateTime, field: DateField, amount: number, options?: CycleOptions): CalendarDateTime;\nexport function cycleDate(value: CalendarDate, field: DateField, amount: number, options?: CycleOptions): CalendarDate;\nexport function cycleDate(value: CalendarDate | CalendarDateTime, field: DateField, amount: number, options?: CycleOptions): Mutable<CalendarDate | CalendarDateTime> {\n let mutable: Mutable<CalendarDate | CalendarDateTime> = value.copy();\n\n switch (field) {\n case 'era': {\n let eras = value.calendar.getEras();\n let eraIndex = eras.indexOf(value.era);\n if (eraIndex < 0) {\n throw new Error('Invalid era: ' + value.era);\n }\n eraIndex = cycleValue(eraIndex, amount, 0, eras.length - 1, options?.round);\n mutable.era = eras[eraIndex];\n\n // Constrain the year and other fields within the era, so the era doesn't change when we balance below.\n constrain(mutable);\n break;\n }\n case 'year': {\n if (mutable.calendar.isInverseEra?.(mutable)) {\n amount = -amount;\n }\n\n // The year field should not cycle within the era as that can cause weird behavior affecting other fields.\n // We need to also allow values < 1 so that decrementing goes to the previous era. If we get -Infinity back\n // we know we wrapped around after reaching 9999 (the maximum), so set the year back to 1.\n mutable.year = cycleValue(value.year, amount, -Infinity, 9999, options?.round);\n if (mutable.year === -Infinity) {\n mutable.year = 1;\n }\n\n if (mutable.calendar.balanceYearMonth) {\n mutable.calendar.balanceYearMonth(mutable, value);\n }\n break;\n }\n case 'month':\n mutable.month = cycleValue(value.month, amount, 1, value.calendar.getMonthsInYear(value), options?.round);\n break;\n case 'day':\n mutable.day = cycleValue(value.day, amount, 1, value.calendar.getDaysInMonth(value), options?.round);\n break;\n default:\n throw new Error('Unsupported field ' + field);\n }\n\n if (value.calendar.balanceDate) {\n value.calendar.balanceDate(mutable);\n }\n\n constrain(mutable);\n return mutable;\n}\n\nexport function cycleTime(value: CalendarDateTime, field: TimeField, amount: number, options?: CycleTimeOptions): CalendarDateTime;\nexport function cycleTime(value: Time, field: TimeField, amount: number, options?: CycleTimeOptions): Time;\nexport function cycleTime(value: Time | CalendarDateTime, field: TimeField, amount: number, options?: CycleTimeOptions): Mutable<Time | CalendarDateTime> {\n let mutable: Mutable<Time | CalendarDateTime> = value.copy();\n\n switch (field) {\n case 'hour': {\n let hours = value.hour;\n let min = 0;\n let max = 23;\n if (options?.hourCycle === 12) {\n let isPM = hours >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n mutable.hour = cycleValue(hours, amount, min, max, options?.round);\n break;\n }\n case 'minute':\n mutable.minute = cycleValue(value.minute, amount, 0, 59, options?.round);\n break;\n case 'second':\n mutable.second = cycleValue(value.second, amount, 0, 59, options?.round);\n break;\n case 'millisecond':\n mutable.millisecond = cycleValue(value.millisecond, amount, 0, 999, options?.round);\n break;\n default:\n throw new Error('Unsupported field ' + field);\n }\n\n return mutable;\n}\n\nfunction cycleValue(value: number, amount: number, min: number, max: number, round = false) {\n if (round) {\n value += Math.sign(amount);\n\n if (value < min) {\n value = max;\n }\n\n let div = Math.abs(amount);\n if (amount > 0) {\n value = Math.ceil(value / div) * div;\n } else {\n value = Math.floor(value / div) * div;\n }\n\n if (value > max) {\n value = min;\n }\n } else {\n value += amount;\n if (value < min) {\n value = max - (min - value - 1);\n } else if (value > max) {\n value = min + (value - max - 1);\n }\n }\n\n return value;\n}\n\nexport function addZoned(dateTime: ZonedDateTime, duration: DateTimeDuration): ZonedDateTime {\n let ms: number;\n if ((duration.years != null && duration.years !== 0) || (duration.months != null && duration.months !== 0) || (duration.weeks != null && duration.weeks !== 0) || (duration.days != null && duration.days !== 0)) {\n let res = add(toCalendarDateTime(dateTime), {\n years: duration.years,\n months: duration.months,\n weeks: duration.weeks,\n days: duration.days\n });\n\n // Changing the date may change the timezone offset, so we need to recompute\n // using the 'compatible' disambiguation.\n ms = toAbsolute(res, dateTime.timeZone);\n } else {\n // Otherwise, preserve the offset of the original date.\n ms = epochFromDate(dateTime) - dateTime.offset;\n }\n\n // Perform time manipulation in milliseconds rather than on the original time fields to account for DST.\n // For example, adding one hour during a DST transition may result in the hour field staying the same or\n // skipping an hour. This results in the offset field changing value instead of the specified field.\n ms += duration.milliseconds || 0;\n ms += (duration.seconds || 0) * 1000;\n ms += (duration.minutes || 0) * 60 * 1000;\n ms += (duration.hours || 0) * 60 * 60 * 1000;\n\n let res = fromAbsolute(ms, dateTime.timeZone);\n return toCalendar(res, dateTime.calendar);\n}\n\nexport function subtractZoned(dateTime: ZonedDateTime, duration: DateTimeDuration): ZonedDateTime {\n return addZoned(dateTime, invertDuration(duration));\n}\n\nexport function cycleZoned(dateTime: ZonedDateTime, field: DateField | TimeField, amount: number, options?: CycleTimeOptions): ZonedDateTime {\n // For date fields, we want the time to remain consistent and the UTC offset to potentially change to account for DST changes.\n // For time fields, we want the time to change by the amount given. This may result in the hour field staying the same, but the UTC\n // offset changing in the case of a backward DST transition, or skipping an hour in the case of a forward DST transition.\n switch (field) {\n case 'hour': {\n let min = 0;\n let max = 23;\n if (options?.hourCycle === 12) {\n let isPM = dateTime.hour >= 12;\n min = isPM ? 12 : 0;\n max = isPM ? 23 : 11;\n }\n\n // The minimum and maximum hour may be affected by daylight saving time.\n // For example, it might jump forward at midnight, and skip 1am.\n // Or it might end at midnight and repeat the 11pm hour. To handle this, we get\n // the possible absolute times for the min and max, and find the maximum range\n // that is within the current day.\n let plainDateTime = toCalendarDateTime(dateTime);\n let minDate = toCalendar(setTime(plainDateTime, {hour: min}), new GregorianCalendar());\n let minAbsolute = [toAbsolute(minDate, dateTime.timeZone, 'earlier'), toAbsolute(minDate, dateTime.timeZone, 'later')]\n .filter(ms => fromAbsolute(ms, dateTime.timeZone).day === minDate.day)[0];\n\n let maxDate = toCalendar(setTime(plainDateTime, {hour: max}), new GregorianCalendar());\n let maxAbsolute = [toAbsolute(maxDate, dateTime.timeZone, 'earlier'), toAbsolute(maxDate, dateTime.timeZone, 'later')]\n .filter(ms => fromAbsolute(ms, dateTime.timeZone).day === maxDate.day).pop()!;\n\n // Since hours may repeat, we need to operate on the absolute time in milliseconds.\n // This is done in hours from the Unix epoch so that cycleValue works correctly,\n // and then converted back to milliseconds.\n let ms = epochFromDate(dateTime) - dateTime.offset;\n let hours = Math.floor(ms / ONE_HOUR);\n let remainder = ms % ONE_HOUR;\n ms = cycleValue(\n hours,\n amount,\n Math.floor(minAbsolute / ONE_HOUR),\n Math.floor(maxAbsolute / ONE_HOUR),\n options?.round\n ) * ONE_HOUR + remainder;\n\n // Now compute the new timezone offset, and convert the absolute time back to local time.\n return toCalendar(fromAbsolute(ms, dateTime.timeZone), dateTime.calendar);\n }\n case 'minute':\n case 'second':\n case 'millisecond':\n // @ts-ignore\n return cycleTime(dateTime, field, amount, options);\n case 'era':\n case 'year':\n case 'month':\n case 'day': {\n let res = cycleDate(toCalendarDateTime(dateTime), field, amount, options);\n let ms = toAbsolute(res, dateTime.timeZone);\n return toCalendar(fromAbsolute(ms, dateTime.timeZone), dateTime.calendar);\n }\n default:\n throw new Error('Unsupported field ' + field);\n }\n}\n\nexport function setZoned(dateTime: ZonedDateTime, fields: DateFields & TimeFields, disambiguation?: Disambiguation): ZonedDateTime {\n // Set the date/time fields, and recompute the UTC offset to account for DST changes.\n // We also need to validate by converting back to a local time in case hours are skipped during forward DST transitions.\n let plainDateTime = toCalendarDateTime(dateTime);\n let res = setTime(set(plainDateTime, fields), fields);\n\n // If the resulting plain date time values are equal, return the original time.\n // We don't want to change the offset when setting the time to the same value.\n if (res.compare(plainDateTime) === 0) {\n return dateTime;\n }\n\n let ms = toAbsolute(res, dateTime.timeZone, disambiguation);\n return toCalendar(fromAbsolute(ms, dateTime.timeZone), dateTime.calendar);\n}\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AnyDateTime, DateTimeDuration, Disambiguation} from './types';\nimport {CalendarDate, CalendarDateTime, Time, ZonedDateTime} from './CalendarDate';\nimport {epochFromDate, fromAbsolute, possibleAbsolutes, toAbsolute, toCalendar, toCalendarDateTime, toTimeZone} from './conversion';\nimport {getLocalTimeZone} from './queries';\nimport {GregorianCalendar} from './calendars/GregorianCalendar';\nimport {Mutable} from './utils';\n\nconst TIME_RE = /^(\\d{2})(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst DATE_RE = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})$/;\nconst DATE_TIME_RE = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?$/;\nconst ZONED_DATE_TIME_RE = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:([+-]\\d{2})(?::?(\\d{2}))?(?::?(\\d{2}))?)?\\[(.*?)\\]$/;\nconst ABSOLUTE_RE = /^([+-]\\d{6}|\\d{4})-(\\d{2})-(\\d{2})(?:T(\\d{2}))?(?::(\\d{2}))?(?::(\\d{2}))?(\\.\\d+)?(?:(?:([+-]\\d{2})(?::?(\\d{2}))?)|Z)$/;\nconst DATE_TIME_DURATION_RE =\n /^((?<negative>-)|\\+)?P((?<years>\\d*)Y)?((?<months>\\d*)M)?((?<weeks>\\d*)W)?((?<days>\\d*)D)?((?<time>T)((?<hours>\\d*[.,]?\\d{1,9})H)?((?<minutes>\\d*[.,]?\\d{1,9})M)?((?<seconds>\\d*[.,]?\\d{1,9})S)?)?$/;\nconst requiredDurationTimeGroups = ['hours', 'minutes', 'seconds'];\nconst requiredDurationGroups = ['years', 'months', 'weeks', 'days', ...requiredDurationTimeGroups];\n\n/** Parses an ISO 8601 time string. */\nexport function parseTime(value: string): Time {\n let m = value.match(TIME_RE);\n if (!m) {\n throw new Error('Invalid ISO 8601 time string: ' + value);\n }\n\n return new Time(\n parseNumber(m[1], 0, 23),\n m[2] ? parseNumber(m[2], 0, 59) : 0,\n m[3] ? parseNumber(m[3], 0, 59) : 0,\n m[4] ? parseNumber(m[4], 0, Infinity) * 1000 : 0\n );\n}\n\n/** Parses an ISO 8601 date string, with no time components. */\nexport function parseDate(value: string): CalendarDate {\n let m = value.match(DATE_RE);\n if (!m) {\n if (ABSOLUTE_RE.test(value)) {\n throw new Error(`Invalid ISO 8601 date string: ${value}. Use parseAbsolute() instead.`);\n }\n throw new Error('Invalid ISO 8601 date string: ' + value);\n }\n\n let date: Mutable<CalendarDate> = new CalendarDate(\n parseNumber(m[1], 0, 9999),\n parseNumber(m[2], 1, 12),\n 1\n );\n\n date.day = parseNumber(m[3], 1, date.calendar.getDaysInMonth(date));\n return date as CalendarDate;\n}\n\n/** Parses an ISO 8601 date and time string, with no time zone. */\nexport function parseDateTime(value: string): CalendarDateTime {\n let m = value.match(DATE_TIME_RE);\n if (!m) {\n if (ABSOLUTE_RE.test(value)) {\n throw new Error(`Invalid ISO 8601 date time string: ${value}. Use parseAbsolute() instead.`);\n }\n throw new Error('Invalid ISO 8601 date time string: ' + value);\n }\n\n let year = parseNumber(m[1], -9999, 9999);\n let era = year < 1 ? 'BC' : 'AD';\n\n let date: Mutable<CalendarDateTime> = new CalendarDateTime(\n era,\n year < 1 ? -year + 1 : year,\n parseNumber(m[2], 1, 12),\n 1,\n m[4] ? parseNumber(m[4], 0, 23) : 0,\n m[5] ? parseNumber(m[5], 0, 59) : 0,\n m[6] ? parseNumber(m[6], 0, 59) : 0,\n m[7] ? parseNumber(m[7], 0, Infinity) * 1000 : 0\n );\n\n date.day = parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n return date as CalendarDateTime;\n}\n\n/**\n * Parses an ISO 8601 date and time string with a time zone extension and optional UTC offset\n * (e.g. \"2021-11-07T00:45[America/Los_Angeles]\" or \"2021-11-07T00:45-07:00[America/Los_Angeles]\").\n * Ambiguous times due to daylight saving time transitions are resolved according to the `disambiguation`\n * parameter.\n */\nexport function parseZonedDateTime(value: string, disambiguation?: Disambiguation): ZonedDateTime {\n let m = value.match(ZONED_DATE_TIME_RE);\n if (!m) {\n throw new Error('Invalid ISO 8601 date time string: ' + value);\n }\n\n let year = parseNumber(m[1], -9999, 9999);\n let era = year < 1 ? 'BC' : 'AD';\n\n let date: Mutable<ZonedDateTime> = new ZonedDateTime(\n era,\n year < 1 ? -year + 1 : year,\n parseNumber(m[2], 1, 12),\n 1,\n m[11],\n 0,\n m[4] ? parseNumber(m[4], 0, 23) : 0,\n m[5] ? parseNumber(m[5], 0, 59) : 0,\n m[6] ? parseNumber(m[6], 0, 59) : 0,\n m[7] ? parseNumber(m[7], 0, Infinity) * 1000 : 0\n );\n\n date.day = parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n\n let plainDateTime = toCalendarDateTime(date as ZonedDateTime);\n\n let ms: number;\n if (m[8]) {\n let hourOffset = parseNumber(m[8], -23, 23);\n date.offset = Math.sign(hourOffset) * (Math.abs(hourOffset) * 60 * 60 * 1000 + parseNumber(m[9] ?? '0', 0, 59) * 60 * 1000 + parseNumber(m[10] ?? '0', 0, 59) * 1000);\n ms = epochFromDate(date as ZonedDateTime) - date.offset;\n\n // Validate offset against parsed date.\n let absolutes = possibleAbsolutes(plainDateTime, date.timeZone);\n if (!absolutes.includes(ms)) {\n throw new Error(`Offset ${offsetToString(date.offset)} is invalid for ${dateTimeToString(date)} in ${date.timeZone}`);\n }\n } else {\n // Convert to absolute and back to fix invalid times due to DST.\n ms = toAbsolute(toCalendarDateTime(plainDateTime), date.timeZone, disambiguation);\n }\n\n return fromAbsolute(ms, date.timeZone);\n}\n\n/**\n * Parses an ISO 8601 date and time string with a UTC offset (e.g. \"2021-11-07T07:45:00Z\"\n * or \"2021-11-07T07:45:00-07:00\"). The result is converted to the provided time zone.\n */\nexport function parseAbsolute(value: string, timeZone: string): ZonedDateTime {\n let m = value.match(ABSOLUTE_RE);\n if (!m) {\n throw new Error('Invalid ISO 8601 date time string: ' + value);\n }\n\n let year = parseNumber(m[1], -9999, 9999);\n let era = year < 1 ? 'BC' : 'AD';\n\n let date: Mutable<ZonedDateTime> = new ZonedDateTime(\n era,\n year < 1 ? -year + 1 : year,\n parseNumber(m[2], 1, 12),\n 1,\n timeZone,\n 0,\n m[4] ? parseNumber(m[4], 0, 23) : 0,\n m[5] ? parseNumber(m[5], 0, 59) : 0,\n m[6] ? parseNumber(m[6], 0, 59) : 0,\n m[7] ? parseNumber(m[7], 0, Infinity) * 1000 : 0\n );\n\n date.day = parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));\n\n if (m[8]) {\n date.offset = parseNumber(m[8], -23, 23) * 60 * 60 * 1000 + parseNumber(m[9] ?? '0', 0, 59) * 60 * 1000;\n }\n\n return toTimeZone(date as ZonedDateTime, timeZone);\n}\n\n/**\n * Parses an ISO 8601 date and time string with a UTC offset (e.g. \"2021-11-07T07:45:00Z\"\n * or \"2021-11-07T07:45:00-07:00\"). The result is converted to the user's local time zone.\n */\nexport function parseAbsoluteToLocal(value: string): ZonedDateTime {\n return parseAbsolute(value, getLocalTimeZone());\n}\n\nfunction parseNumber(value: string, min: number, max: number) {\n let val = Number(value);\n if (val < min || val > max) {\n throw new RangeError(`Value out of range: ${min} <= ${val} <= ${max}`);\n }\n\n return val;\n}\n\nexport function timeToString(time: Time): string {\n return `${String(time.hour).padStart(2, '0')}:${String(time.minute).padStart(2, '0')}:${String(time.second).padStart(2, '0')}${time.millisecond ? String(time.millisecond / 1000).slice(1) : ''}`;\n}\n\nexport function dateToString(date: CalendarDate): string {\n let gregorianDate = toCalendar(date, new GregorianCalendar());\n let year: string;\n if (gregorianDate.era === 'BC') {\n year = gregorianDate.year === 1\n ? '0000'\n : '-' + String(Math.abs(1 - gregorianDate.year)).padStart(6, '00');\n } else {\n year = String(gregorianDate.year).padStart(4, '0');\n }\n return `${year}-${String(gregorianDate.month).padStart(2, '0')}-${String(gregorianDate.day).padStart(2, '0')}`;\n}\n\nexport function dateTimeToString(date: AnyDateTime): string {\n // @ts-ignore\n return `${dateToString(date)}T${timeToString(date)}`;\n}\n\nfunction offsetToString(offset: number) {\n let sign = Math.sign(offset) < 0 ? '-' : '+';\n offset = Math.abs(offset);\n let offsetHours = Math.floor(offset / (60 * 60 * 1000));\n let offsetMinutes = Math.floor((offset % (60 * 60 * 1000)) / (60 * 1000));\n let offsetSeconds = Math.floor((offset % (60 * 60 * 1000)) % (60 * 1000) / 1000);\n let stringOffset = `${sign}${String(offsetHours).padStart(2, '0')}:${String(offsetMinutes).padStart(2, '0')}`;\n if (offsetSeconds !== 0) {\n stringOffset += `:${String(offsetSeconds).padStart(2, '0')}`;\n }\n\n return stringOffset;\n}\n\nexport function zonedDateTimeToString(date: ZonedDateTime): string {\n return `${dateTimeToString(date)}${offsetToString(date.offset)}[${date.timeZone}]`;\n}\n\n/**\n * Parses an ISO 8601 duration string (e.g. \"P3Y6M6W4DT12H30M5S\").\n * @param value An ISO 8601 duration string.\n * @returns A DateTimeDuration object.\n */\nexport function parseDuration(value: string): Required<DateTimeDuration> {\n const match = value.match(DATE_TIME_DURATION_RE);\n\n if (!match) {\n throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n\n const parseDurationGroup = (\n group: string | undefined,\n isNegative: boolean\n ): number => {\n if (!group) {\n return 0;\n }\n try {\n const sign = isNegative ? -1 : 1;\n return sign * Number(group.replace(',', '.'));\n } catch {\n throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n };\n\n const isNegative = !!match.groups?.negative;\n\n const hasRequiredGroups = requiredDurationGroups.some(group => match.groups?.[group]);\n\n if (!hasRequiredGroups) {\n throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n\n const durationStringIncludesTime = match.groups?.time;\n\n if (durationStringIncludesTime) {\n const hasRequiredDurationTimeGroups = requiredDurationTimeGroups.some(group => match.groups?.[group]);\n if (!hasRequiredDurationTimeGroups) {\n throw new Error(`Invalid ISO 8601 Duration string: ${value}`);\n }\n }\n\n const duration: Mutable<DateTimeDuration> = {\n years: parseDurationGroup(match.groups?.years, isNegative),\n months: parseDurationGroup(match.groups?.months, isNegative),\n weeks: parseDurationGroup(match.groups?.weeks, isNegative),\n days: parseDurationGroup(match.groups?.days, isNegative),\n hours: parseDurationGroup(match.groups?.hours, isNegative),\n minutes: parseDurationGroup(match.groups?.minutes, isNegative),\n seconds: parseDurationGroup(match.groups?.seconds, isNegative)\n };\n\n if (duration.hours !== undefined && ((duration.hours % 1) !== 0) && (duration.minutes || duration.seconds)) {\n throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n }\n\n if (duration.minutes !== undefined && ((duration.minutes % 1) !== 0) && duration.seconds) {\n throw new Error(`Invalid ISO 8601 Duration string: ${value} - only the smallest unit can be fractional`);\n }\n\n return duration as Required<DateTimeDuration>;\n}\n", "function _check_private_redeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n}\nexport { _check_private_redeclaration as _ };\n", "import { _ as _check_private_redeclaration } from \"./_check_private_redeclaration.js\";\n\nfunction _class_private_field_init(obj, privateMap, value) {\n _check_private_redeclaration(obj, privateMap);\n privateMap.set(obj, value);\n}\nexport { _class_private_field_init as _ };\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {add, addTime, addZoned, constrain, constrainTime, cycleDate, cycleTime, cycleZoned, set, setTime, setZoned, subtract, subtractTime, subtractZoned} from './manipulation';\nimport {AnyCalendarDate, AnyTime, Calendar, CycleOptions, CycleTimeOptions, DateDuration, DateField, DateFields, DateTimeDuration, Disambiguation, TimeDuration, TimeField, TimeFields} from './types';\nimport {compareDate, compareTime} from './queries';\nimport {dateTimeToString, dateToString, timeToString, zonedDateTimeToString} from './string';\nimport {GregorianCalendar} from './calendars/GregorianCalendar';\nimport {toCalendarDateTime, toDate, toZoned, zonedToDate} from './conversion';\n\nfunction shiftArgs(args: any[]) {\n let calendar: Calendar = typeof args[0] === 'object'\n ? args.shift()\n : new GregorianCalendar();\n\n let era: string;\n if (typeof args[0] === 'string') {\n era = args.shift();\n } else {\n let eras = calendar.getEras();\n era = eras[eras.length - 1];\n }\n\n let year = args.shift();\n let month = args.shift();\n let day = args.shift();\n\n return [calendar, era, year, month, day];\n}\n\n/** A CalendarDate represents a date without any time components in a specific calendar system. */\nexport class CalendarDate {\n // This prevents TypeScript from allowing other types with the same fields to match.\n // i.e. a ZonedDateTime should not be be passable to a parameter that expects CalendarDate.\n // If that behavior is desired, use the AnyCalendarDate interface instead.\n // @ts-ignore\n #type;\n /** The calendar system associated with this date, e.g. Gregorian. */\n public readonly calendar: Calendar;\n /** The calendar era for this date, e.g. \"BC\" or \"AD\". */\n public readonly era: string;\n /** The year of this date within the era. */\n public readonly year: number;\n /**\n * The month number within the year. Note that some calendar systems such as Hebrew\n * may have a variable number of months per year. Therefore, month numbers may not\n * always correspond to the same month names in different years.\n */\n public readonly month: number;\n /** The day number within the month. */\n public readonly day: number;\n\n constructor(year: number, month: number, day: number);\n constructor(era: string, year: number, month: number, day: number);\n constructor(calendar: Calendar, year: number, month: number, day: number);\n constructor(calendar: Calendar, era: string, year: number, month: number, day: number);\n constructor(...args: any[]) {\n let [calendar, era, year, month, day] = shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n\n constrain(this);\n }\n\n /** Returns a copy of this date. */\n copy(): CalendarDate {\n if (this.era) {\n return new CalendarDate(this.calendar, this.era, this.year, this.month, this.day);\n } else {\n return new CalendarDate(this.calendar, this.year, this.month, this.day);\n }\n }\n\n /** Returns a new `CalendarDate` with the given duration added to it. */\n add(duration: DateDuration): CalendarDate {\n return add(this, duration);\n }\n\n /** Returns a new `CalendarDate` with the given duration subtracted from it. */\n subtract(duration: DateDuration): CalendarDate {\n return subtract(this, duration);\n }\n\n /** Returns a new `CalendarDate` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: DateFields): CalendarDate {\n return set(this, fields);\n }\n\n /**\n * Returns a new `CalendarDate` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: DateField, amount: number, options?: CycleOptions): CalendarDate {\n return cycleDate(this, field, amount, options);\n }\n\n /** Converts the date to a native JavaScript Date object, with the time set to midnight in the given time zone. */\n toDate(timeZone: string): Date {\n return toDate(this, timeZone);\n }\n\n /** Converts the date to an ISO 8601 formatted string. */\n toString(): string {\n return dateToString(this);\n }\n\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */\n compare(b: AnyCalendarDate): number {\n return compareDate(this, b);\n }\n}\n\n/** A Time represents a clock time without any date components. */\nexport class Time {\n // This prevents TypeScript from allowing other types with the same fields to match.\n // @ts-ignore\n #type;\n /** The hour, numbered from 0 to 23. */\n public readonly hour: number;\n /** The minute in the hour. */\n public readonly minute: number;\n /** The second in the minute. */\n public readonly second: number;\n /** The millisecond in the second. */\n public readonly millisecond: number;\n\n constructor(\n hour: number = 0,\n minute: number = 0,\n second: number = 0,\n millisecond: number = 0\n ) {\n this.hour = hour;\n this.minute = minute;\n this.second = second;\n this.millisecond = millisecond;\n constrainTime(this);\n }\n\n /** Returns a copy of this time. */\n copy(): Time {\n return new Time(this.hour, this.minute, this.second, this.millisecond);\n }\n\n /** Returns a new `Time` with the given duration added to it. */\n add(duration: TimeDuration): Time {\n return addTime(this, duration);\n }\n\n /** Returns a new `Time` with the given duration subtracted from it. */\n subtract(duration: TimeDuration): Time {\n return subtractTime(this, duration);\n }\n\n /** Returns a new `Time` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: TimeFields): Time {\n return setTime(this, fields);\n }\n\n /**\n * Returns a new `Time` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: TimeField, amount: number, options?: CycleTimeOptions): Time {\n return cycleTime(this, field, amount, options);\n }\n\n /** Converts the time to an ISO 8601 formatted string. */\n toString(): string {\n return timeToString(this);\n }\n\n /** Compares this time with another. A negative result indicates that this time is before the given one, and a positive time indicates that it is after. */\n compare(b: AnyTime): number {\n return compareTime(this, b);\n }\n}\n\n/** A CalendarDateTime represents a date and time without a time zone, in a specific calendar system. */\nexport class CalendarDateTime {\n // This prevents TypeScript from allowing other types with the same fields to match.\n // @ts-ignore\n #type;\n /** The calendar system associated with this date, e.g. Gregorian. */\n public readonly calendar: Calendar;\n /** The calendar era for this date, e.g. \"BC\" or \"AD\". */\n public readonly era: string;\n /** The year of this date within the era. */\n public readonly year: number;\n /**\n * The month number within the year. Note that some calendar systems such as Hebrew\n * may have a variable number of months per year. Therefore, month numbers may not\n * always correspond to the same month names in different years.\n */\n public readonly month: number;\n /** The day number within the month. */\n public readonly day: number;\n /** The hour in the day, numbered from 0 to 23. */\n public readonly hour: number;\n /** The minute in the hour. */\n public readonly minute: number;\n /** The second in the minute. */\n public readonly second: number;\n /** The millisecond in the second. */\n public readonly millisecond: number;\n\n constructor(year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(era: string, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, era: string, year: number, month: number, day: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(...args: any[]) {\n let [calendar, era, year, month, day] = shiftArgs(args);\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n\n constrain(this);\n }\n\n /** Returns a copy of this date. */\n copy(): CalendarDateTime {\n if (this.era) {\n return new CalendarDateTime(this.calendar, this.era, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n } else {\n return new CalendarDateTime(this.calendar, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);\n }\n }\n\n /** Returns a new `CalendarDateTime` with the given duration added to it. */\n add(duration: DateTimeDuration): CalendarDateTime {\n return add(this, duration);\n }\n\n /** Returns a new `CalendarDateTime` with the given duration subtracted from it. */\n subtract(duration: DateTimeDuration): CalendarDateTime {\n return subtract(this, duration);\n }\n\n /** Returns a new `CalendarDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: DateFields & TimeFields): CalendarDateTime {\n return set(setTime(this, fields), fields);\n }\n\n /**\n * Returns a new `CalendarDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: DateField | TimeField, amount: number, options?: CycleTimeOptions): CalendarDateTime {\n switch (field) {\n case 'era':\n case 'year':\n case 'month':\n case 'day':\n return cycleDate(this, field, amount, options);\n default:\n return cycleTime(this, field, amount, options);\n }\n }\n\n /** Converts the date to a native JavaScript Date object in the given time zone. */\n toDate(timeZone: string, disambiguation?: Disambiguation): Date {\n return toDate(this, timeZone, disambiguation);\n }\n\n /** Converts the date to an ISO 8601 formatted string. */\n toString(): string {\n return dateTimeToString(this);\n }\n\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */\n compare(b: CalendarDate | CalendarDateTime | ZonedDateTime): number {\n let res = compareDate(this, b);\n if (res === 0) {\n return compareTime(this, toCalendarDateTime(b));\n }\n\n return res;\n }\n}\n\n/** A ZonedDateTime represents a date and time in a specific time zone and calendar system. */\nexport class ZonedDateTime {\n // This prevents TypeScript from allowing other types with the same fields to match.\n // @ts-ignore\n #type;\n /** The calendar system associated with this date, e.g. Gregorian. */\n public readonly calendar: Calendar;\n /** The calendar era for this date, e.g. \"BC\" or \"AD\". */\n public readonly era: string;\n /** The year of this date within the era. */\n public readonly year: number;\n /**\n * The month number within the year. Note that some calendar systems such as Hebrew\n * may have a variable number of months per year. Therefore, month numbers may not\n * always correspond to the same month names in different years.\n */\n public readonly month: number;\n /** The day number within the month. */\n public readonly day: number;\n /** The hour in the day, numbered from 0 to 23. */\n public readonly hour: number;\n /** The minute in the hour. */\n public readonly minute: number;\n /** The second in the minute. */\n public readonly second: number;\n /** The millisecond in the second. */\n public readonly millisecond: number;\n /** The IANA time zone identifier that this date and time is represented in. */\n public readonly timeZone: string;\n /** The UTC offset for this time, in milliseconds. */\n public readonly offset: number;\n\n constructor(year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(era: string, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(calendar: Calendar, era: string, year: number, month: number, day: number, timeZone: string, offset: number, hour?: number, minute?: number, second?: number, millisecond?: number);\n constructor(...args: any[]) {\n let [calendar, era, year, month, day] = shiftArgs(args);\n let timeZone = args.shift();\n let offset = args.shift();\n this.calendar = calendar;\n this.era = era;\n this.year = year;\n this.month = month;\n this.day = day;\n this.timeZone = timeZone;\n this.offset = offset;\n this.hour = args.shift() || 0;\n this.minute = args.shift() || 0;\n this.second = args.shift() || 0;\n this.millisecond = args.shift() || 0;\n\n constrain(this);\n }\n\n /** Returns a copy of this date. */\n copy(): ZonedDateTime {\n if (this.era) {\n return new ZonedDateTime(this.calendar, this.era, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n } else {\n return new ZonedDateTime(this.calendar, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);\n }\n }\n\n /** Returns a new `ZonedDateTime` with the given duration added to it. */\n add(duration: DateTimeDuration): ZonedDateTime {\n return addZoned(this, duration);\n }\n\n /** Returns a new `ZonedDateTime` with the given duration subtracted from it. */\n subtract(duration: DateTimeDuration): ZonedDateTime {\n return subtractZoned(this, duration);\n }\n\n /** Returns a new `ZonedDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */\n set(fields: DateFields & TimeFields, disambiguation?: Disambiguation): ZonedDateTime {\n return setZoned(this, fields, disambiguation);\n }\n\n /**\n * Returns a new `ZonedDateTime` with the given field adjusted by a specified amount.\n * When the resulting value reaches the limits of the field, it wraps around.\n */\n cycle(field: DateField | TimeField, amount: number, options?: CycleTimeOptions): ZonedDateTime {\n return cycleZoned(this, field, amount, options);\n }\n\n /** Converts the date to a native JavaScript Date object. */\n toDate(): Date {\n return zonedToDate(this);\n }\n\n /** Converts the date to an ISO 8601 formatted string, including the UTC offset and time zone identifier. */\n toString(): string {\n return zonedDateTimeToString(this);\n }\n\n /** Converts the date to an ISO 8601 formatted string in UTC. */\n toAbsoluteString(): string {\n return this.toDate().toISOString();\n }\n\n /** Compares this date with another. A negative result indicates that this date is before the given one, and a positive date indicates that it is after. */\n compare(b: CalendarDate | CalendarDateTime | ZonedDateTime): number {\n // TODO: Is this a bad idea??\n return this.toDate().getTime() - toZoned(b, this.timeZone).toDate().getTime();\n }\n}\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\n// Portions of the code in this file are based on code from ICU.\n// Original licensing can be found in the NOTICE file in the root directory of this source tree.\n\nimport {AnyCalendarDate, Calendar, CalendarIdentifier} from '../types';\nimport {CalendarDate} from '../CalendarDate';\nimport {mod, Mutable} from '../utils';\n\nconst HEBREW_EPOCH = 347997;\n\n// Hebrew date calculations are performed in terms of days, hours, and\n// \"parts\" (or halakim), which are 1/1080 of an hour, or 3 1/3 seconds.\nconst HOUR_PARTS = 1080;\nconst DAY_PARTS = 24 * HOUR_PARTS;\n\n// An approximate value for the length of a lunar month.\n// It is used to calculate the approximate year and month of a given\n// absolute date.\nconst MONTH_DAYS = 29;\nconst MONTH_FRACT = 12 * HOUR_PARTS + 793;\nconst MONTH_PARTS = MONTH_DAYS * DAY_PARTS + MONTH_FRACT;\n\nfunction isLeapYear(year: number) {\n return mod(year * 7 + 1, 19) < 7;\n}\n\n// Test for delay of start of new year and to avoid\n// Sunday, Wednesday, and Friday as start of the new year.\nfunction hebrewDelay1(year: number) {\n let months = Math.floor((235 * year - 234) / 19);\n let parts = 12084 + 13753 * months;\n let day = months * 29 + Math.floor(parts / 25920);\n\n if (mod(3 * (day + 1), 7) < 3) {\n day += 1;\n }\n\n return day;\n}\n\n// Check for delay in start of new year due to length of adjacent years\nfunction hebrewDelay2(year: number) {\n let last = hebrewDelay1(year - 1);\n let present = hebrewDelay1(year);\n let next = hebrewDelay1(year + 1);\n\n if (next - present === 356) {\n return 2;\n }\n\n if (present - last === 382) {\n return 1;\n }\n\n return 0;\n}\n\nfunction startOfYear(year: number) {\n return hebrewDelay1(year) + hebrewDelay2(year);\n}\n\nfunction getDaysInYear(year: number) {\n return startOfYear(year + 1) - startOfYear(year);\n}\n\nfunction getYearType(year: number) {\n let yearLength = getDaysInYear(year);\n\n if (yearLength > 380) {\n yearLength -= 30; // Subtract length of leap month.\n }\n\n switch (yearLength) {\n case 353:\n return 0; // deficient\n case 354:\n return 1; // normal\n case 355:\n return 2; // complete\n }\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n // Normalize month numbers from 1 - 13, even on non-leap years\n if (month >= 6 && !isLeapYear(year)) {\n month++;\n }\n\n // First of all, dispose of fixed-length 29 day months\n if (month === 4 || month === 7 || month === 9 || month === 11 || month === 13) {\n return 29;\n }\n\n let yearType = getYearType(year);\n\n // If it's Heshvan, days depend on length of year\n if (month === 2) {\n return yearType === 2 ? 30 : 29;\n }\n\n // Similarly, Kislev varies with the length of year\n if (month === 3) {\n return yearType === 0 ? 29 : 30;\n }\n\n // Adar I only exists in leap years\n if (month === 6) {\n return isLeapYear(year) ? 30 : 0;\n }\n\n return 30;\n}\n\n/**\n * The Hebrew calendar is used in Israel and around the world by the Jewish faith.\n * Years include either 12 or 13 months depending on whether it is a leap year.\n * In leap years, an extra month is inserted at month 6.\n */\nexport class HebrewCalendar implements Calendar {\n identifier: CalendarIdentifier = 'hebrew';\n\n fromJulianDay(jd: number): CalendarDate {\n let d = jd - HEBREW_EPOCH;\n let m = (d * DAY_PARTS) / MONTH_PARTS; // Months (approx)\n let year = Math.floor((19 * m + 234) / 235) + 1; // Years (approx)\n let ys = startOfYear(year); // 1st day of year\n let dayOfYear = Math.floor(d - ys);\n\n // Because of the postponement rules, it's possible to guess wrong. Fix it.\n while (dayOfYear < 1) {\n year--;\n ys = startOfYear(year);\n dayOfYear = Math.floor(d - ys);\n }\n\n // Now figure out which month we're in, and the date within that month\n let month = 1;\n let monthStart = 0;\n while (monthStart < dayOfYear) {\n monthStart += getDaysInMonth(year, month);\n month++;\n }\n\n month--;\n monthStart -= getDaysInMonth(year, month);\n\n let day = dayOfYear - monthStart;\n return new CalendarDate(this, year, month, day);\n }\n\n toJulianDay(date: AnyCalendarDate): number {\n let jd = startOfYear(date.year);\n for (let month = 1; month < date.month; month++) {\n jd += getDaysInMonth(date.year, month);\n }\n\n return jd + date.day + HEBREW_EPOCH;\n }\n\n getDaysInMonth(date: AnyCalendarDate): number {\n return getDaysInMonth(date.year, date.month);\n }\n\n getMonthsInYear(date: AnyCalendarDate): number {\n return isLeapYear(date.year) ? 13 : 12;\n }\n\n getDaysInYear(date: AnyCalendarDate): number {\n return getDaysInYear(date.year);\n }\n\n getMaximumMonthsInYear(): number {\n return 13;\n }\n\n getMaximumDaysInMonth(): number {\n return 30;\n }\n\n getYearsInEra(): number {\n // 6239 gregorian\n return 9999;\n }\n\n getEras(): string[] {\n return ['AM'];\n }\n\n balanceYearMonth(date: Mutable<AnyCalendarDate>, previousDate: AnyCalendarDate): void {\n // Keep date in the same month when switching between leap years and non leap years\n if (previousDate.year !== date.year) {\n if (isLeapYear(previousDate.year) && !isLeapYear(date.year) && previousDate.month > 6) {\n date.month--;\n } else if (!isLeapYear(previousDate.year) && isLeapYear(date.year) && previousDate.month > 6) {\n date.month++;\n }\n }\n }\n}\n", "/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nlet formatterCache = new Map<string, Intl.DateTimeFormat>();\n\ninterface DateRangeFormatPart extends Intl.DateTimeFormatPart {\n source: 'startRange' | 'endRange' | 'shared'\n}\n\n/** A wrapper around Intl.DateTimeFormat that fixes various browser bugs, and polyfills new features. */\nexport class DateFormatter implements Intl.DateTimeFormat {\n private formatter: Intl.DateTimeFormat;\n private options: Intl.DateTimeFormatOptions;\n private resolvedHourCycle: Intl.DateTimeFormatOptions['hourCycle'];\n\n constructor(locale: string, options: Intl.DateTimeFormatOptions = {}) {\n this.formatter = getCachedDateFormatter(locale, options);\n this.options = options;\n }\n\n /** Formats a date as a string according to the locale and format options passed to the constructor. */\n format(value: Date): string {\n return this.formatter.format(value);\n }\n\n /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */\n formatToParts(value: Date): Intl.DateTimeFormatPart[] {\n return this.formatter.formatToParts(value);\n }\n\n /** Formats a date range as a string. */\n formatRange(start: Date, end: Date): string {\n // @ts-ignore\n if (typeof this.formatter.formatRange === 'function') {\n // @ts-ignore\n return this.formatter.formatRange(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n // Very basic fallback for old browsers.\n return `${this.formatter.format(start)} – ${this.formatter.format(end)}`;\n }\n\n /** Formats a date range as an array of parts. */\n formatRangeToParts(start: Date, end: Date): DateRangeFormatPart[] {\n // @ts-ignore\n if (typeof this.formatter.formatRangeToParts === 'function') {\n // @ts-ignore\n return this.formatter.formatRangeToParts(start, end);\n }\n\n if (end < start) {\n throw new RangeError('End date must be >= start date');\n }\n\n let startParts = this.formatter.formatToParts(start);\n let endParts = this.formatter.formatToParts(end);\n return [\n ...startParts.map(p => ({...p, source: 'startRange'} as DateRangeFormatPart)),\n {type: 'literal', value: ' – ', source: 'shared'},\n ...endParts.map(p => ({...p, source: 'endRange'} as DateRangeFormatPart))\n ];\n }\n\n /** Returns the resolved formatting options based on the values passed to the constructor. */\n resolvedOptions(): Intl.ResolvedDateTimeFormatOptions {\n let resolvedOptions = this.formatter.resolvedOptions();\n if (hasBuggyResolvedHourCycle()) {\n if (!this.resolvedHourCycle) {\n this.resolvedHourCycle = getResolvedHourCycle(resolvedOptions.locale, this.options);\n }\n resolvedOptions.hourCycle = this.resolvedHourCycle;\n resolvedOptions.hour12 = this.resolvedHourCycle === 'h11' || this.resolvedHourCycle === 'h12';\n }\n\n // Safari uses a different name for the Ethiopic (Amete Alem) calendar.\n // https://bugs.webkit.org/show_bug.cgi?id=241564\n if (resolvedOptions.calendar === 'ethiopic-amete-alem') {\n resolvedOptions.calendar = 'ethioaa';\n }\n\n return resolvedOptions;\n }\n}\n\n// There are multiple bugs involving the hour12 and hourCycle options in various browser engines.\n// - Chrome [1] (and the ECMA 402 spec [2]) resolve hour12: false in English and other locales to h24 (24:00 - 23:59)\n// rather than h23 (00:00 - 23:59). Same can happen with hour12: true in French, which Chrome resolves to h11 (00:00 - 11:59)\n// rather than h12 (12:00 - 11:59).\n// - WebKit returns an incorrect hourCycle resolved option in the French locale due to incorrect parsing of 'h' literal\n// in the resolved pattern. It also formats incorrectly when specifying the hourCycle option for the same reason. [3]\n// [1] https://bugs.chromium.org/p/chromium/issues/detail?id=1045791\n// [2] https://github.com/tc39/ecma402/issues/402\n// [3] https://bugs.webkit.org/show_bug.cgi?id=229313\n\n// https://github.com/unicode-org/cldr/blob/018b55eff7ceb389c7e3fc44e2f657eae3b10b38/common/supplemental/supplementalData.xml#L4774-L4802\nconst hour12Preferences = {\n true: {\n // Only Japanese uses the h11 style for 12 hour time. All others use h12.\n ja: 'h11'\n },\n false: {\n // All locales use h23 for 24 hour time. None use h24.\n }\n};\n\nfunction getCachedDateFormatter(locale: string, options: Intl.DateTimeFormatOptions = {}): Intl.DateTimeFormat {\n // Work around buggy hour12 behavior in Chrome / ECMA 402 spec by using hourCycle instead.\n // Only apply the workaround if the issue is detected, because the hourCycle option is buggy in Safari.\n if (typeof options.hour12 === 'boolean' && hasBuggyHour12Behavior()) {\n options = {...options};\n let pref = hour12Preferences[String(options.hour12)][locale.split('-')[0]];\n let defaultHourCycle = options.hour12 ? 'h12' : 'h23';\n options.hourCycle = pref ?? defaultHourCycle;\n delete options.hour12;\n }\n\n let cacheKey = locale + (options ? Object.entries(options).sort((a, b) => a[0] < b[0] ? -1 : 1).join() : '');\n if (formatterCache.has(cacheKey)) {\n return formatterCache.get(cacheKey)!;\n }\n\n let numberFormatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(cacheKey, numberFormatter);\n return numberFormatter;\n}\n\nlet _hasBuggyHour12Behavior: boolean | null = null;\nfunction hasBuggyHour12Behavior() {\n if (_hasBuggyHour12Behavior == null) {\n _hasBuggyHour12Behavior = new Intl.DateTimeFormat('en-US', {\n hour: 'numeric',\n hour12: false\n }).format(new Date(2020, 2, 3, 0)) === '24';\n }\n\n return _hasBuggyHour12Behavior;\n}\n\nlet _hasBuggyResolvedHourCycle: boolean | null = null;\nfunction hasBuggyResolvedHourCycle() {\n if (_hasBuggyResolvedHourCycle == null) {\n _hasBuggyResolvedHourCycle = new Intl.DateTimeFormat('fr', {\n hour: 'numeric',\n hour12: false\n }).resolvedOptions().hourCycle === 'h12';\n }\n\n return _hasBuggyResolvedHourCycle;\n}\n\nfunction getResolvedHourCycle(locale: string, options: Intl.DateTimeFormatOptions) {\n if (!options.timeStyle && !options.hour) {\n return undefined;\n }\n\n // Work around buggy results in resolved hourCycle and hour12 options in WebKit.\n // Format the minimum possible hour and maximum possible hour in a day and parse the results.\n locale = locale.replace(/(-u-)?-nu-[a-zA-Z0-9]+/, '');\n locale += (locale.includes('-u-') ? '' : '-u') + '-nu-latn';\n let formatter = getCachedDateFormatter(locale, {\n ...options,\n timeZone: undefined // use local timezone\n });\n\n let min = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 0)).find(p => p.type === 'hour')!.value, 10);\n let max = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 23)).find(p => p.type === 'hour')!.value, 10);\n\n if (min === 0 && max === 23) {\n return 'h23';\n }\n\n if (min === 24 && max === 23) {\n return 'h24';\n }\n\n if (min === 0 && max === 11) {\n return 'h11';\n }\n\n if (min === 12 && max === 11) {\n return 'h12';\n }\n\n throw new Error('Unexpected hour cycle result');\n}\n", "import { srOnlyStylesString } from \"svelte-toolbelt\";\nimport { isBrowser, isHTMLElement } from \"../is.js\";\n/**\n * Creates or gets an announcer element which is used to announce messages to screen readers.\n * Within the date components, we use this to announce when the values of the individual segments\n * change, as without it we get inconsistent behavior across screen readers.\n */\nfunction initAnnouncer(doc) {\n if (!isBrowser || !doc)\n return null;\n let el = doc.querySelector(\"[data-bits-announcer]\");\n /**\n * Creates a log element for assertive or polite announcements.\n */\n const createLog = (kind) => {\n const log = doc.createElement(\"div\");\n log.role = \"log\";\n log.ariaLive = kind;\n log.setAttribute(\"aria-relevant\", \"additions\");\n return log;\n };\n if (!isHTMLElement(el)) {\n const div = doc.createElement(\"div\");\n div.style.cssText = srOnlyStylesString;\n div.setAttribute(\"data-bits-announcer\", \"\");\n div.appendChild(createLog(\"assertive\"));\n div.appendChild(createLog(\"polite\"));\n el = div;\n doc.body.insertBefore(el, doc.body.firstChild);\n }\n /**\n * Retrieves the log element for assertive or polite announcements.\n */\n const getLog = (kind) => {\n if (!isHTMLElement(el))\n return null;\n const log = el.querySelector(`[aria-live=\"${kind}\"]`);\n if (!isHTMLElement(log))\n return null;\n return log;\n };\n return {\n getLog,\n };\n}\n/**\n * Creates an announcer object that can be used to make `aria-live` announcements to screen readers.\n */\nexport function getAnnouncer(doc) {\n const announcer = initAnnouncer(doc);\n /**\n * Announces a message to screen readers using the specified kind of announcement.\n */\n function announce(value, kind = \"assertive\", timeout = 7500) {\n if (!announcer || !isBrowser || !doc)\n return;\n const log = announcer.getLog(kind);\n const content = doc.createElement(\"div\");\n if (typeof value === \"number\") {\n value = value.toString();\n }\n else if (value === null) {\n value = \"Empty\";\n }\n else {\n value = value.trim();\n }\n content.innerText = value;\n if (kind === \"assertive\") {\n log?.replaceChildren(content);\n }\n else {\n log?.appendChild(content);\n }\n return setTimeout(() => {\n content.remove();\n }, timeout);\n }\n return {\n announce,\n };\n}\n", "import { CalendarDate, CalendarDateTime, Time, ZonedDateTime, getDayOfWeek, getLocalTimeZone, parseDate, parseDateTime, parseZonedDateTime, toCalendar, } from \"@internationalized/date\";\nconst defaultDateDefaults = {\n defaultValue: undefined,\n granularity: \"day\",\n};\nconst defaultTimeDefaults = {\n defaultValue: undefined,\n granularity: \"minute\",\n};\n/**\n * A helper function used throughout the various date builders\n * to generate a default `DateValue` using the `defaultValue`,\n * `defaultPlaceholder`, `minValue`, `maxValue`, and `granularity` props.\n *\n * It's important to match the `DateValue` type being used\n * elsewhere in the builder, so they behave according to the\n * behavior the user expects based on the props they've provided.\n *\n */\nexport function getDefaultDate(opts) {\n const withDefaults = { ...defaultDateDefaults, ...opts };\n const { defaultValue, granularity, minValue, maxValue } = withDefaults;\n if (Array.isArray(defaultValue) && defaultValue.length) {\n return defaultValue[defaultValue.length - 1];\n }\n if (defaultValue && !Array.isArray(defaultValue)) {\n return defaultValue;\n }\n else {\n let date = new Date();\n if (minValue && date < minValue.toDate(getLocalTimeZone())) {\n date = minValue.toDate(getLocalTimeZone());\n }\n else if (maxValue && date > maxValue.toDate(getLocalTimeZone())) {\n date = maxValue.toDate(getLocalTimeZone());\n }\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const calendarDateTimeGranularities = [\"hour\", \"minute\", \"second\"];\n if (calendarDateTimeGranularities.includes(granularity ?? \"day\")) {\n return new CalendarDateTime(year, month, day, 0, 0, 0);\n }\n return new CalendarDate(year, month, day);\n }\n}\nexport function getDefaultTime(opts) {\n const withDefaults = { ...defaultTimeDefaults, ...opts };\n const { defaultValue } = withDefaults;\n if (defaultValue) {\n return defaultValue;\n }\n else {\n return new Time(0, 0, 0);\n }\n}\n/**\n * Given a date string and a reference `DateValue` object, parse the\n * string to the same type as the reference object.\n *\n * Useful for parsing strings from data attributes, which are always\n * strings, to the same type being used by the date component.\n */\nexport function parseStringToDateValue(dateStr, referenceVal) {\n let dateValue;\n if (referenceVal instanceof ZonedDateTime) {\n dateValue = parseZonedDateTime(dateStr);\n }\n else if (referenceVal instanceof CalendarDateTime) {\n dateValue = parseDateTime(dateStr);\n }\n else {\n dateValue = parseDate(dateStr);\n }\n // ensure the parsed date is in the same calendar as the reference date set by the user.\n return dateValue.calendar !== referenceVal.calendar\n ? toCalendar(dateValue, referenceVal.calendar)\n : dateValue;\n}\n/**\n * Given a `DateValue` object, convert it to a native `Date` object.\n * If a timezone is provided, the date will be converted to that timezone.\n * If no timezone is provided, the date will be converted to the local timezone.\n */\nexport function toDate(dateValue, tz = getLocalTimeZone()) {\n if (dateValue instanceof ZonedDateTime) {\n return dateValue.toDate();\n }\n else {\n return dateValue.toDate(tz);\n }\n}\nexport function getDateValueType(date) {\n if (date instanceof CalendarDate)\n return \"date\";\n if (date instanceof CalendarDateTime)\n return \"datetime\";\n if (date instanceof ZonedDateTime)\n return \"zoneddatetime\";\n throw new Error(\"Unknown date type\");\n}\nexport function parseAnyDateValue(value, type) {\n switch (type) {\n case \"date\":\n return parseDate(value);\n case \"datetime\":\n return parseDateTime(value);\n case \"zoneddatetime\":\n return parseZonedDateTime(value);\n default:\n throw new Error(`Unknown date type: ${type}`);\n }\n}\nfunction isCalendarDateTime(dateValue) {\n return dateValue instanceof CalendarDateTime;\n}\nexport function isZonedDateTime(dateValue) {\n return dateValue instanceof ZonedDateTime;\n}\nexport function hasTime(dateValue) {\n return isCalendarDateTime(dateValue) || isZonedDateTime(dateValue);\n}\n/**\n * Given a date, return the number of days in the month.\n */\nexport function getDaysInMonth(date) {\n if (date instanceof Date) {\n const year = date.getFullYear();\n const month = date.getMonth() + 1;\n /**\n * By using zero as the day, we get the\n * last day of the previous month, which\n * is the month we originally passed in.\n */\n return new Date(year, month, 0).getDate();\n }\n else {\n return date.set({ day: 100 }).day;\n }\n}\n/**\n * Determine if a date is before the reference date.\n * @param dateToCompare - is this date before the `referenceDate`\n * @param referenceDate - is the `dateToCompare` before this date\n *\n * @see {@link isBeforeOrSame} for inclusive\n */\nexport function isBefore(dateToCompare, referenceDate) {\n return dateToCompare.compare(referenceDate) < 0;\n}\n/**\n * Determine if a date is after the reference date.\n * @param dateToCompare - is this date after the `referenceDate`\n * @param referenceDate - is the `dateToCompare` after this date\n *\n * @see {@link isAfterOrSame} for inclusive\n */\nexport function isAfter(dateToCompare, referenceDate) {\n return dateToCompare.compare(referenceDate) > 0;\n}\n/**\n * Determine if a date is before or the same as the reference date.\n *\n * @param dateToCompare - the date to compare\n * @param referenceDate - the reference date to make the comparison against\n *\n * @see {@link isBefore} for non-inclusive\n */\nfunction isBeforeOrSame(dateToCompare, referenceDate) {\n return dateToCompare.compare(referenceDate) <= 0;\n}\n/**\n * Determine if a date is after or the same as the reference date.\n *\n * @param dateToCompare - is this date after or the same as the `referenceDate`\n * @param referenceDate - is the `dateToCompare` after or the same as this date\n *\n * @see {@link isAfter} for non-inclusive\n */\nfunction isAfterOrSame(dateToCompare, referenceDate) {\n return dateToCompare.compare(referenceDate) >= 0;\n}\n/**\n * Determine if a date is inclusively between a start and end reference date.\n *\n * @param date - is this date inclusively between the `start` and `end` dates\n * @param start - the start reference date to make the comparison against\n * @param end - the end reference date to make the comparison against\n *\n * @see {@link isBetween} for non-inclusive\n */\nexport function isBetweenInclusive(date, start, end) {\n return isAfterOrSame(date, start) && isBeforeOrSame(date, end);\n}\nexport function getLastFirstDayOfWeek(date, firstDayOfWeek, locale) {\n const day = getDayOfWeek(date, locale);\n if (firstDayOfWeek > day) {\n return date.subtract({ days: day + 7 - firstDayOfWeek });\n }\n if (firstDayOfWeek === day) {\n return date;\n }\n return date.subtract({ days: day - firstDayOfWeek });\n}\nexport function getNextLastDayOfWeek(date, firstDayOfWeek, locale) {\n const day = getDayOfWeek(date, locale);\n const lastDayOfWeek = firstDayOfWeek === 0 ? 6 : firstDayOfWeek - 1;\n if (day === lastDayOfWeek) {\n return date;\n }\n if (day > lastDayOfWeek) {\n return date.add({ days: 7 - day + lastDayOfWeek });\n }\n return date.add({ days: lastDayOfWeek - day });\n}\nexport function areAllDaysBetweenValid(start, end, isUnavailable, isDisabled) {\n if (isUnavailable === undefined && isDisabled === undefined) {\n return true;\n }\n let dCurrent = start.add({ days: 1 });\n if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent)) {\n return false;\n }\n const dEnd = end;\n while (dCurrent.compare(dEnd) < 0) {\n dCurrent = dCurrent.add({ days: 1 });\n if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent)) {\n return false;\n }\n }\n return true;\n}\n", "export const DATE_SEGMENT_PARTS = [\"day\", \"month\", \"year\"];\nexport const EDITABLE_TIME_SEGMENT_PARTS = [\"hour\", \"minute\", \"second\", \"dayPeriod\"];\nexport const NON_EDITABLE_SEGMENT_PARTS = [\"literal\", \"timeZoneName\"];\nexport const EDITABLE_SEGMENT_PARTS = [\n ...DATE_SEGMENT_PARTS,\n ...EDITABLE_TIME_SEGMENT_PARTS,\n];\nexport const ALL_SEGMENT_PARTS = [\n ...EDITABLE_SEGMENT_PARTS,\n ...NON_EDITABLE_SEGMENT_PARTS,\n];\nexport const ALL_TIME_SEGMENT_PARTS = [\n ...EDITABLE_TIME_SEGMENT_PARTS,\n ...NON_EDITABLE_SEGMENT_PARTS,\n];\nexport const ALL_EXCEPT_LITERAL_PARTS = ALL_SEGMENT_PARTS.filter((part) => part !== \"literal\");\nexport const ALL_TIME_EXCEPT_LITERAL_PARTS = ALL_TIME_SEGMENT_PARTS.filter((part) => part !== \"literal\");\n", "// prettier-ignore\nconst supportedLocales = [\n 'ach', 'af', 'am', 'an', 'ar', 'ast', 'az', 'be', 'bg', 'bn', 'br', 'bs',\n 'ca', 'cak', 'ckb', 'cs', 'cy', 'da', 'de', 'dsb', 'el', 'en', 'eo', 'es',\n 'et', 'eu', 'fa', 'ff', 'fi', 'fr', 'fy', 'ga', 'gd', 'gl', 'he', 'hr',\n 'hsb', 'hu', 'ia', 'id', 'it', 'ja', 'ka', 'kk', 'kn', 'ko', 'lb', 'lo',\n 'lt', 'lv', 'meh', 'ml', 'ms', 'nl', 'nn', 'no', 'oc', 'pl', 'pt', 'rm',\n 'ro', 'ru', 'sc', 'scn', 'sk', 'sl', 'sr', 'sv', 'szl', 'tg', 'th', 'tr',\n 'uk', 'zh-CN', 'zh-TW',\n];\nconst placeholderFields = [\"year\", \"month\", \"day\"];\nconst placeholders = {\n ach: { year: \"mwaka\", month: \"dwe\", day: \"nino\" },\n af: { year: \"jjjj\", month: \"mm\", day: \"dd\" },\n am: { year: \"ዓዓዓዓ\", month: \"ሚሜ\", day: \"ቀቀ\" },\n an: { year: \"aaaa\", month: \"mm\", day: \"dd\" },\n ar: { year: \"سنة\", month: \"شهر\", day: \"يوم\" },\n ast: { year: \"aaaa\", month: \"mm\", day: \"dd\" },\n az: { year: \"iiii\", month: \"aa\", day: \"gg\" },\n be: { year: \"гггг\", month: \"мм\", day: \"дд\" },\n bg: { year: \"гггг\", month: \"мм\", day: \"дд\" },\n bn: { year: \"yyyy\", month: \"মিমি\", day: \"dd\" },\n br: { year: \"bbbb\", month: \"mm\", day: \"dd\" },\n bs: { year: \"gggg\", month: \"mm\", day: \"dd\" },\n ca: { year: \"aaaa\", month: \"mm\", day: \"dd\" },\n cak: { year: \"jjjj\", month: \"ii\", day: \"q'q'\" },\n ckb: { year: \"ساڵ\", month: \"مانگ\", day: \"ڕۆژ\" },\n cs: { year: \"rrrr\", month: \"mm\", day: \"dd\" },\n cy: { year: \"bbbb\", month: \"mm\", day: \"dd\" },\n da: { year: \"åååå\", month: \"mm\", day: \"dd\" },\n de: { year: \"jjjj\", month: \"mm\", day: \"tt\" },\n dsb: { year: \"llll\", month: \"mm\", day: \"źź\" },\n el: { year: \"εεεε\", month: \"μμ\", day: \"ηη\" },\n en: { year: \"yyyy\", month: \"mm\", day: \"dd\" },\n eo: { year: \"jjjj\", month: \"mm\", day: \"tt\" },\n es: { year: \"aaaa\", month: \"mm\", day: \"dd\" },\n et: { year: \"aaaa\", month: \"kk\", day: \"pp\" },\n eu: { year: \"uuuu\", month: \"hh\", day: \"ee\" },\n fa: { year: \"سال\", month: \"ماه\", day: \"روز\" },\n ff: { year: \"hhhh\", month: \"ll\", day: \"ññ\" },\n fi: { year: \"vvvv\", month: \"kk\", day: \"pp\" },\n fr: { year: \"aaaa\", month: \"mm\", day: \"jj\" },\n fy: { year: \"jjjj\", month: \"mm\", day: \"dd\" },\n ga: { year: \"bbbb\", month: \"mm\", day: \"ll\" },\n gd: { year: \"bbbb\", month: \"mm\", day: \"ll\" },\n gl: { year: \"aaaa\", month: \"mm\", day: \"dd\" },\n he: { year: \"שנה\", month: \"חודש\", day: \"יום\" },\n hr: { year: \"gggg\", month: \"mm\", day: \"dd\" },\n hsb: { year: \"llll\", month: \"mm\", day: \"dd\" },\n hu: { year: \"éééé\", month: \"hh\", day: \"nn\" },\n ia: { year: \"aaaa\", month: \"mm\", day: \"dd\" },\n id: { year: \"tttt\", month: \"bb\", day: \"hh\" },\n it: { year: \"aaaa\", month: \"mm\", day: \"gg\" },\n ja: { year: \" 年 \", month: \"月\", day: \"日\" },\n ka: { year: \"წწწწ\", month: \"თთ\", day: \"რრ\" },\n kk: { year: \"жжжж\", month: \"аа\", day: \"кк\" },\n kn: { year: \"ವವವವ\", month: \"ಮಿಮೀ\", day: \"ದಿದಿ\" },\n ko: { year: \"연도\", month: \"월\", day: \"일\" },\n lb: { year: \"jjjj\", month: \"mm\", day: \"dd\" },\n lo: { year: \"ປປປປ\", month: \"ດດ\", day: \"ວວ\" },\n lt: { year: \"mmmm\", month: \"mm\", day: \"dd\" },\n lv: { year: \"gggg\", month: \"mm\", day: \"dd\" },\n meh: { year: \"aaaa\", month: \"mm\", day: \"dd\" },\n ml: { year: \"വർഷം\", month: \"മാസം\", day: \"തീയതി\" },\n ms: { year: \"tttt\", month: \"mm\", day: \"hh\" },\n nl: { year: \"jjjj\", month: \"mm\", day: \"dd\" },\n nn: { year: \"åååå\", month: \"mm\", day: \"dd\" },\n no: { year: \"åååå\", month: \"mm\", day: \"dd\" },\n oc: { year: \"aaaa\", month: \"mm\", day: \"jj\" },\n pl: { year: \"rrrr\", month: \"mm\", day: \"dd\" },\n pt: { year: \"aaaa\", month: \"mm\", day: \"dd\" },\n rm: { year: \"oooo\", month: \"mm\", day: \"dd\" },\n ro: { year: \"aaaa\", month: \"ll\", day: \"zz\" },\n ru: { year: \"гггг\", month: \"мм\", day: \"дд\" },\n sc: { year: \"aaaa\", month: \"mm\", day: \"dd\" },\n scn: { year: \"aaaa\", month: \"mm\", day: \"jj\" },\n sk: { year: \"rrrr\", month: \"mm\", day: \"dd\" },\n sl: { year: \"llll\", month: \"mm\", day: \"dd\" },\n sr: { year: \"гггг\", month: \"мм\", day: \"дд\" },\n sv: { year: \"åååå\", month: \"mm\", day: \"dd\" },\n szl: { year: \"rrrr\", month: \"mm\", day: \"dd\" },\n tg: { year: \"сссс\", month: \"мм\", day: \"рр\" },\n th: { year: \"ปปปป\", month: \"ดด\", day: \"วว\" },\n tr: { year: \"yyyy\", month: \"aa\", day: \"gg\" },\n uk: { year: \"рррр\", month: \"мм\", day: \"дд\" },\n \"zh-CN\": { year: \"年\", month: \"月\", day: \"日\" },\n \"zh-TW\": { year: \"年\", month: \"月\", day: \"日\" },\n};\nfunction getPlaceholderObj(locale) {\n if (!isSupportedLocale(locale)) {\n const localeLanguage = getLocaleLanguage(locale);\n if (!isSupportedLocale(localeLanguage)) {\n return placeholders.en;\n }\n else {\n return placeholders[localeLanguage];\n }\n }\n else {\n return placeholders[locale];\n }\n}\nexport function getPlaceholder(field, value, locale) {\n if (isPlaceholderField(field))\n return getPlaceholderObj(locale)[field];\n if (isDefaultField(field))\n return value;\n if (isTimeField(field))\n return \"––\";\n return \"\";\n}\nfunction isSupportedLocale(locale) {\n return supportedLocales.includes(locale);\n}\nfunction isPlaceholderField(field) {\n return placeholderFields.includes(field);\n}\nfunction isTimeField(field) {\n return field === \"hour\" || field === \"minute\" || field === \"second\";\n}\nfunction isDefaultField(field) {\n return field === \"era\" || field === \"dayPeriod\";\n}\nfunction getLocaleLanguage(locale) {\n if (Intl.Locale) {\n return new Intl.Locale(locale).language;\n }\n return locale.split(\"-\")[0];\n}\n", "import { styleToString } from \"svelte-toolbelt\";\nimport { getPlaceholder } from \"../placeholders.js\";\nimport { hasTime, isZonedDateTime } from \"../utils.js\";\nimport { ALL_SEGMENT_PARTS, DATE_SEGMENT_PARTS, EDITABLE_SEGMENT_PARTS, EDITABLE_TIME_SEGMENT_PARTS, } from \"./parts.js\";\nimport { getSegments } from \"./segments.js\";\nimport { isBrowser, isNull, isNumberString } from \"../../is.js\";\nimport { useId } from \"../../use-id.js\";\nimport { kbd } from \"../../kbd.js\";\nexport function initializeSegmentValues(granularity) {\n const calendarDateTimeGranularities = [\"hour\", \"minute\", \"second\"];\n const initialParts = EDITABLE_SEGMENT_PARTS.map((part) => {\n if (part === \"dayPeriod\") {\n return [part, \"AM\"];\n }\n return [part, null];\n }).filter(([key]) => {\n if (key === \"literal\" || key === null)\n return false;\n if (granularity === \"day\") {\n return !calendarDateTimeGranularities.includes(key);\n }\n else {\n return true;\n }\n });\n return Object.fromEntries(initialParts);\n}\nfunction createContentObj(props) {\n const { segmentValues, formatter, locale, dateRef } = props;\n const content = Object.keys(segmentValues).reduce((obj, part) => {\n if (!isSegmentPart(part))\n return obj;\n if (\"hour\" in segmentValues && part === \"dayPeriod\") {\n const value = segmentValues[part];\n if (!isNull(value)) {\n obj[part] = value;\n }\n else {\n obj[part] = getPlaceholder(part, \"AM\", locale);\n }\n }\n else {\n obj[part] = getPartContent(part);\n }\n return obj;\n }, {});\n function getPartContent(part) {\n if (\"hour\" in segmentValues) {\n const value = segmentValues[part];\n const leadingZero = typeof value === \"string\" && value?.startsWith(\"0\");\n const intValue = value !== null ? Number.parseInt(value) : null;\n if (value === \"0\" && part !== \"year\") {\n return \"0\";\n }\n else if (!isNull(value) && !isNull(intValue)) {\n const formatted = formatter.part(dateRef.set({ [part]: value }), part, {\n hourCycle: props.hourCycle === 24 ? \"h23\" : undefined,\n });\n /**\n * If we're operating in a 12 hour clock and the part is an hour, we handle\n * the conversion to 12 hour format with 2 digit hours and leading zeros here.\n */\n const is12HourMode = props.hourCycle === 12 ||\n (props.hourCycle === undefined && getDefaultHourCycle(locale) === 12);\n if (part === \"hour\" && is12HourMode) {\n /**\n * If the value is over 12, we convert to 12 hour format and add leading\n * zeroes if the value is less than 10.\n */\n if (intValue > 12) {\n const hour = intValue - 12;\n if (hour === 0) {\n return \"12\";\n }\n else if (hour < 10) {\n return `0${hour}`;\n }\n else {\n return `${hour}`;\n }\n }\n /**\n * If the value is 0, we convert to 12, since 0 is not a valid 12 hour time.\n */\n if (intValue === 0) {\n return \"12\";\n }\n /**\n * If the value is less than 10, we add a leading zero to the value.\n */\n if (intValue < 10) {\n return `0${intValue}`;\n }\n /**\n * Otherwise, we don't need to do anything to the value.\n */\n return `${intValue}`;\n }\n if (part === \"year\") {\n return `${value}`;\n }\n if (leadingZero && formatted.length === 1) {\n return `0${formatted}`;\n }\n return formatted;\n }\n else {\n return getPlaceholder(part, \"\", locale);\n }\n }\n else {\n if (isDateSegmentPart(part)) {\n const value = segmentValues[part];\n const leadingZero = typeof value === \"string\" && value?.startsWith(\"0\");\n if (value === \"0\") {\n return \"0\";\n }\n else if (!isNull(value)) {\n const formatted = formatter.part(dateRef.set({ [part]: value }), part);\n if (part === \"year\") {\n return `${value}`;\n }\n if (leadingZero && formatted.length === 1) {\n return `0${formatted}`;\n }\n return formatted;\n }\n else {\n return getPlaceholder(part, \"\", locale);\n }\n }\n return \"\";\n }\n }\n return content;\n}\nfunction createContentArr(props) {\n const { granularity, dateRef, formatter, contentObj, hideTimeZone, hourCycle } = props;\n const parts = formatter.toParts(dateRef, getOptsByGranularity(granularity, hourCycle));\n const segmentContentArr = parts\n .map((part) => {\n const defaultParts = [\"literal\", \"dayPeriod\", \"timeZoneName\", null];\n if (defaultParts.includes(part.type) || !isSegmentPart(part.type)) {\n return {\n part: part.type,\n value: part.value,\n };\n }\n return {\n part: part.type,\n value: contentObj[part.type],\n };\n })\n .filter((segment) => {\n if (isNull(segment.part) || isNull(segment.value))\n return false;\n if (segment.part === \"timeZoneName\" && (!isZonedDateTime(dateRef) || hideTimeZone)) {\n return false;\n }\n return true;\n });\n return segmentContentArr;\n}\nexport function createContent(props) {\n const contentObj = createContentObj(props);\n const contentArr = createContentArr({\n contentObj,\n ...props,\n });\n return {\n obj: contentObj,\n arr: contentArr,\n };\n}\nfunction getOptsByGranularity(granularity, hourCycle) {\n const opts = {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n timeZoneName: \"short\",\n hourCycle: hourCycle === 24 ? \"h23\" : undefined,\n hour12: hourCycle === 24 ? false : undefined,\n };\n if (granularity === \"day\") {\n delete opts.second;\n delete opts.hour;\n delete opts.minute;\n delete opts.timeZoneName;\n }\n if (granularity === \"hour\") {\n delete opts.minute;\n }\n if (granularity === \"minute\") {\n delete opts.second;\n }\n return opts;\n}\nexport function initSegmentStates() {\n return EDITABLE_SEGMENT_PARTS.reduce((acc, key) => {\n acc[key] = {\n lastKeyZero: false,\n hasLeftFocus: true,\n updating: null,\n };\n return acc;\n }, {});\n}\nexport function initSegmentIds() {\n return Object.fromEntries(ALL_SEGMENT_PARTS.map((part) => {\n return [part, useId()];\n }).filter(([key]) => key !== \"literal\"));\n}\nexport function isDateSegmentPart(part) {\n return DATE_SEGMENT_PARTS.includes(part);\n}\nexport function isSegmentPart(part) {\n return EDITABLE_SEGMENT_PARTS.includes(part);\n}\nexport function isAnySegmentPart(part) {\n return ALL_SEGMENT_PARTS.includes(part);\n}\n/**\n * Get the segments being used/ are rendered in the DOM.\n * We're using this to determine when to set the value of\n * the date picker, which is when all the segments have\n * been filled.\n */\nfunction getUsedSegments(fieldNode) {\n if (!isBrowser || !fieldNode)\n return [];\n const usedSegments = getSegments(fieldNode)\n .map((el) => el.dataset.segment)\n .filter((part) => {\n return EDITABLE_SEGMENT_PARTS.includes(part);\n });\n return usedSegments;\n}\nexport function getValueFromSegments(props) {\n const { segmentObj, fieldNode, dateRef } = props;\n const usedSegments = getUsedSegments(fieldNode);\n let date = dateRef;\n for (const part of usedSegments) {\n if (\"hour\" in segmentObj) {\n const value = segmentObj[part];\n if (isNull(value))\n continue;\n date = date.set({ [part]: segmentObj[part] });\n }\n else if (isDateSegmentPart(part)) {\n const value = segmentObj[part];\n if (isNull(value))\n continue;\n date = date.set({ [part]: segmentObj[part] });\n }\n }\n return date;\n}\n/**\n * Check if all the segments being used have been filled.\n * We use this to determine when we should set the value\n * store of the date field(s).\n *\n * @param segmentValues - The current `SegmentValueObj`\n * @param fieldNode - The id of the date field\n */\nexport function areAllSegmentsFilled(segmentValues, fieldNode) {\n const usedSegments = getUsedSegments(fieldNode);\n for (const part of usedSegments) {\n if (\"hour\" in segmentValues) {\n if (segmentValues[part] === null) {\n return false;\n }\n }\n else if (isDateSegmentPart(part)) {\n if (segmentValues[part] === null) {\n return false;\n }\n }\n }\n return true;\n}\n/**\n * Determines if the provided object is a valid `DateAndTimeSegmentObj`\n * by checking if it has the correct keys and values for each key.\n */\nexport function isDateAndTimeSegmentObj(obj) {\n if (typeof obj !== \"object\" || obj === null) {\n return false;\n }\n return Object.entries(obj).every(([key, value]) => {\n const validKey = EDITABLE_TIME_SEGMENT_PARTS.includes(key) ||\n DATE_SEGMENT_PARTS.includes(key);\n const validValue = key === \"dayPeriod\"\n ? value === \"AM\" || value === \"PM\" || value === null\n : typeof value === \"string\" || typeof value === \"number\" || value === null;\n return validKey && validValue;\n });\n}\n/**\n * Infer the granularity to use based on the\n * value and granularity props.\n */\nexport function inferGranularity(value, granularity) {\n if (granularity)\n return granularity;\n if (hasTime(value))\n return \"minute\";\n return \"day\";\n}\nexport function isAcceptableSegmentKey(key) {\n const acceptableSegmentKeys = [\n kbd.ENTER,\n kbd.ARROW_UP,\n kbd.ARROW_DOWN,\n kbd.ARROW_LEFT,\n kbd.ARROW_RIGHT,\n kbd.BACKSPACE,\n kbd.SPACE,\n ];\n if (acceptableSegmentKeys.includes(key))\n return true;\n if (isNumberString(key))\n return true;\n return false;\n}\n/**\n * Determines if the element with the provided id is the first focusable\n * segment in the date field with the provided fieldId.\n *\n * @param id - The id of the element to check if it's the first segment\n * @param fieldNode - The id of the date field associated with the segment\n */\nexport function isFirstSegment(id, fieldNode) {\n if (!isBrowser)\n return false;\n const segments = getSegments(fieldNode);\n return segments.length ? segments[0].id === id : false;\n}\n/**\n * Creates or updates a description element for a date field\n * which enables screen readers to read the date field's value.\n *\n * This element is hidden from view, and is portalled to the body\n * so it can be associated via `aria-describedby` and read by\n * screen readers as the user interacts with the date field.\n */\nexport function setDescription(props) {\n const { id, formatter, value, doc } = props;\n if (!isBrowser)\n return;\n const valueString = formatter.selectedDate(value);\n const el = doc.getElementById(id);\n if (!el) {\n const div = doc.createElement(\"div\");\n div.style.cssText = styleToString({\n display: \"none\",\n });\n div.id = id;\n div.innerText = `Selected Date: ${valueString}`;\n doc.body.appendChild(div);\n }\n else {\n el.innerText = `Selected Date: ${valueString}`;\n }\n}\n/**\n * Removes the description element for the date field with\n * the provided ID. This function should be called when the\n * date field is unmounted.\n */\nexport function removeDescriptionElement(id, doc) {\n if (!isBrowser)\n return;\n const el = doc.getElementById(id);\n if (!el)\n return;\n doc.body.removeChild(el);\n}\nexport function getDefaultHourCycle(locale) {\n const formatter = new Intl.DateTimeFormat(locale, { hour: \"numeric\" });\n const parts = formatter.formatToParts(new Date(\"2023-01-01T13:00:00\"));\n const hourPart = parts.find((part) => part.type === \"hour\");\n return hourPart?.value === \"1\" ? 12 : 24;\n}\n", "import { isAnySegmentPart } from \"./helpers.js\";\nimport { isHTMLElement } from \"../../is.js\";\nimport { kbd } from \"../../kbd.js\";\n/**\n * Handles segment navigation based on the provided keyboard event and field ID.\n *\n * @param e - The keyboard event\n * @param fieldNode - The ID of the field we're navigating within\n */\nexport function handleSegmentNavigation(e, fieldNode) {\n const currentTarget = e.currentTarget;\n if (!isHTMLElement(currentTarget))\n return;\n const { prev, next } = getPrevNextSegments(currentTarget, fieldNode);\n if (e.key === kbd.ARROW_LEFT) {\n if (!prev)\n return;\n prev.focus();\n }\n else if (e.key === kbd.ARROW_RIGHT) {\n if (!next)\n return;\n next.focus();\n }\n}\nexport function handleTimeSegmentNavigation(e, fieldNode) {\n const currentTarget = e.currentTarget;\n if (!isHTMLElement(currentTarget))\n return;\n const { prev, next } = getPrevNextTimeSegments(currentTarget, fieldNode);\n if (e.key === kbd.ARROW_LEFT) {\n if (!prev)\n return;\n prev.focus();\n }\n else if (e.key === kbd.ARROW_RIGHT) {\n if (!next)\n return;\n next.focus();\n }\n}\n/**\n * Retrieves the next segment in the list of segments relative to the provided node.\n *\n * @param node - The node we're starting from\n * @param segments - The list of candidate segments to navigate through\n */\nexport function getNextSegment(node, segments) {\n const index = segments.indexOf(node);\n if (index === segments.length - 1 || index === -1)\n return null;\n const nextIndex = index + 1;\n const nextSegment = segments[nextIndex];\n return nextSegment;\n}\n/**\n * Retrieves the previous segment in the list of segments relative to the provided node.\n *\n * @param node - The node we're starting from\n * @param segments - The list of candidate segments to navigate through\n */\nexport function getPrevSegment(node, segments) {\n const index = segments.indexOf(node);\n if (index === 0 || index === -1)\n return null;\n const prevIndex = index - 1;\n const prevSegment = segments[prevIndex];\n return prevSegment;\n}\n/**\n * Retrieves an object containing the next and previous segments relative to the current node.\n *\n * @param startingNode - The node we're starting from\n * @param fieldNode - The ID of the field we're navigating within\n */\nexport function getPrevNextSegments(startingNode, fieldNode) {\n const segments = getSegments(fieldNode);\n if (!segments.length) {\n return {\n next: null,\n prev: null,\n };\n }\n return {\n next: getNextSegment(startingNode, segments),\n prev: getPrevSegment(startingNode, segments),\n };\n}\nexport function getPrevNextTimeSegments(startingNode, fieldNode) {\n const segments = getTimeSegments(fieldNode);\n if (!segments.length) {\n return {\n next: null,\n prev: null,\n };\n }\n return {\n next: getNextSegment(startingNode, segments),\n prev: getPrevSegment(startingNode, segments),\n };\n}\n/**\n * Shifts the focus to the next segment in the list of segments\n * within the field identified by the provided ID.\n */\nexport function moveToNextSegment(e, fieldNode) {\n const node = e.currentTarget;\n if (!isHTMLElement(node))\n return;\n const { next } = getPrevNextSegments(node, fieldNode);\n if (!next)\n return;\n next.focus();\n}\nexport function moveToNextTimeSegment(e, fieldNode) {\n const node = e.currentTarget;\n if (!isHTMLElement(node))\n return;\n const { next } = getPrevNextTimeSegments(node, fieldNode);\n if (!next)\n return;\n next.focus();\n}\nexport function moveToPrevTimeSegment(e, fieldNode) {\n const node = e.currentTarget;\n if (!isHTMLElement(node))\n return;\n const { prev } = getPrevNextTimeSegments(node, fieldNode);\n if (!prev)\n return;\n prev.focus();\n}\n/**\n * Shifts the focus to the previous segment in the list of segments\n * within the field identified by the provided ID. If this is the first\n * segment, focus will not be shifted.\n */\nexport function moveToPrevSegment(e, fieldNode) {\n const node = e.currentTarget;\n if (!isHTMLElement(node))\n return;\n const { prev } = getPrevNextSegments(node, fieldNode);\n if (!prev)\n return;\n prev.focus();\n}\nexport function isSegmentNavigationKey(key) {\n if (key === kbd.ARROW_RIGHT || key === kbd.ARROW_LEFT)\n return true;\n return false;\n}\n/**\n * Retrieves all the interactive segments within the field identified by the provided ID.\n */\nexport function getSegments(fieldNode) {\n if (!fieldNode)\n return [];\n const segments = Array.from(fieldNode.querySelectorAll(\"[data-segment]\")).filter((el) => {\n if (!isHTMLElement(el))\n return false;\n const segment = el.dataset.segment;\n if (segment === \"trigger\")\n return true;\n if (!isAnySegmentPart(segment) || segment === \"literal\")\n return false;\n return true;\n });\n return segments;\n}\nexport function getTimeSegments(fieldNode) {\n if (!fieldNode)\n return [];\n const segments = Array.from(fieldNode.querySelectorAll(\"[data-segment]\")).filter((el) => {\n if (!isHTMLElement(el))\n return false;\n const segment = el.dataset.segment;\n if (segment === \"trigger\")\n return true;\n if (segment === \"literal\")\n return false;\n return true;\n });\n return segments;\n}\nexport function getFirstTimeSegment(fieldNode) {\n return getTimeSegments(fieldNode)[0];\n}\n/**\n * Get the first interactive segment within the field identified by the provided ID.\n */\nexport function getFirstSegment(fieldNode) {\n return getSegments(fieldNode)[0];\n}\n", "import { isBrowser, isNull } from \"../../is.js\";\nimport { CalendarDateTime, Time, ZonedDateTime } from \"@internationalized/date\";\nimport { ALL_TIME_SEGMENT_PARTS, EDITABLE_TIME_SEGMENT_PARTS } from \"./parts.js\";\nimport { getTimeSegments } from \"./segments.js\";\nimport { styleToString } from \"svelte-toolbelt\";\nimport { useId } from \"../../use-id.js\";\nimport { getPlaceholder } from \"../placeholders.js\";\nimport { isZonedDateTime } from \"../utils.js\";\nimport { getDefaultHourCycle } from \"./helpers.js\";\nexport function initializeSegmentValues() {\n const initialParts = EDITABLE_TIME_SEGMENT_PARTS.map((part) => {\n if (part === \"dayPeriod\") {\n return [part, \"AM\"];\n }\n return [part, null];\n }).filter(([key]) => {\n if (key === \"literal\" || key === null)\n return false;\n return true;\n });\n return Object.fromEntries(initialParts);\n}\nfunction createTimeContentObj(props) {\n const { segmentValues, formatter, locale, timeRef } = props;\n const content = Object.keys(segmentValues).reduce((obj, part) => {\n if (!isEditableTimeSegmentPart(part))\n return obj;\n if (part === \"dayPeriod\") {\n const value = segmentValues[part];\n if (!isNull(value)) {\n obj[part] = value;\n }\n else {\n obj[part] = getPlaceholder(part, \"AM\", locale);\n }\n }\n else {\n obj[part] = getPartContent(part);\n }\n return obj;\n }, {});\n function getPartContent(part) {\n const value = segmentValues[part];\n const leadingZero = typeof value === \"string\" && value?.startsWith(\"0\");\n const intValue = value !== null ? Number.parseInt(value) : null;\n if (!isNull(value) && !isNull(intValue)) {\n const formatted = formatter.part(timeRef.set({ [part]: value }), part, {\n hourCycle: props.hourCycle === 24 ? \"h23\" : undefined,\n });\n /**\n * If we're operating in a 12 hour clock and the part is an hour, we handle\n * the conversion to 12 hour format with 2 digit hours and leading zeros here.\n */\n const is12HourMode = props.hourCycle === 12 ||\n (props.hourCycle === undefined && getDefaultHourCycle(locale) === 12);\n if (part === \"hour\" && is12HourMode) {\n /**\n * If the value is over 12, we convert to 12 hour format and add leading\n * zeroes if the value is less than 10.\n */\n if (intValue > 12) {\n const hour = intValue - 12;\n if (hour === 0) {\n return \"12\";\n }\n else if (hour < 10) {\n return `0${hour}`;\n }\n else {\n return `${hour}`;\n }\n }\n /**\n * If the value is 0, we convert to 12, since 0 is not a valid 12 hour time.\n */\n if (intValue === 0) {\n return \"12\";\n }\n /**\n * If the value is less than 10, we add a leading zero to the value.\n */\n if (intValue < 10) {\n return `0${intValue}`;\n }\n /**\n * Otherwise, we don't need to do anything to the value.\n */\n return `${intValue}`;\n }\n if (leadingZero && formatted.length === 1) {\n return `0${formatted}`;\n }\n return formatted;\n }\n else {\n return getPlaceholder(part, \"\", locale);\n }\n }\n return content;\n}\nfunction createTimeContentArr(props) {\n const { granularity, timeRef, formatter, contentObj, hideTimeZone, hourCycle } = props;\n const parts = formatter.toParts(timeRef, getOptsByGranularity(granularity, hourCycle));\n const timeSegmentContentArr = parts\n .map((part) => {\n const defaultParts = [\"literal\", \"timeZoneName\", null];\n if (defaultParts.includes(part.type) || !isEditableTimeSegmentPart(part.type)) {\n return {\n part: part.type,\n value: part.value,\n };\n }\n return {\n part: part.type,\n value: contentObj[part.type],\n };\n })\n .filter((segment) => {\n if (isNull(segment.part) || isNull(segment.value))\n return false;\n if (segment.part === \"timeZoneName\" && (!isZonedDateTime(timeRef) || hideTimeZone)) {\n return false;\n }\n return true;\n });\n return timeSegmentContentArr;\n}\nexport function createTimeContent(props) {\n const contentObj = createTimeContentObj(props);\n const contentArr = createTimeContentArr({\n contentObj,\n ...props,\n });\n return {\n obj: contentObj,\n arr: contentArr,\n };\n}\nfunction getOptsByGranularity(granularity, hourCycle) {\n const opts = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n timeZoneName: \"short\",\n hourCycle: hourCycle === 24 ? \"h23\" : undefined,\n hour12: hourCycle === 24 ? false : undefined,\n };\n if (granularity === \"hour\") {\n delete opts.minute;\n delete opts.second;\n }\n if (granularity === \"minute\") {\n delete opts.second;\n }\n return opts;\n}\nexport function initTimeSegmentStates() {\n return EDITABLE_TIME_SEGMENT_PARTS.reduce((acc, key) => {\n acc[key] = {\n lastKeyZero: false,\n hasLeftFocus: true,\n updating: null,\n };\n return acc;\n }, {});\n}\nexport function initTimeSegmentIds() {\n return Object.fromEntries(ALL_TIME_SEGMENT_PARTS.map((part) => {\n return [part, useId()];\n }).filter(([key]) => key !== \"literal\"));\n}\nexport function isEditableTimeSegmentPart(part) {\n return EDITABLE_TIME_SEGMENT_PARTS.includes(part);\n}\nexport function isAnyTimeSegmentPart(part) {\n return ALL_TIME_SEGMENT_PARTS.includes(part);\n}\n/**\n * Get the segments being used/ are rendered in the DOM.\n * We're using this to determine when to set the value of\n * the date picker, which is when all the segments have\n * been filled.\n */\nfunction getUsedTimeSegments(fieldNode) {\n if (!isBrowser || !fieldNode)\n return [];\n const usedSegments = getTimeSegments(fieldNode)\n .map((el) => el.dataset.segment)\n .filter((part) => {\n return EDITABLE_TIME_SEGMENT_PARTS.includes(part);\n });\n return usedSegments;\n}\nexport function getTimeValueFromSegments(props) {\n const usedSegments = getUsedTimeSegments(props.fieldNode);\n for (const part of usedSegments) {\n const value = props.segmentObj[part];\n if (isNull(value))\n continue;\n // @ts-expect-error shhh\n props.timeRef = props.timeRef.set({ [part]: props.segmentObj[part] });\n }\n return props.timeRef;\n}\n/**\n * Check if all the segments being used have been filled.\n * We use this to determine when we should set the value\n * store of the date field(s).\n *\n * @param segmentValues - The current `SegmentValueObj`\n * @param fieldNode - The id of the date field\n */\nexport function areAllTimeSegmentsFilled(segmentValues, fieldNode) {\n const usedSegments = getUsedTimeSegments(fieldNode);\n for (const part of usedSegments) {\n if (segmentValues[part] === null)\n return false;\n }\n return true;\n}\n/**\n * Infer the granularity to use based on the\n * value and granularity props.\n */\nexport function inferTimeGranularity(granularity) {\n if (granularity)\n return granularity;\n return \"minute\";\n}\n/**\n * Determines if the element with the provided id is the first focusable\n * segment in the date field with the provided fieldId.\n *\n * @param id - The id of the element to check if it's the first segment\n * @param fieldNode - The id of the date field associated with the segment\n */\nexport function isFirstTimeSegment(id, fieldNode) {\n if (!isBrowser)\n return false;\n const segments = getTimeSegments(fieldNode);\n return segments.length ? segments[0].id === id : false;\n}\n/**\n * Creates or updates a description element for a date field\n * which enables screen readers to read the date field's value.\n *\n * This element is hidden from view, and is portalled to the body\n * so it can be associated via `aria-describedby` and read by\n * screen readers as the user interacts with the date field.\n */\nexport function setTimeDescription(props) {\n if (!isBrowser)\n return;\n const valueString = props.formatter.selectedTime(props.value);\n const el = props.doc.getElementById(props.id);\n if (!el) {\n const div = props.doc.createElement(\"div\");\n div.style.cssText = styleToString({\n display: \"none\",\n });\n div.id = props.id;\n div.innerText = `Selected Time: ${valueString}`;\n props.doc.body.appendChild(div);\n }\n else {\n el.innerText = `Selected Time: ${valueString}`;\n }\n}\n/**\n * Removes the description element for the date field with\n * the provided ID. This function should be called when the\n * date field is unmounted.\n */\nexport function removeTimeDescriptionElement(id, doc) {\n if (!isBrowser)\n return;\n const el = doc.getElementById(id);\n if (!el)\n return;\n doc.body.removeChild(el);\n}\nexport function convertTimeValueToDateValue(time) {\n if (time instanceof Time) {\n return new CalendarDateTime(2020, 1, 1, time.hour, time.minute, time.second, time.millisecond);\n }\n return time;\n}\nexport function convertTimeValueToTime(time) {\n if (time instanceof Time)\n return time;\n return new Time(time.hour, time.minute, time.second, time.millisecond);\n}\nexport function isTimeBefore(timeToCompare, referenceTime) {\n return timeToCompare.compare(referenceTime) < 0;\n}\nexport function isTimeAfter(timeToCompare, referenceTime) {\n return timeToCompare.compare(referenceTime) > 0;\n}\nexport function getISOTimeValue(time) {\n return convertTimeValueToTime(time).toString();\n}\n", "import { DateFormatter } from \"@internationalized/date\";\nimport { hasTime, isZonedDateTime, toDate } from \"./utils.js\";\nimport { convertTimeValueToDateValue } from \"./field/time-helpers.js\";\nconst defaultPartOptions = {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n};\n/**\n * Creates a wrapper around the `DateFormatter`, which is\n * an improved version of the {@link Intl.DateTimeFormat} API,\n * that is used internally by the various date builders to\n * easily format dates in a consistent way.\n *\n * @see [DateFormatter](https://react-spectrum.adobe.com/internationalized/date/DateFormatter.html)\n */\nexport function createFormatter(opts) {\n let locale = opts.initialLocale;\n function setLocale(newLocale) {\n locale = newLocale;\n }\n function getLocale() {\n return locale;\n }\n function custom(date, options) {\n return new DateFormatter(locale, options).format(date);\n }\n function selectedDate(date, includeTime = true) {\n if (hasTime(date) && includeTime) {\n return custom(toDate(date), {\n dateStyle: \"long\",\n timeStyle: \"long\",\n });\n }\n else {\n return custom(toDate(date), {\n dateStyle: \"long\",\n });\n }\n }\n function fullMonthAndYear(date) {\n if (typeof opts.monthFormat.current !== \"function\" &&\n typeof opts.yearFormat.current !== \"function\") {\n return new DateFormatter(locale, {\n month: opts.monthFormat.current,\n year: opts.yearFormat.current,\n }).format(date);\n }\n const formattedMonth = typeof opts.monthFormat.current === \"function\"\n ? opts.monthFormat.current(date.getMonth() + 1)\n : new DateFormatter(locale, { month: opts.monthFormat.current }).format(date);\n const formattedYear = typeof opts.yearFormat.current === \"function\"\n ? opts.yearFormat.current(date.getFullYear())\n : new DateFormatter(locale, { year: opts.yearFormat.current }).format(date);\n return `${formattedMonth} ${formattedYear}`;\n }\n function fullMonth(date) {\n return new DateFormatter(locale, { month: \"long\" }).format(date);\n }\n function fullYear(date) {\n return new DateFormatter(locale, { year: \"numeric\" }).format(date);\n }\n function toParts(date, options) {\n if (isZonedDateTime(date)) {\n return new DateFormatter(locale, {\n ...options,\n timeZone: date.timeZone,\n }).formatToParts(toDate(date));\n }\n else {\n return new DateFormatter(locale, options).formatToParts(toDate(date));\n }\n }\n function dayOfWeek(date, length = \"narrow\") {\n return new DateFormatter(locale, { weekday: length }).format(date);\n }\n function dayPeriod(date, hourCycle = undefined) {\n const parts = new DateFormatter(locale, {\n hour: \"numeric\",\n minute: \"numeric\",\n hourCycle: hourCycle === 24 ? \"h23\" : undefined,\n }).formatToParts(date);\n const value = parts.find((p) => p.type === \"dayPeriod\")?.value;\n if (value === \"PM\") {\n return \"PM\";\n }\n return \"AM\";\n }\n function part(dateObj, type, options = {}) {\n const opts = { ...defaultPartOptions, ...options };\n const parts = toParts(dateObj, opts);\n const part = parts.find((p) => p.type === type);\n return part ? part.value : \"\";\n }\n return {\n setLocale,\n getLocale,\n fullMonth,\n fullYear,\n fullMonthAndYear,\n toParts,\n custom,\n part,\n dayPeriod,\n selectedDate,\n dayOfWeek,\n };\n}\nexport function createTimeFormatter(initialLocale) {\n let locale = initialLocale;\n function setLocale(newLocale) {\n locale = newLocale;\n }\n function getLocale() {\n return locale;\n }\n function custom(date, options) {\n return new DateFormatter(locale, options).format(date);\n }\n function selectedTime(date) {\n return custom(toDate(convertTimeValueToDateValue(date)), {\n timeStyle: \"long\",\n });\n }\n function toParts(timeValue, options) {\n const dateValue = convertTimeValueToDateValue(timeValue);\n if (isZonedDateTime(dateValue)) {\n return new DateFormatter(locale, {\n ...options,\n timeZone: dateValue.timeZone,\n }).formatToParts(toDate(dateValue));\n }\n else {\n return new DateFormatter(locale, options).formatToParts(toDate(dateValue));\n }\n }\n function dayPeriod(date, hourCycle = undefined) {\n const parts = new DateFormatter(locale, {\n hour: \"numeric\",\n minute: \"numeric\",\n hourCycle: hourCycle === 24 ? \"h23\" : undefined,\n }).formatToParts(date);\n const value = parts.find((p) => p.type === \"dayPeriod\")?.value;\n if (value === \"PM\")\n return \"PM\";\n return \"AM\";\n }\n function part(dateObj, type, options = {}) {\n const opts = { ...defaultPartOptions, ...options };\n const parts = toParts(dateObj, opts);\n const part = parts.find((p) => p.type === type);\n return part ? part.value : \"\";\n }\n return {\n setLocale,\n getLocale,\n toParts,\n custom,\n part,\n dayPeriod,\n selectedTime,\n };\n}\n", "import { endOfMonth, isSameDay, isSameMonth, startOfMonth, } from \"@internationalized/date\";\nimport { afterTick, getDocument, styleToString, } from \"svelte-toolbelt\";\nimport { untrack } from \"svelte\";\nimport { getDaysInMonth, getLastFirstDayOfWeek, getNextLastDayOfWeek, hasTime, isAfter, isBefore, parseAnyDateValue, parseStringToDateValue, toDate, } from \"./utils.js\";\nimport { createBitsAttrs, boolToEmptyStrOrUndef } from \"../attrs.js\";\nimport { chunk, isValidIndex } from \"../arrays.js\";\nimport { isBrowser, isHTMLElement } from \"../is.js\";\nimport { kbd } from \"../kbd.js\";\nimport { watch } from \"runed\";\n/**\n * Checks if a given node is a calendar cell element.\n *\n * @param node - The node to check.\n */\nexport function isCalendarDayNode(node) {\n if (!isHTMLElement(node))\n return false;\n if (!node.hasAttribute(\"data-bits-day\"))\n return false;\n return true;\n}\n/**\n * Retrieves an array of date values representing the days between\n * the provided start and end dates.\n */\nexport function getDaysBetween(start, end) {\n const days = [];\n let dCurrent = start.add({ days: 1 });\n const dEnd = end;\n while (dCurrent.compare(dEnd) < 0) {\n days.push(dCurrent);\n dCurrent = dCurrent.add({ days: 1 });\n }\n return days;\n}\n/**\n * Creates a calendar month object.\n *\n * @remarks\n * Given a date, this function returns an object containing\n * the necessary values to render a calendar month, including\n * the month's date (the first day of that month), which can be\n * used to render the name of the month, an array of all dates\n * in that month, and an array of weeks. Each week is an array\n * of dates, useful for rendering an accessible calendar grid\n * using a loop and table elements.\n *\n */\nfunction createMonth(props) {\n const { dateObj, weekStartsOn, fixedWeeks, locale } = props;\n const daysInMonth = getDaysInMonth(dateObj);\n const datesArray = Array.from({ length: daysInMonth }, (_, i) => dateObj.set({ day: i + 1 }));\n const firstDayOfMonth = startOfMonth(dateObj);\n const lastDayOfMonth = endOfMonth(dateObj);\n const lastSunday = weekStartsOn !== undefined\n ? getLastFirstDayOfWeek(firstDayOfMonth, weekStartsOn, \"en-US\")\n : getLastFirstDayOfWeek(firstDayOfMonth, 0, locale);\n const nextSaturday = weekStartsOn !== undefined\n ? getNextLastDayOfWeek(lastDayOfMonth, weekStartsOn, \"en-US\")\n : getNextLastDayOfWeek(lastDayOfMonth, 0, locale);\n const lastMonthDays = getDaysBetween(lastSunday.subtract({ days: 1 }), firstDayOfMonth);\n const nextMonthDays = getDaysBetween(lastDayOfMonth, nextSaturday.add({ days: 1 }));\n const totalDays = lastMonthDays.length + datesArray.length + nextMonthDays.length;\n if (fixedWeeks && totalDays < 42) {\n const extraDays = 42 - totalDays;\n let startFrom = nextMonthDays[nextMonthDays.length - 1];\n if (!startFrom) {\n startFrom = dateObj.add({ months: 1 }).set({ day: 1 });\n }\n let length = extraDays;\n if (nextMonthDays.length === 0) {\n length = extraDays - 1;\n nextMonthDays.push(startFrom);\n }\n const extraDaysArray = Array.from({ length }, (_, i) => {\n const incr = i + 1;\n return startFrom.add({ days: incr });\n });\n nextMonthDays.push(...extraDaysArray);\n }\n const allDays = lastMonthDays.concat(datesArray, nextMonthDays);\n const weeks = chunk(allDays, 7);\n return {\n value: dateObj,\n dates: allDays,\n weeks,\n };\n}\nexport function createMonths(props) {\n const { numberOfMonths, dateObj, ...monthProps } = props;\n const months = [];\n if (!numberOfMonths || numberOfMonths === 1) {\n months.push(createMonth({\n ...monthProps,\n dateObj,\n }));\n return months;\n }\n months.push(createMonth({\n ...monthProps,\n dateObj,\n }));\n // Create all the months, starting with the current month\n for (let i = 1; i < numberOfMonths; i++) {\n const nextMonth = dateObj.add({ months: i });\n months.push(createMonth({\n ...monthProps,\n dateObj: nextMonth,\n }));\n }\n return months;\n}\nexport function getSelectableCells(calendarNode) {\n if (!calendarNode)\n return [];\n const selectableSelector = `[data-bits-day]:not([data-disabled]):not([data-outside-visible-months])`;\n return Array.from(calendarNode.querySelectorAll(selectableSelector)).filter((el) => isHTMLElement(el));\n}\n/**\n * A helper function to extract the date from the `data-value`\n * attribute of a date cell and set it as the placeholder value.\n *\n * Shared between the calendar and range calendar builders.\n *\n * @param node - The node to extract the date from.\n * @param placeholder - The placeholder value store which will be set to the extracted date.\n */\nexport function setPlaceholderToNodeValue(node, placeholder) {\n const cellValue = node.getAttribute(\"data-value\");\n if (!cellValue)\n return;\n placeholder.current = parseStringToDateValue(cellValue, placeholder.current);\n}\n/**\n * Shared logic for shifting focus between cells in the\n * calendar and range calendar.\n */\nexport function shiftCalendarFocus({ node, add, placeholder, calendarNode, isPrevButtonDisabled, isNextButtonDisabled, months, numberOfMonths, }) {\n const candidateCells = getSelectableCells(calendarNode);\n if (!candidateCells.length)\n return;\n const index = candidateCells.indexOf(node);\n const nextIndex = index + add;\n /**\n * If the next cell is within the bounds of the displayed cells,\n * easy day, we just focus it.\n */\n if (isValidIndex(nextIndex, candidateCells)) {\n const nextCell = candidateCells[nextIndex];\n setPlaceholderToNodeValue(nextCell, placeholder);\n return nextCell.focus();\n }\n /**\n * When the next cell falls outside the displayed cells range,\n * we update the focus to the previous or next month based on the\n * direction, and then focus on the relevant cell.\n */\n if (nextIndex < 0) {\n /**\n * To handle negative indices, we rewind by one month,\n * retrieve candidate cells for that month, and shift focus\n * by the difference between the nextIndex starting from the end\n * of the array.\n */\n // shift the calendar back a month unless prev month is disabled\n if (isPrevButtonDisabled)\n return;\n const firstMonth = months[0]?.value;\n if (!firstMonth)\n return;\n placeholder.current = firstMonth.subtract({ months: numberOfMonths });\n // Without a tick here, it seems to be too quick for the DOM to update\n afterTick(() => {\n const newCandidateCells = getSelectableCells(calendarNode);\n if (!newCandidateCells.length)\n return;\n /**\n * Starting at the end of the array, shift focus by the diff\n * between the nextIndex and the length of the array, since the\n * nextIndex is negative.\n */\n const newIndex = newCandidateCells.length - Math.abs(nextIndex);\n if (isValidIndex(newIndex, newCandidateCells)) {\n const newCell = newCandidateCells[newIndex];\n setPlaceholderToNodeValue(newCell, placeholder);\n return newCell.focus();\n }\n });\n }\n if (nextIndex >= candidateCells.length) {\n /**\n * Since we're in the positive index range, we need to go forward\n * a month, refetch the candidate cells within that month, and then\n * starting at the beginning of the array, shift focus by the nextIndex\n * amount.\n */\n // shift the calendar forward a month unless next month is disabled\n if (isNextButtonDisabled)\n return;\n const firstMonth = months[0]?.value;\n if (!firstMonth)\n return;\n placeholder.current = firstMonth.add({ months: numberOfMonths });\n afterTick(() => {\n const newCandidateCells = getSelectableCells(calendarNode);\n if (!newCandidateCells.length)\n return;\n /**\n * We need to determine how far into the next month we need to go\n * to get the next index. So if we only went over the previous month\n * by one, we need to go into the next month by 1 to get the right index.\n */\n const newIndex = nextIndex - candidateCells.length;\n if (isValidIndex(newIndex, newCandidateCells)) {\n const nextCell = newCandidateCells[newIndex];\n return nextCell.focus();\n }\n });\n }\n}\nconst ARROW_KEYS = [kbd.ARROW_DOWN, kbd.ARROW_UP, kbd.ARROW_LEFT, kbd.ARROW_RIGHT];\nconst SELECT_KEYS = [kbd.ENTER, kbd.SPACE];\n/**\n * Shared keyboard event handler for the calendar and range calendar.\n */\nexport function handleCalendarKeydown({ event, handleCellClick, shiftFocus, placeholderValue, }) {\n const currentCell = event.target;\n if (!isCalendarDayNode(currentCell))\n return;\n // oxlint-disable-next-line no-explicit-any\n if (!ARROW_KEYS.includes(event.key) && !SELECT_KEYS.includes(event.key))\n return;\n event.preventDefault();\n const kbdFocusMap = {\n [kbd.ARROW_DOWN]: 7,\n [kbd.ARROW_UP]: -7,\n [kbd.ARROW_LEFT]: -1,\n [kbd.ARROW_RIGHT]: 1,\n };\n // oxlint-disable-next-line no-explicit-any\n if (ARROW_KEYS.includes(event.key)) {\n const add = kbdFocusMap[event.key];\n if (add !== undefined) {\n shiftFocus(currentCell, add);\n }\n }\n if (SELECT_KEYS.includes(event.key)) {\n const cellValue = currentCell.getAttribute(\"data-value\");\n if (!cellValue)\n return;\n handleCellClick(event, parseStringToDateValue(cellValue, placeholderValue));\n }\n}\nexport function handleCalendarNextPage({ months, setMonths, numberOfMonths, pagedNavigation, weekStartsOn, locale, fixedWeeks, setPlaceholder, }) {\n const firstMonth = months[0]?.value;\n if (!firstMonth)\n return;\n if (pagedNavigation) {\n setPlaceholder(firstMonth.add({ months: numberOfMonths }));\n }\n else {\n // Calculate the target date first, then update both months and placeholder\n // to ensure they're synchronized and prevent useMonthViewPlaceholderSync from\n // double-triggering\n const targetDate = firstMonth.add({ months: 1 });\n const newMonths = createMonths({\n dateObj: targetDate,\n weekStartsOn,\n locale,\n fixedWeeks,\n numberOfMonths,\n });\n setPlaceholder(targetDate);\n setMonths(newMonths);\n }\n}\nexport function handleCalendarPrevPage({ months, setMonths, numberOfMonths, pagedNavigation, weekStartsOn, locale, fixedWeeks, setPlaceholder, }) {\n const firstMonth = months[0]?.value;\n if (!firstMonth)\n return;\n if (pagedNavigation) {\n setPlaceholder(firstMonth.subtract({ months: numberOfMonths }));\n }\n else {\n // Calculate the target date first, then update both months and placeholder\n // to ensure they're synchronized and prevent useMonthViewPlaceholderSync from\n // double-triggering\n const targetDate = firstMonth.subtract({ months: 1 });\n const newMonths = createMonths({\n dateObj: targetDate,\n weekStartsOn,\n locale,\n fixedWeeks,\n numberOfMonths,\n });\n setPlaceholder(targetDate);\n setMonths(newMonths);\n }\n}\nexport function getWeekdays({ months, formatter, weekdayFormat }) {\n if (!months.length)\n return [];\n const firstMonth = months[0];\n const firstWeek = firstMonth.weeks[0];\n if (!firstWeek)\n return [];\n return firstWeek.map((date) => formatter.dayOfWeek(toDate(date), weekdayFormat));\n}\n/**\n * Updates the displayed months based on changes in the options values,\n * which determines the month to show in the calendar.\n */\nexport function useMonthViewOptionsSync(props) {\n $effect(() => {\n const weekStartsOn = props.weekStartsOn.current;\n const locale = props.locale.current;\n const fixedWeeks = props.fixedWeeks.current;\n const numberOfMonths = props.numberOfMonths.current;\n untrack(() => {\n const placeholder = props.placeholder.current;\n if (!placeholder)\n return;\n const defaultMonthProps = {\n weekStartsOn,\n locale,\n fixedWeeks,\n numberOfMonths,\n };\n props.setMonths(createMonths({ ...defaultMonthProps, dateObj: placeholder }));\n });\n });\n}\n/**\n * Creates an accessible heading element for the calendar.\n * Returns a function that removes the heading element.\n */\nexport function createAccessibleHeading({ calendarNode, label, accessibleHeadingId, }) {\n const doc = getDocument(calendarNode);\n const div = doc.createElement(\"div\");\n div.style.cssText = styleToString({\n border: \"0px\",\n clip: \"rect(0px, 0px, 0px, 0px)\",\n clipPath: \"inset(50%)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0px\",\n position: \"absolute\",\n whiteSpace: \"nowrap\",\n width: \"1px\",\n });\n const h2 = doc.createElement(\"div\");\n h2.textContent = label;\n h2.id = accessibleHeadingId;\n h2.role = \"heading\";\n h2.ariaLevel = \"2\";\n calendarNode.insertBefore(div, calendarNode.firstChild);\n div.appendChild(h2);\n return () => {\n const h2 = doc.getElementById(accessibleHeadingId);\n if (!h2)\n return;\n div.parentElement?.removeChild(div);\n h2.remove();\n };\n}\nexport function useMonthViewPlaceholderSync({ placeholder, getVisibleMonths, weekStartsOn, locale, fixedWeeks, numberOfMonths, setMonths, }) {\n $effect(() => {\n placeholder.current;\n untrack(() => {\n /**\n * If the placeholder's month is already in this visible months,\n * we don't need to do anything.\n */\n if (getVisibleMonths().some((month) => isSameMonth(month, placeholder.current))) {\n return;\n }\n const defaultMonthProps = {\n weekStartsOn: weekStartsOn.current,\n locale: locale.current,\n fixedWeeks: fixedWeeks.current,\n numberOfMonths: numberOfMonths.current,\n };\n setMonths(createMonths({ ...defaultMonthProps, dateObj: placeholder.current }));\n });\n });\n}\nexport function getIsNextButtonDisabled({ maxValue, months, disabled, }) {\n if (!maxValue || !months.length)\n return false;\n if (disabled)\n return true;\n const lastMonthInView = months[months.length - 1]?.value;\n if (!lastMonthInView)\n return false;\n const firstMonthOfNextPage = lastMonthInView\n .add({\n months: 1,\n })\n .set({ day: 1 });\n return isAfter(firstMonthOfNextPage, maxValue);\n}\nexport function getIsPrevButtonDisabled({ minValue, months, disabled, }) {\n if (!minValue || !months.length)\n return false;\n if (disabled)\n return true;\n const firstMonthInView = months[0]?.value;\n if (!firstMonthInView)\n return false;\n const lastMonthOfPrevPage = firstMonthInView\n .subtract({\n months: 1,\n })\n .set({ day: 35 });\n return isBefore(lastMonthOfPrevPage, minValue);\n}\nexport function getCalendarHeadingValue({ months, locale, formatter, }) {\n if (!months.length)\n return \"\";\n if (locale !== formatter.getLocale()) {\n formatter.setLocale(locale);\n }\n if (months.length === 1) {\n const month = toDate(months[0].value);\n return `${formatter.fullMonthAndYear(month)}`;\n }\n const startMonth = toDate(months[0].value);\n const endMonth = toDate(months[months.length - 1].value);\n const startMonthName = formatter.fullMonth(startMonth);\n const endMonthName = formatter.fullMonth(endMonth);\n const startMonthYear = formatter.fullYear(startMonth);\n const endMonthYear = formatter.fullYear(endMonth);\n const content = startMonthYear === endMonthYear\n ? `${startMonthName} - ${endMonthName} ${endMonthYear}`\n : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`;\n return content;\n}\nexport function getCalendarElementProps({ fullCalendarLabel, id, isInvalid, disabled, readonly, }) {\n return {\n id,\n role: \"application\",\n \"aria-label\": fullCalendarLabel,\n \"data-invalid\": boolToEmptyStrOrUndef(isInvalid),\n \"data-disabled\": boolToEmptyStrOrUndef(disabled),\n \"data-readonly\": boolToEmptyStrOrUndef(readonly),\n };\n}\nexport function pickerOpenFocus(e) {\n const doc = getDocument(e.target);\n const nodeToFocus = doc.querySelector(\"[data-bits-day][data-focused]\");\n if (nodeToFocus) {\n e.preventDefault();\n nodeToFocus?.focus();\n }\n}\nexport function getFirstNonDisabledDateInView(calendarRef) {\n if (!isBrowser)\n return;\n const daysInView = Array.from(calendarRef.querySelectorAll(\"[data-bits-day]:not([aria-disabled=true])\"));\n if (daysInView.length === 0)\n return;\n const element = daysInView[0];\n const value = element?.getAttribute(\"data-value\");\n const type = element?.getAttribute(\"data-type\");\n if (!value || !type)\n return;\n return parseAnyDateValue(value, type);\n}\n/**\n * Ensures the placeholder is not set to a disabled date,\n * which would prevent the user from entering the Calendar\n * via the keyboard.\n */\nexport function useEnsureNonDisabledPlaceholder({ ref, placeholder, defaultPlaceholder, minValue, maxValue, isDateDisabled, }) {\n function isDisabled(date) {\n if (isDateDisabled.current(date))\n return true;\n if (minValue.current && isBefore(date, minValue.current))\n return true;\n if (maxValue.current && isBefore(maxValue.current, date))\n return true;\n return false;\n }\n watch(() => ref.current, () => {\n if (!ref.current)\n return;\n /**\n * If the placeholder is still the default placeholder and it's a disabled date, find\n * the first available date in the calendar view and set it as the placeholder.\n *\n * This prevents the placeholder from being a disabled date and no date being tabbable\n * preventing the user from entering the Calendar. If all dates in the view are\n * disabled, currently that is considered an error on the developer's part and should\n * be handled by them.\n *\n * Perhaps in the future we can introduce a dev-only log message to prevent this from\n * being a silent error.\n */\n if (placeholder.current &&\n isSameDay(placeholder.current, defaultPlaceholder) &&\n isDisabled(defaultPlaceholder)) {\n placeholder.current =\n getFirstNonDisabledDateInView(ref.current) ?? defaultPlaceholder;\n }\n });\n}\nexport function getDateWithPreviousTime(date, prev) {\n if (!date || !prev)\n return date;\n if (hasTime(date) && hasTime(prev)) {\n return date.set({\n hour: prev.hour,\n minute: prev.minute,\n millisecond: prev.millisecond,\n second: prev.second,\n });\n }\n return date;\n}\nexport const calendarAttrs = createBitsAttrs({\n component: \"calendar\",\n parts: [\n \"root\",\n \"grid\",\n \"cell\",\n \"next-button\",\n \"prev-button\",\n \"day\",\n \"grid-body\",\n \"grid-head\",\n \"grid-row\",\n \"head-cell\",\n \"header\",\n \"heading\",\n \"month-select\",\n \"year-select\",\n ],\n});\nexport function getDefaultYears(opts) {\n const currentYear = new Date().getFullYear();\n const latestYear = Math.max(opts.placeholderYear, currentYear);\n // use minValue/maxValue as boundaries if provided, otherwise calculate default range\n let minYear;\n let maxYear;\n if (opts.minValue) {\n minYear = opts.minValue.year;\n }\n else {\n // (111 years: latestYear - 100 to latestYear + 10)\n const initialMinYear = latestYear - 100;\n minYear =\n opts.placeholderYear < initialMinYear ? opts.placeholderYear - 10 : initialMinYear;\n }\n if (opts.maxValue) {\n maxYear = opts.maxValue.year;\n }\n else {\n maxYear = latestYear + 10;\n }\n // ensure we have at least one year and minYear <= maxYear\n if (minYear > maxYear) {\n minYear = maxYear;\n }\n const totalYears = maxYear - minYear + 1;\n return Array.from({ length: totalYears }, (_, i) => minYear + i);\n}\n", "import { getLocalTimeZone, isSameDay, isSameMonth, isToday, } from \"@internationalized/date\";\nimport { DEV } from \"esm-env\";\nimport { onMount, untrack } from \"svelte\";\nimport { attachRef, DOMContext, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { boolToStr, boolToStrTrueOrUndef, boolToEmptyStrOrUndef } from \"../../internal/attrs.js\";\nimport { useId } from \"../../internal/use-id.js\";\nimport { getAnnouncer } from \"../../internal/date-time/announcer.js\";\nimport { createFormatter } from \"../../internal/date-time/formatter.js\";\nimport { calendarAttrs, createAccessibleHeading, createMonths, getCalendarElementProps, getCalendarHeadingValue, getDateWithPreviousTime, getDefaultYears, getIsNextButtonDisabled, getIsPrevButtonDisabled, getWeekdays, handleCalendarKeydown, handleCalendarNextPage, handleCalendarPrevPage, shiftCalendarFocus, useEnsureNonDisabledPlaceholder, useMonthViewOptionsSync, useMonthViewPlaceholderSync, } from \"../../internal/date-time/calendar-helpers.svelte.js\";\nimport { getDateValueType, isBefore, toDate } from \"../../internal/date-time/utils.js\";\nexport const CalendarRootContext = new Context(\"Calendar.Root | RangeCalender.Root\");\nexport class CalendarRootState {\n static create(opts) {\n return CalendarRootContext.set(new CalendarRootState(opts));\n }\n opts;\n visibleMonths = $derived.by(() => this.months.map((month) => month.value));\n formatter;\n accessibleHeadingId = useId();\n domContext;\n attachment;\n months = $state([]);\n announcer;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.domContext = new DOMContext(opts.ref);\n this.announcer = getAnnouncer(null);\n this.formatter = createFormatter({\n initialLocale: this.opts.locale.current,\n monthFormat: this.opts.monthFormat,\n yearFormat: this.opts.yearFormat,\n });\n this.setMonths = this.setMonths.bind(this);\n this.nextPage = this.nextPage.bind(this);\n this.prevPage = this.prevPage.bind(this);\n this.prevYear = this.prevYear.bind(this);\n this.nextYear = this.nextYear.bind(this);\n this.setYear = this.setYear.bind(this);\n this.setMonth = this.setMonth.bind(this);\n this.isOutsideVisibleMonths = this.isOutsideVisibleMonths.bind(this);\n this.isDateDisabled = this.isDateDisabled.bind(this);\n this.isDateSelected = this.isDateSelected.bind(this);\n this.shiftFocus = this.shiftFocus.bind(this);\n this.handleCellClick = this.handleCellClick.bind(this);\n this.handleMultipleUpdate = this.handleMultipleUpdate.bind(this);\n this.handleSingleUpdate = this.handleSingleUpdate.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n this.getBitsAttr = this.getBitsAttr.bind(this);\n onMount(() => {\n this.announcer = getAnnouncer(this.domContext.getDocument());\n });\n this.months = createMonths({\n dateObj: this.opts.placeholder.current,\n weekStartsOn: this.opts.weekStartsOn.current,\n locale: this.opts.locale.current,\n fixedWeeks: this.opts.fixedWeeks.current,\n numberOfMonths: this.opts.numberOfMonths.current,\n });\n this.#setupInitialFocusEffect();\n this.#setupAccessibleHeadingEffect();\n this.#setupFormatterEffect();\n /**\n * Updates the displayed months based on changes in the placeholder value.\n */\n useMonthViewPlaceholderSync({\n placeholder: this.opts.placeholder,\n getVisibleMonths: () => this.visibleMonths,\n weekStartsOn: this.opts.weekStartsOn,\n locale: this.opts.locale,\n fixedWeeks: this.opts.fixedWeeks,\n numberOfMonths: this.opts.numberOfMonths,\n setMonths: (months) => (this.months = months),\n });\n /**\n * Updates the displayed months based on changes in the options values,\n * which determines the month to show in the calendar.\n */\n useMonthViewOptionsSync({\n fixedWeeks: this.opts.fixedWeeks,\n locale: this.opts.locale,\n numberOfMonths: this.opts.numberOfMonths,\n placeholder: this.opts.placeholder,\n setMonths: this.setMonths,\n weekStartsOn: this.opts.weekStartsOn,\n });\n /**\n * Update the accessible heading's text content when the `fullCalendarLabel`\n * changes.\n */\n watch(() => this.fullCalendarLabel, (label) => {\n const node = this.domContext.getElementById(this.accessibleHeadingId);\n if (!node)\n return;\n node.textContent = label;\n });\n /**\n * Synchronize the placeholder value with the current value.\n */\n watch(() => this.opts.value.current, () => {\n const value = this.opts.value.current;\n if (Array.isArray(value) && value.length) {\n const lastValue = value[value.length - 1];\n if (lastValue && this.opts.placeholder.current !== lastValue) {\n this.opts.placeholder.current = lastValue;\n }\n }\n else if (!Array.isArray(value) &&\n value &&\n this.opts.placeholder.current !== value) {\n this.opts.placeholder.current = value;\n }\n });\n useEnsureNonDisabledPlaceholder({\n placeholder: opts.placeholder,\n defaultPlaceholder: opts.defaultPlaceholder,\n isDateDisabled: opts.isDateDisabled,\n maxValue: opts.maxValue,\n minValue: opts.minValue,\n ref: opts.ref,\n });\n }\n setMonths(months) {\n this.months = months;\n }\n /**\n * This derived state holds an array of localized day names for the current\n * locale and calendar view. It dynamically syncs with the 'weekStartsOn' option,\n * updating its content when the option changes. Using this state to render the\n * calendar's days of the week is strongly recommended, as it guarantees that\n * the days are correctly formatted for the current locale and calendar view.\n */\n weekdays = $derived.by(() => {\n return getWeekdays({\n months: this.months,\n formatter: this.formatter,\n weekdayFormat: this.opts.weekdayFormat.current,\n });\n });\n initialPlaceholderYear = $derived.by(() => untrack(() => this.opts.placeholder.current.year));\n defaultYears = $derived.by(() => {\n return getDefaultYears({\n minValue: this.opts.minValue.current,\n maxValue: this.opts.maxValue.current,\n placeholderYear: this.initialPlaceholderYear,\n });\n });\n #setupInitialFocusEffect() {\n $effect(() => {\n const initialFocus = untrack(() => this.opts.initialFocus.current);\n if (initialFocus) {\n // focus the first `data-focused` day node\n const firstFocusedDay = this.opts.ref.current?.querySelector(`[data-focused]`);\n if (firstFocusedDay) {\n firstFocusedDay.focus();\n }\n }\n });\n }\n #setupAccessibleHeadingEffect() {\n $effect(() => {\n if (!this.opts.ref.current)\n return;\n const removeHeading = createAccessibleHeading({\n calendarNode: this.opts.ref.current,\n label: this.fullCalendarLabel,\n accessibleHeadingId: this.accessibleHeadingId,\n });\n return removeHeading;\n });\n }\n #setupFormatterEffect() {\n $effect.pre(() => {\n if (this.formatter.getLocale() === this.opts.locale.current)\n return;\n this.formatter.setLocale(this.opts.locale.current);\n });\n }\n /**\n * Navigates to the next page of the calendar.\n */\n nextPage() {\n handleCalendarNextPage({\n fixedWeeks: this.opts.fixedWeeks.current,\n locale: this.opts.locale.current,\n numberOfMonths: this.opts.numberOfMonths.current,\n pagedNavigation: this.opts.pagedNavigation.current,\n setMonths: this.setMonths,\n setPlaceholder: (date) => (this.opts.placeholder.current = date),\n weekStartsOn: this.opts.weekStartsOn.current,\n months: this.months,\n });\n }\n /**\n * Navigates to the previous page of the calendar.\n */\n prevPage() {\n handleCalendarPrevPage({\n fixedWeeks: this.opts.fixedWeeks.current,\n locale: this.opts.locale.current,\n numberOfMonths: this.opts.numberOfMonths.current,\n pagedNavigation: this.opts.pagedNavigation.current,\n setMonths: this.setMonths,\n setPlaceholder: (date) => (this.opts.placeholder.current = date),\n weekStartsOn: this.opts.weekStartsOn.current,\n months: this.months,\n });\n }\n nextYear() {\n this.opts.placeholder.current = this.opts.placeholder.current.add({ years: 1 });\n }\n prevYear() {\n this.opts.placeholder.current = this.opts.placeholder.current.subtract({ years: 1 });\n }\n setYear(year) {\n this.opts.placeholder.current = this.opts.placeholder.current.set({ year });\n }\n setMonth(month) {\n this.opts.placeholder.current = this.opts.placeholder.current.set({ month });\n }\n isNextButtonDisabled = $derived.by(() => {\n return getIsNextButtonDisabled({\n maxValue: this.opts.maxValue.current,\n months: this.months,\n disabled: this.opts.disabled.current,\n });\n });\n isPrevButtonDisabled = $derived.by(() => {\n return getIsPrevButtonDisabled({\n minValue: this.opts.minValue.current,\n months: this.months,\n disabled: this.opts.disabled.current,\n });\n });\n isInvalid = $derived.by(() => {\n const value = this.opts.value.current;\n const isDateDisabled = this.opts.isDateDisabled.current;\n const isDateUnavailable = this.opts.isDateUnavailable.current;\n if (Array.isArray(value)) {\n if (!value.length)\n return false;\n for (const date of value) {\n if (isDateDisabled(date))\n return true;\n if (isDateUnavailable(date))\n return true;\n }\n }\n else {\n if (!value)\n return false;\n if (isDateDisabled(value))\n return true;\n if (isDateUnavailable(value))\n return true;\n }\n return false;\n });\n headingValue = $derived.by(() => {\n this.opts.monthFormat.current;\n this.opts.yearFormat.current;\n return getCalendarHeadingValue({\n months: this.months,\n formatter: this.formatter,\n locale: this.opts.locale.current,\n });\n });\n fullCalendarLabel = $derived.by(() => {\n return `${this.opts.calendarLabel.current} ${this.headingValue}`;\n });\n isOutsideVisibleMonths(date) {\n return !this.visibleMonths.some((month) => isSameMonth(date, month));\n }\n isDateDisabled(date) {\n if (this.opts.isDateDisabled.current(date) || this.opts.disabled.current)\n return true;\n const minValue = this.opts.minValue.current;\n const maxValue = this.opts.maxValue.current;\n if (minValue && isBefore(date, minValue))\n return true;\n if (maxValue && isBefore(maxValue, date))\n return true;\n return false;\n }\n isDateSelected(date) {\n const value = this.opts.value.current;\n if (Array.isArray(value)) {\n return value.some((d) => isSameDay(d, date));\n }\n else if (!value) {\n return false;\n }\n return isSameDay(value, date);\n }\n shiftFocus(node, add) {\n return shiftCalendarFocus({\n node,\n add,\n placeholder: this.opts.placeholder,\n calendarNode: this.opts.ref.current,\n isPrevButtonDisabled: this.isPrevButtonDisabled,\n isNextButtonDisabled: this.isNextButtonDisabled,\n months: this.months,\n numberOfMonths: this.opts.numberOfMonths.current,\n });\n }\n #isMultipleSelectionValid(selectedDates) {\n // only validate for multiple type and when maxDays is set\n if (this.opts.type.current !== \"multiple\")\n return true;\n if (!this.opts.maxDays.current)\n return true;\n const selectedCount = selectedDates.length;\n if (this.opts.maxDays.current && selectedCount > this.opts.maxDays.current)\n return false;\n return true;\n }\n handleCellClick(_, date) {\n if (this.opts.readonly.current ||\n this.opts.isDateDisabled.current?.(date) ||\n this.opts.isDateUnavailable.current?.(date)) {\n return;\n }\n const prev = this.opts.value.current;\n const multiple = this.opts.type.current === \"multiple\";\n if (multiple) {\n if (Array.isArray(prev) || prev === undefined) {\n this.opts.value.current = this.handleMultipleUpdate(prev, date);\n }\n }\n else if (!Array.isArray(prev)) {\n const next = this.handleSingleUpdate(prev, date);\n if (!next) {\n this.announcer.announce(\"Selected date is now empty.\", \"polite\", 5000);\n }\n else {\n this.announcer.announce(`Selected Date: ${this.formatter.selectedDate(next, false)}`, \"polite\");\n }\n this.opts.value.current = getDateWithPreviousTime(next, prev);\n if (next !== undefined) {\n this.opts.onDateSelect?.current?.();\n }\n }\n }\n handleMultipleUpdate(prev, date) {\n if (!prev) {\n const newSelection = [date];\n return this.#isMultipleSelectionValid(newSelection) ? newSelection : [date];\n }\n if (!Array.isArray(prev)) {\n if (DEV)\n throw new Error(\"Invalid value for multiple prop.\");\n return;\n }\n const index = prev.findIndex((d) => isSameDay(d, date));\n const preventDeselect = this.opts.preventDeselect.current;\n if (index === -1) {\n // adding a new date - check if it would be valid\n const newSelection = [...prev, date];\n if (this.#isMultipleSelectionValid(newSelection)) {\n return newSelection;\n }\n else {\n // reset to just the newly selected date when constraints are violated\n return [date];\n }\n }\n else if (preventDeselect) {\n return prev;\n }\n else {\n const next = prev.filter((d) => !isSameDay(d, date));\n if (!next.length) {\n this.opts.placeholder.current = date;\n return undefined;\n }\n return next;\n }\n }\n handleSingleUpdate(prev, date) {\n if (Array.isArray(prev)) {\n if (DEV)\n throw new Error(\"Invalid value for single prop.\");\n }\n if (!prev)\n return date;\n const preventDeselect = this.opts.preventDeselect.current;\n if (!preventDeselect && isSameDay(prev, date)) {\n this.opts.placeholder.current = date;\n return undefined;\n }\n return date;\n }\n onkeydown(event) {\n handleCalendarKeydown({\n event,\n handleCellClick: this.handleCellClick,\n shiftFocus: this.shiftFocus,\n placeholderValue: this.opts.placeholder.current,\n });\n }\n snippetProps = $derived.by(() => ({\n months: this.months,\n weekdays: this.weekdays,\n }));\n getBitsAttr = (part) => {\n return calendarAttrs.getAttr(part);\n };\n props = $derived.by(() => ({\n ...getCalendarElementProps({\n fullCalendarLabel: this.fullCalendarLabel,\n id: this.opts.id.current,\n isInvalid: this.isInvalid,\n disabled: this.opts.disabled.current,\n readonly: this.opts.readonly.current,\n }),\n [this.getBitsAttr(\"root\")]: \"\",\n //\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class CalendarHeadingState {\n static create(opts) {\n return new CalendarHeadingState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-hidden\": boolToStrTrueOrUndef(true),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.root.opts.readonly.current),\n [this.root.getBitsAttr(\"heading\")]: \"\",\n ...this.attachment,\n }));\n}\nconst CalendarCellContext = new Context(\"Calendar.Cell | RangeCalendar.Cell\");\nexport class CalendarCellState {\n static create(opts) {\n return CalendarCellContext.set(new CalendarCellState(opts, CalendarRootContext.get()));\n }\n opts;\n root;\n cellDate = $derived.by(() => toDate(this.opts.date.current));\n isUnavailable = $derived.by(() => this.root.opts.isDateUnavailable.current(this.opts.date.current));\n isDateToday = $derived.by(() => isToday(this.opts.date.current, getLocalTimeZone()));\n isOutsideMonth = $derived.by(() => !isSameMonth(this.opts.date.current, this.opts.month.current));\n isOutsideVisibleMonths = $derived.by(() => this.root.isOutsideVisibleMonths(this.opts.date.current));\n isDisabled = $derived.by(() => this.root.isDateDisabled(this.opts.date.current) ||\n (this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current));\n isFocusedDate = $derived.by(() => isSameDay(this.opts.date.current, this.root.opts.placeholder.current));\n isSelectedDate = $derived.by(() => this.root.isDateSelected(this.opts.date.current));\n labelText = $derived.by(() => this.root.formatter.custom(this.cellDate, {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n }));\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n snippetProps = $derived.by(() => ({\n disabled: this.isDisabled,\n unavailable: this.isUnavailable,\n selected: this.isSelectedDate,\n day: `${this.opts.date.current.day}`,\n }));\n ariaDisabled = $derived.by(() => {\n return (this.isDisabled ||\n (this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current) ||\n this.isUnavailable);\n });\n sharedDataAttrs = $derived.by(() => ({\n \"data-unavailable\": boolToEmptyStrOrUndef(this.isUnavailable),\n \"data-today\": this.isDateToday ? \"\" : undefined,\n \"data-outside-month\": this.isOutsideMonth ? \"\" : undefined,\n \"data-outside-visible-months\": this.isOutsideVisibleMonths ? \"\" : undefined,\n \"data-focused\": this.isFocusedDate ? \"\" : undefined,\n \"data-selected\": boolToEmptyStrOrUndef(this.isSelectedDate),\n \"data-value\": this.opts.date.current.toString(),\n \"data-type\": getDateValueType(this.opts.date.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.isDisabled ||\n (this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current)),\n }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"gridcell\",\n \"aria-selected\": boolToStr(this.isSelectedDate),\n \"aria-disabled\": boolToStr(this.ariaDisabled),\n ...this.sharedDataAttrs,\n [this.root.getBitsAttr(\"cell\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class CalendarDayState {\n static create(opts) {\n return new CalendarDayState(opts, CalendarCellContext.get());\n }\n opts;\n cell;\n attachment;\n constructor(opts, cell) {\n this.opts = opts;\n this.cell = cell;\n this.onclick = this.onclick.bind(this);\n this.attachment = attachRef(this.opts.ref);\n }\n #tabindex = $derived.by(() => (this.cell.isOutsideMonth && this.cell.root.opts.disableDaysOutsideMonth.current) ||\n this.cell.isDisabled\n ? undefined\n : this.cell.isFocusedDate\n ? 0\n : -1);\n onclick(e) {\n if (this.cell.isDisabled)\n return;\n this.cell.root.handleCellClick(e, this.cell.opts.date.current);\n }\n snippetProps = $derived.by(() => ({\n disabled: this.cell.isDisabled,\n unavailable: this.cell.isUnavailable,\n selected: this.cell.isSelectedDate,\n day: `${this.cell.opts.date.current.day}`,\n }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"button\",\n \"aria-label\": this.cell.labelText,\n \"aria-disabled\": boolToStr(this.cell.ariaDisabled),\n ...this.cell.sharedDataAttrs,\n tabindex: this.#tabindex,\n [this.cell.root.getBitsAttr(\"day\")]: \"\",\n // Shared logic for range calendar and calendar\n \"data-bits-day\": \"\",\n //\n onclick: this.onclick,\n ...this.attachment,\n }));\n}\nexport class CalendarNextButtonState {\n static create(opts) {\n return new CalendarNextButtonState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n isDisabled = $derived.by(() => this.root.isNextButtonDisabled);\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.onclick = this.onclick.bind(this);\n this.attachment = attachRef(this.opts.ref);\n }\n onclick(_) {\n if (this.isDisabled)\n return;\n this.root.nextPage();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"button\",\n type: \"button\",\n \"aria-label\": \"Next\",\n \"aria-disabled\": boolToStr(this.isDisabled),\n \"data-disabled\": boolToEmptyStrOrUndef(this.isDisabled),\n disabled: this.isDisabled,\n [this.root.getBitsAttr(\"next-button\")]: \"\",\n //\n onclick: this.onclick,\n ...this.attachment,\n }));\n}\nexport class CalendarPrevButtonState {\n static create(opts) {\n return new CalendarPrevButtonState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n isDisabled = $derived.by(() => this.root.isPrevButtonDisabled);\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.onclick = this.onclick.bind(this);\n this.attachment = attachRef(this.opts.ref);\n }\n onclick(_) {\n if (this.isDisabled)\n return;\n this.root.prevPage();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"button\",\n type: \"button\",\n \"aria-label\": \"Previous\",\n \"aria-disabled\": boolToStr(this.isDisabled),\n \"data-disabled\": boolToEmptyStrOrUndef(this.isDisabled),\n disabled: this.isDisabled,\n [this.root.getBitsAttr(\"prev-button\")]: \"\",\n //\n onclick: this.onclick,\n ...this.attachment,\n }));\n}\nexport class CalendarGridState {\n static create(opts) {\n return new CalendarGridState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n tabindex: -1,\n role: \"grid\",\n \"aria-readonly\": boolToStr(this.root.opts.readonly.current),\n \"aria-disabled\": boolToStr(this.root.opts.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.root.opts.readonly.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n [this.root.getBitsAttr(\"grid\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class CalendarGridBodyState {\n static create(opts) {\n return new CalendarGridBodyState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.root.opts.readonly.current),\n [this.root.getBitsAttr(\"grid-body\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class CalendarGridHeadState {\n static create(opts) {\n return new CalendarGridHeadState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.root.opts.readonly.current),\n [this.root.getBitsAttr(\"grid-head\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class CalendarGridRowState {\n static create(opts) {\n return new CalendarGridRowState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.root.opts.readonly.current),\n [this.root.getBitsAttr(\"grid-row\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class CalendarHeadCellState {\n static create(opts) {\n return new CalendarHeadCellState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.root.opts.readonly.current),\n [this.root.getBitsAttr(\"head-cell\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class CalendarHeaderState {\n static create(opts) {\n return new CalendarHeaderState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.root.opts.readonly.current),\n [this.root.getBitsAttr(\"header\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class CalendarMonthSelectState {\n static create(opts) {\n return new CalendarMonthSelectState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.onchange = this.onchange.bind(this);\n this.attachment = attachRef(this.opts.ref);\n }\n monthItems = $derived.by(() => {\n this.root.opts.locale.current;\n const monthNumbers = this.opts.months.current;\n const monthFormat = this.opts.monthFormat.current;\n const months = [];\n for (const month of monthNumbers) {\n // create a date with the current year and the month to get localized name\n const date = this.root.opts.placeholder.current.set({ month });\n let label;\n if (typeof monthFormat === \"function\") {\n label = monthFormat(month);\n }\n else {\n label = this.root.formatter.custom(toDate(date), { month: monthFormat });\n }\n months.push({\n value: month,\n label,\n });\n }\n return months;\n });\n currentMonth = $derived.by(() => this.root.opts.placeholder.current.month);\n isDisabled = $derived.by(() => this.root.opts.disabled.current || this.opts.disabled.current);\n snippetProps = $derived.by(() => {\n return {\n monthItems: this.monthItems,\n selectedMonthItem: this.monthItems.find((month) => month.value === this.currentMonth),\n };\n });\n onchange(event) {\n if (this.isDisabled)\n return;\n const target = event.target;\n const month = parseInt(target.value, 10);\n if (!isNaN(month)) {\n this.root.opts.placeholder.current = this.root.opts.placeholder.current.set({ month });\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n value: this.currentMonth,\n disabled: this.isDisabled,\n \"data-disabled\": boolToEmptyStrOrUndef(this.isDisabled),\n [this.root.getBitsAttr(\"month-select\")]: \"\",\n //\n onchange: this.onchange,\n ...this.attachment,\n }));\n}\nexport class CalendarYearSelectState {\n static create(opts) {\n return new CalendarYearSelectState(opts, CalendarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.onchange = this.onchange.bind(this);\n this.attachment = attachRef(this.opts.ref);\n }\n years = $derived.by(() => {\n if (this.opts.years.current && this.opts.years.current.length)\n return this.opts.years.current;\n return this.root.defaultYears;\n });\n yearItems = $derived.by(() => {\n this.root.opts.locale.current;\n const yearFormat = this.opts.yearFormat.current;\n const localYears = [];\n for (const year of this.years) {\n // create a date with the year to get localized formatting\n const date = this.root.opts.placeholder.current.set({ year });\n let label;\n if (typeof yearFormat === \"function\") {\n label = yearFormat(year);\n }\n else {\n label = this.root.formatter.custom(toDate(date), { year: yearFormat });\n }\n localYears.push({\n value: year,\n label,\n });\n }\n return localYears;\n });\n currentYear = $derived.by(() => this.root.opts.placeholder.current.year);\n isDisabled = $derived.by(() => this.root.opts.disabled.current || this.opts.disabled.current);\n snippetProps = $derived.by(() => {\n return {\n yearItems: this.yearItems,\n selectedYearItem: this.yearItems.find((year) => year.value === this.currentYear),\n };\n });\n onchange(event) {\n if (this.isDisabled)\n return;\n const target = event.target;\n const year = parseInt(target.value, 10);\n if (!isNaN(year)) {\n this.root.opts.placeholder.current = this.root.opts.placeholder.current.set({ year });\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n value: this.currentYear,\n disabled: this.isDisabled,\n \"data-disabled\": boolToEmptyStrOrUndef(this.isDisabled),\n [this.root.getBitsAttr(\"year-select\")]: \"\",\n //\n onchange: this.onchange,\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { watch } from \"runed\";\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { type DateValue } from \"@internationalized/date\";\n\timport { CalendarRootState } from \"../calendar.svelte.js\";\n\timport type { CalendarRootProps } from \"../types.js\";\n\timport { useId } from \"../../../internal/use-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { getDefaultDate } from \"../../../internal/date-time/utils.js\";\n\timport { resolveLocaleProp } from \"../../utilities/config/prop-resolvers.js\";\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tid = useId(),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(),\n\t\tonValueChange = noop,\n\t\tplaceholder = $bindable(),\n\t\tonPlaceholderChange = noop,\n\t\tweekdayFormat = \"narrow\",\n\t\tweekStartsOn,\n\t\tpagedNavigation = false,\n\t\tisDateDisabled = () => false,\n\t\tisDateUnavailable = () => false,\n\t\tfixedWeeks = false,\n\t\tnumberOfMonths = 1,\n\t\tlocale,\n\t\tcalendarLabel = \"Event\",\n\t\tdisabled = false,\n\t\treadonly = false,\n\t\tminValue = undefined,\n\t\tmaxValue = undefined,\n\t\tpreventDeselect = false,\n\t\ttype,\n\t\tdisableDaysOutsideMonth = true,\n\t\tinitialFocus = false,\n\t\tmaxDays,\n\t\tmonthFormat = \"long\",\n\t\tyearFormat = \"numeric\",\n\t\t...restProps\n\t}: CalendarRootProps = $props();\n\n\tconst defaultPlaceholder = getDefaultDate({\n\t\tdefaultValue: value,\n\t\tminValue,\n\t\tmaxValue,\n\t});\n\n\tfunction handleDefaultPlaceholder() {\n\t\tif (placeholder !== undefined) return;\n\t\tplaceholder = defaultPlaceholder;\n\t}\n\n\t// SSR\n\thandleDefaultPlaceholder();\n\n\twatch.pre(\n\t\t() => placeholder,\n\t\t() => {\n\t\t\thandleDefaultPlaceholder();\n\t\t}\n\t);\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tvalue = type === \"single\" ? undefined : [];\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tconst rootState = CalendarRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tweekdayFormat: boxWith(() => weekdayFormat),\n\t\tweekStartsOn: boxWith(() => weekStartsOn),\n\t\tpagedNavigation: boxWith(() => pagedNavigation),\n\t\tisDateDisabled: boxWith(() => isDateDisabled),\n\t\tisDateUnavailable: boxWith(() => isDateUnavailable),\n\t\tfixedWeeks: boxWith(() => fixedWeeks),\n\t\tnumberOfMonths: boxWith(() => numberOfMonths),\n\t\tlocale: resolveLocaleProp(() => locale),\n\t\tcalendarLabel: boxWith(() => calendarLabel),\n\t\treadonly: boxWith(() => readonly),\n\t\tdisabled: boxWith(() => disabled),\n\t\tminValue: boxWith(() => minValue),\n\t\tmaxValue: boxWith(() => maxValue),\n\t\tdisableDaysOutsideMonth: boxWith(() => disableDaysOutsideMonth),\n\t\tinitialFocus: boxWith(() => initialFocus),\n\t\tmaxDays: boxWith(() => maxDays),\n\t\tplaceholder: boxWith(\n\t\t\t() => placeholder as DateValue,\n\t\t\t(v) => {\n\t\t\t\tplaceholder = v;\n\t\t\t\tonPlaceholderChange(v as DateValue);\n\t\t\t}\n\t\t),\n\t\tpreventDeselect: boxWith(() => preventDeselect),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\t// oxlint-disable-next-line no-explicit-any\n\t\t\t\tonValueChange(v as any);\n\t\t\t}\n\t\t),\n\t\ttype: boxWith(() => type),\n\t\tmonthFormat: boxWith(() => monthFormat),\n\t\tyearFormat: boxWith(() => yearFormat),\n\t\tdefaultPlaceholder,\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...rootState.snippetProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.(rootState.snippetProps)}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CalendarDayState } from \"../calendar.svelte.js\";\n\timport type { CalendarDayProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: CalendarDayProps = $props();\n\n\tconst dayState = CalendarDayState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, dayState.props));\n</script>\n\n{#if child}\n\t{@render child({\n\t\tprops: mergedProps,\n\t\t...dayState.snippetProps,\n\t})}\n{:else}\n\t<div {...mergedProps}>\n\t\t{#if children}\n\t\t\t{@render children?.(dayState.snippetProps)}\n\t\t{:else}\n\t\t\t{dayState.cell.opts.date.current.day}\n\t\t{/if}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CalendarGridState } from \"../calendar.svelte.js\";\n\timport type { CalendarGridProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: CalendarGridProps = $props();\n\n\tconst gridState = CalendarGridState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, gridState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<table {...mergedProps}>\n\t\t{@render children?.()}\n\t</table>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CalendarGridBodyProps } from \"../types.js\";\n\timport { CalendarGridBodyState } from \"../calendar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: CalendarGridBodyProps = $props();\n\n\tconst gridBodyState = CalendarGridBodyState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, gridBodyState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<tbody {...mergedProps}>\n\t\t{@render children?.()}\n\t</tbody>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CalendarCellState } from \"../calendar.svelte.js\";\n\timport type { CalendarCellProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tdate,\n\t\tmonth,\n\t\t...restProps\n\t}: CalendarCellProps = $props();\n\n\tconst cellState = CalendarCellState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdate: boxWith(() => date),\n\t\tmonth: boxWith(() => month),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, cellState.props));\n</script>\n\n{#if child}\n\t{@render child({\n\t\tprops: mergedProps,\n\t\t...cellState.snippetProps,\n\t})}\n{:else}\n\t<td {...mergedProps}>\n\t\t{@render children?.(cellState.snippetProps)}\n\t</td>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CalendarGridHeadState } from \"../calendar.svelte.js\";\n\timport type { CalendarGridHeadProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: CalendarGridHeadProps = $props();\n\n\tconst gridHeadState = CalendarGridHeadState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, gridHeadState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<thead {...mergedProps}>\n\t\t{@render children?.()}\n\t</thead>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CalendarHeadCellState } from \"../calendar.svelte.js\";\n\timport type { CalendarHeadCellProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: CalendarHeadCellProps = $props();\n\n\tconst headCellState = CalendarHeadCellState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, headCellState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<th {...mergedProps}>\n\t\t{@render children?.()}\n\t</th>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CalendarGridRowState } from \"../calendar.svelte.js\";\n\timport type { CalendarGridRowProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: CalendarGridRowProps = $props();\n\n\tconst gridRowState = CalendarGridRowState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, gridRowState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<tr {...mergedProps}>\n\t\t{@render children?.()}\n\t</tr>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CalendarHeaderState } from \"../calendar.svelte.js\";\n\timport type { CalendarHeaderProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: CalendarHeaderProps = $props();\n\n\tconst headerState = CalendarHeaderState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, headerState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<header {...mergedProps}>\n\t\t{@render children?.()}\n\t</header>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CalendarHeadingProps } from \"../types.js\";\n\timport { CalendarHeadingState } from \"../calendar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: CalendarHeadingProps = $props();\n\n\tconst headingState = CalendarHeadingState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, headingState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, headingValue: headingState.root.headingValue })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{#if children}\n\t\t\t{@render children?.({ headingValue: headingState.root.headingValue })}\n\t\t{:else}\n\t\t\t{headingState.root.headingValue}\n\t\t{/if}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CalendarMonthSelectProps } from \"../types.js\";\n\timport { CalendarMonthSelectState } from \"../calendar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tmonths = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],\n\t\tmonthFormat = \"long\",\n\t\tdisabled = false,\n\t\t\"aria-label\": ariaLabel = \"Select a month\",\n\t\t...restProps\n\t}: CalendarMonthSelectProps = $props();\n\n\tconst monthSelectState = CalendarMonthSelectState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tmonths: boxWith(() => months),\n\t\tmonthFormat: boxWith(() => monthFormat),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, monthSelectState.props, { \"aria-label\": ariaLabel })\n\t);\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...monthSelectState.snippetProps })}\n{:else}\n\t<select {...mergedProps}>\n\t\t{#if children}\n\t\t\t{@render children?.(monthSelectState.snippetProps)}\n\t\t{:else}\n\t\t\t{#each monthSelectState.monthItems as month (month.value)}\n\t\t\t\t<option\n\t\t\t\t\tvalue={month.value}\n\t\t\t\t\tselected={month.value === monthSelectState.currentMonth}\n\t\t\t\t>\n\t\t\t\t\t{month.label}\n\t\t\t\t</option>\n\t\t\t{/each}\n\t\t{/if}\n\t</select>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CalendarNextButtonState } from \"../calendar.svelte.js\";\n\timport type { CalendarNextButtonProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t// for safari\n\t\ttabindex = 0,\n\t\t...restProps\n\t}: CalendarNextButtonProps = $props();\n\n\tconst nextButtonState = CalendarNextButtonState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, nextButtonState.props, { tabindex }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CalendarPrevButtonProps } from \"../types.js\";\n\timport { CalendarPrevButtonState } from \"../calendar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t// for safari\n\t\ttabindex = 0,\n\t\t...restProps\n\t}: CalendarPrevButtonProps = $props();\n\n\tconst prevButtonState = CalendarPrevButtonState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, prevButtonState.props, { tabindex }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CalendarYearSelectProps } from \"../types.js\";\n\timport { CalendarYearSelectState } from \"../calendar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tyears,\n\t\tyearFormat = \"numeric\",\n\t\tdisabled = false,\n\t\t\"aria-label\": ariaLabel = \"Select a year\",\n\t\t...restProps\n\t}: CalendarYearSelectProps = $props();\n\n\tconst yearSelectState = CalendarYearSelectState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tyears: boxWith(() => years),\n\t\tyearFormat: boxWith(() => yearFormat),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, yearSelectState.props, { \"aria-label\": ariaLabel })\n\t);\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...yearSelectState.snippetProps })}\n{:else}\n\t<select {...mergedProps}>\n\t\t{#if children}\n\t\t\t{@render children?.(yearSelectState.snippetProps)}\n\t\t{:else}\n\t\t\t{#each yearSelectState.yearItems as year (year.value)}\n\t\t\t\t<option value={year.value} selected={year.value === yearSelectState.currentYear}>\n\t\t\t\t\t{year.label}\n\t\t\t\t</option>\n\t\t\t{/each}\n\t\t{/if}\n\t</select>\n{/if}\n", "export { default as Root } from \"./components/checkbox.svelte\";\nexport { default as Group } from \"./components/checkbox-group.svelte\";\nexport { default as GroupLabel } from \"./components/checkbox-group-label.svelte\";\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { boolToStr, createBitsAttrs, getAriaChecked, boolToEmptyStrOrUndef, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { arraysAreEqual } from \"../../internal/arrays.js\";\nimport { isHTMLElement } from \"../../internal/is.js\";\nconst checkboxAttrs = createBitsAttrs({\n component: \"checkbox\",\n parts: [\"root\", \"group\", \"group-label\", \"input\"],\n});\nexport const CheckboxGroupContext = new Context(\"Checkbox.Group\");\nexport class CheckboxGroupState {\n static create(opts) {\n return CheckboxGroupContext.set(new CheckboxGroupState(opts));\n }\n opts;\n attachment;\n labelId = $state(undefined);\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n }\n addValue(checkboxValue) {\n if (!checkboxValue)\n return;\n if (!this.opts.value.current.includes(checkboxValue)) {\n const newValue = [...$state.snapshot(this.opts.value.current), checkboxValue];\n this.opts.value.current = newValue;\n if (arraysAreEqual(this.opts.value.current, newValue))\n return;\n this.opts.onValueChange.current(newValue);\n }\n }\n removeValue(checkboxValue) {\n if (!checkboxValue)\n return;\n const index = this.opts.value.current.indexOf(checkboxValue);\n if (index === -1)\n return;\n const newValue = this.opts.value.current.filter((v) => v !== checkboxValue);\n this.opts.value.current = newValue;\n if (arraysAreEqual(this.opts.value.current, newValue))\n return;\n this.opts.onValueChange.current(newValue);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n \"aria-labelledby\": this.labelId,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n [checkboxAttrs.group]: \"\",\n ...this.attachment,\n }));\n}\nexport class CheckboxGroupLabelState {\n static create(opts) {\n return new CheckboxGroupLabelState(opts, CheckboxGroupContext.get());\n }\n opts;\n group;\n attachment;\n constructor(opts, group) {\n this.opts = opts;\n this.group = group;\n this.group.labelId = this.opts.id.current;\n this.attachment = attachRef(this.opts.ref);\n watch.pre(() => this.opts.id.current, (id) => {\n this.group.labelId = id;\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.group.opts.disabled.current),\n [checkboxAttrs[\"group-label\"]]: \"\",\n ...this.attachment,\n }));\n}\nconst CheckboxRootContext = new Context(\"Checkbox.Root\");\nexport class CheckboxRootState {\n static create(opts, group = null) {\n return CheckboxRootContext.set(new CheckboxRootState(opts, group));\n }\n opts;\n group;\n trueName = $derived.by(() => {\n if (this.group && this.group.opts.name.current)\n return this.group.opts.name.current;\n return this.opts.name.current;\n });\n trueRequired = $derived.by(() => {\n if (this.group && this.group.opts.required.current)\n return true;\n return this.opts.required.current;\n });\n trueDisabled = $derived.by(() => {\n if (this.group && this.group.opts.disabled.current)\n return true;\n return this.opts.disabled.current;\n });\n trueReadonly = $derived.by(() => {\n if (this.group && this.group.opts.readonly.current)\n return true;\n return this.opts.readonly.current;\n });\n attachment;\n constructor(opts, group) {\n this.opts = opts;\n this.group = group;\n this.attachment = attachRef(this.opts.ref);\n this.onkeydown = this.onkeydown.bind(this);\n this.onclick = this.onclick.bind(this);\n watch.pre([() => $state.snapshot(this.group?.opts.value.current), () => this.opts.value.current], ([groupValue, value]) => {\n if (!groupValue || !value)\n return;\n this.opts.checked.current = groupValue.includes(value);\n });\n watch.pre(() => this.opts.checked.current, (checked) => {\n if (!this.group)\n return;\n if (checked) {\n this.group?.addValue(this.opts.value.current);\n }\n else {\n this.group?.removeValue(this.opts.value.current);\n }\n });\n }\n onkeydown(e) {\n if (this.trueDisabled || this.trueReadonly)\n return;\n if (e.key === kbd.ENTER) {\n e.preventDefault();\n if (this.opts.type.current === \"submit\") {\n const form = e.currentTarget.closest(\"form\");\n form?.requestSubmit();\n }\n return;\n }\n if (e.key === kbd.SPACE) {\n e.preventDefault();\n this.#toggle();\n }\n }\n #toggle() {\n if (this.opts.indeterminate.current) {\n this.opts.indeterminate.current = false;\n this.opts.checked.current = true;\n }\n else {\n this.opts.checked.current = !this.opts.checked.current;\n }\n }\n onclick(e) {\n if (this.trueDisabled || this.trueReadonly)\n return;\n if (this.opts.type.current === \"submit\") {\n this.#toggle();\n return;\n }\n e.preventDefault();\n this.#toggle();\n }\n snippetProps = $derived.by(() => ({\n checked: this.opts.checked.current,\n indeterminate: this.opts.indeterminate.current,\n }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"checkbox\",\n type: this.opts.type.current,\n disabled: this.trueDisabled,\n \"aria-checked\": getAriaChecked(this.opts.checked.current, this.opts.indeterminate.current),\n \"aria-required\": boolToStr(this.trueRequired),\n \"aria-readonly\": boolToStr(this.trueReadonly),\n \"data-disabled\": boolToEmptyStrOrUndef(this.trueDisabled),\n \"data-readonly\": boolToEmptyStrOrUndef(this.trueReadonly),\n \"data-state\": getCheckboxDataState(this.opts.checked.current, this.opts.indeterminate.current),\n [checkboxAttrs.root]: \"\",\n //\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class CheckboxInputState {\n static create() {\n return new CheckboxInputState(CheckboxRootContext.get());\n }\n root;\n trueChecked = $derived.by(() => {\n if (!this.root.group)\n return this.root.opts.checked.current;\n if (this.root.opts.value.current !== undefined &&\n this.root.group.opts.value.current.includes(this.root.opts.value.current)) {\n return true;\n }\n return false;\n });\n shouldRender = $derived.by(() => Boolean(this.root.trueName));\n constructor(root) {\n this.root = root;\n this.onfocus = this.onfocus.bind(this);\n }\n onfocus(_) {\n if (!isHTMLElement(this.root.opts.ref.current))\n return;\n this.root.opts.ref.current.focus();\n }\n props = $derived.by(() => ({\n type: \"checkbox\",\n checked: this.root.opts.checked.current === true,\n disabled: this.root.trueDisabled,\n required: this.root.trueRequired,\n name: this.root.trueName,\n value: this.root.opts.value.current,\n readonly: this.root.trueReadonly,\n onfocus: this.onfocus,\n }));\n}\nfunction getCheckboxDataState(checked, indeterminate) {\n if (indeterminate)\n return \"indeterminate\";\n return checked ? \"checked\" : \"unchecked\";\n}\n", "<script lang=\"ts\">\n\timport { mergeProps, srOnlyStylesString } from \"svelte-toolbelt\";\n\timport type { HTMLInputAttributes } from \"svelte/elements\";\n\n\tlet { value = $bindable(), ...restProps }: HTMLInputAttributes = $props();\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, {\n\t\t\t\"aria-hidden\": \"true\",\n\t\t\ttabindex: -1,\n\t\t\tstyle: srOnlyStylesString,\n\t\t})\n\t);\n</script>\n\n{#if mergedProps.type === \"checkbox\"}\n\t<input {...mergedProps} {value} />\n{:else}\n\t<input bind:value {...mergedProps} />\n{/if}\n", "<script lang=\"ts\">\n\timport { CheckboxInputState } from \"../checkbox.svelte.js\";\n\timport HiddenInput from \"../../utilities/hidden-input.svelte\";\n\n\tconst inputState = CheckboxInputState.create();\n</script>\n\n{#if inputState.shouldRender}\n\t<HiddenInput {...inputState.props} />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CheckboxRootProps } from \"../types.js\";\n\timport { CheckboxGroupContext, CheckboxRootState } from \"../checkbox.svelte.js\";\n\timport CheckboxInput from \"./checkbox-input.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { watch } from \"runed\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchecked = $bindable(false),\n\t\tref = $bindable(null),\n\t\tonCheckedChange,\n\t\tchildren,\n\t\tdisabled = false,\n\t\trequired = false,\n\t\tname = undefined,\n\t\tvalue = \"on\",\n\t\tid = createId(uid),\n\t\tindeterminate = $bindable(false),\n\t\tonIndeterminateChange,\n\t\tchild,\n\t\ttype = \"button\",\n\t\treadonly,\n\t\t...restProps\n\t}: CheckboxRootProps = $props();\n\n\tconst group = CheckboxGroupContext.getOr(null);\n\n\tif (group && value) {\n\t\tif (group.opts.value.current.includes(value)) {\n\t\t\tchecked = true;\n\t\t} else {\n\t\t\tchecked = false;\n\t\t}\n\t}\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\tif (group && value) {\n\t\t\t\tif (group.opts.value.current.includes(value)) {\n\t\t\t\t\tchecked = true;\n\t\t\t\t} else {\n\t\t\t\t\tchecked = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t);\n\n\tconst rootState = CheckboxRootState.create(\n\t\t{\n\t\t\tchecked: boxWith(\n\t\t\t\t() => checked,\n\t\t\t\t(v) => {\n\t\t\t\t\tchecked = v;\n\t\t\t\t\tonCheckedChange?.(v);\n\t\t\t\t}\n\t\t\t),\n\t\t\tdisabled: boxWith(() => disabled ?? false),\n\t\t\trequired: boxWith(() => required),\n\t\t\tname: boxWith(() => name),\n\t\t\tvalue: boxWith(() => value),\n\t\t\tid: boxWith(() => id),\n\t\t\tref: boxWith(\n\t\t\t\t() => ref,\n\t\t\t\t(v) => (ref = v)\n\t\t\t),\n\t\t\tindeterminate: boxWith(\n\t\t\t\t() => indeterminate,\n\t\t\t\t(v) => {\n\t\t\t\t\tindeterminate = v;\n\t\t\t\t\tonIndeterminateChange?.(v);\n\t\t\t\t}\n\t\t\t),\n\t\t\ttype: boxWith(() => type),\n\t\t\treadonly: boxWith(() => Boolean(readonly)),\n\t\t},\n\t\tgroup\n\t);\n\n\tconst mergedProps = $derived(mergeProps({ ...restProps }, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({\n\t\tprops: mergedProps,\n\t\t...rootState.snippetProps,\n\t})}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.(rootState.snippetProps)}\n\t</button>\n{/if}\n\n<CheckboxInput />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CheckboxGroupProps } from \"../types.js\";\n\timport { CheckboxGroupState } from \"../checkbox.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { arraysAreEqual } from \"../../../internal/arrays.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tvalue = $bindable([]),\n\t\tonValueChange = noop,\n\t\tname,\n\t\trequired,\n\t\tdisabled,\n\t\tchildren,\n\t\tchild,\n\t\treadonly,\n\t\t...restProps\n\t}: CheckboxGroupProps = $props();\n\n\tconst groupState = CheckboxGroupState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t\trequired: boxWith(() => Boolean(required)),\n\t\treadonly: boxWith(() => Boolean(readonly)),\n\t\tname: boxWith(() => name),\n\t\tvalue: boxWith(\n\t\t\t() => $state.snapshot(value),\n\t\t\t(v) => {\n\t\t\t\tif (arraysAreEqual(value, v)) return;\n\t\t\t\tvalue = $state.snapshot(v);\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tonValueChange: boxWith(() => onValueChange),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, groupState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CheckboxGroupLabelProps } from \"../types.js\";\n\timport { CheckboxGroupLabelState } from \"../checkbox.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: CheckboxGroupLabelProps = $props();\n\n\tconst labelState = CheckboxGroupLabelState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, labelState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.()}\n\t</span>\n{/if}\n", "export { default as Root } from \"./components/collapsible.svelte\";\nexport { default as Content } from \"./components/collapsible-content.svelte\";\nexport { default as Trigger } from \"./components/collapsible-trigger.svelte\";\n", "import { afterTick, attachRef, boxWith, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { createBitsAttrs, boolToStr, boolToEmptyStrOrUndef, getDataOpenClosed, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { on } from \"svelte/events\";\nimport { PresenceManager } from \"../../internal/presence-manager.svelte.js\";\nconst collapsibleAttrs = createBitsAttrs({\n component: \"collapsible\",\n parts: [\"root\", \"content\", \"trigger\"],\n});\nconst CollapsibleRootContext = new Context(\"Collapsible.Root\");\nexport class CollapsibleRootState {\n static create(opts) {\n return CollapsibleRootContext.set(new CollapsibleRootState(opts));\n }\n opts;\n attachment;\n contentNode = $state(null);\n contentPresence;\n contentId = $state(undefined);\n constructor(opts) {\n this.opts = opts;\n this.toggleOpen = this.toggleOpen.bind(this);\n this.attachment = attachRef(this.opts.ref);\n this.contentPresence = new PresenceManager({\n ref: boxWith(() => this.contentNode),\n open: this.opts.open,\n onComplete: () => {\n this.opts.onOpenChangeComplete.current(this.opts.open.current);\n },\n });\n }\n toggleOpen() {\n this.opts.open.current = !this.opts.open.current;\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-state\": getDataOpenClosed(this.opts.open.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n [collapsibleAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nexport class CollapsibleContentState {\n static create(opts) {\n return new CollapsibleContentState(opts, CollapsibleRootContext.get());\n }\n opts;\n root;\n attachment;\n present = $derived.by(() => {\n if (this.opts.hiddenUntilFound.current)\n return this.root.opts.open.current;\n return this.opts.forceMount.current || this.root.opts.open.current;\n });\n #originalStyles;\n #isMountAnimationPrevented = $state(false);\n #width = $state(0);\n #height = $state(0);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.#isMountAnimationPrevented = root.opts.open.current;\n this.root.contentId = this.opts.id.current;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.contentNode = v));\n watch.pre(() => this.opts.id.current, (id) => {\n this.root.contentId = id;\n });\n $effect.pre(() => {\n const rAF = requestAnimationFrame(() => {\n this.#isMountAnimationPrevented = false;\n });\n return () => {\n cancelAnimationFrame(rAF);\n };\n });\n watch.pre([() => this.opts.ref.current, () => this.opts.hiddenUntilFound.current], ([node, hiddenUntilFound]) => {\n if (!node || !hiddenUntilFound)\n return;\n const handleBeforeMatch = () => {\n if (this.root.opts.open.current)\n return;\n // we need to defer opening until after browser completes search highlighting\n // otherwise the browser will immediately open the collapsible\n // and the search highlighting will not be visible\n requestAnimationFrame(() => {\n this.root.opts.open.current = true;\n });\n };\n return on(node, \"beforematch\", handleBeforeMatch);\n });\n watch([() => this.opts.ref.current, () => this.present], ([node]) => {\n if (!node)\n return;\n afterTick(() => {\n if (!this.opts.ref.current)\n return;\n // get the dimensions of the element\n this.#originalStyles = this.#originalStyles || {\n transitionDuration: node.style.transitionDuration,\n animationName: node.style.animationName,\n };\n // block any animations/transitions so the element renders at full dimensions\n node.style.transitionDuration = \"0s\";\n node.style.animationName = \"none\";\n const rect = node.getBoundingClientRect();\n this.#height = rect.height;\n this.#width = rect.width;\n // unblock any animations/transitions that were originally set if not the initial render\n if (!this.#isMountAnimationPrevented) {\n const { animationName, transitionDuration } = this.#originalStyles;\n node.style.transitionDuration = transitionDuration;\n node.style.animationName = animationName;\n }\n });\n });\n }\n get shouldRender() {\n return this.root.contentPresence.shouldRender;\n }\n snippetProps = $derived.by(() => ({\n open: this.root.opts.open.current,\n }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n style: {\n \"--bits-collapsible-content-height\": this.#height\n ? `${this.#height}px`\n : undefined,\n \"--bits-collapsible-content-width\": this.#width\n ? `${this.#width}px`\n : undefined,\n },\n hidden: this.opts.hiddenUntilFound.current && !this.root.opts.open.current\n ? \"until-found\"\n : undefined,\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n [collapsibleAttrs.content]: \"\",\n ...(this.opts.hiddenUntilFound.current && !this.shouldRender\n ? {}\n : {\n hidden: this.opts.hiddenUntilFound.current\n ? !this.shouldRender\n : this.opts.forceMount.current\n ? undefined\n : !this.shouldRender,\n }),\n ...this.attachment,\n }));\n}\nexport class CollapsibleTriggerState {\n static create(opts) {\n return new CollapsibleTriggerState(opts, CollapsibleRootContext.get());\n }\n opts;\n root;\n attachment;\n #isDisabled = $derived.by(() => this.opts.disabled.current || this.root.opts.disabled.current);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n onclick(e) {\n if (this.#isDisabled)\n return;\n if (e.button !== 0)\n return e.preventDefault();\n this.root.toggleOpen();\n }\n onkeydown(e) {\n if (this.#isDisabled)\n return;\n if (e.key === kbd.SPACE || e.key === kbd.ENTER) {\n e.preventDefault();\n this.root.toggleOpen();\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n type: \"button\",\n disabled: this.#isDisabled,\n \"aria-controls\": this.root.contentId,\n \"aria-expanded\": boolToStr(this.root.opts.open.current),\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.#isDisabled),\n [collapsibleAttrs.trigger]: \"\",\n //\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CollapsibleRootProps } from \"../types.js\";\n\timport { CollapsibleRootState } from \"../collapsible.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\topen = $bindable(false),\n\t\tdisabled = false,\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\t...restProps\n\t}: CollapsibleRootProps = $props();\n\n\tconst rootState = CollapsibleRootState.create({\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\tdisabled: boxWith(() => disabled),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CollapsibleContentState } from \"../collapsible.svelte.js\";\n\timport type { CollapsibleContentProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tforceMount = false,\n\t\thiddenUntilFound = false,\n\t\tchildren,\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: CollapsibleContentProps = $props();\n\n\tconst contentState = CollapsibleContentState.create({\n\t\tid: boxWith(() => id),\n\t\tforceMount: boxWith(() => forceMount),\n\t\thiddenUntilFound: boxWith(() => hiddenUntilFound),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if child}\n\t{@render child({\n\t\t...contentState.snippetProps,\n\t\tprops: mergedProps,\n\t})}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CollapsibleTriggerProps } from \"../types.js\";\n\timport { CollapsibleTriggerState } from \"../collapsible.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tdisabled = false,\n\t\t...restProps\n\t}: CollapsibleTriggerProps = $props();\n\n\tconst triggerState = CollapsibleTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => disabled),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "export { default as Root } from \"./components/combobox.svelte\";\nexport { default as Input } from \"./components/combobox-input.svelte\";\nexport { default as Separator } from \"../separator/components/separator.svelte\";\nexport { default as Arrow } from \"../utilities/arrow/arrow.svelte\";\nexport { default as Trigger } from \"./components/combobox-trigger.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\nexport { default as Content } from \"../select/components/select-content.svelte\";\nexport { default as ContentStatic } from \"../select/components/select-content-static.svelte\";\nexport { default as Item } from \"../select/components/select-item.svelte\";\nexport { default as Group } from \"../select/components/select-group.svelte\";\nexport { default as GroupHeading } from \"../select/components/select-group-heading.svelte\";\nexport { default as Viewport } from \"../select/components/select-viewport.svelte\";\nexport { default as ScrollDownButton } from \"../select/components/select-scroll-down-button.svelte\";\nexport { default as ScrollUpButton } from \"../select/components/select-scroll-up-button.svelte\";\n", "/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nconst yAxisSides = /*#__PURE__*/new Set(['top', 'bottom']);\nfunction getSideAxis(placement) {\n return yAxisSides.has(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nconst lrPlacement = ['left', 'right'];\nconst rlPlacement = ['right', 'left'];\nconst tbPlacement = ['top', 'bottom'];\nconst btPlacement = ['bottom', 'top'];\nfunction getSideList(side, isStart, rtl) {\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rlPlacement : lrPlacement;\n return isStart ? lrPlacement : rlPlacement;\n case 'left':\n case 'right':\n return isStart ? tbPlacement : btPlacement;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n", "import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n var _platform$detectOverf;\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform: {\n ...platform,\n detectOverflow: (_platform$detectOverf = platform.detectOverflow) != null ? _platform$detectOverf : detectOverflow\n },\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n const ignoreCrossAxisOverflow = checkCrossAxis === 'alignment' ? initialSideAxis !== getSideAxis(nextPlacement) : false;\n if (!ignoreCrossAxisOverflow ||\n // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n overflowsData.every(d => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects,\n platform\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await platform.detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\nconst originSides = /*#__PURE__*/new Set(['left', 'top']);\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = originSides.has(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n platform\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = originSides.has(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await platform.detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n", "function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nconst invalidOverflowDisplayValues = /*#__PURE__*/new Set(['inline', 'contents']);\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);\n}\nconst tableElements = /*#__PURE__*/new Set(['table', 'td', 'th']);\nfunction isTableElement(element) {\n return tableElements.has(getNodeName(element));\n}\nconst topLayerSelectors = [':popover-open', ':modal'];\nfunction isTopLayer(element) {\n return topLayerSelectors.some(selector => {\n try {\n return element.matches(selector);\n } catch (_e) {\n return false;\n }\n });\n}\nconst transformProperties = ['transform', 'translate', 'scale', 'rotate', 'perspective'];\nconst willChangeValues = ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'];\nconst containValues = ['paint', 'layout', 'strict', 'content'];\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return transformProperties.some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || willChangeValues.some(value => (css.willChange || '').includes(value)) || containValues.some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nconst lastTraversableNodeNames = /*#__PURE__*/new Set(['html', 'body', '#document']);\nfunction isLastTraversableNode(node) {\n return lastTraversableNodeNames.has(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n", "import { rectToClientRect, arrow as arrow$1, autoPlacement as autoPlacement$1, detectOverflow as detectOverflow$1, flip as flip$1, hide as hide$1, inline as inline$1, limitShift as limitShift$1, offset as offset$1, shift as shift$1, size as size$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle as getComputedStyle$1, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle$1(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll) {\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Safety check: ensure the scrollbar space is reasonable in case this\n// calculation is affected by unusual styles.\n// Most scrollbars leave 15-18px of space.\nconst SCROLLBAR_MAX = 25;\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n const windowScrollbarX = getWindowScrollBarX(html);\n // <html> `overflow: hidden` + `scrollbar-gutter: stable` reduces the\n // visual width of the <html> but this is not considered in the size\n // of `html.clientWidth`.\n if (windowScrollbarX <= 0) {\n const doc = html.ownerDocument;\n const body = doc.body;\n const bodyStyles = getComputedStyle(body);\n const bodyMarginInline = doc.compatMode === 'CSS1Compat' ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;\n const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);\n if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {\n width -= clippingStableScrollbarWidth;\n }\n } else if (windowScrollbarX <= SCROLLBAR_MAX) {\n // If the <body> scrollbar is on the left, the width needs to be extended\n // by the scrollbar amount so there isn't extra space on the right.\n width += windowScrollbarX;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nconst absoluteOrFixed = /*#__PURE__*/new Set(['absolute', 'fixed']);\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n function setLeftRTLScrollbarOffset() {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n setLeftRTLScrollbarOffset();\n }\n }\n if (isFixed && !isOffsetParentAnElement && documentElement) {\n setLeftRTLScrollbarOffset();\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle$1(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle$1(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\n}\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (_e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n", "export function get(valueOrGetValue) {\n return typeof valueOrGetValue === \"function\"\n ? valueOrGetValue()\n : valueOrGetValue;\n}\nexport function getDPR(element) {\n if (typeof window === \"undefined\")\n return 1;\n const win = element.ownerDocument.defaultView || window;\n return win.devicePixelRatio || 1;\n}\nexport function roundByDPR(element, value) {\n const dpr = getDPR(element);\n return Math.round(value * dpr) / dpr;\n}\nexport function getFloatingContentCSSVars(name) {\n return {\n [`--bits-${name}-content-transform-origin`]: `var(--bits-floating-transform-origin)`,\n [`--bits-${name}-content-available-width`]: `var(--bits-floating-available-width)`,\n [`--bits-${name}-content-available-height`]: `var(--bits-floating-available-height)`,\n [`--bits-${name}-anchor-width`]: `var(--bits-floating-anchor-width)`,\n [`--bits-${name}-anchor-height`]: `var(--bits-floating-anchor-height)`,\n };\n}\n", "import { computePosition } from \"@floating-ui/dom\";\nimport { simpleBox } from \"svelte-toolbelt\";\nimport { get, getDPR, roundByDPR } from \"./floating-utils.svelte.js\";\nexport function useFloating(options) {\n /** Options */\n const whileElementsMountedOption = options.whileElementsMounted;\n const openOption = $derived(get(options.open) ?? true);\n const middlewareOption = $derived(get(options.middleware));\n const transformOption = $derived(get(options.transform) ?? true);\n const placementOption = $derived(get(options.placement) ?? \"bottom\");\n const strategyOption = $derived(get(options.strategy) ?? \"absolute\");\n const sideOffsetOption = $derived(get(options.sideOffset) ?? 0);\n const alignOffsetOption = $derived(get(options.alignOffset) ?? 0);\n const reference = options.reference;\n /** State */\n let x = $state(0);\n let y = $state(0);\n const floating = simpleBox(null);\n // svelte-ignore state_referenced_locally\n let strategy = $state(strategyOption);\n // svelte-ignore state_referenced_locally\n let placement = $state(placementOption);\n let middlewareData = $state({});\n let isPositioned = $state(false);\n let hasWhileMountedPosition = false;\n const floatingStyles = $derived.by(() => {\n // preserve last known position when floating ref is null (during transitions)\n const xVal = floating.current ? roundByDPR(floating.current, x) : x;\n const yVal = floating.current ? roundByDPR(floating.current, y) : y;\n if (transformOption) {\n return {\n position: strategy,\n left: \"0\",\n top: \"0\",\n transform: `translate(${xVal}px, ${yVal}px)`,\n ...(floating.current &&\n getDPR(floating.current) >= 1.5 && {\n willChange: \"transform\",\n }),\n };\n }\n return {\n position: strategy,\n left: `${xVal}px`,\n top: `${yVal}px`,\n };\n });\n /** Effects */\n let whileElementsMountedCleanup;\n function update() {\n if (reference.current === null || floating.current === null)\n return;\n computePosition(reference.current, floating.current, {\n middleware: middlewareOption,\n placement: placementOption,\n strategy: strategyOption,\n }).then((position) => {\n // ignore bad coordinates that cause jumping during close transitions\n if (!openOption && x !== 0 && y !== 0) {\n // if we had a good position and now getting coordinates near\n // the expected offset bounds during close, ignore it\n const maxExpectedOffset = Math.max(Math.abs(sideOffsetOption), Math.abs(alignOffsetOption), 15);\n if (position.x <= maxExpectedOffset && position.y <= maxExpectedOffset)\n return;\n }\n x = position.x;\n y = position.y;\n strategy = position.strategy;\n placement = position.placement;\n middlewareData = position.middlewareData;\n isPositioned = true;\n });\n }\n function cleanup() {\n if (typeof whileElementsMountedCleanup === \"function\") {\n whileElementsMountedCleanup();\n whileElementsMountedCleanup = undefined;\n }\n }\n function attach() {\n cleanup();\n if (whileElementsMountedOption === undefined) {\n update();\n return;\n }\n if (!openOption)\n return;\n if (reference.current === null || floating.current === null)\n return;\n whileElementsMountedCleanup = whileElementsMountedOption(reference.current, floating.current, update);\n }\n function reset() {\n if (!openOption) {\n isPositioned = false;\n }\n }\n function trackWhileMountedDeps() {\n return [\n middlewareOption,\n placementOption,\n strategyOption,\n sideOffsetOption,\n alignOffsetOption,\n openOption,\n ];\n }\n $effect(() => {\n if (whileElementsMountedOption !== undefined)\n return;\n if (!openOption)\n return;\n update();\n });\n $effect(attach);\n $effect(() => {\n if (whileElementsMountedOption === undefined)\n return;\n trackWhileMountedDeps();\n if (!openOption) {\n hasWhileMountedPosition = false;\n return;\n }\n if (!isPositioned) {\n hasWhileMountedPosition = false;\n return;\n }\n // skip the first post-position run, since autoUpdate already computed it\n if (!hasWhileMountedPosition) {\n hasWhileMountedPosition = true;\n return;\n }\n update();\n });\n $effect(reset);\n $effect(() => cleanup);\n return {\n floating,\n reference,\n get strategy() {\n return strategy;\n },\n get placement() {\n return placement;\n },\n get middlewareData() {\n return middlewareData;\n },\n get isPositioned() {\n return isPositioned;\n },\n get floatingStyles() {\n return floatingStyles;\n },\n get update() {\n return update;\n },\n };\n}\n", "import { arrow, autoUpdate, flip, hide, limitShift, offset, shift, size, } from \"@floating-ui/dom\";\nimport { attachRef, cssToStyleObj, getWindow, styleToString, simpleBox, boxFrom, } from \"svelte-toolbelt\";\nimport { Context, ElementSize, watch } from \"runed\";\nimport { isNotNull } from \"../../../internal/is.js\";\nimport { useId } from \"../../../internal/use-id.js\";\nimport { useFloating } from \"../../../internal/floating-svelte/use-floating.svelte.js\";\nexport const SIDE_OPTIONS = [\"top\", \"right\", \"bottom\", \"left\"];\nexport const ALIGN_OPTIONS = [\"start\", \"center\", \"end\"];\nconst OPPOSITE_SIDE = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\",\n};\nconst FloatingRootContext = new Context(\"Floating.Root\");\nconst FloatingContentContext = new Context(\"Floating.Content\");\nconst FloatingTooltipRootContext = new Context(\"Floating.Root\");\nexport class FloatingRootState {\n static create(tooltip = false) {\n return tooltip\n ? FloatingTooltipRootContext.set(new FloatingRootState())\n : FloatingRootContext.set(new FloatingRootState());\n }\n anchorNode = simpleBox(null);\n customAnchorNode = simpleBox(null);\n triggerNode = simpleBox(null);\n constructor() {\n $effect(() => {\n if (this.customAnchorNode.current) {\n if (typeof this.customAnchorNode.current === \"string\") {\n this.anchorNode.current = document.querySelector(this.customAnchorNode.current);\n }\n else {\n this.anchorNode.current = this.customAnchorNode.current;\n }\n }\n else {\n this.anchorNode.current = this.triggerNode.current;\n }\n });\n }\n}\nexport class FloatingContentState {\n static create(opts, tooltip = false) {\n return tooltip\n ? FloatingContentContext.set(new FloatingContentState(opts, FloatingTooltipRootContext.get()))\n : FloatingContentContext.set(new FloatingContentState(opts, FloatingRootContext.get()));\n }\n opts;\n root;\n // nodes\n contentRef = simpleBox(null);\n wrapperRef = simpleBox(null);\n arrowRef = simpleBox(null);\n contentAttachment = attachRef(this.contentRef);\n wrapperAttachment = attachRef(this.wrapperRef);\n arrowAttachment = attachRef(this.arrowRef);\n // ids\n arrowId = simpleBox(useId());\n #transformedStyle = $derived.by(() => {\n if (typeof this.opts.style === \"string\")\n return cssToStyleObj(this.opts.style);\n if (!this.opts.style)\n return {};\n });\n #updatePositionStrategy = undefined;\n #arrowSize = new ElementSize(() => this.arrowRef.current ?? undefined);\n #arrowWidth = $derived(this.#arrowSize?.width ?? 0);\n #arrowHeight = $derived(this.#arrowSize?.height ?? 0);\n #desiredPlacement = $derived.by(() => (this.opts.side?.current +\n (this.opts.align.current !== \"center\"\n ? `-${this.opts.align.current}`\n : \"\")));\n #boundary = $derived.by(() => Array.isArray(this.opts.collisionBoundary.current)\n ? this.opts.collisionBoundary.current\n : [this.opts.collisionBoundary.current]);\n hasExplicitBoundaries = $derived(this.#boundary.length > 0);\n detectOverflowOptions = $derived.by(() => ({\n padding: this.opts.collisionPadding.current,\n boundary: this.#boundary.filter(isNotNull),\n altBoundary: this.hasExplicitBoundaries,\n }));\n #availableWidth = $state(undefined);\n #availableHeight = $state(undefined);\n #anchorWidth = $state(undefined);\n #anchorHeight = $state(undefined);\n middleware = $derived.by(() => [\n offset({\n mainAxis: this.opts.sideOffset.current + this.#arrowHeight,\n alignmentAxis: this.opts.alignOffset.current,\n }),\n this.opts.avoidCollisions.current &&\n shift({\n mainAxis: true,\n crossAxis: false,\n limiter: this.opts.sticky.current === \"partial\" ? limitShift() : undefined,\n ...this.detectOverflowOptions,\n }),\n this.opts.avoidCollisions.current && flip({ ...this.detectOverflowOptions }),\n size({\n ...this.detectOverflowOptions,\n apply: ({ rects, availableWidth, availableHeight }) => {\n const { width: anchorWidth, height: anchorHeight } = rects.reference;\n this.#availableWidth = availableWidth;\n this.#availableHeight = availableHeight;\n this.#anchorWidth = anchorWidth;\n this.#anchorHeight = anchorHeight;\n },\n }),\n this.arrowRef.current &&\n arrow({\n element: this.arrowRef.current,\n padding: this.opts.arrowPadding.current,\n }),\n transformOrigin({ arrowWidth: this.#arrowWidth, arrowHeight: this.#arrowHeight }),\n this.opts.hideWhenDetached.current &&\n hide({ strategy: \"referenceHidden\", ...this.detectOverflowOptions }),\n ].filter(Boolean));\n floating;\n placedSide = $derived.by(() => getSideFromPlacement(this.floating.placement));\n placedAlign = $derived.by(() => getAlignFromPlacement(this.floating.placement));\n arrowX = $derived.by(() => this.floating.middlewareData.arrow?.x ?? 0);\n arrowY = $derived.by(() => this.floating.middlewareData.arrow?.y ?? 0);\n cannotCenterArrow = $derived.by(() => this.floating.middlewareData.arrow?.centerOffset !== 0);\n contentZIndex = $state();\n arrowBaseSide = $derived(OPPOSITE_SIDE[this.placedSide]);\n wrapperProps = $derived.by(() => ({\n id: this.opts.wrapperId.current,\n \"data-bits-floating-content-wrapper\": \"\",\n style: {\n ...this.floating.floatingStyles,\n // keep off page when measuring\n transform: this.floating.isPositioned\n ? this.floating.floatingStyles.transform\n : \"translate(0, -200%)\",\n minWidth: \"max-content\",\n zIndex: this.contentZIndex,\n \"--bits-floating-transform-origin\": `${this.floating.middlewareData.transformOrigin?.x} ${this.floating.middlewareData.transformOrigin?.y}`,\n \"--bits-floating-available-width\": `${this.#availableWidth}px`,\n \"--bits-floating-available-height\": `${this.#availableHeight}px`,\n \"--bits-floating-anchor-width\": `${this.#anchorWidth}px`,\n \"--bits-floating-anchor-height\": `${this.#anchorHeight}px`,\n // hide the content if using the hide middleware and should be hidden\n ...(this.floating.middlewareData.hide?.referenceHidden && {\n visibility: \"hidden\",\n \"pointer-events\": \"none\",\n }),\n ...this.#transformedStyle,\n },\n // Floating UI calculates logical alignment based the `dir` attribute\n dir: this.opts.dir.current,\n ...this.wrapperAttachment,\n }));\n props = $derived.by(() => ({\n \"data-side\": this.placedSide,\n \"data-align\": this.placedAlign,\n style: styleToString({\n ...this.#transformedStyle,\n }),\n ...this.contentAttachment,\n }));\n arrowStyle = $derived({\n position: \"absolute\",\n left: this.arrowX ? `${this.arrowX}px` : undefined,\n top: this.arrowY ? `${this.arrowY}px` : undefined,\n [this.arrowBaseSide]: 0,\n \"transform-origin\": {\n top: \"\",\n right: \"0 0\",\n bottom: \"center 0\",\n left: \"100% 0\",\n }[this.placedSide],\n transform: {\n top: \"translateY(100%)\",\n right: \"translateY(50%) rotate(90deg) translateX(-50%)\",\n bottom: \"rotate(180deg)\",\n left: \"translateY(50%) rotate(-90deg) translateX(50%)\",\n }[this.placedSide],\n visibility: this.cannotCenterArrow ? \"hidden\" : undefined,\n });\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.#updatePositionStrategy = opts.updatePositionStrategy;\n if (opts.customAnchor) {\n this.root.customAnchorNode.current = opts.customAnchor.current;\n }\n watch(() => opts.customAnchor.current, (customAnchor) => {\n this.root.customAnchorNode.current = customAnchor;\n });\n this.floating = useFloating({\n strategy: () => this.opts.strategy.current,\n placement: () => this.#desiredPlacement,\n middleware: () => this.middleware,\n reference: this.root.anchorNode,\n whileElementsMounted: (...args) => {\n const cleanup = autoUpdate(...args, {\n animationFrame: this.#updatePositionStrategy?.current === \"always\",\n });\n return cleanup;\n },\n open: () => this.opts.enabled.current,\n sideOffset: () => this.opts.sideOffset.current,\n alignOffset: () => this.opts.alignOffset.current,\n });\n $effect(() => {\n if (!this.floating.isPositioned)\n return;\n this.opts.onPlaced?.current();\n });\n watch(() => this.contentRef.current, (contentNode) => {\n if (!contentNode || !this.opts.enabled.current)\n return;\n const win = getWindow(contentNode);\n const rafId = win.requestAnimationFrame(() => {\n // avoid applying stale values when refs change quickly\n if (this.contentRef.current !== contentNode || !this.opts.enabled.current)\n return;\n const zIndex = win.getComputedStyle(contentNode).zIndex;\n if (zIndex !== this.contentZIndex) {\n this.contentZIndex = zIndex;\n }\n });\n return () => {\n win.cancelAnimationFrame(rafId);\n };\n });\n $effect(() => {\n this.floating.floating.current = this.wrapperRef.current;\n });\n }\n}\nexport class FloatingArrowState {\n static create(opts) {\n return new FloatingArrowState(opts, FloatingContentContext.get());\n }\n opts;\n content;\n constructor(opts, content) {\n this.opts = opts;\n this.content = content;\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n style: this.content.arrowStyle,\n \"data-side\": this.content.placedSide,\n ...this.content.arrowAttachment,\n }));\n}\nexport class FloatingAnchorState {\n static create(opts, tooltip = false) {\n return tooltip\n ? new FloatingAnchorState(opts, FloatingTooltipRootContext.get())\n : new FloatingAnchorState(opts, FloatingRootContext.get());\n }\n opts;\n root;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n if (opts.virtualEl && opts.virtualEl.current) {\n root.triggerNode = boxFrom(opts.virtualEl.current);\n }\n else {\n root.triggerNode = opts.ref;\n }\n }\n}\n//\n// HELPERS\n//\nfunction transformOrigin(options) {\n return {\n name: \"transformOrigin\",\n options,\n fn(data) {\n const { placement, rects, middlewareData } = data;\n const cannotCenterArrow = middlewareData.arrow?.centerOffset !== 0;\n const isArrowHidden = cannotCenterArrow;\n const arrowWidth = isArrowHidden ? 0 : options.arrowWidth;\n const arrowHeight = isArrowHidden ? 0 : options.arrowHeight;\n const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);\n const noArrowAlign = { start: \"0%\", center: \"50%\", end: \"100%\" }[placedAlign];\n const arrowXCenter = (middlewareData.arrow?.x ?? 0) + arrowWidth / 2;\n const arrowYCenter = (middlewareData.arrow?.y ?? 0) + arrowHeight / 2;\n let x = \"\";\n let y = \"\";\n if (placedSide === \"bottom\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${-arrowHeight}px`;\n }\n else if (placedSide === \"top\") {\n x = isArrowHidden ? noArrowAlign : `${arrowXCenter}px`;\n y = `${rects.floating.height + arrowHeight}px`;\n }\n else if (placedSide === \"right\") {\n x = `${-arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n else if (placedSide === \"left\") {\n x = `${rects.floating.width + arrowHeight}px`;\n y = isArrowHidden ? noArrowAlign : `${arrowYCenter}px`;\n }\n return { data: { x, y } };\n },\n };\n}\nfunction getSideAndAlignFromPlacement(placement) {\n const [side, align = \"center\"] = placement.split(\"-\");\n return [side, align];\n}\nexport function getSideFromPlacement(placement) {\n return getSideAndAlignFromPlacement(placement)[0];\n}\nexport function getAlignFromPlacement(placement) {\n return getSideAndAlignFromPlacement(placement)[1];\n}\n", "<script lang=\"ts\">\n\timport type { Snippet } from \"svelte\";\n\timport { FloatingRootState } from \"../use-floating-layer.svelte.js\";\n\n\tlet { children, tooltip = false }: { children?: Snippet; tooltip?: boolean } = $props();\n\n\tFloatingRootState.create(tooltip);\n</script>\n\n{@render children?.()}\n", "import { getNextMatch } from \"./arrays.js\";\nimport { boxAutoReset } from \"./box-auto-reset.svelte.js\";\nexport class DataTypeahead {\n #opts;\n #candidateValues = $derived.by(() => this.#opts.candidateValues());\n #search;\n constructor(opts) {\n this.#opts = opts;\n this.#search = boxAutoReset(\"\", {\n afterMs: 1000,\n getWindow: this.#opts.getWindow,\n });\n this.handleTypeaheadSearch = this.handleTypeaheadSearch.bind(this);\n this.resetTypeahead = this.resetTypeahead.bind(this);\n }\n handleTypeaheadSearch(key) {\n if (!this.#opts.enabled() || !this.#candidateValues.length)\n return;\n this.#search.current = this.#search.current + key;\n const currentItem = this.#opts.getCurrentItem();\n const currentMatch = this.#candidateValues.find((item) => item === currentItem) ?? \"\";\n const values = this.#candidateValues.map((item) => item ?? \"\");\n const nextMatch = getNextMatch(values, this.#search.current, currentMatch);\n const newItem = this.#candidateValues.find((item) => item === nextMatch);\n if (newItem) {\n this.#opts.onMatch(newItem);\n }\n return newItem;\n }\n resetTypeahead() {\n this.#search.current = \"\";\n }\n}\n", "import { Context, Previous, watch } from \"runed\";\nimport { afterSleep, afterTick, onDestroyEffect, attachRef, DOMContext, boxWith, } from \"svelte-toolbelt\";\nimport { on } from \"svelte/events\";\nimport { backward, forward, next, prev } from \"../../internal/arrays.js\";\nimport { boolToStr, boolToStrTrueOrUndef, boolToEmptyStrOrUndef, getDataOpenClosed, boolToTrueOrUndef, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { noop } from \"../../internal/noop.js\";\nimport { isIOS } from \"../../internal/is.js\";\nimport { createBitsAttrs } from \"../../internal/attrs.js\";\nimport { getFloatingContentCSSVars } from \"../../internal/floating-svelte/floating-utils.svelte.js\";\nimport { DataTypeahead } from \"../../internal/data-typeahead.svelte.js\";\nimport { DOMTypeahead } from \"../../internal/dom-typeahead.svelte.js\";\nimport { PresenceManager } from \"../../internal/presence-manager.svelte.js\";\n// prettier-ignore\nexport const INTERACTION_KEYS = [kbd.ARROW_LEFT, kbd.ESCAPE, kbd.ARROW_RIGHT, kbd.SHIFT, kbd.CAPS_LOCK, kbd.CONTROL, kbd.ALT, kbd.META, kbd.ENTER, kbd.F1, kbd.F2, kbd.F3, kbd.F4, kbd.F5, kbd.F6, kbd.F7, kbd.F8, kbd.F9, kbd.F10, kbd.F11, kbd.F12];\nexport const FIRST_KEYS = [kbd.ARROW_DOWN, kbd.PAGE_UP, kbd.HOME];\nexport const LAST_KEYS = [kbd.ARROW_UP, kbd.PAGE_DOWN, kbd.END];\nexport const FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];\nexport const SELECTION_KEYS = [kbd.ENTER, kbd.SPACE];\nexport const CONTENT_MARGIN = 10;\nconst selectAttrs = createBitsAttrs({\n component: \"select\",\n parts: [\n \"trigger\",\n \"content\",\n \"item\",\n \"viewport\",\n \"scroll-up-button\",\n \"scroll-down-button\",\n \"group\",\n \"group-label\",\n \"separator\",\n \"arrow\",\n \"input\",\n \"content-wrapper\",\n \"item-text\",\n \"value\",\n ],\n});\nconst SelectRootContext = new Context(\"Select.Root | Combobox.Root\");\nconst SelectGroupContext = new Context(\"Select.Group | Combobox.Group\");\nconst SelectContentContext = new Context(\"Select.Content | Combobox.Content\");\nclass SelectBaseRootState {\n opts;\n touchedInput = $state(false);\n inputNode = $state(null);\n contentNode = $state(null);\n contentPresence;\n viewportNode = $state(null);\n triggerNode = $state(null);\n valueId = $state(\"\");\n highlightedNode = $state(null);\n highlightedValue = $derived.by(() => {\n if (!this.highlightedNode)\n return null;\n return this.highlightedNode.getAttribute(\"data-value\");\n });\n highlightedId = $derived.by(() => {\n if (!this.highlightedNode)\n return undefined;\n return this.highlightedNode.id;\n });\n highlightedLabel = $derived.by(() => {\n if (!this.highlightedNode)\n return null;\n return this.highlightedNode.getAttribute(\"data-label\");\n });\n isUsingKeyboard = false;\n isCombobox = false;\n domContext = new DOMContext(() => null);\n constructor(opts) {\n this.opts = opts;\n this.isCombobox = opts.isCombobox;\n this.contentPresence = new PresenceManager({\n ref: boxWith(() => this.contentNode),\n open: this.opts.open,\n onComplete: () => {\n this.opts.onOpenChangeComplete.current(this.opts.open.current);\n },\n });\n $effect.pre(() => {\n if (!this.opts.open.current) {\n this.setHighlightedNode(null);\n }\n });\n }\n setHighlightedNode(node, initial = false) {\n this.highlightedNode = node;\n if (node && (this.isUsingKeyboard || initial)) {\n node.scrollIntoView({ block: this.opts.scrollAlignment.current });\n }\n }\n getCandidateNodes() {\n const node = this.contentNode;\n if (!node)\n return [];\n return Array.from(node.querySelectorAll(`[${this.getBitsAttr(\"item\")}]:not([data-disabled])`));\n }\n setHighlightedToFirstCandidate(initial = false) {\n this.setHighlightedNode(null);\n let nodes = this.getCandidateNodes();\n if (!nodes.length)\n return;\n // don't consider nodes that aren't visible within the viewport\n if (this.viewportNode) {\n const viewportRect = this.viewportNode.getBoundingClientRect();\n nodes = nodes.filter((node) => {\n if (!this.viewportNode)\n return false;\n const nodeRect = node.getBoundingClientRect();\n const isNodeFullyVisible = nodeRect.right <= viewportRect.right &&\n nodeRect.left >= viewportRect.left &&\n nodeRect.bottom <= viewportRect.bottom &&\n nodeRect.top >= viewportRect.top;\n return isNodeFullyVisible;\n });\n }\n this.setHighlightedNode(nodes[0], initial);\n }\n getNodeByValue(value) {\n const candidateNodes = this.getCandidateNodes();\n return candidateNodes.find((node) => node.dataset.value === value) ?? null;\n }\n setOpen(open) {\n this.opts.open.current = open;\n }\n toggleOpen() {\n this.opts.open.current = !this.opts.open.current;\n }\n handleOpen() {\n this.setOpen(true);\n }\n handleClose() {\n this.setHighlightedNode(null);\n this.setOpen(false);\n }\n toggleMenu() {\n this.toggleOpen();\n }\n getBitsAttr = (part) => {\n return selectAttrs.getAttr(part, this.isCombobox ? \"combobox\" : undefined);\n };\n}\nexport class SelectSingleRootState extends SelectBaseRootState {\n opts;\n isMulti = false;\n hasValue = $derived.by(() => this.opts.value.current !== \"\");\n currentLabel = $derived.by(() => {\n if (!this.opts.items.current.length)\n return \"\";\n return (this.opts.items.current.find((item) => item.value === this.opts.value.current)?.label ??\n \"\");\n });\n candidateLabels = $derived.by(() => {\n if (!this.opts.items.current.length)\n return [];\n const filteredItems = this.opts.items.current.filter((item) => !item.disabled);\n return filteredItems.map((item) => item.label);\n });\n dataTypeaheadEnabled = $derived.by(() => {\n if (this.isMulti)\n return false;\n if (this.opts.items.current.length === 0)\n return false;\n return true;\n });\n constructor(opts) {\n super(opts);\n this.opts = opts;\n $effect(() => {\n if (!this.opts.open.current && this.highlightedNode) {\n this.setHighlightedNode(null);\n }\n });\n watch(() => this.opts.open.current, () => {\n if (!this.opts.open.current)\n return;\n this.setInitialHighlightedNode();\n });\n }\n includesItem(itemValue) {\n return this.opts.value.current === itemValue;\n }\n toggleItem(itemValue, itemLabel = itemValue) {\n const newValue = this.includesItem(itemValue) ? \"\" : itemValue;\n this.opts.value.current = newValue;\n if (newValue !== \"\") {\n this.opts.inputValue.current = itemLabel;\n }\n }\n setInitialHighlightedNode() {\n afterTick(() => {\n if (this.highlightedNode &&\n this.domContext.getDocument().contains(this.highlightedNode))\n return;\n if (this.opts.value.current !== \"\") {\n const node = this.getNodeByValue(this.opts.value.current);\n if (node) {\n this.setHighlightedNode(node, true);\n return;\n }\n }\n // if no value is set, we want to highlight the first item\n this.setHighlightedToFirstCandidate(true);\n });\n }\n}\nclass SelectMultipleRootState extends SelectBaseRootState {\n opts;\n isMulti = true;\n hasValue = $derived.by(() => this.opts.value.current.length > 0);\n constructor(opts) {\n super(opts);\n this.opts = opts;\n $effect(() => {\n if (!this.opts.open.current && this.highlightedNode) {\n this.setHighlightedNode(null);\n }\n });\n watch(() => this.opts.open.current, () => {\n if (!this.opts.open.current)\n return;\n this.setInitialHighlightedNode();\n });\n }\n includesItem(itemValue) {\n return this.opts.value.current.includes(itemValue);\n }\n toggleItem(itemValue, itemLabel = itemValue) {\n if (this.includesItem(itemValue)) {\n this.opts.value.current = this.opts.value.current.filter((v) => v !== itemValue);\n }\n else {\n this.opts.value.current = [...this.opts.value.current, itemValue];\n }\n this.opts.inputValue.current = itemLabel;\n }\n setInitialHighlightedNode() {\n afterTick(() => {\n if (!this.domContext)\n return;\n if (this.highlightedNode &&\n this.domContext.getDocument().contains(this.highlightedNode))\n return;\n if (this.opts.value.current.length && this.opts.value.current[0] !== \"\") {\n const node = this.getNodeByValue(this.opts.value.current[0]);\n if (node) {\n this.setHighlightedNode(node, true);\n return;\n }\n }\n // if no value is set, we want to highlight the first item\n this.setHighlightedToFirstCandidate(true);\n });\n }\n}\nexport class SelectRootState {\n static create(props) {\n const { type, ...rest } = props;\n const rootState = type === \"single\"\n ? new SelectSingleRootState(rest)\n : new SelectMultipleRootState(rest);\n return SelectRootContext.set(rootState);\n }\n}\nexport class SelectInputState {\n static create(opts) {\n return new SelectInputState(opts, SelectRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref, (v) => (this.root.inputNode = v));\n this.root.domContext = new DOMContext(opts.ref);\n this.onkeydown = this.onkeydown.bind(this);\n this.oninput = this.oninput.bind(this);\n watch([() => this.root.opts.value.current, () => this.opts.clearOnDeselect.current], ([value, clearOnDeselect], [prevValue]) => {\n if (!clearOnDeselect)\n return;\n if (Array.isArray(value) && Array.isArray(prevValue)) {\n if (value.length === 0 && prevValue.length !== 0) {\n this.root.opts.inputValue.current = \"\";\n }\n }\n else if (value === \"\" && prevValue !== \"\") {\n this.root.opts.inputValue.current = \"\";\n }\n });\n }\n onkeydown(e) {\n this.root.isUsingKeyboard = true;\n if (e.key === kbd.ESCAPE)\n return;\n // prevent arrow up/down from moving the position of the cursor in the input\n if (e.key === kbd.ARROW_UP || e.key === kbd.ARROW_DOWN)\n e.preventDefault();\n if (!this.root.opts.open.current) {\n if (INTERACTION_KEYS.includes(e.key))\n return;\n if (e.key === kbd.TAB)\n return;\n if (e.key === kbd.BACKSPACE && this.root.opts.inputValue.current === \"\")\n return;\n this.root.handleOpen();\n // we need to wait for a tick after the menu opens to ensure the highlighted nodes are\n // set correctly.\n if (this.root.hasValue)\n return;\n const candidateNodes = this.root.getCandidateNodes();\n if (!candidateNodes.length)\n return;\n if (e.key === kbd.ARROW_DOWN) {\n const firstCandidate = candidateNodes[0];\n this.root.setHighlightedNode(firstCandidate);\n }\n else if (e.key === kbd.ARROW_UP) {\n const lastCandidate = candidateNodes[candidateNodes.length - 1];\n this.root.setHighlightedNode(lastCandidate);\n }\n return;\n }\n if (e.key === kbd.TAB) {\n this.root.handleClose();\n return;\n }\n if (e.key === kbd.ENTER && !e.isComposing) {\n e.preventDefault();\n const isCurrentSelectedValue = this.root.highlightedValue === this.root.opts.value.current;\n if (!this.root.opts.allowDeselect.current &&\n isCurrentSelectedValue &&\n !this.root.isMulti) {\n this.root.handleClose();\n return;\n }\n if (this.root.highlightedValue &&\n this.root.highlightedNode &&\n this.root.highlightedNode.isConnected) {\n this.root.toggleItem(this.root.highlightedValue, this.root.highlightedLabel ?? undefined);\n }\n if (!this.root.isMulti && !isCurrentSelectedValue) {\n this.root.handleClose();\n }\n }\n if (e.key === kbd.ARROW_UP && e.altKey) {\n this.root.handleClose();\n }\n if (FIRST_LAST_KEYS.includes(e.key)) {\n e.preventDefault();\n const candidateNodes = this.root.getCandidateNodes();\n const currHighlightedNode = this.root.highlightedNode;\n const currIndex = currHighlightedNode\n ? candidateNodes.indexOf(currHighlightedNode)\n : -1;\n const loop = this.root.opts.loop.current;\n let nextItem;\n if (e.key === kbd.ARROW_DOWN) {\n nextItem = next(candidateNodes, currIndex, loop);\n }\n else if (e.key === kbd.ARROW_UP) {\n nextItem = prev(candidateNodes, currIndex, loop);\n }\n else if (e.key === kbd.PAGE_DOWN) {\n nextItem = forward(candidateNodes, currIndex, 10, loop);\n }\n else if (e.key === kbd.PAGE_UP) {\n nextItem = backward(candidateNodes, currIndex, 10, loop);\n }\n else if (e.key === kbd.HOME) {\n nextItem = candidateNodes[0];\n }\n else if (e.key === kbd.END) {\n nextItem = candidateNodes[candidateNodes.length - 1];\n }\n if (!nextItem)\n return;\n this.root.setHighlightedNode(nextItem);\n return;\n }\n if (INTERACTION_KEYS.includes(e.key))\n return;\n if (!this.root.highlightedNode) {\n this.root.setHighlightedToFirstCandidate();\n }\n }\n oninput(e) {\n this.root.opts.inputValue.current = e.currentTarget.value;\n this.root.setHighlightedToFirstCandidate();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"combobox\",\n disabled: this.root.opts.disabled.current ? true : undefined,\n \"aria-activedescendant\": this.root.highlightedId,\n \"aria-autocomplete\": \"list\",\n \"aria-expanded\": boolToStr(this.root.opts.open.current),\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n onkeydown: this.onkeydown,\n oninput: this.oninput,\n [this.root.getBitsAttr(\"input\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class SelectComboTriggerState {\n static create(opts) {\n return new SelectComboTriggerState(opts, SelectRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n this.onkeydown = this.onkeydown.bind(this);\n this.onpointerdown = this.onpointerdown.bind(this);\n }\n onkeydown(e) {\n if (!this.root.domContext)\n return;\n if (e.key === kbd.ENTER || e.key === kbd.SPACE) {\n e.preventDefault();\n if (this.root.domContext.getActiveElement() !== this.root.inputNode) {\n this.root.inputNode?.focus();\n }\n this.root.toggleMenu();\n }\n }\n /**\n * `pointerdown` fires before the `focus` event, so we can prevent the default\n * behavior of focusing the button and keep focus on the input.\n */\n onpointerdown(e) {\n if (this.root.opts.disabled.current || !this.root.domContext)\n return;\n e.preventDefault();\n if (this.root.domContext.getActiveElement() !== this.root.inputNode) {\n this.root.inputNode?.focus();\n }\n this.root.toggleMenu();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n disabled: this.root.opts.disabled.current ? true : undefined,\n \"aria-haspopup\": \"listbox\",\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n [this.root.getBitsAttr(\"trigger\")]: \"\",\n onpointerdown: this.onpointerdown,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class SelectTriggerState {\n static create(opts) {\n return new SelectTriggerState(opts, SelectRootContext.get());\n }\n opts;\n root;\n attachment;\n #domTypeahead;\n #dataTypeahead;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref, (v) => (this.root.triggerNode = v));\n this.root.domContext = new DOMContext(opts.ref);\n this.#domTypeahead = new DOMTypeahead({\n getCurrentItem: () => this.root.highlightedNode,\n onMatch: (node) => {\n this.root.setHighlightedNode(node);\n },\n getActiveElement: () => this.root.domContext.getActiveElement(),\n getWindow: () => this.root.domContext.getWindow(),\n });\n this.#dataTypeahead = new DataTypeahead({\n getCurrentItem: () => {\n if (this.root.isMulti)\n return \"\";\n return this.root.currentLabel;\n },\n onMatch: (label) => {\n if (this.root.isMulti)\n return;\n if (!this.root.opts.items.current)\n return;\n const matchedItem = this.root.opts.items.current.find((item) => item.label === label);\n if (!matchedItem)\n return;\n this.root.opts.value.current = matchedItem.value;\n },\n enabled: () => !this.root.isMulti && this.root.dataTypeaheadEnabled,\n candidateValues: () => (this.root.isMulti ? [] : this.root.candidateLabels),\n getWindow: () => this.root.domContext.getWindow(),\n });\n this.onkeydown = this.onkeydown.bind(this);\n this.onpointerdown = this.onpointerdown.bind(this);\n this.onpointerup = this.onpointerup.bind(this);\n this.onclick = this.onclick.bind(this);\n }\n #handleOpen() {\n this.root.opts.open.current = true;\n this.#dataTypeahead.resetTypeahead();\n this.#domTypeahead.resetTypeahead();\n }\n #handlePointerOpen(_) {\n this.#handleOpen();\n }\n /**\n * Logic used to handle keyboard selection/deselection.\n *\n * If it returns true, it means the item was selected and whatever is calling\n * this function should return early\n *\n */\n #handleKeyboardSelection() {\n const isCurrentSelectedValue = this.root.highlightedValue === this.root.opts.value.current;\n if (!this.root.opts.allowDeselect.current && isCurrentSelectedValue && !this.root.isMulti) {\n this.root.handleClose();\n return true;\n }\n // \"\" is a valid value for a select item so we need to check for that\n if (this.root.highlightedValue !== null) {\n this.root.toggleItem(this.root.highlightedValue, this.root.highlightedLabel ?? undefined);\n }\n if (!this.root.isMulti && !isCurrentSelectedValue) {\n this.root.handleClose();\n return true;\n }\n return false;\n }\n onkeydown(e) {\n this.root.isUsingKeyboard = true;\n if (e.key === kbd.ARROW_UP || e.key === kbd.ARROW_DOWN)\n e.preventDefault();\n if (!this.root.opts.open.current) {\n if (e.key === kbd.ENTER ||\n e.key === kbd.SPACE ||\n e.key === kbd.ARROW_DOWN ||\n e.key === kbd.ARROW_UP) {\n e.preventDefault();\n this.root.handleOpen();\n }\n else if (!this.root.isMulti && this.root.dataTypeaheadEnabled) {\n this.#dataTypeahead.handleTypeaheadSearch(e.key);\n return;\n }\n // we need to wait for a tick after the menu opens to ensure\n // the highlighted nodes are set correctly\n if (this.root.hasValue)\n return;\n const candidateNodes = this.root.getCandidateNodes();\n if (!candidateNodes.length)\n return;\n if (e.key === kbd.ARROW_DOWN) {\n const firstCandidate = candidateNodes[0];\n this.root.setHighlightedNode(firstCandidate);\n }\n else if (e.key === kbd.ARROW_UP) {\n const lastCandidate = candidateNodes[candidateNodes.length - 1];\n this.root.setHighlightedNode(lastCandidate);\n }\n return;\n }\n if (e.key === kbd.TAB) {\n this.root.handleClose();\n return;\n }\n if ((e.key === kbd.ENTER ||\n // if we're currently \"typing ahead\", we don't want to select the item\n // just yet as the item the user is trying to get to may have a space in it,\n // so we defer handling the close for this case until further down\n (e.key === kbd.SPACE && this.#domTypeahead.search === \"\")) &&\n !e.isComposing) {\n e.preventDefault();\n const shouldReturn = this.#handleKeyboardSelection();\n if (shouldReturn)\n return;\n }\n if (e.key === kbd.ARROW_UP && e.altKey) {\n this.root.handleClose();\n }\n if (FIRST_LAST_KEYS.includes(e.key)) {\n e.preventDefault();\n const candidateNodes = this.root.getCandidateNodes();\n const currHighlightedNode = this.root.highlightedNode;\n const currIndex = currHighlightedNode\n ? candidateNodes.indexOf(currHighlightedNode)\n : -1;\n const loop = this.root.opts.loop.current;\n let nextItem;\n if (e.key === kbd.ARROW_DOWN) {\n nextItem = next(candidateNodes, currIndex, loop);\n }\n else if (e.key === kbd.ARROW_UP) {\n nextItem = prev(candidateNodes, currIndex, loop);\n }\n else if (e.key === kbd.PAGE_DOWN) {\n nextItem = forward(candidateNodes, currIndex, 10, loop);\n }\n else if (e.key === kbd.PAGE_UP) {\n nextItem = backward(candidateNodes, currIndex, 10, loop);\n }\n else if (e.key === kbd.HOME) {\n nextItem = candidateNodes[0];\n }\n else if (e.key === kbd.END) {\n nextItem = candidateNodes[candidateNodes.length - 1];\n }\n if (!nextItem)\n return;\n this.root.setHighlightedNode(nextItem);\n return;\n }\n const isModifierKey = e.ctrlKey || e.altKey || e.metaKey;\n const isCharacterKey = e.key.length === 1;\n const isSpaceKey = e.key === kbd.SPACE;\n const candidateNodes = this.root.getCandidateNodes();\n if (e.key === kbd.TAB)\n return;\n if (!isModifierKey && (isCharacterKey || isSpaceKey)) {\n const matchedNode = this.#domTypeahead.handleTypeaheadSearch(e.key, candidateNodes);\n if (!matchedNode && isSpaceKey) {\n e.preventDefault();\n this.#handleKeyboardSelection();\n }\n return;\n }\n if (!this.root.highlightedNode) {\n this.root.setHighlightedToFirstCandidate();\n }\n }\n onclick(e) {\n // While browsers generally have no issue focusing the trigger when clicking\n // on a label, Safari seems to struggle with the fact that there's no `onClick`.\n // We force `focus` in this case. Note: this doesn't create any other side-effect\n // because we are preventing default in `onpointerdown` so effectively\n // this only runs for a label 'click'\n const currTarget = e.currentTarget;\n currTarget.focus();\n }\n onpointerdown(e) {\n if (this.root.opts.disabled.current)\n return;\n // prevent opening on touch down which can be triggered when scrolling on touch devices\n if (e.pointerType === \"touch\")\n return e.preventDefault();\n // prevent implicit pointer capture\n const target = e.target;\n if (target?.hasPointerCapture(e.pointerId)) {\n target?.releasePointerCapture(e.pointerId);\n }\n // only call the handle if it's a left click, since pointerdown is triggered\n // by right clicks as well, but not when ctrl is pressed\n if (e.button === 0 && e.ctrlKey === false) {\n if (this.root.opts.open.current === false) {\n this.#handlePointerOpen(e);\n }\n else {\n this.root.handleClose();\n }\n }\n }\n onpointerup(e) {\n if (this.root.opts.disabled.current)\n return;\n e.preventDefault();\n if (e.pointerType === \"touch\") {\n if (this.root.opts.open.current === false) {\n this.#handlePointerOpen(e);\n }\n else {\n this.root.handleClose();\n }\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n disabled: this.root.opts.disabled.current ? true : undefined,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": boolToStr(this.root.opts.open.current),\n \"aria-activedescendant\": this.root.highlightedId,\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n \"data-placeholder\": this.root.hasValue ? undefined : \"\",\n [this.root.getBitsAttr(\"trigger\")]: \"\",\n onpointerdown: this.onpointerdown,\n onkeydown: this.onkeydown,\n onclick: this.onclick,\n onpointerup: this.onpointerup,\n ...this.attachment,\n }));\n}\nexport class SelectContentState {\n static create(opts) {\n return SelectContentContext.set(new SelectContentState(opts, SelectRootContext.get()));\n }\n opts;\n root;\n attachment;\n isPositioned = $state(false);\n domContext;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref, (v) => (this.root.contentNode = v));\n this.domContext = new DOMContext(this.opts.ref);\n if (this.root.domContext === null) {\n this.root.domContext = this.domContext;\n }\n onDestroyEffect(() => {\n this.root.contentNode = null;\n this.isPositioned = false;\n });\n watch(() => this.root.opts.open.current, () => {\n if (this.root.opts.open.current)\n return;\n this.isPositioned = false;\n });\n this.onpointermove = this.onpointermove.bind(this);\n }\n onpointermove(_) {\n this.root.isUsingKeyboard = false;\n }\n #styles = $derived.by(() => {\n return getFloatingContentCSSVars(this.root.isCombobox ? \"combobox\" : \"select\");\n });\n onInteractOutside = (e) => {\n if (e.target === this.root.triggerNode || e.target === this.root.inputNode) {\n e.preventDefault();\n return;\n }\n this.opts.onInteractOutside.current(e);\n if (e.defaultPrevented)\n return;\n this.root.handleClose();\n };\n onEscapeKeydown = (e) => {\n this.opts.onEscapeKeydown.current(e);\n if (e.defaultPrevented)\n return;\n this.root.handleClose();\n };\n onOpenAutoFocus = (e) => {\n e.preventDefault();\n };\n onCloseAutoFocus = (e) => {\n e.preventDefault();\n };\n get shouldRender() {\n return this.root.contentPresence.shouldRender;\n }\n snippetProps = $derived.by(() => ({ open: this.root.opts.open.current }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"listbox\",\n \"aria-multiselectable\": this.root.isMulti ? \"true\" : undefined,\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n [this.root.getBitsAttr(\"content\")]: \"\",\n style: {\n display: \"flex\",\n flexDirection: \"column\",\n outline: \"none\",\n boxSizing: \"border-box\",\n pointerEvents: \"auto\",\n ...this.#styles,\n },\n onpointermove: this.onpointermove,\n ...this.attachment,\n }));\n popperProps = {\n onInteractOutside: this.onInteractOutside,\n onEscapeKeydown: this.onEscapeKeydown,\n onOpenAutoFocus: this.onOpenAutoFocus,\n onCloseAutoFocus: this.onCloseAutoFocus,\n trapFocus: false,\n loop: false,\n onPlaced: () => {\n // onPlaced is also called when the menu is closed, so we need to check if the menu\n // is actually open to avoid setting positioning to true when the menu is closed\n if (this.root.opts.open.current) {\n this.isPositioned = true;\n }\n },\n };\n}\nexport class SelectItemState {\n static create(opts) {\n return new SelectItemState(opts, SelectRootContext.get());\n }\n opts;\n root;\n attachment;\n isSelected = $derived.by(() => this.root.includesItem(this.opts.value.current));\n isHighlighted = $derived.by(() => this.root.highlightedValue === this.opts.value.current);\n prevHighlighted = new Previous(() => this.isHighlighted);\n mounted = $state(false);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n watch([() => this.isHighlighted, () => this.prevHighlighted.current], () => {\n if (this.isHighlighted) {\n this.opts.onHighlight.current();\n }\n else if (this.prevHighlighted.current) {\n this.opts.onUnhighlight.current();\n }\n });\n watch(() => this.mounted, () => {\n if (!this.mounted)\n return;\n this.root.setInitialHighlightedNode();\n });\n this.onpointerdown = this.onpointerdown.bind(this);\n this.onpointerup = this.onpointerup.bind(this);\n this.onpointermove = this.onpointermove.bind(this);\n }\n handleSelect() {\n if (this.opts.disabled.current)\n return;\n const isCurrentSelectedValue = this.opts.value.current === this.root.opts.value.current;\n // if allowDeselect is false and the item is already selected and we're not in a\n // multi select, do nothing and close the menu\n if (!this.root.opts.allowDeselect.current && isCurrentSelectedValue && !this.root.isMulti) {\n this.root.handleClose();\n return;\n }\n // otherwise, toggle the item and if we're not in a multi select, close the menu\n this.root.toggleItem(this.opts.value.current, this.opts.label.current);\n if (!this.root.isMulti && !isCurrentSelectedValue) {\n this.root.handleClose();\n }\n }\n snippetProps = $derived.by(() => ({\n selected: this.isSelected,\n highlighted: this.isHighlighted,\n }));\n onpointerdown(e) {\n // prevent focus from leaving the input/select trigger\n e.preventDefault();\n }\n /**\n * Using `pointerup` instead of `click` allows power users to pointerdown\n * the trigger, then release pointerup on an item to select it vs having to do\n * multiple clicks.\n */\n onpointerup(e) {\n if (e.defaultPrevented || !this.opts.ref.current)\n return;\n /**\n * For one reason or another, when it's a touch pointer and _not_ on IOS,\n * we need to listen for the immediate click event to handle the selection,\n * otherwise a click event will fire on the element _behind_ the item.\n */\n if (e.pointerType === \"touch\" && !isIOS) {\n on(this.opts.ref.current, \"click\", () => {\n this.handleSelect();\n // set highlighted node since we don't do it on `pointermove` events\n // for touch devices\n this.root.setHighlightedNode(this.opts.ref.current);\n }, { once: true });\n return;\n }\n e.preventDefault();\n this.handleSelect();\n if (e.pointerType === \"touch\") {\n // set highlighted node since we don't do it on `pointermove` events\n // for touch devices\n this.root.setHighlightedNode(this.opts.ref.current);\n }\n }\n onpointermove(e) {\n /**\n * We don't want to highlight items on touch devices when scrolling,\n * as this is confusing behavior, so we return here and instead handle\n * the highlighting on the `pointerup` (or following `click`) event for\n * touch devices only.\n */\n if (e.pointerType === \"touch\")\n return;\n if (this.root.highlightedNode !== this.opts.ref.current) {\n this.root.setHighlightedNode(this.opts.ref.current);\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"option\",\n \"aria-selected\": this.root.includesItem(this.opts.value.current)\n ? \"true\"\n : undefined,\n \"data-value\": this.opts.value.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-highlighted\": this.root.highlightedValue === this.opts.value.current &&\n !this.opts.disabled.current\n ? \"\"\n : undefined,\n \"data-selected\": this.root.includesItem(this.opts.value.current) ? \"\" : undefined,\n \"data-label\": this.opts.label.current,\n [this.root.getBitsAttr(\"item\")]: \"\",\n onpointermove: this.onpointermove,\n onpointerdown: this.onpointerdown,\n onpointerup: this.onpointerup,\n ...this.attachment,\n }));\n}\nexport class SelectGroupState {\n static create(opts) {\n return SelectGroupContext.set(new SelectGroupState(opts, SelectRootContext.get()));\n }\n opts;\n root;\n labelNode = $state(null);\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n [this.root.getBitsAttr(\"group\")]: \"\",\n \"aria-labelledby\": this.labelNode?.id ?? undefined,\n ...this.attachment,\n }));\n}\nexport class SelectGroupHeadingState {\n static create(opts) {\n return new SelectGroupHeadingState(opts, SelectGroupContext.get());\n }\n opts;\n group;\n attachment;\n constructor(opts, group) {\n this.opts = opts;\n this.group = group;\n this.attachment = attachRef(opts.ref, (v) => (this.group.labelNode = v));\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [this.group.root.getBitsAttr(\"group-label\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class SelectHiddenInputState {\n static create(opts) {\n return new SelectHiddenInputState(opts, SelectRootContext.get());\n }\n opts;\n root;\n shouldRender = $derived.by(() => this.root.opts.name.current !== \"\");\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.onfocus = this.onfocus.bind(this);\n }\n onfocus(e) {\n e.preventDefault();\n if (!this.root.isCombobox) {\n this.root.triggerNode?.focus();\n }\n else {\n this.root.inputNode?.focus();\n }\n }\n props = $derived.by(() => ({\n disabled: boolToTrueOrUndef(this.root.opts.disabled.current),\n required: boolToTrueOrUndef(this.root.opts.required.current),\n name: this.root.opts.name.current,\n value: this.opts.value.current,\n onfocus: this.onfocus,\n }));\n}\nexport class SelectViewportState {\n static create(opts) {\n return new SelectViewportState(opts, SelectContentContext.get());\n }\n opts;\n content;\n root;\n attachment;\n prevScrollTop = $state(0);\n constructor(opts, content) {\n this.opts = opts;\n this.content = content;\n this.root = content.root;\n this.attachment = attachRef(opts.ref, (v) => {\n this.root.viewportNode = v;\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"presentation\",\n [this.root.getBitsAttr(\"viewport\")]: \"\",\n style: {\n // we use position: 'relative' here on the `viewport` so that when we call\n // `selectedItem.offsetTop` in calculations, the offset is relative to the viewport\n // (independent of the scrollUpButton).\n position: \"relative\",\n flex: 1,\n overflow: \"auto\",\n },\n ...this.attachment,\n }));\n}\nexport class SelectScrollButtonImplState {\n opts;\n content;\n root;\n attachment;\n autoScrollTimer = null;\n userScrollTimer = -1;\n isUserScrolling = false;\n onAutoScroll = noop;\n mounted = $state(false);\n constructor(opts, content) {\n this.opts = opts;\n this.content = content;\n this.root = content.root;\n this.attachment = attachRef(opts.ref);\n watch([() => this.mounted], () => {\n if (!this.mounted) {\n this.isUserScrolling = false;\n return;\n }\n if (this.isUserScrolling)\n return;\n });\n $effect(() => {\n if (this.mounted)\n return;\n this.clearAutoScrollInterval();\n });\n this.onpointerdown = this.onpointerdown.bind(this);\n this.onpointermove = this.onpointermove.bind(this);\n this.onpointerleave = this.onpointerleave.bind(this);\n }\n handleUserScroll() {\n this.content.domContext.clearTimeout(this.userScrollTimer);\n this.isUserScrolling = true;\n this.userScrollTimer = this.content.domContext.setTimeout(() => {\n this.isUserScrolling = false;\n }, 200);\n }\n clearAutoScrollInterval() {\n if (this.autoScrollTimer === null)\n return;\n this.content.domContext.clearTimeout(this.autoScrollTimer);\n this.autoScrollTimer = null;\n }\n onpointerdown(_) {\n if (this.autoScrollTimer !== null)\n return;\n const autoScroll = (tick) => {\n this.onAutoScroll();\n this.autoScrollTimer = this.content.domContext.setTimeout(() => autoScroll(tick + 1), this.opts.delay.current(tick));\n };\n this.autoScrollTimer = this.content.domContext.setTimeout(() => autoScroll(1), this.opts.delay.current(0));\n }\n onpointermove(e) {\n this.onpointerdown(e);\n }\n onpointerleave(_) {\n this.clearAutoScrollInterval();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-hidden\": boolToStrTrueOrUndef(true),\n style: {\n flexShrink: 0,\n },\n onpointerdown: this.onpointerdown,\n onpointermove: this.onpointermove,\n onpointerleave: this.onpointerleave,\n ...this.attachment,\n }));\n}\nexport class SelectScrollDownButtonState {\n static create(opts) {\n return new SelectScrollDownButtonState(new SelectScrollButtonImplState(opts, SelectContentContext.get()));\n }\n scrollButtonState;\n content;\n root;\n canScrollDown = $state(false);\n scrollIntoViewTimer = null;\n constructor(scrollButtonState) {\n this.scrollButtonState = scrollButtonState;\n this.content = scrollButtonState.content;\n this.root = scrollButtonState.root;\n this.scrollButtonState.onAutoScroll = this.handleAutoScroll;\n watch([() => this.root.viewportNode, () => this.content.isPositioned], () => {\n if (!this.root.viewportNode || !this.content.isPositioned)\n return;\n this.handleScroll(true);\n return on(this.root.viewportNode, \"scroll\", () => this.handleScroll());\n });\n /**\n * If the input value changes, this means that the filtered items may have changed,\n * so we need to re-evaluate the scroll-ability of the list.\n */\n watch([\n () => this.root.opts.inputValue.current,\n () => this.root.viewportNode,\n () => this.content.isPositioned,\n ], () => {\n if (!this.root.viewportNode || !this.content.isPositioned)\n return;\n this.handleScroll(true);\n });\n watch(() => this.scrollButtonState.mounted, () => {\n if (!this.scrollButtonState.mounted)\n return;\n if (this.scrollIntoViewTimer) {\n clearTimeout(this.scrollIntoViewTimer);\n }\n this.scrollIntoViewTimer = afterSleep(5, () => {\n const activeItem = this.root.highlightedNode;\n activeItem?.scrollIntoView({ block: this.root.opts.scrollAlignment.current });\n });\n });\n }\n /**\n * @param manual - if true, it means the function was invoked manually outside of an event\n * listener, so we don't call `handleUserScroll` to prevent the auto scroll from kicking in.\n */\n handleScroll = (manual = false) => {\n if (!manual) {\n this.scrollButtonState.handleUserScroll();\n }\n if (!this.root.viewportNode)\n return;\n const maxScroll = this.root.viewportNode.scrollHeight - this.root.viewportNode.clientHeight;\n const paddingTop = Number.parseInt(getComputedStyle(this.root.viewportNode).paddingTop, 10);\n this.canScrollDown = Math.ceil(this.root.viewportNode.scrollTop) < maxScroll - paddingTop;\n };\n handleAutoScroll = () => {\n const viewport = this.root.viewportNode;\n const selectedItem = this.root.highlightedNode;\n if (!viewport || !selectedItem)\n return;\n viewport.scrollTop = viewport.scrollTop + selectedItem.offsetHeight;\n };\n props = $derived.by(() => ({\n ...this.scrollButtonState.props,\n [this.root.getBitsAttr(\"scroll-down-button\")]: \"\",\n }));\n}\nexport class SelectScrollUpButtonState {\n static create(opts) {\n return new SelectScrollUpButtonState(new SelectScrollButtonImplState(opts, SelectContentContext.get()));\n }\n scrollButtonState;\n content;\n root;\n canScrollUp = $state(false);\n constructor(scrollButtonState) {\n this.scrollButtonState = scrollButtonState;\n this.content = scrollButtonState.content;\n this.root = scrollButtonState.root;\n this.scrollButtonState.onAutoScroll = this.handleAutoScroll;\n watch([() => this.root.viewportNode, () => this.content.isPositioned], () => {\n if (!this.root.viewportNode || !this.content.isPositioned)\n return;\n this.handleScroll(true);\n return on(this.root.viewportNode, \"scroll\", () => this.handleScroll());\n });\n }\n /**\n * @param manual - if true, it means the function was invoked manually outside of an event\n * listener, so we don't call `handleUserScroll` to prevent the auto scroll from kicking in.\n */\n handleScroll = (manual = false) => {\n if (!manual) {\n this.scrollButtonState.handleUserScroll();\n }\n if (!this.root.viewportNode)\n return;\n const paddingTop = Number.parseInt(getComputedStyle(this.root.viewportNode).paddingTop, 10);\n this.canScrollUp = this.root.viewportNode.scrollTop - paddingTop > 0.1;\n };\n handleAutoScroll = () => {\n if (!this.root.viewportNode || !this.root.highlightedNode)\n return;\n this.root.viewportNode.scrollTop =\n this.root.viewportNode.scrollTop - this.root.highlightedNode.offsetHeight;\n };\n props = $derived.by(() => ({\n ...this.scrollButtonState.props,\n [this.root.getBitsAttr(\"scroll-up-button\")]: \"\",\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport { SelectHiddenInputState } from \"../select.svelte.js\";\n\timport type { HTMLInputAttributes } from \"svelte/elements\";\n\timport HiddenInput from \"../../utilities/hidden-input.svelte\";\n\n\tlet {\n\t\tvalue = $bindable(),\n\t\tautocomplete,\n\t}: { value?: string } & Omit<HTMLInputAttributes, \"value\"> = $props();\n\n\tconst hiddenInputState = SelectHiddenInputState.create({\n\t\tvalue: boxWith(() => value),\n\t});\n</script>\n\n{#if hiddenInputState.shouldRender}\n\t<HiddenInput {...hiddenInputState.props} bind:value {autocomplete} />\n{/if}\n", "<script lang=\"ts\">\n\timport { type WritableBox, boxWith } from \"svelte-toolbelt\";\n\timport type { ComboboxRootProps } from \"../types.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport FloatingLayer from \"../../utilities/floating-layer/components/floating-layer.svelte\";\n\timport { SelectRootState } from \"../../select/select.svelte.js\";\n\timport ListboxHiddenInput from \"../../select/components/select-hidden-input.svelte\";\n\timport { watch } from \"runed\";\n\n\tlet {\n\t\tvalue = $bindable(),\n\t\tonValueChange = noop,\n\t\tname = \"\",\n\t\tdisabled = false,\n\t\ttype,\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tloop = false,\n\t\tscrollAlignment = \"nearest\",\n\t\trequired = false,\n\t\titems = [],\n\t\tallowDeselect = true,\n\t\tinputValue = \"\",\n\t\tchildren,\n\t}: ComboboxRootProps = $props();\n\n\tif (value === undefined) {\n\t\tconst defaultValue = type === \"single\" ? \"\" : [];\n\t\tvalue = defaultValue;\n\t}\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\tif (value !== undefined) return;\n\t\t\tvalue = type === \"single\" ? \"\" : [];\n\t\t}\n\t);\n\n\tconst rootState = SelectRootState.create({\n\t\ttype,\n\t\tvalue: boxWith(\n\t\t\t() => value!,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\t// @ts-expect-error - we know\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t) as WritableBox<string> | WritableBox<string[]>,\n\t\tdisabled: boxWith(() => disabled),\n\t\trequired: boxWith(() => required),\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\tloop: boxWith(() => loop),\n\t\tscrollAlignment: boxWith(() => scrollAlignment),\n\t\tname: boxWith(() => name),\n\t\tisCombobox: true,\n\t\titems: boxWith(() => items),\n\t\tallowDeselect: boxWith(() => allowDeselect),\n\t\tinputValue: boxWith(\n\t\t\t() => inputValue,\n\t\t\t(v) => (inputValue = v)\n\t\t),\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n</script>\n\n<FloatingLayer>\n\t{@render children?.()}\n</FloatingLayer>\n\n{#if Array.isArray(rootState.opts.value.current)}\n\t{#if rootState.opts.value.current.length}\n\t\t{#each rootState.opts.value.current as item (item)}\n\t\t\t<ListboxHiddenInput value={item} />\n\t\t{/each}\n\t{/if}\n{:else}\n\t<ListboxHiddenInput bind:value={rootState.opts.value.current as string} />\n{/if}\n", "export { default as Anchor } from \"./floating-layer-anchor.svelte\";\nexport { default as Arrow } from \"./floating-layer-arrow.svelte\";\nexport { default as Content } from \"./floating-layer-content.svelte\";\nexport { default as ContentStatic } from \"./floating-layer-content-static.svelte\";\nexport { default as Root } from \"./floating-layer.svelte\";\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport { FloatingAnchorState } from \"../use-floating-layer.svelte.js\";\n\timport type { AnchorProps } from \"./index.js\";\n\timport type { Measurable } from \"../../../../internal/floating-svelte/types.js\";\n\n\tlet { id, children, virtualEl, ref, tooltip = false }: AnchorProps = $props();\n\n\tFloatingAnchorState.create(\n\t\t{\n\t\t\tid: boxWith(() => id),\n\t\t\tvirtualEl: boxWith(() => virtualEl as unknown as Measurable | null),\n\t\t\tref,\n\t\t},\n\t\ttooltip\n\t);\n</script>\n\n{@render children?.()}\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { ArrowProps } from \"./types.js\";\n\timport { useId } from \"../../../internal/use-id.js\";\n\n\tlet {\n\t\tid = useId(),\n\t\tchildren,\n\t\tchild,\n\t\twidth = 10,\n\t\theight = 5,\n\t\t...restProps\n\t}: ArrowProps = $props();\n\n\tconst mergedProps = $derived(mergeProps(restProps, { id }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{#if children}\n\t\t\t{@render children?.()}\n\t\t{:else}\n\t\t\t<svg {width} {height} viewBox=\"0 0 30 10\" preserveAspectRatio=\"none\" data-arrow=\"\">\n\t\t\t\t<polygon points=\"0,0 30,0 15,10\" fill=\"currentColor\" />\n\t\t\t</svg>\n\t\t{/if}\n\t</span>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { FloatingArrowState } from \"../use-floating-layer.svelte.js\";\n\timport { Arrow, type ArrowProps } from \"../../arrow/index.js\";\n\timport { useId } from \"../../../../internal/use-id.js\";\n\n\tlet { id = useId(), ref = $bindable(null), ...restProps }: ArrowProps = $props();\n\n\tconst arrowState = FloatingArrowState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, arrowState.props));\n</script>\n\n<Arrow {...mergedProps} />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { FloatingContentState } from \"../use-floating-layer.svelte.js\";\n\timport type { ContentImplProps } from \"./index.js\";\n\timport { useId } from \"../../../../internal/use-id.js\";\n\n\tlet {\n\t\tcontent,\n\t\tside = \"bottom\",\n\t\tsideOffset = 0,\n\t\talign = \"center\",\n\t\talignOffset = 0,\n\t\tid,\n\t\tarrowPadding = 0,\n\t\tavoidCollisions = true,\n\t\tcollisionBoundary = [],\n\t\tcollisionPadding = 0,\n\t\thideWhenDetached = false,\n\t\tonPlaced = () => {},\n\t\tsticky = \"partial\",\n\t\tupdatePositionStrategy = \"optimized\",\n\t\tstrategy = \"fixed\",\n\t\tdir = \"ltr\",\n\t\tstyle = {},\n\t\twrapperId = useId(),\n\t\tcustomAnchor = null,\n\t\tenabled,\n\t\ttooltip = false,\n\t}: ContentImplProps = $props();\n\n\tconst contentState = FloatingContentState.create(\n\t\t{\n\t\t\tside: boxWith(() => side),\n\t\t\tsideOffset: boxWith(() => sideOffset),\n\t\t\talign: boxWith(() => align),\n\t\t\talignOffset: boxWith(() => alignOffset),\n\t\t\tid: boxWith(() => id),\n\t\t\tarrowPadding: boxWith(() => arrowPadding),\n\t\t\tavoidCollisions: boxWith(() => avoidCollisions),\n\t\t\tcollisionBoundary: boxWith(() => collisionBoundary),\n\t\t\tcollisionPadding: boxWith(() => collisionPadding),\n\t\t\thideWhenDetached: boxWith(() => hideWhenDetached),\n\t\t\tonPlaced: boxWith(() => onPlaced),\n\t\t\tsticky: boxWith(() => sticky),\n\t\t\tupdatePositionStrategy: boxWith(() => updatePositionStrategy),\n\t\t\tstrategy: boxWith(() => strategy),\n\t\t\tdir: boxWith(() => dir),\n\t\t\tstyle: boxWith(() => style),\n\t\t\tenabled: boxWith(() => enabled),\n\t\t\twrapperId: boxWith(() => wrapperId),\n\t\t\tcustomAnchor: boxWith(() => customAnchor),\n\t\t},\n\t\ttooltip\n\t);\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(contentState.wrapperProps, {\n\t\t\tstyle: {\n\t\t\t\tpointerEvents: \"auto\",\n\t\t\t},\n\t\t})\n\t);\n</script>\n\n{@render content?.({ props: contentState.props, wrapperProps: mergedProps })}\n", "<script lang=\"ts\">\n\timport { type Snippet, onMount } from \"svelte\";\n\n\tlet {\n\t\tcontent,\n\t\tonPlaced,\n\t}: {\n\t\tcontent?: Snippet<\n\t\t\t[{ props: Record<string, unknown>; wrapperProps: Record<string, unknown> }]\n\t\t>;\n\t\tonPlaced?: () => void;\n\t} = $props();\n\n\tonMount(() => {\n\t\tonPlaced?.();\n\t});\n</script>\n\n{@render content?.({ props: {}, wrapperProps: {} })}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ComboboxInputProps } from \"../types.js\";\n\timport { useId } from \"../../../internal/use-id.js\";\n\timport { FloatingLayer } from \"../../utilities/floating-layer/index.js\";\n\timport { SelectInputState } from \"../../select/select.svelte.js\";\n\n\tlet {\n\t\tid = useId(),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tdefaultValue,\n\t\tclearOnDeselect = false,\n\t\t...restProps\n\t}: ComboboxInputProps = $props();\n\n\tconst inputState = SelectInputState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tclearOnDeselect: boxWith(() => clearOnDeselect),\n\t});\n\n\tif (defaultValue) {\n\t\tinputState.root.opts.inputValue.current = defaultValue;\n\t}\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, inputState.props, { value: inputState.root.opts.inputValue.current })\n\t);\n</script>\n\n<FloatingLayer.Anchor {id} ref={inputState.opts.ref}>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<input {...mergedProps} />\n\t{/if}\n</FloatingLayer.Anchor>\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { createBitsAttrs, boolToStrTrueOrUndef } from \"../../internal/attrs.js\";\nconst separatorAttrs = createBitsAttrs({\n component: \"separator\",\n parts: [\"root\"],\n});\nexport class SeparatorRootState {\n static create(opts) {\n return new SeparatorRootState(opts);\n }\n opts;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: this.opts.decorative.current ? \"none\" : \"separator\",\n \"aria-orientation\": this.opts.orientation.current,\n \"aria-hidden\": boolToStrTrueOrUndef(this.opts.decorative.current),\n \"data-orientation\": this.opts.orientation.current,\n [separatorAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { SeparatorRootState } from \"../separator.svelte.js\";\n\timport type { SeparatorRootProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\tdecorative = false,\n\t\torientation = \"horizontal\",\n\t\t...restProps\n\t}: SeparatorRootProps = $props();\n\n\tconst rootState = SeparatorRootState.create({\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tid: boxWith(() => id),\n\t\tdecorative: boxWith(() => decorative),\n\t\torientation: boxWith(() => orientation),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ComboboxTriggerProps } from \"../types.js\";\n\timport { useId } from \"../../../internal/use-id.js\";\n\timport { SelectComboTriggerState } from \"../../select/select.svelte.js\";\n\n\tlet {\n\t\tid = useId(),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\ttype = \"button\",\n\t\t...restProps\n\t}: ComboboxTriggerProps = $props();\n\n\tconst triggerState = SelectComboTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport FloatingLayerContentStatic from \"../floating-layer/components/floating-layer-content-static.svelte\";\n\timport FloatingLayerContent from \"../floating-layer/components/floating-layer-content.svelte\";\n\timport type { FloatingLayerContentImplProps } from \"../floating-layer/types.js\";\n\n\tlet {\n\t\tcontent,\n\t\tisStatic = false,\n\t\tonPlaced,\n\t\t...restProps\n\t}: FloatingLayerContentImplProps & { isStatic: boolean } = $props();\n</script>\n\n{#if isStatic}\n\t<FloatingLayerContentStatic {content} {onPlaced} />\n{:else}\n\t<FloatingLayerContent {content} {onPlaced} {...restProps} />\n{/if}\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport ScrollLock from \"../scroll-lock/scroll-lock.svelte\";\n\timport type { PopperLayerImplProps } from \"./types.js\";\n\timport PopperContent from \"./popper-content.svelte\";\n\timport EscapeLayer from \"../escape-layer/escape-layer.svelte\";\n\timport DismissibleLayer from \"../dismissible-layer/dismissible-layer.svelte\";\n\timport TextSelectionLayer from \"../text-selection-layer/text-selection-layer.svelte\";\n\timport FocusScope from \"../focus-scope/focus-scope.svelte\";\n\n\tlet {\n\t\tpopper,\n\t\tonEscapeKeydown,\n\t\tescapeKeydownBehavior,\n\t\tpreventOverflowTextSelection,\n\t\tid,\n\t\tonPointerDown,\n\t\tonPointerUp,\n\t\tside,\n\t\tsideOffset,\n\t\talign,\n\t\talignOffset,\n\t\tarrowPadding,\n\t\tavoidCollisions,\n\t\tcollisionBoundary,\n\t\tcollisionPadding,\n\t\tsticky,\n\t\thideWhenDetached,\n\t\tupdatePositionStrategy,\n\t\tstrategy,\n\t\tdir,\n\t\tpreventScroll,\n\t\twrapperId,\n\t\tstyle,\n\t\tonPlaced,\n\t\tonInteractOutside,\n\t\tonCloseAutoFocus,\n\t\tonOpenAutoFocus,\n\t\tonFocusOutside,\n\t\tinteractOutsideBehavior = \"close\",\n\t\tloop,\n\t\ttrapFocus = true,\n\t\tisValidEvent = () => false,\n\t\tcustomAnchor = null,\n\t\tisStatic = false,\n\t\tenabled,\n\t\tref,\n\t\ttooltip = false,\n\t\tcontentPointerEvents = \"auto\",\n\t\t...restProps\n\t}: Omit<PopperLayerImplProps, \"open\" | \"children\" | \"shouldRender\"> & {\n\t\tenabled: boolean;\n\t\tcontentPointerEvents?: \"auto\" | \"none\";\n\t} = $props();\n</script>\n\n<PopperContent\n\t{isStatic}\n\t{id}\n\t{side}\n\t{sideOffset}\n\t{align}\n\t{alignOffset}\n\t{arrowPadding}\n\t{avoidCollisions}\n\t{collisionBoundary}\n\t{collisionPadding}\n\t{sticky}\n\t{hideWhenDetached}\n\t{updatePositionStrategy}\n\t{strategy}\n\t{dir}\n\t{wrapperId}\n\t{style}\n\t{onPlaced}\n\t{customAnchor}\n\t{enabled}\n\t{tooltip}\n>\n\t{#snippet content({ props: floatingProps, wrapperProps })}\n\t\t{#if restProps.forceMount && enabled}\n\t\t\t<ScrollLock {preventScroll} />\n\t\t{:else if !restProps.forceMount}\n\t\t\t<ScrollLock {preventScroll} />\n\t\t{/if}\n\t\t<FocusScope\n\t\t\t{onOpenAutoFocus}\n\t\t\t{onCloseAutoFocus}\n\t\t\t{loop}\n\t\t\t{enabled}\n\t\t\t{trapFocus}\n\t\t\tforceMount={restProps.forceMount}\n\t\t\t{ref}\n\t\t>\n\t\t\t{#snippet focusScope({ props: focusScopeProps })}\n\t\t\t\t<EscapeLayer {onEscapeKeydown} {escapeKeydownBehavior} {enabled} {ref}>\n\t\t\t\t\t<DismissibleLayer\n\t\t\t\t\t\t{id}\n\t\t\t\t\t\t{onInteractOutside}\n\t\t\t\t\t\t{onFocusOutside}\n\t\t\t\t\t\t{interactOutsideBehavior}\n\t\t\t\t\t\t{isValidEvent}\n\t\t\t\t\t\t{enabled}\n\t\t\t\t\t\t{ref}\n\t\t\t\t\t>\n\t\t\t\t\t\t{#snippet children({ props: dismissibleProps })}\n\t\t\t\t\t\t\t<TextSelectionLayer\n\t\t\t\t\t\t\t\t{id}\n\t\t\t\t\t\t\t\t{preventOverflowTextSelection}\n\t\t\t\t\t\t\t\t{onPointerDown}\n\t\t\t\t\t\t\t\t{onPointerUp}\n\t\t\t\t\t\t\t\t{enabled}\n\t\t\t\t\t\t\t\t{ref}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{@render popper?.({\n\t\t\t\t\t\t\t\t\tprops: mergeProps(\n\t\t\t\t\t\t\t\t\t\trestProps,\n\t\t\t\t\t\t\t\t\t\tfloatingProps,\n\t\t\t\t\t\t\t\t\t\tdismissibleProps,\n\t\t\t\t\t\t\t\t\t\tfocusScopeProps,\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\t\t\t\t\tpointerEvents: contentPointerEvents,\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\twrapperProps,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t</TextSelectionLayer>\n\t\t\t\t\t\t{/snippet}\n\t\t\t\t\t</DismissibleLayer>\n\t\t\t\t</EscapeLayer>\n\t\t\t{/snippet}\n\t\t</FocusScope>\n\t{/snippet}\n</PopperContent>\n", "<script lang=\"ts\">\n\timport type { PopperLayerImplProps } from \"./types.js\";\n\timport PopperLayerInner from \"./popper-layer-inner.svelte\";\n\n\tlet {\n\t\tpopper,\n\t\topen,\n\t\tonEscapeKeydown,\n\t\tescapeKeydownBehavior,\n\t\tpreventOverflowTextSelection,\n\t\tid,\n\t\tonPointerDown,\n\t\tonPointerUp,\n\t\tside,\n\t\tsideOffset,\n\t\talign,\n\t\talignOffset,\n\t\tarrowPadding,\n\t\tavoidCollisions,\n\t\tcollisionBoundary,\n\t\tcollisionPadding,\n\t\tsticky,\n\t\thideWhenDetached,\n\t\tupdatePositionStrategy,\n\t\tstrategy,\n\t\tdir,\n\t\tpreventScroll,\n\t\twrapperId,\n\t\tstyle,\n\t\tonPlaced,\n\t\tonInteractOutside,\n\t\tonCloseAutoFocus,\n\t\tonOpenAutoFocus,\n\t\tonFocusOutside,\n\t\tinteractOutsideBehavior = \"close\",\n\t\tloop,\n\t\ttrapFocus = true,\n\t\tisValidEvent = () => false,\n\t\tcustomAnchor = null,\n\t\tisStatic = false,\n\t\tref,\n\t\tshouldRender,\n\t\t...restProps\n\t}: PopperLayerImplProps = $props();\n</script>\n\n{#if shouldRender}\n\t<PopperLayerInner\n\t\t{popper}\n\t\t{onEscapeKeydown}\n\t\t{escapeKeydownBehavior}\n\t\t{preventOverflowTextSelection}\n\t\t{id}\n\t\t{onPointerDown}\n\t\t{onPointerUp}\n\t\t{side}\n\t\t{sideOffset}\n\t\t{align}\n\t\t{alignOffset}\n\t\t{arrowPadding}\n\t\t{avoidCollisions}\n\t\t{collisionBoundary}\n\t\t{collisionPadding}\n\t\t{sticky}\n\t\t{hideWhenDetached}\n\t\t{updatePositionStrategy}\n\t\t{strategy}\n\t\t{dir}\n\t\t{preventScroll}\n\t\t{wrapperId}\n\t\t{style}\n\t\t{onPlaced}\n\t\t{customAnchor}\n\t\t{isStatic}\n\t\tenabled={open}\n\t\t{onInteractOutside}\n\t\t{onCloseAutoFocus}\n\t\t{onOpenAutoFocus}\n\t\t{interactOutsideBehavior}\n\t\t{loop}\n\t\t{trapFocus}\n\t\t{isValidEvent}\n\t\t{onFocusOutside}\n\t\tforceMount={false}\n\t\t{ref}\n\t\t{...restProps}\n\t/>\n{/if}\n", "<script lang=\"ts\">\n\timport type { PopperLayerImplProps } from \"./types.js\";\n\timport PopperLayerInner from \"./popper-layer-inner.svelte\";\n\n\tlet {\n\t\tpopper,\n\t\tonEscapeKeydown,\n\t\tescapeKeydownBehavior,\n\t\tpreventOverflowTextSelection,\n\t\tid,\n\t\tonPointerDown,\n\t\tonPointerUp,\n\t\tside,\n\t\tsideOffset,\n\t\talign,\n\t\talignOffset,\n\t\tarrowPadding,\n\t\tavoidCollisions,\n\t\tcollisionBoundary,\n\t\tcollisionPadding,\n\t\tsticky,\n\t\thideWhenDetached,\n\t\tupdatePositionStrategy,\n\t\tstrategy,\n\t\tdir,\n\t\tpreventScroll,\n\t\twrapperId,\n\t\tstyle,\n\t\tonPlaced,\n\t\tonInteractOutside,\n\t\tonCloseAutoFocus,\n\t\tonOpenAutoFocus,\n\t\tonFocusOutside,\n\t\tinteractOutsideBehavior = \"close\",\n\t\tloop,\n\t\ttrapFocus = true,\n\t\tisValidEvent = () => false,\n\t\tcustomAnchor = null,\n\t\tisStatic = false,\n\t\tenabled,\n\t\t...restProps\n\t}: Omit<PopperLayerImplProps, \"open\"> & {\n\t\tenabled: boolean;\n\t} = $props();\n</script>\n\n<PopperLayerInner\n\t{popper}\n\t{onEscapeKeydown}\n\t{escapeKeydownBehavior}\n\t{preventOverflowTextSelection}\n\t{id}\n\t{onPointerDown}\n\t{onPointerUp}\n\t{side}\n\t{sideOffset}\n\t{align}\n\t{alignOffset}\n\t{arrowPadding}\n\t{avoidCollisions}\n\t{collisionBoundary}\n\t{collisionPadding}\n\t{sticky}\n\t{hideWhenDetached}\n\t{updatePositionStrategy}\n\t{strategy}\n\t{dir}\n\t{preventScroll}\n\t{wrapperId}\n\t{style}\n\t{onPlaced}\n\t{customAnchor}\n\t{isStatic}\n\t{enabled}\n\t{onInteractOutside}\n\t{onCloseAutoFocus}\n\t{onOpenAutoFocus}\n\t{interactOutsideBehavior}\n\t{loop}\n\t{trapFocus}\n\t{isValidEvent}\n\t{onFocusOutside}\n\t{...restProps}\n\tforceMount={true}\n/>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SelectContentProps } from \"../types.js\";\n\timport { SelectContentState } from \"../select.svelte.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tforceMount = false,\n\t\tside = \"bottom\",\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tchildren,\n\t\tchild,\n\t\tpreventScroll = false,\n\t\tstyle,\n\t\t...restProps\n\t}: SelectContentProps = $props();\n\n\tconst contentState = SelectContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonEscapeKeydown: boxWith(() => onEscapeKeydown),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\t{side}\n\t\tenabled={contentState.root.opts.open.current}\n\t\t{id}\n\t\t{preventScroll}\n\t\tforceMount={true}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(props, { style: contentState.props.style }, { style })}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\t{side}\n\t\topen={contentState.root.opts.open.current}\n\t\t{id}\n\t\t{preventScroll}\n\t\tforceMount={false}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(props, { style: contentState.props.style }, { style })}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SelectContentStaticProps } from \"../types.js\";\n\timport { SelectContentState } from \"../select.svelte.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tforceMount = false,\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tchildren,\n\t\tchild,\n\t\tpreventScroll = false,\n\t\tstyle,\n\t\t...restProps\n\t}: SelectContentStaticProps = $props();\n\n\tconst contentState = SelectContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonEscapeKeydown: boxWith(() => onEscapeKeydown),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tisStatic\n\t\tenabled={contentState.root.opts.open.current}\n\t\t{id}\n\t\t{preventScroll}\n\t\tforceMount={true}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(props, { style: contentState.props.style }, { style })}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tisStatic\n\t\topen={contentState.root.opts.open.current}\n\t\t{id}\n\t\t{preventScroll}\n\t\tforceMount={false}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(props, { style: contentState.props.style }, { style })}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { onMountEffect } from \"svelte-toolbelt\";\n\timport { noop } from \"../../internal/noop.js\";\n\n\tlet {\n\t\tmounted = $bindable(false),\n\t\tonMountedChange = noop,\n\t}: { mounted?: boolean; onMountedChange?: (mounted: boolean) => void } = $props();\n\n\tonMountEffect(() => {\n\t\tmounted = true;\n\t\tonMountedChange(true);\n\t\treturn () => {\n\t\t\tmounted = false;\n\t\t\tonMountedChange(false);\n\t\t};\n\t});\n</script>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { SelectItemState } from \"../select.svelte.js\";\n\timport type { SelectItemProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport Mounted from \"../../utilities/mounted.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue,\n\t\tlabel = value,\n\t\tdisabled = false,\n\t\tchildren,\n\t\tchild,\n\t\tonHighlight = noop,\n\t\tonUnhighlight = noop,\n\t\t...restProps\n\t}: SelectItemProps = $props();\n\n\tconst itemState = SelectItemState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tvalue: boxWith(() => value),\n\t\tdisabled: boxWith(() => disabled),\n\t\tlabel: boxWith(() => label),\n\t\tonHighlight: boxWith(() => onHighlight),\n\t\tonUnhighlight: boxWith(() => onUnhighlight),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, itemState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...itemState.snippetProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.(itemState.snippetProps)}\n\t</div>\n{/if}\n\n<Mounted bind:mounted={itemState.mounted} />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { SelectGroupState } from \"../select.svelte.js\";\n\timport type { SelectGroupProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: SelectGroupProps = $props();\n\n\tconst groupState = SelectGroupState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, groupState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SelectGroupHeadingProps } from \"../types.js\";\n\timport { SelectGroupHeadingState } from \"../select.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: SelectGroupHeadingProps = $props();\n\n\tconst groupHeadingState = SelectGroupHeadingState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, groupHeadingState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SelectViewportProps } from \"../types.js\";\n\timport { SelectViewportState } from \"../select.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: SelectViewportProps = $props();\n\n\tconst viewportState = SelectViewportState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, viewportState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n\n<style>\n\t/* Hide scrollbars cross browser and enable momentum scroll for touch devices */\n\t:global([data-select-viewport]) {\n\t\tscrollbar-width: none !important;\n\t\t-ms-overflow-style: none !important;\n\t\t-webkit-overflow-scrolling: touch !important;\n\t}\n\n\t:global([data-combobox-viewport]) {\n\t\tscrollbar-width: none !important;\n\t\t-ms-overflow-style: none !important;\n\t\t-webkit-overflow-scrolling: touch !important;\n\t}\n\n\t:global([data-combobox-viewport])::-webkit-scrollbar {\n\t\tdisplay: none !important;\n\t}\n\t:global([data-select-viewport])::-webkit-scrollbar {\n\t\tdisplay: none !important;\n\t}\n</style>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SelectScrollDownButtonProps } from \"../types.js\";\n\timport { SelectScrollDownButtonState } from \"../select.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { Mounted } from \"../../utilities/index.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tdelay = () => 50,\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: SelectScrollDownButtonProps = $props();\n\n\tconst scrollButtonState = SelectScrollDownButtonState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdelay: boxWith(() => delay),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, scrollButtonState.props));\n</script>\n\n{#if scrollButtonState.canScrollDown}\n\t<Mounted bind:mounted={scrollButtonState.scrollButtonState.mounted} />\n\t{#if child}\n\t\t{@render child({ props: restProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SelectScrollUpButtonProps } from \"../types.js\";\n\timport { SelectScrollUpButtonState } from \"../select.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { Mounted } from \"../../utilities/index.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tdelay = () => 50,\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: SelectScrollUpButtonProps = $props();\n\n\tconst scrollButtonState = SelectScrollUpButtonState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdelay: boxWith(() => delay),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, scrollButtonState.props));\n</script>\n\n{#if scrollButtonState.canScrollUp}\n\t<Mounted bind:mounted={scrollButtonState.scrollButtonState.mounted} />\n\t{#if child}\n\t\t{@render child({ props: restProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n{/if}\n", "export { default as Root } from \"./components/command.svelte\";\nexport { default as Empty } from \"./components/command-empty.svelte\";\nexport { default as Group } from \"./components/command-group.svelte\";\nexport { default as GroupHeading } from \"./components/command-group-heading.svelte\";\nexport { default as GroupItems } from \"./components/command-group-items.svelte\";\nexport { default as Input } from \"./components/command-input.svelte\";\nexport { default as Item } from \"./components/command-item.svelte\";\nexport { default as LinkItem } from \"./components/command-link-item.svelte\";\nexport { default as List } from \"./components/command-list.svelte\";\nexport { default as Viewport } from \"./components/command-viewport.svelte\";\nexport { default as Loading } from \"./components/command-loading.svelte\";\nexport { default as Separator } from \"./components/command-separator.svelte\";\n", "export function findNextSibling(el, selector) {\n let sibling = el.nextElementSibling;\n while (sibling) {\n if (sibling.matches(selector))\n return sibling;\n sibling = sibling.nextElementSibling;\n }\n}\nexport function findPreviousSibling(el, selector) {\n let sibling = el.previousElementSibling;\n while (sibling) {\n if (sibling.matches(selector))\n return sibling;\n sibling = sibling.previousElementSibling;\n }\n}\nexport function findFirstStartMarkerWithImmediateSiblingAsEnd(el, type) {\n const startMarkers = el.querySelectorAll(`[data-bits-command-${type}-start]`);\n for (const startMarker of startMarkers) {\n const endMarker = startMarker.nextElementSibling;\n if (endMarker && endMarker.hasAttribute(`data-bits-command-${type}-end`)) {\n return startMarker;\n }\n }\n return null;\n}\n", "/**\n * https://github.com/mathiasbynens/CSS.escape\n *\n * @param value - The value to escape for use as a CSS identifier\n * @returns The escaped CSS identifier string\n */\nexport function cssEscape(value) {\n if (typeof CSS !== \"undefined\" && typeof CSS.escape === \"function\") {\n return CSS.escape(value);\n }\n const length = value.length;\n let index = -1;\n let codeUnit;\n let result = \"\";\n const firstCodeUnit = value.charCodeAt(0);\n // If the character is the first character and is a `-` (U+002D), and\n // there is no second character, escape it\n if (length === 1 && firstCodeUnit === 0x002d)\n return \"\\\\\" + value;\n while (++index < length) {\n codeUnit = value.charCodeAt(index);\n // If the character is NULL (U+0000), then the REPLACEMENT CHARACTER (U+FFFD)\n if (codeUnit === 0x0000) {\n result += \"\\uFFFD\";\n continue;\n }\n if (\n // If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is U+007F\n (codeUnit >= 0x0001 && codeUnit <= 0x001f) ||\n codeUnit === 0x007f ||\n // If the character is the first character and is in the range [0-9] (U+0030 to U+0039)\n (index === 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n // If the character is the second character and is in the range [0-9] (U+0030 to U+0039)\n // and the first character is a `-` (U+002D)\n (index === 1 && codeUnit >= 0x0030 && codeUnit <= 0x0039 && firstCodeUnit === 0x002d)) {\n // https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n result += \"\\\\\" + codeUnit.toString(16) + \" \";\n continue;\n }\n // If the character is not handled by one of the above rules and is\n // greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n // is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to U+005A),\n // or [a-z] (U+0061 to U+007A)\n if (codeUnit >= 0x0080 ||\n codeUnit === 0x002d ||\n codeUnit === 0x005f ||\n (codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n (codeUnit >= 0x0041 && codeUnit <= 0x005a) ||\n (codeUnit >= 0x0061 && codeUnit <= 0x007a)) {\n // Use the character itself\n result += value.charAt(index);\n continue;\n }\n // Otherwise, escape the character\n // https://drafts.csswg.org/cssom/#escape-a-character\n result += \"\\\\\" + value.charAt(index);\n }\n return result;\n}\n", "import { afterSleep, afterTick, srOnlyStyles, attachRef, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { findNextSibling, findPreviousSibling } from \"./utils.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { createBitsAttrs, boolToStr, boolToEmptyStrOrUndef } from \"../../internal/attrs.js\";\nimport { getFirstNonCommentChild } from \"../../internal/dom.js\";\nimport { computeCommandScore } from \"./index.js\";\nimport { cssEscape } from \"../../internal/css-escape.js\";\nconst COMMAND_VALUE_ATTR = \"data-value\";\nconst commandAttrs = createBitsAttrs({\n component: \"command\",\n parts: [\n \"root\",\n \"list\",\n \"input\",\n \"separator\",\n \"loading\",\n \"empty\",\n \"group\",\n \"group-items\",\n \"group-heading\",\n \"item\",\n \"viewport\",\n \"input-label\",\n ],\n});\n// selectors\nconst COMMAND_GROUP_SELECTOR = commandAttrs.selector(\"group\");\nconst COMMAND_GROUP_ITEMS_SELECTOR = commandAttrs.selector(\"group-items\");\nconst COMMAND_GROUP_HEADING_SELECTOR = commandAttrs.selector(\"group-heading\");\nconst COMMAND_ITEM_SELECTOR = commandAttrs.selector(\"item\");\nconst COMMAND_VALID_ITEM_SELECTOR = `${commandAttrs.selector(\"item\")}:not([aria-disabled=\"true\"])`;\nconst CommandRootContext = new Context(\"Command.Root\");\nconst CommandListContext = new Context(\"Command.List\");\nconst CommandGroupContainerContext = new Context(\"Command.Group\");\nconst defaultState = {\n /** Value of the search query */\n search: \"\",\n /** Currently selected item value */\n value: \"\",\n filtered: {\n /** The count of all visible items. */\n count: 0,\n /** Map from visible item id to its search store. */\n items: new Map(),\n /** Set of groups with at least one visible item. */\n groups: new Set(),\n },\n};\nexport class CommandRootState {\n static create(opts) {\n return CommandRootContext.set(new CommandRootState(opts));\n }\n opts;\n attachment;\n #updateScheduled = false;\n #isInitialMount = true;\n sortAfterTick = false;\n sortAndFilterAfterTick = false;\n allItems = new Set();\n allGroups = new Map();\n allIds = new Map();\n // attempt to prevent the harsh delay when user is typing fast\n key = $state(0);\n viewportNode = $state(null);\n inputNode = $state(null);\n labelNode = $state(null);\n // published state that the components and other things can react to\n commandState = $state.raw(defaultState);\n // internal state that we mutate in batches and publish to the `state` at once\n _commandState = $state(defaultState);\n #snapshot() {\n return $state.snapshot(this._commandState);\n }\n #scheduleUpdate() {\n if (this.#updateScheduled)\n return;\n this.#updateScheduled = true;\n afterTick(() => {\n this.#updateScheduled = false;\n const currentState = this.#snapshot();\n const hasStateChanged = !Object.is(this.commandState, currentState);\n if (hasStateChanged) {\n this.commandState = currentState;\n this.opts.onStateChange?.current?.(currentState);\n }\n });\n }\n setState(key, value, preventScroll) {\n if (Object.is(this._commandState[key], value))\n return;\n this._commandState[key] = value;\n if (key === \"search\") {\n // Filter synchronously before emitting back to children\n this.#filterItems();\n this.#sort();\n }\n else if (key === \"value\") {\n if (!preventScroll)\n this.#scrollSelectedIntoView();\n }\n this.#scheduleUpdate();\n }\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n const defaults = { ...this._commandState, value: this.opts.value.current ?? \"\" };\n this._commandState = defaults;\n this.commandState = defaults;\n this.onkeydown = this.onkeydown.bind(this);\n }\n /**\n * Calculates score for an item based on search text and keywords.\n * Higher score = better match.\n *\n * @param value - Item's display text\n * @param keywords - Optional keywords to boost scoring\n * @returns Score from 0-1, where 0 = no match\n */\n #score(value, keywords) {\n const filter = this.opts.filter.current ?? computeCommandScore;\n const score = value ? filter(value, this._commandState.search, keywords) : 0;\n return score;\n }\n /**\n * Sorts items and groups based on search scores.\n * Groups are sorted by their highest scoring item.\n * When no search active, selects first item.\n */\n #sort() {\n if (!this._commandState.search || this.opts.shouldFilter.current === false) {\n // if no search and no initial value set or when clearing search,\n // we select the first item.\n if (!this._commandState.value || !this.#isInitialMount) {\n this.#selectFirstItem();\n }\n else if (this.#isInitialMount && this._commandState.value) {\n // scroll the initial value into view if it exists\n this.#scrollInitialValue();\n }\n return;\n }\n const scores = this._commandState.filtered.items;\n // sort the groups\n const groups = [];\n for (const value of this._commandState.filtered.groups) {\n const items = this.allGroups.get(value);\n let max = 0;\n if (!items) {\n groups.push([value, max]);\n continue;\n }\n // get the max score of the group's items\n for (const item of items) {\n const score = scores.get(item);\n max = Math.max(score ?? 0, max);\n }\n groups.push([value, max]);\n }\n // Sort items within groups to bottom\n // Sort items outside of groups\n // Sort groups to bottom (pushes all non-grouped items to the top)\n const listInsertionElement = this.viewportNode;\n const sorted = this.getValidItems().sort((a, b) => {\n const valueA = a.getAttribute(\"data-value\");\n const valueB = b.getAttribute(\"data-value\");\n const scoresA = scores.get(valueA) ?? 0;\n const scoresB = scores.get(valueB) ?? 0;\n return scoresB - scoresA;\n });\n for (const item of sorted) {\n const group = item.closest(COMMAND_GROUP_ITEMS_SELECTOR);\n if (group) {\n const itemToAppend = item.parentElement === group\n ? item\n : item.closest(`${COMMAND_GROUP_ITEMS_SELECTOR} > *`);\n if (itemToAppend) {\n group.appendChild(itemToAppend);\n }\n }\n else {\n const itemToAppend = item.parentElement === listInsertionElement\n ? item\n : item.closest(`${COMMAND_GROUP_ITEMS_SELECTOR} > *`);\n if (itemToAppend) {\n listInsertionElement?.appendChild(itemToAppend);\n }\n }\n }\n const sortedGroups = groups.sort((a, b) => b[1] - a[1]);\n for (const group of sortedGroups) {\n const element = listInsertionElement?.querySelector(`${COMMAND_GROUP_SELECTOR}[${COMMAND_VALUE_ATTR}=\"${cssEscape(group[0])}\"]`);\n element?.parentElement?.appendChild(element);\n }\n this.#selectFirstItem();\n }\n /**\n * Sets current value and triggers re-render if cleared.\n *\n * @param value - New value to set\n */\n setValue(value, opts) {\n if (value !== this.opts.value.current && value === \"\") {\n afterTick(() => {\n this.key++;\n });\n }\n this.setState(\"value\", value, opts);\n this.opts.value.current = value;\n }\n /**\n * Selects first non-disabled item on next tick.\n */\n #selectFirstItem() {\n afterTick(() => {\n const item = this.getValidItems().find((item) => item.getAttribute(\"aria-disabled\") !== \"true\");\n const value = item?.getAttribute(COMMAND_VALUE_ATTR);\n const shouldPreventScroll = this.#isInitialMount && this.opts.disableInitialScroll.current;\n this.setValue(value ?? \"\", shouldPreventScroll);\n this.#isInitialMount = false;\n });\n }\n /**\n * Scrolls the initial value into view if it exists and is not the first item.\n * Called during initial mount when a value is provided.\n */\n #scrollInitialValue() {\n afterTick(() => {\n const shouldPreventScroll = this.opts.disableInitialScroll.current;\n if (!shouldPreventScroll) {\n this.#scrollSelectedIntoView();\n }\n this.#isInitialMount = false;\n });\n }\n /**\n * Updates filtered items/groups based on search.\n * Recalculates scores and filtered count.\n */\n #filterItems() {\n if (!this._commandState.search || this.opts.shouldFilter.current === false) {\n this._commandState.filtered.count = this.allItems.size;\n return;\n }\n // reset the groups\n this._commandState.filtered.groups = new Set();\n let itemCount = 0;\n // Check which items should be included\n for (const id of this.allItems) {\n const value = this.allIds.get(id)?.value ?? \"\";\n const keywords = this.allIds.get(id)?.keywords ?? [];\n const rank = this.#score(value, keywords);\n this._commandState.filtered.items.set(id, rank);\n if (rank > 0)\n itemCount++;\n }\n // Check which groups have at least 1 item shown\n for (const [groupId, group] of this.allGroups) {\n for (const itemId of group) {\n const currItem = this._commandState.filtered.items.get(itemId);\n if (currItem && currItem > 0) {\n this._commandState.filtered.groups.add(groupId);\n break;\n }\n }\n }\n this._commandState.filtered.count = itemCount;\n }\n /**\n * Gets all non-disabled, visible command items.\n *\n * @returns Array of valid item elements\n * @remarks Exposed for direct item access and bound checking\n */\n getValidItems() {\n const node = this.opts.ref.current;\n if (!node)\n return [];\n const validItems = Array.from(node.querySelectorAll(COMMAND_VALID_ITEM_SELECTOR)).filter((el) => !!el);\n return validItems;\n }\n /**\n * Gets all visible command items.\n *\n * @returns Array of valid item elements\n * @remarks Exposed for direct item access and bound checking\n */\n getVisibleItems() {\n const node = this.opts.ref.current;\n if (!node)\n return [];\n const visibleItems = Array.from(node.querySelectorAll(COMMAND_ITEM_SELECTOR)).filter((el) => !!el);\n return visibleItems;\n }\n /** Returns all visible items in a matrix structure\n *\n * @remarks Returns empty if the command isn't configured as a grid\n *\n * @returns\n */\n get itemsGrid() {\n if (!this.isGrid)\n return [];\n const columns = this.opts.columns.current ?? 1;\n const items = this.getVisibleItems();\n const grid = [[]];\n let currentGroup = items[0]?.getAttribute(\"data-group\");\n let column = 0;\n let row = 0;\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n const itemGroup = item?.getAttribute(\"data-group\");\n if (currentGroup !== itemGroup) {\n currentGroup = itemGroup;\n column = 1;\n row++;\n grid.push([{ index: i, firstRowOfGroup: true, ref: item }]);\n }\n else {\n column++;\n if (column > columns) {\n row++;\n column = 1;\n grid.push([]);\n }\n grid[row]?.push({\n index: i,\n firstRowOfGroup: grid[row]?.[0]?.firstRowOfGroup ?? i === 0,\n ref: item,\n });\n }\n }\n return grid;\n }\n /**\n * Gets currently selected command item.\n *\n * @returns Selected element or undefined\n */\n #getSelectedItem() {\n const node = this.opts.ref.current;\n if (!node)\n return;\n const selectedNode = node.querySelector(`${COMMAND_VALID_ITEM_SELECTOR}[data-selected]`);\n if (!selectedNode)\n return;\n return selectedNode;\n }\n /**\n * Scrolls selected item into view.\n * Special handling for first items in groups.\n */\n #scrollSelectedIntoView() {\n afterTick(() => {\n const item = this.#getSelectedItem();\n if (!item)\n return;\n const grandparent = item.parentElement?.parentElement;\n if (!grandparent)\n return;\n if (this.isGrid) {\n const isFirstRowOfGroup = this.#itemIsFirstRowOfGroup(item);\n // ensure item is visible\n item.scrollIntoView({ block: \"nearest\" });\n if (isFirstRowOfGroup) {\n const closestGroupHeader = item\n ?.closest(COMMAND_GROUP_SELECTOR)\n ?.querySelector(COMMAND_GROUP_HEADING_SELECTOR);\n closestGroupHeader?.scrollIntoView({ block: \"nearest\" });\n return;\n }\n }\n else {\n const firstChildOfParent = getFirstNonCommentChild(grandparent);\n if (firstChildOfParent &&\n firstChildOfParent.dataset?.value === item.dataset?.value) {\n const closestGroupHeader = item\n ?.closest(COMMAND_GROUP_SELECTOR)\n ?.querySelector(COMMAND_GROUP_HEADING_SELECTOR);\n closestGroupHeader?.scrollIntoView({ block: \"nearest\" });\n return;\n }\n }\n item.scrollIntoView({ block: \"nearest\" });\n });\n }\n #itemIsFirstRowOfGroup(item) {\n const grid = this.itemsGrid;\n if (grid.length === 0)\n return false;\n for (let r = 0; r < grid.length; r++) {\n const row = grid[r];\n if (row === undefined)\n continue;\n for (let c = 0; c < row.length; c++) {\n const column = row[c];\n if (column === undefined || column.ref !== item)\n continue;\n return column.firstRowOfGroup;\n }\n }\n return false;\n }\n /**\n * Sets selection to item at specified index in valid items array.\n * If index is out of bounds, does nothing.\n *\n * @param index - Zero-based index of item to select\n * @remarks\n * Uses `getValidItems()` to get selectable items, filtering out disabled/hidden ones.\n * Access valid items directly via `getValidItems()` to check bounds before calling.\n *\n * @example\n * // get valid items length for bounds check\n * const items = getValidItems()\n * if (index < items.length) {\n * updateSelectedToIndex(index)\n * }\n */\n updateSelectedToIndex(index) {\n const item = this.getValidItems()[index];\n if (!item)\n return;\n this.setValue(item.getAttribute(COMMAND_VALUE_ATTR) ?? \"\");\n }\n /**\n * Updates selected item by moving up/down relative to current selection.\n * Handles wrapping when loop option is enabled.\n *\n * @param change - Direction to move: 1 for next item, -1 for previous item\n * @remarks\n * The loop behavior wraps:\n * - From last item to first when moving next\n * - From first item to last when moving previous\n *\n * Uses `getValidItems()` to get all selectable items, which filters out disabled/hidden items.\n * You can call `getValidItems()` directly to get the current valid items array.\n *\n * @example\n * // select next item\n * updateSelectedByItem(1)\n *\n * // get all valid items\n * const items = getValidItems()\n */\n updateSelectedByItem(change) {\n const selected = this.#getSelectedItem();\n const items = this.getValidItems();\n const index = items.findIndex((item) => item === selected);\n // Get item at this index\n let newSelected = items[index + change];\n if (this.opts.loop.current) {\n newSelected =\n index + change < 0\n ? items[items.length - 1]\n : index + change === items.length\n ? items[0]\n : items[index + change];\n }\n if (newSelected) {\n this.setValue(newSelected.getAttribute(COMMAND_VALUE_ATTR) ?? \"\");\n }\n }\n /**\n * Moves selection to the first valid item in the next/previous group.\n * If no group is found, falls back to selecting the next/previous item globally.\n *\n * @param change - Direction to move: 1 for next group, -1 for previous group\n * @example\n * // move to first item in next group\n * updateSelectedByGroup(1)\n *\n * // move to first item in previous group\n * updateSelectedByGroup(-1)\n */\n updateSelectedByGroup(change) {\n const selected = this.#getSelectedItem();\n let group = selected?.closest(COMMAND_GROUP_SELECTOR);\n let item;\n while (group && !item) {\n group =\n change > 0\n ? findNextSibling(group, COMMAND_GROUP_SELECTOR)\n : findPreviousSibling(group, COMMAND_GROUP_SELECTOR);\n item = group?.querySelector(COMMAND_VALID_ITEM_SELECTOR);\n }\n if (item) {\n this.setValue(item.getAttribute(COMMAND_VALUE_ATTR) ?? \"\");\n }\n else {\n this.updateSelectedByItem(change);\n }\n }\n /**\n * Maps item id to display value and search keywords.\n * Returns cleanup function to remove mapping.\n *\n * @param id - Unique item identifier\n * @param value - Display text\n * @param keywords - Optional search boost terms\n * @returns Cleanup function\n */\n registerValue(value, keywords) {\n if (!(value && value === this.allIds.get(value)?.value)) {\n this.allIds.set(value, { value, keywords });\n }\n this._commandState.filtered.items.set(value, this.#score(value, keywords));\n // Schedule sorting to run after this tick when all items are added not each time an item is added\n if (!this.sortAfterTick) {\n this.sortAfterTick = true;\n afterTick(() => {\n this.#sort();\n this.sortAfterTick = false;\n });\n }\n return () => {\n this.allIds.delete(value);\n };\n }\n /**\n * Registers item in command list and its group.\n * Handles filtering, sorting and selection updates.\n *\n * @param id - Item identifier\n * @param groupId - Optional group to add item to\n * @returns Cleanup function that handles selection\n */\n registerItem(id, groupId) {\n this.allItems.add(id);\n // Track this item within the group\n if (groupId) {\n if (!this.allGroups.has(groupId)) {\n this.allGroups.set(groupId, new Set([id]));\n }\n else {\n this.allGroups.get(groupId).add(id);\n }\n }\n // Schedule sorting and filtering to run after this tick when all items are added not each time an item is added\n if (!this.sortAndFilterAfterTick) {\n this.sortAndFilterAfterTick = true;\n afterTick(() => {\n this.#filterItems();\n this.#sort();\n this.sortAndFilterAfterTick = false;\n });\n }\n this.#scheduleUpdate();\n return () => {\n const selectedItem = this.#getSelectedItem();\n this.allItems.delete(id);\n this.commandState.filtered.items.delete(id);\n this.#filterItems();\n // The item removed have been the selected one,\n // so selection should be moved to the first\n if (selectedItem?.getAttribute(\"id\") === id) {\n this.#selectFirstItem();\n }\n this.#scheduleUpdate();\n };\n }\n /**\n * Creates empty group if not exists.\n *\n * @param id - Group identifier\n * @returns Cleanup function\n */\n registerGroup(id) {\n if (!this.allGroups.has(id)) {\n this.allGroups.set(id, new Set());\n }\n return () => {\n this.allIds.delete(id);\n this.allGroups.delete(id);\n };\n }\n get isGrid() {\n return this.opts.columns.current !== null;\n }\n /**\n * Selects last valid item.\n */\n #last() {\n return this.updateSelectedToIndex(this.getValidItems().length - 1);\n }\n /**\n * Handles next item selection:\n * - Meta: Jump to last\n * - Alt: Next group\n * - Default: Next item\n *\n * @param e - Keyboard event\n */\n #next(e) {\n e.preventDefault();\n if (e.metaKey) {\n this.#last();\n }\n else if (e.altKey) {\n this.updateSelectedByGroup(1);\n }\n else {\n this.updateSelectedByItem(1);\n }\n }\n #down(e) {\n if (this.opts.columns.current === null)\n return;\n e.preventDefault();\n if (e.metaKey) {\n this.updateSelectedByGroup(1);\n }\n else {\n this.updateSelectedByItem(this.#nextRowColumnOffset(e));\n }\n }\n #getColumn(item, grid) {\n if (grid.length === 0)\n return null;\n for (let r = 0; r < grid.length; r++) {\n const row = grid[r];\n if (row === undefined)\n continue;\n for (let c = 0; c < row.length; c++) {\n const column = row[c];\n if (column === undefined || column.ref !== item)\n continue;\n return { columnIndex: c, rowIndex: r };\n }\n }\n return null;\n }\n #nextRowColumnOffset(e) {\n const grid = this.itemsGrid;\n const selected = this.#getSelectedItem();\n if (!selected)\n return 0;\n const column = this.#getColumn(selected, grid);\n if (!column)\n return 0;\n let newItem = null;\n const skipRows = e.altKey ? 1 : 0;\n // if this is the second to last row then we need to go to the last row when skipping and not in loop mode\n if (e.altKey && column.rowIndex === grid.length - 2 && !this.opts.loop.current) {\n newItem = this.#findNextNonDisabledItem({\n start: grid.length - 1,\n end: grid.length,\n expectedColumnIndex: column.columnIndex,\n grid,\n });\n }\n else if (column.rowIndex === grid.length - 1) {\n // if this is the last row we apply the loop logic\n if (!this.opts.loop.current)\n return 0;\n newItem = this.#findNextNonDisabledItem({\n start: 0 + skipRows,\n end: column.rowIndex,\n expectedColumnIndex: column.columnIndex,\n grid,\n });\n }\n else {\n newItem = this.#findNextNonDisabledItem({\n start: column.rowIndex + 1 + skipRows,\n end: grid.length,\n expectedColumnIndex: column.columnIndex,\n grid,\n });\n // this happens if there were no non-disabled columns below the current column\n // we can now try starting from the beginning to find the right column\n if (newItem === null && this.opts.loop.current) {\n newItem = this.#findNextNonDisabledItem({\n start: 0,\n end: column.rowIndex,\n expectedColumnIndex: column.columnIndex,\n grid,\n });\n }\n }\n return this.#calculateOffset(selected, newItem);\n }\n /** Attempts to find the next non-disabled column that matches the expected column.\n *\n * @remarks\n * - Skips over disabled columns\n * - When a row is shorter than the expected column it defaults to the last item in the row\n *\n * @param param0\n * @returns\n */\n #findNextNonDisabledItem({ start, end, grid, expectedColumnIndex, }) {\n let newItem = null;\n for (let r = start; r < end; r++) {\n const row = grid[r];\n // try to get the next column\n newItem = row[expectedColumnIndex]?.ref ?? null;\n // skip over disabled items\n if (newItem !== null && itemIsDisabled(newItem)) {\n newItem = null;\n continue;\n }\n // if that column doesn't exist default to the next highest column\n if (newItem === null) {\n // try and find the next highest non-disabled item in the row\n // if there aren't any non-disabled items we just give up and return null\n for (let i = row.length - 1; i >= 0; i--) {\n const item = row[row.length - 1];\n if (item === undefined || itemIsDisabled(item.ref))\n continue;\n newItem = item.ref;\n break;\n }\n }\n break;\n }\n return newItem;\n }\n #calculateOffset(selected, newSelected) {\n if (newSelected === null)\n return 0;\n const items = this.getValidItems();\n const ogIndex = items.findIndex((item) => item === selected);\n const newIndex = items.findIndex((item) => item === newSelected);\n return newIndex - ogIndex;\n }\n #up(e) {\n if (this.opts.columns.current === null)\n return;\n e.preventDefault();\n if (e.metaKey) {\n this.updateSelectedByGroup(-1);\n }\n else {\n this.updateSelectedByItem(this.#previousRowColumnOffset(e));\n }\n }\n #previousRowColumnOffset(e) {\n const grid = this.itemsGrid;\n const selected = this.#getSelectedItem();\n if (selected === undefined)\n return 0;\n const column = this.#getColumn(selected, grid);\n if (column === null)\n return 0;\n let newItem = null;\n const skipRows = e.altKey ? 1 : 0;\n // if this is the second row then we need to go to the top when skipping and not in loop mode\n if (e.altKey && column.rowIndex === 1 && this.opts.loop.current === false) {\n newItem = this.#findNextNonDisabledItemDesc({\n start: 0,\n end: 0,\n expectedColumnIndex: column.columnIndex,\n grid,\n });\n }\n else if (column.rowIndex === 0) {\n // if this is the last row we apply the loop logic\n if (this.opts.loop.current === false)\n return 0;\n newItem = this.#findNextNonDisabledItemDesc({\n start: grid.length - 1 - skipRows,\n end: column.rowIndex + 1,\n expectedColumnIndex: column.columnIndex,\n grid,\n });\n }\n else {\n newItem = this.#findNextNonDisabledItemDesc({\n start: column.rowIndex - 1 - skipRows,\n end: 0,\n expectedColumnIndex: column.columnIndex,\n grid,\n });\n // this happens if there were no non-disabled columns below the current column\n // we can now try starting from the beginning to find the right column\n if (newItem === null && this.opts.loop.current) {\n newItem = this.#findNextNonDisabledItemDesc({\n start: grid.length - 1,\n end: column.rowIndex + 1,\n expectedColumnIndex: column.columnIndex,\n grid,\n });\n }\n }\n return this.#calculateOffset(selected, newItem);\n }\n /**\n * Attempts to find the next non-disabled column that matches the expected column.\n *\n * @remarks\n * - Skips over disabled columns\n * - When a row is shorter than the expected column it defaults to the last item in the row\n */\n #findNextNonDisabledItemDesc({ start, end, grid, expectedColumnIndex, }) {\n let newItem = null;\n for (let r = start; r >= end; r--) {\n const row = grid[r];\n if (row === undefined)\n continue;\n // try to get the next column\n newItem = row[expectedColumnIndex]?.ref ?? null;\n // skip over disabled items\n if (newItem !== null && itemIsDisabled(newItem)) {\n newItem = null;\n continue;\n }\n // if that column doesn't exist default to the next highest column\n if (newItem === null) {\n // try and find the next highest non-disabled item in the row\n // if there aren't any non-disabled items we just give up and return null\n for (let i = row.length - 1; i >= 0; i--) {\n const item = row[row.length - 1];\n if (item === undefined || itemIsDisabled(item.ref))\n continue;\n newItem = item.ref;\n break;\n }\n }\n break;\n }\n return newItem;\n }\n /**\n * Handles previous item selection:\n * - Meta: Jump to first\n * - Alt: Previous group\n * - Default: Previous item\n *\n * @param e - Keyboard event\n */\n #prev(e) {\n e.preventDefault();\n if (e.metaKey) {\n // First item\n this.updateSelectedToIndex(0);\n }\n else if (e.altKey) {\n // Previous group\n this.updateSelectedByGroup(-1);\n }\n else {\n // Previous item\n this.updateSelectedByItem(-1);\n }\n }\n onkeydown(e) {\n const isVim = this.opts.vimBindings.current && e.ctrlKey;\n switch (e.key) {\n case kbd.n:\n case kbd.j: {\n // vim down\n if (isVim) {\n if (this.isGrid) {\n this.#down(e);\n }\n else {\n this.#next(e);\n }\n }\n break;\n }\n case kbd.l: {\n // vim right\n if (isVim) {\n if (this.isGrid) {\n this.#next(e);\n }\n }\n break;\n }\n case kbd.ARROW_DOWN:\n if (this.isGrid) {\n this.#down(e);\n }\n else {\n this.#next(e);\n }\n break;\n case kbd.ARROW_RIGHT:\n if (!this.isGrid)\n break;\n this.#next(e);\n break;\n case kbd.p:\n case kbd.k: {\n // vim up\n if (isVim) {\n if (this.isGrid) {\n this.#up(e);\n }\n else {\n this.#prev(e);\n }\n }\n break;\n }\n case kbd.h: {\n // vim left\n if (isVim && this.isGrid) {\n this.#prev(e);\n }\n break;\n }\n case kbd.ARROW_UP:\n if (this.isGrid) {\n this.#up(e);\n }\n else {\n this.#prev(e);\n }\n break;\n case kbd.ARROW_LEFT:\n if (!this.isGrid)\n break;\n this.#prev(e);\n break;\n case kbd.HOME:\n // first item\n e.preventDefault();\n this.updateSelectedToIndex(0);\n break;\n case kbd.END:\n // last item\n e.preventDefault();\n this.#last();\n break;\n case kbd.ENTER: {\n /**\n * Check if IME composition is finished before triggering the select event.\n * This prevents unwanted triggering while user is still inputting text with IME.\n * e.keyCode === 229 is for the Japanese IME && Safari as `isComposing` does not\n * work with Japanese IME and Safari in combination.\n */\n if (!e.isComposing && e.keyCode !== 229) {\n e.preventDefault();\n const item = this.#getSelectedItem();\n if (item) {\n item?.click();\n }\n }\n }\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"application\",\n [commandAttrs.root]: \"\",\n tabindex: -1,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nfunction itemIsDisabled(item) {\n return item.getAttribute(\"aria-disabled\") === \"true\";\n}\nexport class CommandEmptyState {\n static create(opts) {\n return new CommandEmptyState(opts, CommandRootContext.get());\n }\n opts;\n root;\n attachment;\n shouldRender = $derived.by(() => {\n return ((this.root._commandState.filtered.count === 0 && this.#isInitialRender === false) ||\n this.opts.forceMount.current);\n });\n #isInitialRender = true;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n $effect.pre(() => {\n this.#isInitialRender = false;\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"presentation\",\n [commandAttrs.empty]: \"\",\n ...this.attachment,\n }));\n}\nexport class CommandGroupContainerState {\n static create(opts) {\n return CommandGroupContainerContext.set(new CommandGroupContainerState(opts, CommandRootContext.get()));\n }\n opts;\n root;\n attachment;\n shouldRender = $derived.by(() => {\n if (this.opts.forceMount.current)\n return true;\n if (this.root.opts.shouldFilter.current === false)\n return true;\n if (!this.root.commandState.search)\n return true;\n return this.root._commandState.filtered.groups.has(this.trueValue);\n });\n headingNode = $state(null);\n trueValue = $state(\"\");\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n this.trueValue = opts.value.current ?? opts.id.current;\n watch(() => this.trueValue, () => {\n return this.root.registerGroup(this.trueValue);\n });\n $effect(() => {\n if (this.opts.value.current) {\n this.trueValue = this.opts.value.current;\n return this.root.registerValue(this.opts.value.current);\n }\n else if (this.headingNode && this.headingNode.textContent) {\n this.trueValue = this.headingNode.textContent.trim().toLowerCase();\n return this.root.registerValue(this.trueValue);\n }\n else {\n this.trueValue = `-----${this.opts.id.current}`;\n return this.root.registerValue(this.trueValue);\n }\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"presentation\",\n hidden: this.shouldRender ? undefined : true,\n \"data-value\": this.trueValue,\n [commandAttrs.group]: \"\",\n ...this.attachment,\n }));\n}\nexport class CommandGroupHeadingState {\n static create(opts) {\n return new CommandGroupHeadingState(opts, CommandGroupContainerContext.get());\n }\n opts;\n group;\n attachment;\n constructor(opts, group) {\n this.opts = opts;\n this.group = group;\n this.attachment = attachRef(this.opts.ref, (v) => (this.group.headingNode = v));\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [commandAttrs[\"group-heading\"]]: \"\",\n ...this.attachment,\n }));\n}\nexport class CommandGroupItemsState {\n static create(opts) {\n return new CommandGroupItemsState(opts, CommandGroupContainerContext.get());\n }\n opts;\n group;\n attachment;\n constructor(opts, group) {\n this.opts = opts;\n this.group = group;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n [commandAttrs[\"group-items\"]]: \"\",\n \"aria-labelledby\": this.group.headingNode?.id ?? undefined,\n ...this.attachment,\n }));\n}\nexport class CommandInputState {\n static create(opts) {\n return new CommandInputState(opts, CommandRootContext.get());\n }\n opts;\n root;\n attachment;\n #selectedItemId = $derived.by(() => {\n const item = this.root.viewportNode?.querySelector(`${COMMAND_ITEM_SELECTOR}[${COMMAND_VALUE_ATTR}=\"${cssEscape(this.root.opts.value.current)}\"]`);\n if (item === undefined || item === null)\n return;\n return item.getAttribute(\"id\") ?? undefined;\n });\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.inputNode = v));\n watch(() => this.opts.ref.current, () => {\n const node = this.opts.ref.current;\n if (node && this.opts.autofocus.current) {\n afterSleep(10, () => node.focus());\n }\n });\n watch(() => this.opts.value.current, () => {\n if (this.root.commandState.search !== this.opts.value.current) {\n this.root.setState(\"search\", this.opts.value.current);\n }\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n type: \"text\",\n [commandAttrs.input]: \"\",\n autocomplete: \"off\",\n autocorrect: \"off\",\n spellcheck: false,\n \"aria-autocomplete\": \"list\",\n role: \"combobox\",\n \"aria-expanded\": boolToStr(true),\n \"aria-controls\": this.root.viewportNode?.id ?? undefined,\n \"aria-labelledby\": this.root.labelNode?.id ?? undefined,\n \"aria-activedescendant\": this.#selectedItemId,\n ...this.attachment,\n }));\n}\nexport class CommandItemState {\n static create(opts) {\n const group = CommandGroupContainerContext.getOr(null);\n return new CommandItemState({ ...opts, group }, CommandRootContext.get());\n }\n opts;\n root;\n attachment;\n #group = null;\n #trueForceMount = $derived.by(() => {\n return this.opts.forceMount.current || this.#group?.opts.forceMount.current === true;\n });\n shouldRender = $derived.by(() => {\n this.opts.ref.current;\n if (this.#trueForceMount ||\n this.root.opts.shouldFilter.current === false ||\n !this.root.commandState.search) {\n return true;\n }\n const currentScore = this.root.commandState.filtered.items.get(this.trueValue);\n if (currentScore === undefined)\n return false;\n return currentScore > 0;\n });\n isSelected = $derived.by(() => this.root.opts.value.current === this.trueValue && this.trueValue !== \"\");\n trueValue = $state(\"\");\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.#group = CommandGroupContainerContext.getOr(null);\n this.trueValue = opts.value.current;\n this.attachment = attachRef(this.opts.ref);\n watch([\n () => this.trueValue,\n () => this.#group?.trueValue,\n () => this.opts.forceMount.current,\n ], () => {\n if (this.opts.forceMount.current || !this.trueValue)\n return;\n return this.root.registerItem(this.trueValue, this.#group?.trueValue);\n });\n watch([() => this.opts.value.current, () => this.opts.ref.current], () => {\n if (this.opts.value.current) {\n this.trueValue = this.opts.value.current;\n }\n else if (this.opts.ref.current?.textContent) {\n this.trueValue = this.opts.ref.current.textContent.trim();\n }\n if (this.trueValue) {\n this.root.registerValue(this.trueValue, opts.keywords.current.map((kw) => kw.trim()));\n this.opts.ref.current?.setAttribute(COMMAND_VALUE_ATTR, this.trueValue);\n }\n });\n // bindings\n this.onclick = this.onclick.bind(this);\n this.onpointermove = this.onpointermove.bind(this);\n }\n #onSelect() {\n if (this.opts.disabled.current)\n return;\n this.#select();\n this.opts.onSelect?.current();\n }\n #select() {\n if (this.opts.disabled.current)\n return;\n this.root.setValue(this.trueValue, true);\n }\n onpointermove(_) {\n if (this.opts.disabled.current || this.root.opts.disablePointerSelection.current)\n return;\n this.#select();\n }\n onclick(_) {\n if (this.opts.disabled.current)\n return;\n this.#onSelect();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-disabled\": boolToStr(this.opts.disabled.current),\n \"aria-selected\": boolToStr(this.isSelected),\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-selected\": boolToEmptyStrOrUndef(this.isSelected),\n \"data-value\": this.trueValue,\n \"data-group\": this.#group?.trueValue,\n [commandAttrs.item]: \"\",\n role: \"option\",\n onpointermove: this.onpointermove,\n onclick: this.onclick,\n ...this.attachment,\n }));\n}\nexport class CommandLoadingState {\n static create(opts) {\n return new CommandLoadingState(opts);\n }\n opts;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"progressbar\",\n \"aria-valuenow\": this.opts.progress.current,\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-label\": \"Loading...\",\n [commandAttrs.loading]: \"\",\n ...this.attachment,\n }));\n}\nexport class CommandSeparatorState {\n static create(opts) {\n return new CommandSeparatorState(opts, CommandRootContext.get());\n }\n opts;\n root;\n attachment;\n shouldRender = $derived.by(() => !this.root._commandState.search || this.opts.forceMount.current);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n // role=\"separator\" cannot belong to a role=\"listbox\"\n \"aria-hidden\": \"true\",\n [commandAttrs.separator]: \"\",\n ...this.attachment,\n }));\n}\nexport class CommandListState {\n static create(opts) {\n return CommandListContext.set(new CommandListState(opts, CommandRootContext.get()));\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"listbox\",\n \"aria-label\": this.opts.ariaLabel.current,\n [commandAttrs.list]: \"\",\n ...this.attachment,\n }));\n}\nexport class CommandLabelState {\n static create(opts) {\n return new CommandLabelState(opts, CommandRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.labelNode = v));\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [commandAttrs[\"input-label\"]]: \"\",\n for: this.opts.for?.current,\n style: srOnlyStyles,\n ...this.attachment,\n }));\n}\nexport class CommandViewportState {\n static create(opts) {\n return new CommandViewportState(opts, CommandListContext.get());\n }\n opts;\n list;\n attachment;\n constructor(opts, list) {\n this.opts = opts;\n this.list = list;\n this.attachment = attachRef(this.opts.ref, (v) => (this.list.root.viewportNode = v));\n watch([() => this.opts.ref.current, () => this.list.opts.ref.current], ([node, listNode]) => {\n if (node === null || listNode === null)\n return;\n let aF;\n const observer = new ResizeObserver(() => {\n aF = requestAnimationFrame(() => {\n const height = node.offsetHeight;\n listNode.style.setProperty(\"--bits-command-list-height\", `${height.toFixed(1)}px`);\n });\n });\n observer.observe(node);\n return () => {\n cancelAnimationFrame(aF);\n observer.unobserve(node);\n };\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [commandAttrs.viewport]: \"\",\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport { CommandLabelState } from \"../command.svelte.js\";\n\n\timport type { WithChildren } from \"../../../internal/types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { BitsPrimitiveLabelAttributes, WithElementRef } from \"../../../shared/index.js\";\n\n\tconst uid = $props.id();\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\t...restProps\n\t}: WithChildren<WithElementRef<BitsPrimitiveLabelAttributes>> = $props();\n\n\tconst labelState = CommandLabelState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, labelState.props));\n</script>\n\n<label {...mergedProps}>\n\t{@render children?.()}\n</label>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CommandRootState } from \"../command.svelte.js\";\n\timport type { CommandRootProps } from \"../types.js\";\n\timport CommandLabel from \"./_command-label.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { computeCommandScore } from \"../index.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(\"\"),\n\t\tonValueChange = noop,\n\t\tonStateChange = noop,\n\t\tloop = false,\n\t\tshouldFilter = true,\n\t\tfilter = computeCommandScore,\n\t\tlabel = \"\",\n\t\tvimBindings = true,\n\t\tdisablePointerSelection = false,\n\t\tdisableInitialScroll = false,\n\t\tcolumns = null,\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: CommandRootProps = $props();\n\n\tconst rootState = CommandRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tfilter: boxWith(() => filter),\n\t\tshouldFilter: boxWith(() => shouldFilter),\n\t\tloop: boxWith(() => loop),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tif (value !== v) {\n\t\t\t\t\tvalue = v;\n\t\t\t\t\tonValueChange(v);\n\t\t\t\t}\n\t\t\t}\n\t\t),\n\t\tvimBindings: boxWith(() => vimBindings),\n\t\tdisablePointerSelection: boxWith(() => disablePointerSelection),\n\t\tdisableInitialScroll: boxWith(() => disableInitialScroll),\n\t\tonStateChange: boxWith(() => onStateChange),\n\t\tcolumns: boxWith(() => columns),\n\t});\n\n\t// Imperative APIs - DO NOT REMOVE OR RENAME\n\n\t/**\n\t * Sets selection to item at specified index in valid items array.\n\t * If index is out of bounds, does nothing.\n\t *\n\t * @param index - Zero-based index of item to select\n\t * @remarks\n\t * Uses `getValidItems()` to get selectable items, filtering out disabled/hidden ones.\n\t * Access valid items directly via `getValidItems()` to check bounds before calling.\n\t *\n\t * @example\n\t * // get valid items length for bounds check\n\t * const items = getValidItems()\n\t * if (index < items.length) {\n\t * updateSelectedToIndex(index)\n\t * }\n\t */\n\texport const updateSelectedToIndex: (typeof rootState)[\"updateSelectedToIndex\"] = (i) =>\n\t\trootState.updateSelectedToIndex(i);\n\t/**\n\t * Moves selection to the first valid item in the next/previous group.\n\t * If no group is found, falls back to selecting the next/previous item globally.\n\t *\n\t * @param change - Direction to move: 1 for next group, -1 for previous group\n\t * @example\n\t * // move to first item in next group\n\t * updateSelectedByGroup(1)\n\t *\n\t * // move to first item in previous group\n\t * updateSelectedByGroup(-1)\n\t */\n\texport const updateSelectedByGroup: (typeof rootState)[\"updateSelectedByGroup\"] = (c) =>\n\t\trootState.updateSelectedByGroup(c);\n\t/**\n\t * Updates selected item by moving up/down relative to current selection.\n\t * Handles wrapping when loop option is enabled.\n\t *\n\t * @param change - Direction to move: 1 for next item, -1 for previous item\n\t * @remarks\n\t * The loop behavior wraps:\n\t * - From last item to first when moving next\n\t * - From first item to last when moving previous\n\t *\n\t * Uses `getValidItems()` to get all selectable items, which filters out disabled/hidden items.\n\t * You can call `getValidItems()` directly to get the current valid items array.\n\t *\n\t * @example\n\t * // select next item\n\t * updateSelectedByItem(1)\n\t *\n\t * // get all valid items\n\t * const items = getValidItems()\n\t */\n\texport const updateSelectedByItem: (typeof rootState)[\"updateSelectedByItem\"] = (c) =>\n\t\trootState.updateSelectedByItem(c);\n\t/**\n\t * Gets all non-disabled, visible command items.\n\t *\n\t * @returns Array of valid item elements\n\t * @remarks Exposed for direct item access and bound checking\n\t */\n\texport const getValidItems = () => rootState.getValidItems();\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#snippet Label()}\n\t<CommandLabel>\n\t\t{label}\n\t</CommandLabel>\n{/snippet}\n\n{#if child}\n\t{@render Label()}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render Label()}\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CommandEmptyProps } from \"../types.js\";\n\timport { CommandEmptyState } from \"../command.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\tforceMount = false,\n\t\t...restProps\n\t}: CommandEmptyProps = $props();\n\n\tconst emptyState = CommandEmptyState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tforceMount: boxWith(() => forceMount),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(emptyState.props, restProps));\n</script>\n\n{#if emptyState.shouldRender}\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CommandGroupProps } from \"../types.js\";\n\timport { CommandGroupContainerState } from \"../command.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = \"\",\n\t\tforceMount = false,\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: CommandGroupProps = $props();\n\n\tconst groupState = CommandGroupContainerState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tforceMount: boxWith(() => forceMount),\n\t\tvalue: boxWith(() => value),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, groupState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CommandGroupHeadingState } from \"../command.svelte.js\";\n\timport type { CommandGroupHeadingProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: CommandGroupHeadingProps = $props();\n\n\tconst headingState = CommandGroupHeadingState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, headingState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CommandGroupItemsProps } from \"../types.js\";\n\timport { CommandGroupItemsState } from \"../command.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: CommandGroupItemsProps = $props();\n\n\tconst groupItemsState = CommandGroupItemsState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, groupItemsState.props));\n</script>\n\n<div style=\"display: contents;\">\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n</div>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CommandInputProps } from \"../types.js\";\n\timport { CommandInputState } from \"../command.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tvalue = $bindable(\"\"),\n\t\tautofocus = false,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\t...restProps\n\t}: CommandInputProps = $props();\n\n\tconst inputState = CommandInputState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t}\n\t\t),\n\t\tautofocus: boxWith(() => autofocus ?? false),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, inputState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<input {...mergedProps} bind:value />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CommandItemProps } from \"../types.js\";\n\timport { CommandItemState } from \"../command.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = \"\",\n\t\tdisabled = false,\n\t\tchildren,\n\t\tchild,\n\t\tonSelect = noop,\n\t\tforceMount = false,\n\t\tkeywords = [],\n\t\t...restProps\n\t}: CommandItemProps = $props();\n\n\tconst itemState = CommandItemState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tvalue: boxWith(() => value),\n\t\tdisabled: boxWith(() => disabled),\n\t\tonSelect: boxWith(() => onSelect),\n\t\tforceMount: boxWith(() => forceMount),\n\t\tkeywords: boxWith(() => keywords),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, itemState.props));\n</script>\n\n{#key itemState.root.key}\n\t<div style=\"display: contents;\" data-item-wrapper data-value={itemState.trueValue}>\n\t\t{#if itemState.shouldRender}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: mergedProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...mergedProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/if}\n\t</div>\n{/key}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CommandLinkItemProps } from \"../types.js\";\n\timport { CommandItemState } from \"../command.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = \"\",\n\t\tdisabled = false,\n\t\tchildren,\n\t\tchild,\n\t\tonSelect = noop,\n\t\tforceMount = false,\n\t\tkeywords = [],\n\t\t...restProps\n\t}: CommandLinkItemProps = $props();\n\n\tconst itemState = CommandItemState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tvalue: boxWith(() => value),\n\t\tdisabled: boxWith(() => disabled),\n\t\tonSelect: boxWith(() => onSelect),\n\t\tforceMount: boxWith(() => forceMount),\n\t\tkeywords: boxWith(() => keywords),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, itemState.props));\n</script>\n\n{#key itemState.root.key}\n\t<div style=\"display: contents;\">\n\t\t{#if itemState.shouldRender}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: mergedProps })}\n\t\t\t{:else}\n\t\t\t\t<a {...mergedProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</a>\n\t\t\t{/if}\n\t\t{/if}\n\t</div>\n{/key}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CommandListProps } from \"../types.js\";\n\timport { CommandListState } from \"../command.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\t\"aria-label\": ariaLabel,\n\t\t...restProps\n\t}: CommandListProps = $props();\n\n\tconst listState = CommandListState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tariaLabel: boxWith(() => ariaLabel ?? \"Suggestions...\"),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, listState.props));\n</script>\n\n{#key listState.root._commandState.search === \"\"}\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n{/key}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { CommandViewportState } from \"../command.svelte.js\";\n\timport type { CommandViewportProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: CommandViewportProps = $props();\n\n\tconst listViewportState = CommandViewportState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, listViewportState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CommandLoadingProps } from \"../types.js\";\n\timport { CommandLoadingState } from \"../command.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tprogress = 0,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: CommandLoadingProps = $props();\n\n\tconst loadingState = CommandLoadingState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tprogress: boxWith(() => progress),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, loadingState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { CommandSeparatorProps } from \"../types.js\";\n\timport { CommandSeparatorState } from \"../command.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tforceMount = false,\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: CommandSeparatorProps = $props();\n\n\tconst separatorState = CommandSeparatorState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tforceMount: boxWith(() => forceMount),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, separatorState.props));\n</script>\n\n{#if separatorState.shouldRender}\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n{/if}\n", "// oxlint-disable ban-ts-comment\n// @ts-nocheck\n// The scores are arranged so that a continuous match of characters will\n// result in a total score of 1.\n//\n// The best case, this character is a match, and either this is the start\n// of the string, or the previous character was also a match.\nconst SCORE_CONTINUE_MATCH = 1;\n// A new match at the start of a word scores better than a new match\n// elsewhere as it's more likely that the user will type the starts\n// of fragments.\n// NOTE: We score word jumps between spaces slightly higher than slashes, brackets\n// hyphens, etc.\nconst SCORE_SPACE_WORD_JUMP = 0.9;\nconst SCORE_NON_SPACE_WORD_JUMP = 0.8;\n// Any other match isn't ideal, but we include it for completeness.\nconst SCORE_CHARACTER_JUMP = 0.17;\n// If the user transposed two letters, it should be significantly penalized.\n//\n// i.e. \"ouch\" is more likely than \"curtain\" when \"uc\" is typed.\nconst SCORE_TRANSPOSITION = 0.1;\n// The goodness of a match should decay slightly with each missing\n// character.\n//\n// i.e. \"bad\" is more likely than \"bard\" when \"bd\" is typed.\n//\n// This will not change the order of suggestions based on SCORE_* until\n// 100 characters are inserted between matches.\nconst PENALTY_SKIPPED = 0.999;\n// The goodness of an exact-case match should be higher than a\n// case-insensitive match by a small amount.\n//\n// i.e. \"HTML\" is more likely than \"haml\" when \"HM\" is typed.\n//\n// This will not change the order of suggestions based on SCORE_* until\n// 1000 characters are inserted between matches.\nconst PENALTY_CASE_MISMATCH = 0.9999;\n// Match higher for letters closer to the beginning of the word\n// If the word has more characters than the user typed, it should\n// be penalized slightly.\n//\n// i.e. \"html\" is more likely than \"html5\" if I type \"html\".\n//\n// However, it may well be the case that there's a sensible secondary\n// ordering (like alphabetical) that it makes sense to rely on when\n// there are many prefix matches, so we don't make the penalty increase\n// with the number of tokens.\nconst PENALTY_NOT_COMPLETE = 0.99;\nconst IS_GAP_REGEXP = /[\\\\/_+.#\"@[({&]/;\nconst COUNT_GAPS_REGEXP = /[\\\\/_+.#\"@[({&]/g;\nconst IS_SPACE_REGEXP = /[\\s-]/;\nconst COUNT_SPACE_REGEXP = /[\\s-]/g;\nfunction computeCommandScoreInner(string, abbreviation, lowerString, lowerAbbreviation, stringIndex, abbreviationIndex, memoizedResults) {\n if (abbreviationIndex === abbreviation.length) {\n if (stringIndex === string.length)\n return SCORE_CONTINUE_MATCH;\n return PENALTY_NOT_COMPLETE;\n }\n const memoizeKey = `${stringIndex},${abbreviationIndex}`;\n if (memoizedResults[memoizeKey] !== undefined)\n return memoizedResults[memoizeKey];\n const abbreviationChar = lowerAbbreviation.charAt(abbreviationIndex);\n let index = lowerString.indexOf(abbreviationChar, stringIndex);\n let highScore = 0;\n let score, transposedScore, wordBreaks, spaceBreaks;\n while (index >= 0) {\n score = computeCommandScoreInner(string, abbreviation, lowerString, lowerAbbreviation, index + 1, abbreviationIndex + 1, memoizedResults);\n if (score > highScore) {\n if (index === stringIndex) {\n score *= SCORE_CONTINUE_MATCH;\n }\n else if (IS_GAP_REGEXP.test(string.charAt(index - 1))) {\n score *= SCORE_NON_SPACE_WORD_JUMP;\n wordBreaks = string.slice(stringIndex, index - 1).match(COUNT_GAPS_REGEXP);\n if (wordBreaks && stringIndex > 0) {\n score *= PENALTY_SKIPPED ** wordBreaks.length;\n }\n }\n else if (IS_SPACE_REGEXP.test(string.charAt(index - 1))) {\n score *= SCORE_SPACE_WORD_JUMP;\n spaceBreaks = string.slice(stringIndex, index - 1).match(COUNT_SPACE_REGEXP);\n if (spaceBreaks && stringIndex > 0) {\n score *= PENALTY_SKIPPED ** spaceBreaks.length;\n }\n }\n else {\n score *= SCORE_CHARACTER_JUMP;\n if (stringIndex > 0) {\n score *= PENALTY_SKIPPED ** (index - stringIndex);\n }\n }\n if (string.charAt(index) !== abbreviation.charAt(abbreviationIndex)) {\n score *= PENALTY_CASE_MISMATCH;\n }\n }\n if ((score < SCORE_TRANSPOSITION &&\n lowerString.charAt(index - 1) ===\n lowerAbbreviation.charAt(abbreviationIndex + 1)) ||\n (lowerAbbreviation.charAt(abbreviationIndex + 1) ===\n lowerAbbreviation.charAt(abbreviationIndex) &&\n lowerString.charAt(index - 1) !== lowerAbbreviation.charAt(abbreviationIndex))) {\n transposedScore = computeCommandScoreInner(string, abbreviation, lowerString, lowerAbbreviation, index + 1, abbreviationIndex + 2, memoizedResults);\n if (transposedScore * SCORE_TRANSPOSITION > score) {\n score = transposedScore * SCORE_TRANSPOSITION;\n }\n }\n if (score > highScore) {\n highScore = score;\n }\n index = lowerString.indexOf(abbreviationChar, index + 1);\n }\n memoizedResults[memoizeKey] = highScore;\n return highScore;\n}\n/**\n *\n * @param string\n * @returns\n */\nfunction formatInput(string) {\n // convert all valid space characters to space so they match each other\n return string.toLowerCase().replace(COUNT_SPACE_REGEXP, \" \");\n}\n/**\n * Given a command, a search query, and (optionally) a list of keywords for the command,\n * computes a score between 0 and 1 that represents how well the search query matches the\n * abbreviation and keywords. 1 is a perfect match, 0 is no match.\n *\n * The score is calculated based on the following rules:\n * - The scores are arranged so that a continuous match of characters will result in a total\n * score of 1. The best case, this character is a match, and either this is the start of the string\n * or the previous character was also a match.\n * - A new match at the start of a word scores better than a new match elsewhere as it's more likely\n * that the user will type the starts of fragments.\n * - Word jumps between spaces are scored slightly higher than slashes, brackets, hyphens, etc.\n * - A continuous match of characters will result in a total score of 1.\n * - A new match at the start of a word scores better than a new match elsewhere as it's more likely that the user will type the starts of fragments.\n * - Any other match isn't ideal, but we include it for completeness.\n * - If the user transposed two letters, it should be significantly penalized.\n * - The goodness of a match should decay slightly with each missing character.\n * - Match higher for letters closer to the beginning of the word.\n *\n * @param command - The value to score against the search string (e.g. a command name like \"Calculator\")\n * @param search - The search string to score against the value/aliases\n * @param commandKeywords - An optional list of aliases/keywords to score against the search string - e.g. [\"math\", \"add\", \"divide\", \"multiply\", \"subtract\"]\n * @returns A score between 0 and 1 that represents how well the search string matches the\n * command (and keywords)\n */\nexport function computeCommandScore(command, search, commandKeywords) {\n /**\n * NOTE: We used to do lower-casing on each recursive call, but this meant that `toLowerCase()`\n * was the dominating cost in the algorithm. Passing both is a little ugly, but considerably\n * faster.\n */\n command =\n commandKeywords && commandKeywords.length > 0\n ? `${`${command} ${commandKeywords?.join(\" \")}`}`\n : command;\n return computeCommandScoreInner(command, search, formatInput(command), formatInput(search), 0, 0, {});\n}\n", "export { default as Root } from \"./components/context-menu.svelte\";\nexport { default as Sub } from \"../menu/components/menu-sub.svelte\";\nexport { default as Item } from \"../menu/components/menu-item.svelte\";\nexport { default as Group } from \"../menu/components/menu-group.svelte\";\nexport { default as GroupHeading } from \"../menu/components/menu-group-heading.svelte\";\nexport { default as Arrow } from \"../menu/components/menu-arrow.svelte\";\nexport { default as Content } from \"./components/context-menu-content.svelte\";\nexport { default as ContentStatic } from \"./components/context-menu-content-static.svelte\";\nexport { default as Trigger } from \"./components/context-menu-trigger.svelte\";\nexport { default as RadioItem } from \"../menu/components/menu-radio-item.svelte\";\nexport { default as Separator } from \"../menu/components/menu-separator.svelte\";\nexport { default as RadioGroup } from \"../menu/components/menu-radio-group.svelte\";\nexport { default as SubContent } from \"../menu/components/menu-sub-content.svelte\";\nexport { default as SubContentStatic } from \"../menu/components/menu-sub-content-static.svelte\";\nexport { default as SubTrigger } from \"../menu/components/menu-sub-trigger.svelte\";\nexport { default as CheckboxItem } from \"../menu/components/menu-checkbox-item.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\nexport { default as CheckboxGroup } from \"../menu/components/menu-checkbox-group.svelte\";\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { ContextMenuRootProps } from \"../types.js\";\n\timport FloatingLayer from \"../../utilities/floating-layer/components/floating-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { MenuMenuState, MenuRootState } from \"../../menu/menu.svelte.js\";\n\n\tlet {\n\t\topen = $bindable(false),\n\t\tdir = \"ltr\",\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tchildren,\n\t}: ContextMenuRootProps = $props();\n\n\tconst root = MenuRootState.create({\n\t\tvariant: boxWith(() => \"context-menu\"),\n\t\tdir: boxWith(() => dir),\n\t\tonClose: () => {\n\t\t\topen = false;\n\t\t\tonOpenChange?.(false);\n\t\t},\n\t});\n\n\tMenuMenuState.create(\n\t\t{\n\t\t\topen: boxWith(\n\t\t\t\t() => open,\n\t\t\t\t(v) => {\n\t\t\t\t\topen = v;\n\t\t\t\t\tonOpenChange(v);\n\t\t\t\t}\n\t\t\t),\n\t\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t\t},\n\t\troot\n\t);\n</script>\n\n<FloatingLayer>\n\t{@render children?.()}\n</FloatingLayer>\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { MenuSubProps } from \"../types.js\";\n\timport { MenuSubmenuState } from \"../menu.svelte.js\";\n\timport FloatingLayer from \"../../utilities/floating-layer/components/floating-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tlet {\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tchildren,\n\t}: MenuSubProps = $props();\n\n\tMenuSubmenuState.create({\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange?.(v);\n\t\t\t}\n\t\t),\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n</script>\n\n<FloatingLayer>\n\t{@render children?.()}\n</FloatingLayer>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuItemProps } from \"../types.js\";\n\timport { MenuItemState } from \"../menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tdisabled = false,\n\t\tonSelect = noop,\n\t\tcloseOnSelect = true,\n\t\t...restProps\n\t}: MenuItemProps = $props();\n\n\tconst itemState = MenuItemState.create({\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled),\n\t\tonSelect: boxWith(() => onSelect),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tcloseOnSelect: boxWith(() => closeOnSelect),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, itemState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuGroupProps } from \"../types.js\";\n\timport { MenuGroupState } from \"../menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: MenuGroupProps = $props();\n\n\tconst groupState = MenuGroupState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\tconst mergedProps = $derived(mergeProps(restProps, groupState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuGroupHeadingProps } from \"../types.js\";\n\timport { MenuGroupHeadingState } from \"../menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: MenuGroupHeadingProps = $props();\n\n\tconst groupHeadingState = MenuGroupHeadingState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\tconst mergedProps = $derived(mergeProps(restProps, groupHeadingState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuArrowProps } from \"../types.js\";\n\timport { MenuArrowState } from \"../menu.svelte.js\";\n\timport FloatingLayerArrow from \"../../utilities/floating-layer/components/floating-layer-arrow.svelte\";\n\n\tlet { ref = $bindable(null), ...restProps }: MenuArrowProps = $props();\n\n\tconst arrowState = MenuArrowState.create();\n\n\tconst mergedProps = $derived(mergeProps(restProps, arrowState.props));\n</script>\n\n<FloatingLayerArrow bind:ref {...mergedProps} />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ContextMenuContentProps } from \"../types.js\";\n\timport { CONTEXT_MENU_TRIGGER_ATTR, MenuContentState } from \"../../menu/menu.svelte.js\";\n\timport { useId } from \"../../../internal/use-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tlet {\n\t\tid = useId(),\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tloop = true,\n\t\tonInteractOutside = noop,\n\t\tonCloseAutoFocus = noop,\n\t\tonOpenAutoFocus = noop,\n\t\tpreventScroll = true,\n\t\tside = \"right\",\n\t\tsideOffset = 2,\n\t\talign = \"start\",\n\t\t// we need to explicitly pass this prop to the PopperLayer to override\n\t\t// the default menu behavior of handling outside interactions on the trigger\n\t\tonEscapeKeydown = noop,\n\t\tforceMount = false,\n\t\ttrapFocus = false,\n\t\tstyle,\n\t\t...restProps\n\t}: ContextMenuContentProps = $props();\n\n\tconst contentState = MenuContentState.create({\n\t\tid: boxWith(() => id),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonCloseAutoFocus: boxWith(() => onCloseAutoFocus),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, contentState.props, {\n\t\t\tside,\n\t\t\tsideOffset,\n\t\t\talign,\n\t\t\tonOpenAutoFocus,\n\t\t\tisValidEvent,\n\t\t\ttrapFocus,\n\t\t\tloop,\n\t\t\tid,\n\t\t\tref: contentState.opts.ref,\n\t\t\tpreventScroll,\n\t\t\tonInteractOutside: handleInteractOutside,\n\t\t\tonEscapeKeydown: handleEscapeKeydown,\n\t\t\tshouldRender: contentState.shouldRender,\n\t\t})\n\t);\n\n\tfunction handleInteractOutside(e: PointerEvent) {\n\t\tonInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\n\t\t// don't close if the interaction is with a submenu content or items\n\t\tif (e.target && e.target instanceof Element) {\n\t\t\tconst subContentSelector = `[${contentState.parentMenu.root.getBitsAttr(\"sub-content\")}]`;\n\t\t\tif (e.target.closest(subContentSelector)) return;\n\t\t}\n\t\tcontentState.parentMenu.onClose();\n\t}\n\n\tfunction handleEscapeKeydown(e: KeyboardEvent) {\n\t\tonEscapeKeydown(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentState.parentMenu.onClose();\n\t}\n\n\tfunction isValidEvent(e: PointerEvent) {\n\t\tif (\"button\" in e && e.button === 2) {\n\t\t\tconst target = e.target as HTMLElement;\n\t\t\tif (!target) return false;\n\t\t\tconst isAnotherContextTrigger =\n\t\t\t\ttarget.closest(`[${CONTEXT_MENU_TRIGGER_ATTR}]`) !==\n\t\t\t\tcontentState.parentMenu.triggerNode;\n\t\t\treturn isAnotherContextTrigger;\n\t\t}\n\t\treturn false;\n\t}\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tenabled={contentState.parentMenu.opts.open.current}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"context-menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\topen={contentState.parentMenu.opts.open.current}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"context-menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ContextMenuContentStaticProps } from \"../types.js\";\n\timport { CONTEXT_MENU_TRIGGER_ATTR, MenuContentState } from \"../../menu/menu.svelte.js\";\n\timport { useId } from \"../../../internal/use-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tlet {\n\t\tid = useId(),\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tloop = true,\n\t\tonInteractOutside = noop,\n\t\tonCloseAutoFocus = noop,\n\t\tpreventScroll = true,\n\t\t// we need to explicitly pass this prop to the PopperLayer to override\n\t\t// the default menu behavior of handling outside interactions on the trigger\n\t\tonEscapeKeydown = noop,\n\t\tforceMount = false,\n\t\tstyle,\n\t\t...restProps\n\t}: ContextMenuContentStaticProps = $props();\n\n\tconst contentState = MenuContentState.create({\n\t\tid: boxWith(() => id),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonCloseAutoFocus: boxWith(() => onCloseAutoFocus),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n\n\tfunction handleInteractOutside(e: PointerEvent) {\n\t\tonInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentState.parentMenu.onClose();\n\t}\n\n\tfunction handleEscapeKeydown(e: KeyboardEvent) {\n\t\tonEscapeKeydown(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentState.parentMenu.onClose();\n\t}\n\n\tfunction isValidEvent(e: PointerEvent) {\n\t\tif (\"button\" in e && e.button === 2) {\n\t\t\tconst target = e.target as HTMLElement;\n\t\t\tif (!target) return false;\n\t\t\tconst isAnotherContextTrigger =\n\t\t\t\ttarget.closest(`[${CONTEXT_MENU_TRIGGER_ATTR}]`) !==\n\t\t\t\tcontentState.parentMenu.triggerNode;\n\t\t\treturn isAnotherContextTrigger;\n\t\t}\n\t\treturn false;\n\t}\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tisStatic\n\t\tside=\"right\"\n\t\tsideOffset={2}\n\t\talign=\"start\"\n\t\tenabled={contentState.parentMenu.opts.open.current}\n\t\t{preventScroll}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\t{isValidEvent}\n\t\ttrapFocus\n\t\t{loop}\n\t\t{forceMount}\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"context-menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tisStatic\n\t\tside=\"right\"\n\t\tsideOffset={2}\n\t\talign=\"start\"\n\t\topen={contentState.parentMenu.opts.open.current}\n\t\t{preventScroll}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\t{isValidEvent}\n\t\ttrapFocus\n\t\t{loop}\n\t\tforceMount={false}\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"context-menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ContextMenuTriggerProps } from \"../types.js\";\n\timport { ContextMenuTriggerState } from \"../../menu/menu.svelte.js\";\n\timport { useId } from \"../../../internal/use-id.js\";\n\timport { FloatingLayer } from \"../../utilities/floating-layer/index.js\";\n\n\tlet {\n\t\tid = useId(),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\tdisabled = false,\n\t\t...restProps\n\t}: ContextMenuTriggerProps = $props();\n\n\tconst triggerState = ContextMenuTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(\n\t\t\trestProps,\n\t\t\ttriggerState.props,\n\t\t\t{ style: { pointerEvents: \"auto\" } },\n\t\t\t{\n\t\t\t\tstyle: restProps.style,\n\t\t\t\ttabindex: restProps.tabindex,\n\t\t\t}\n\t\t)\n\t);\n</script>\n\n<FloatingLayer.Anchor {id} virtualEl={triggerState.virtualElement} ref={triggerState.opts.ref}>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n</FloatingLayer.Anchor>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuRadioItemProps } from \"../types.js\";\n\timport { MenuRadioItemState } from \"../menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tvalue,\n\t\tonSelect = noop,\n\t\tid = createId(uid),\n\t\tdisabled = false,\n\t\tcloseOnSelect = true,\n\t\t...restProps\n\t}: MenuRadioItemProps = $props();\n\n\tconst radioItemState = MenuRadioItemState.create({\n\t\tvalue: boxWith(() => value),\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled),\n\t\tonSelect: boxWith(() => handleSelect),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tcloseOnSelect: boxWith(() => closeOnSelect),\n\t});\n\n\tfunction handleSelect(e: Event) {\n\t\tonSelect(e);\n\t\tif (e.defaultPrevented) return;\n\t\tradioItemState.selectValue();\n\t}\n\n\tconst mergedProps = $derived(mergeProps(restProps, radioItemState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, checked: radioItemState.isChecked })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.({ checked: radioItemState.isChecked })}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuSeparatorProps } from \"../types.js\";\n\timport { MenuSeparatorState } from \"../menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: MenuSeparatorProps = $props();\n\n\tconst separatorState = MenuSeparatorState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, separatorState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuRadioGroupProps } from \"../types.js\";\n\timport { MenuRadioGroupState } from \"../menu.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(\"\"),\n\t\tonValueChange = noop,\n\t\t...restProps\n\t}: MenuRadioGroupProps = $props();\n\n\tconst radioGroupState = MenuRadioGroupState.create({\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tid: boxWith(() => id),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, radioGroupState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuSubContentProps } from \"../types.js\";\n\timport { MenuOpenEvent, MenuContentState } from \"../menu.svelte.js\";\n\timport { SUB_CLOSE_KEYS } from \"../utils.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { isHTMLElement } from \"../../../internal/is.js\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\tloop = true,\n\t\tonInteractOutside = noop,\n\t\tforceMount = false,\n\t\tonEscapeKeydown = noop,\n\t\tinteractOutsideBehavior = \"defer-otherwise-close\",\n\t\tescapeKeydownBehavior = \"defer-otherwise-close\",\n\t\tonOpenAutoFocus: onOpenAutoFocusProp = noop,\n\t\tonCloseAutoFocus: onCloseAutoFocusProp = noop,\n\t\tonFocusOutside = noop,\n\t\tside = \"right\",\n\t\ttrapFocus = false,\n\t\tstyle,\n\t\t...restProps\n\t}: MenuSubContentProps = $props();\n\n\tconst subContentState = MenuContentState.create({\n\t\tid: boxWith(() => id),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tisSub: true,\n\t\tonCloseAutoFocus: boxWith(() => handleCloseAutoFocus),\n\t});\n\n\tfunction onkeydown(e: KeyboardEvent) {\n\t\tconst isKeyDownInside = (e.currentTarget as HTMLElement).contains(e.target as HTMLElement);\n\t\tconst isCloseKey = SUB_CLOSE_KEYS[\n\t\t\tsubContentState.parentMenu.root.opts.dir.current\n\t\t].includes(e.key);\n\t\tif (isKeyDownInside && isCloseKey) {\n\t\t\tsubContentState.parentMenu.onClose();\n\t\t\tconst triggerNode = subContentState.parentMenu.triggerNode;\n\t\t\ttriggerNode?.focus();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tconst dataAttr = $derived(subContentState.parentMenu.root.getBitsAttr(\"sub-content\"));\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, subContentState.props, {\n\t\t\tside,\n\t\t\tonkeydown,\n\t\t\t[dataAttr]: \"\",\n\t\t})\n\t);\n\n\tfunction handleOpenAutoFocus(e: Event) {\n\t\tonOpenAutoFocusProp(e);\n\t\tif (e.defaultPrevented) return;\n\t\te.preventDefault();\n\t\tif (\n\t\t\tsubContentState.parentMenu.root.isUsingKeyboard &&\n\t\t\tsubContentState.parentMenu.contentNode\n\t\t) {\n\t\t\tMenuOpenEvent.dispatch(subContentState.parentMenu.contentNode);\n\t\t}\n\t}\n\n\tfunction handleCloseAutoFocus(e: Event) {\n\t\tonCloseAutoFocusProp(e);\n\t\tif (e.defaultPrevented) return;\n\t\te.preventDefault();\n\t}\n\n\tfunction handleInteractOutside(e: PointerEvent) {\n\t\tonInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\tsubContentState.parentMenu.onClose();\n\t}\n\n\tfunction handleEscapeKeydown(e: KeyboardEvent) {\n\t\tonEscapeKeydown(e);\n\t\tif (e.defaultPrevented) return;\n\t\tsubContentState.parentMenu.onClose();\n\t}\n\n\tfunction handleOnFocusOutside(e: FocusEvent) {\n\t\tonFocusOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\t// We prevent closing when the trigger is focused to avoid triggering a re-open animation\n\t\t// on pointer interaction.\n\t\tif (!isHTMLElement(e.target)) return;\n\t\tif (e.target.id !== subContentState.parentMenu.triggerNode?.id) {\n\t\t\tsubContentState.parentMenu.onClose();\n\t\t}\n\t}\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\tref={subContentState.opts.ref}\n\t\t{interactOutsideBehavior}\n\t\t{escapeKeydownBehavior}\n\t\tonOpenAutoFocus={handleOpenAutoFocus}\n\t\tenabled={subContentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\tonFocusOutside={handleOnFocusOutside}\n\t\tpreventScroll={false}\n\t\t{loop}\n\t\t{trapFocus}\n\t\tshouldRender={subContentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\tmergedProps,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({\n\t\t\t\t\tprops: finalProps,\n\t\t\t\t\twrapperProps,\n\t\t\t\t\t...subContentState.snippetProps,\n\t\t\t\t})}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\tref={subContentState.opts.ref}\n\t\t{interactOutsideBehavior}\n\t\t{escapeKeydownBehavior}\n\t\tonCloseAutoFocus={handleCloseAutoFocus}\n\t\tonOpenAutoFocus={handleOpenAutoFocus}\n\t\topen={subContentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\tonFocusOutside={handleOnFocusOutside}\n\t\tpreventScroll={false}\n\t\t{loop}\n\t\t{trapFocus}\n\t\tshouldRender={subContentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\tmergedProps,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({\n\t\t\t\t\tprops: finalProps,\n\t\t\t\t\twrapperProps,\n\t\t\t\t\t...subContentState.snippetProps,\n\t\t\t\t})}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { afterTick, boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuSubContentStaticProps } from \"../types.js\";\n\timport { MenuContentState } from \"../menu.svelte.js\";\n\timport { SUB_CLOSE_KEYS } from \"../utils.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { isHTMLElement } from \"../../../internal/is.js\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\tloop = true,\n\t\tonInteractOutside = noop,\n\t\tforceMount = false,\n\t\tonEscapeKeydown = noop,\n\t\tinteractOutsideBehavior = \"defer-otherwise-close\",\n\t\tescapeKeydownBehavior = \"defer-otherwise-close\",\n\t\tonOpenAutoFocus: onOpenAutoFocusProp = noop,\n\t\tonCloseAutoFocus: onCloseAutoFocusProp = noop,\n\t\tonFocusOutside = noop,\n\t\ttrapFocus = false,\n\t\tstyle,\n\t\t...restProps\n\t}: MenuSubContentStaticProps = $props();\n\n\tconst subContentState = MenuContentState.create({\n\t\tid: boxWith(() => id),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonCloseAutoFocus: boxWith(() => handleCloseAutoFocus),\n\t\tisSub: true,\n\t});\n\n\tfunction onkeydown(e: KeyboardEvent) {\n\t\tconst isKeyDownInside = (e.currentTarget as HTMLElement).contains(e.target as HTMLElement);\n\t\tconst isCloseKey = SUB_CLOSE_KEYS[\n\t\t\tsubContentState.parentMenu.root.opts.dir.current\n\t\t].includes(e.key);\n\t\tif (isKeyDownInside && isCloseKey) {\n\t\t\tsubContentState.parentMenu.onClose();\n\t\t\tconst triggerNode = subContentState.parentMenu.triggerNode;\n\t\t\ttriggerNode?.focus();\n\t\t\te.preventDefault();\n\t\t}\n\t}\n\n\tconst dataAttr = $derived(subContentState.parentMenu.root.getBitsAttr(\"sub-content\"));\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, subContentState.props, {\n\t\t\tonkeydown,\n\t\t\t[dataAttr]: \"\",\n\t\t})\n\t);\n\n\tfunction handleOpenAutoFocus(e: Event) {\n\t\tonOpenAutoFocusProp(e);\n\t\tif (e.defaultPrevented) return;\n\t\tafterTick(() => {\n\t\t\te.preventDefault();\n\t\t\tif (subContentState.parentMenu.root.isUsingKeyboard) {\n\t\t\t\tconst subContentEl = subContentState.parentMenu.contentNode;\n\t\t\t\tsubContentEl?.focus();\n\t\t\t}\n\t\t});\n\t}\n\n\tfunction handleCloseAutoFocus(e: Event) {\n\t\tonCloseAutoFocusProp(e);\n\t\tif (e.defaultPrevented) return;\n\t\te.preventDefault();\n\t}\n\n\tfunction handleInteractOutside(e: PointerEvent) {\n\t\tonInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\tsubContentState.parentMenu.onClose();\n\t}\n\n\tfunction handleEscapeKeydown(e: KeyboardEvent) {\n\t\tonEscapeKeydown(e);\n\t\tif (e.defaultPrevented) return;\n\t\tsubContentState.parentMenu.onClose();\n\t}\n\n\tfunction handleOnFocusOutside(e: FocusEvent) {\n\t\tonFocusOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\t// We prevent closing when the trigger is focused to avoid triggering a re-open animation\n\t\t// on pointer interaction.\n\t\tif (!isHTMLElement(e.target)) return;\n\t\tif (e.target.id !== subContentState.parentMenu.triggerNode?.id) {\n\t\t\tsubContentState.parentMenu.onClose();\n\t\t}\n\t}\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\tref={subContentState.opts.ref}\n\t\t{interactOutsideBehavior}\n\t\t{escapeKeydownBehavior}\n\t\tonOpenAutoFocus={handleOpenAutoFocus}\n\t\tenabled={subContentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\tonFocusOutside={handleOnFocusOutside}\n\t\tpreventScroll={false}\n\t\t{loop}\n\t\t{trapFocus}\n\t\tisStatic\n\t\tshouldRender={subContentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\tmergedProps,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...subContentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\tref={subContentState.opts.ref}\n\t\t{interactOutsideBehavior}\n\t\t{escapeKeydownBehavior}\n\t\tonCloseAutoFocus={handleCloseAutoFocus}\n\t\tonOpenAutoFocus={handleOpenAutoFocus}\n\t\topen={subContentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\tonFocusOutside={handleOnFocusOutside}\n\t\tpreventScroll={false}\n\t\t{loop}\n\t\t{trapFocus}\n\t\tisStatic\n\t\tshouldRender={subContentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\tmergedProps,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...subContentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuSubTriggerProps } from \"../types.js\";\n\timport { MenuSubTriggerState } from \"../menu.svelte.js\";\n\timport FloatingLayerAnchor from \"../../utilities/floating-layer/components/floating-layer-anchor.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tdisabled = false,\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\tonSelect = noop,\n\t\topenDelay = 100,\n\t\t...restProps\n\t}: MenuSubTriggerProps = $props();\n\n\tconst subTriggerState = MenuSubTriggerState.create({\n\t\tdisabled: boxWith(() => disabled),\n\t\tonSelect: boxWith(() => onSelect),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\topenDelay: boxWith(() => openDelay),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, subTriggerState.props));\n</script>\n\n<FloatingLayerAnchor {id} ref={subTriggerState.opts.ref}>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n</FloatingLayerAnchor>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuCheckboxItemProps } from \"../types.js\";\n\timport { MenuCheckboxGroupContext, MenuCheckboxItemState } from \"../menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { watch } from \"runed\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tchecked = $bindable(false),\n\t\tid = createId(uid),\n\t\tonCheckedChange = noop,\n\t\tdisabled = false,\n\t\tonSelect = noop,\n\t\tcloseOnSelect = true,\n\t\tindeterminate = $bindable(false),\n\t\tonIndeterminateChange = noop,\n\t\tvalue = \"\",\n\t\t...restProps\n\t}: MenuCheckboxItemProps = $props();\n\n\tconst group = MenuCheckboxGroupContext.getOr(null);\n\n\tif (group && value) {\n\t\tif (group.opts.value.current.includes(value)) {\n\t\t\tchecked = true;\n\t\t} else {\n\t\t\tchecked = false;\n\t\t}\n\t}\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\tif (group && value) {\n\t\t\t\tif (group.opts.value.current.includes(value)) {\n\t\t\t\t\tchecked = true;\n\t\t\t\t} else {\n\t\t\t\t\tchecked = false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t);\n\n\tconst checkboxItemState = MenuCheckboxItemState.create(\n\t\t{\n\t\t\tchecked: boxWith(\n\t\t\t\t() => checked,\n\t\t\t\t(v) => {\n\t\t\t\t\tif (v !== checked) {\n\t\t\t\t\t\tchecked = v;\n\t\t\t\t\t\tonCheckedChange(v);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t),\n\t\t\tid: boxWith(() => id),\n\t\t\tdisabled: boxWith(() => disabled),\n\t\t\tonSelect: boxWith(() => handleSelect),\n\t\t\tref: boxWith(\n\t\t\t\t() => ref,\n\t\t\t\t(v) => (ref = v)\n\t\t\t),\n\t\t\tcloseOnSelect: boxWith(() => closeOnSelect),\n\t\t\tindeterminate: boxWith(\n\t\t\t\t() => indeterminate,\n\t\t\t\t(v) => {\n\t\t\t\t\tif (v !== indeterminate) {\n\t\t\t\t\t\tindeterminate = v;\n\t\t\t\t\t\tonIndeterminateChange(v);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t),\n\t\t\tvalue: boxWith(() => value),\n\t\t},\n\t\tgroup\n\t);\n\n\tfunction handleSelect(e: Event) {\n\t\tonSelect(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcheckboxItemState.toggleChecked();\n\t}\n\n\tconst mergedProps = $derived(mergeProps(restProps, checkboxItemState.props));\n</script>\n\n{#if child}\n\t{@render child({ checked, indeterminate, props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.({ checked, indeterminate })}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuCheckboxGroupProps } from \"../types.js\";\n\timport { MenuCheckboxGroupState } from \"../menu.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tvalue = $bindable([]),\n\t\tonValueChange = noop,\n\t\t...restProps\n\t}: MenuCheckboxGroupProps = $props();\n\n\tconst checkboxGroupState = MenuCheckboxGroupState.create({\n\t\tvalue: boxWith(\n\t\t\t() => $state.snapshot(value),\n\t\t\t(v) => {\n\t\t\t\tvalue = $state.snapshot(v);\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tonValueChange: boxWith(() => onValueChange),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tid: boxWith(() => id),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, checkboxGroupState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/date-field.svelte\";\nexport { default as Input } from \"./components/date-field-input.svelte\";\nexport { default as Label } from \"./components/date-field-label.svelte\";\nexport { default as Segment } from \"./components/date-field-segment.svelte\";\n", "import { boxWith, onDestroyEffect, attachRef, DOMContext, simpleBox, } from \"svelte-toolbelt\";\nimport { onMount, untrack } from \"svelte\";\nimport { Context, watch } from \"runed\";\nimport { createBitsAttrs, boolToStr, boolToStrTrueOrUndef, boolToEmptyStrOrUndef, } from \"../../internal/attrs.js\";\nimport { isBrowser, isNumberString } from \"../../internal/is.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { useId } from \"../../internal/use-id.js\";\nimport { createFormatter } from \"../../internal/date-time/formatter.js\";\nimport { getAnnouncer } from \"../../internal/date-time/announcer.js\";\nimport { areAllSegmentsFilled, createContent, getDefaultHourCycle, getValueFromSegments, inferGranularity, initSegmentStates, initializeSegmentValues, isAcceptableSegmentKey, isDateAndTimeSegmentObj, isDateSegmentPart, isFirstSegment, removeDescriptionElement, setDescription, } from \"../../internal/date-time/field/helpers.js\";\nimport { DATE_SEGMENT_PARTS, EDITABLE_TIME_SEGMENT_PARTS, } from \"../../internal/date-time/field/parts.js\";\nimport { getDaysInMonth, isBefore, toDate } from \"../../internal/date-time/utils.js\";\nimport { getFirstSegment, handleSegmentNavigation, isSegmentNavigationKey, moveToNextSegment, moveToPrevSegment, } from \"../../internal/date-time/field/segments.js\";\nexport const dateFieldAttrs = createBitsAttrs({\n component: \"date-field\",\n parts: [\"input\", \"label\", \"segment\"],\n});\nconst SEGMENT_CONFIGS = {\n day: {\n min: 1,\n max: (root) => {\n const segmentMonthValue = root.segmentValues.month;\n const placeholder = root.value.current ?? root.placeholder.current;\n return segmentMonthValue\n ? getDaysInMonth(placeholder.set({ month: Number.parseInt(segmentMonthValue) }))\n : getDaysInMonth(placeholder);\n },\n cycle: 1,\n padZero: true,\n },\n month: {\n min: 1,\n max: 12,\n cycle: 1,\n padZero: true,\n getAnnouncement: (month, root) => {\n if (!root.placeholder.current)\n return \"\";\n return `${month} - ${root.formatter.fullMonth(toDate(root.placeholder.current.set({ month })))}`;\n },\n },\n year: {\n min: 1,\n max: 9999,\n cycle: 1,\n padZero: false,\n },\n hour: {\n min: (root) => (root.hourCycle.current === 12 ? 1 : 0),\n max: (root) => {\n if (root.hourCycle.current === 24)\n return 23;\n if (root.hourCycle.current === 12)\n return 12;\n // if hourCycle is undefined, infer from locale\n const inferredHourCycle = getDefaultHourCycle(root.locale.current);\n return inferredHourCycle === 12 ? 12 : 23;\n },\n cycle: 1,\n canBeZero: true,\n padZero: true,\n },\n minute: {\n min: 0,\n max: 59,\n cycle: 1,\n canBeZero: true,\n padZero: true,\n },\n second: {\n min: 0,\n max: 59,\n cycle: 1,\n canBeZero: true,\n padZero: true,\n },\n};\nconst DateFieldRootContext = new Context(\"DateField.Root\");\nexport class DateFieldRootState {\n static create(opts, rangeRoot) {\n return DateFieldRootContext.set(new DateFieldRootState(opts, rangeRoot));\n }\n value;\n placeholder;\n validate;\n minValue;\n maxValue;\n disabled;\n readonly;\n granularity;\n readonlySegments;\n hourCycle;\n locale;\n hideTimeZone;\n required;\n onInvalid;\n errorMessageId;\n isInvalidProp;\n descriptionId = useId();\n formatter;\n initialSegments;\n segmentValues = $state();\n announcer;\n readonlySegmentsSet = $derived.by(() => new Set(this.readonlySegments.current));\n segmentStates = initSegmentStates();\n #fieldNode = $state(null);\n #labelNode = $state(null);\n descriptionNode = $state(null);\n validationNode = $state(null);\n states = initSegmentStates();\n dayPeriodNode = $state(null);\n rangeRoot = undefined;\n name = $state(\"\");\n domContext = new DOMContext(() => null);\n constructor(props, rangeRoot) {\n this.rangeRoot = rangeRoot;\n /**\n * Since the `DateFieldRootState` can be used in two contexts, as a standalone\n * field or as a field within a `DateRangeField` component, we handle assigning\n * the props based on that context.\n */\n this.value = props.value;\n this.placeholder = rangeRoot ? rangeRoot.opts.placeholder : props.placeholder;\n this.validate = rangeRoot ? simpleBox(undefined) : props.validate;\n this.minValue = rangeRoot ? rangeRoot.opts.minValue : props.minValue;\n this.maxValue = rangeRoot ? rangeRoot.opts.maxValue : props.maxValue;\n this.disabled = rangeRoot ? rangeRoot.opts.disabled : props.disabled;\n this.readonly = rangeRoot ? rangeRoot.opts.readonly : props.readonly;\n this.granularity = rangeRoot ? rangeRoot.opts.granularity : props.granularity;\n this.readonlySegments = rangeRoot\n ? rangeRoot.opts.readonlySegments\n : props.readonlySegments;\n this.hourCycle = rangeRoot ? rangeRoot.opts.hourCycle : props.hourCycle;\n this.locale = rangeRoot ? rangeRoot.opts.locale : props.locale;\n this.hideTimeZone = rangeRoot ? rangeRoot.opts.hideTimeZone : props.hideTimeZone;\n this.required = rangeRoot ? rangeRoot.opts.required : props.required;\n this.onInvalid = rangeRoot ? rangeRoot.opts.onInvalid : props.onInvalid;\n this.errorMessageId = rangeRoot ? rangeRoot.opts.errorMessageId : props.errorMessageId;\n this.isInvalidProp = props.isInvalidProp;\n this.formatter = createFormatter({\n initialLocale: this.locale.current,\n monthFormat: boxWith(() => \"long\"),\n yearFormat: boxWith(() => \"numeric\"),\n });\n this.initialSegments = initializeSegmentValues(this.inferredGranularity);\n this.segmentValues = this.initialSegments;\n this.announcer = getAnnouncer(null);\n this.getFieldNode = this.getFieldNode.bind(this);\n this.updateSegment = this.updateSegment.bind(this);\n this.handleSegmentClick = this.handleSegmentClick.bind(this);\n this.getBaseSegmentAttrs = this.getBaseSegmentAttrs.bind(this);\n $effect(() => {\n untrack(() => {\n this.initialSegments = initializeSegmentValues(this.inferredGranularity);\n });\n });\n onMount(() => {\n this.announcer = getAnnouncer(this.domContext.getDocument());\n });\n onDestroyEffect(() => {\n if (rangeRoot)\n return;\n removeDescriptionElement(this.descriptionId, this.domContext.getDocument());\n });\n $effect(() => {\n if (rangeRoot)\n return;\n if (this.formatter.getLocale() === this.locale.current)\n return;\n this.formatter.setLocale(this.locale.current);\n });\n $effect(() => {\n if (rangeRoot)\n return;\n if (this.value.current) {\n const descriptionId = untrack(() => this.descriptionId);\n setDescription({\n id: descriptionId,\n formatter: this.formatter,\n value: this.value.current,\n doc: this.domContext.getDocument(),\n });\n }\n const placeholder = untrack(() => this.placeholder.current);\n if (this.value.current && placeholder !== this.value.current) {\n untrack(() => {\n if (this.value.current) {\n this.placeholder.current = this.value.current;\n }\n });\n }\n });\n if (this.value.current) {\n this.syncSegmentValues(this.value.current);\n }\n $effect(() => {\n this.locale.current;\n if (this.value.current) {\n this.syncSegmentValues(this.value.current);\n }\n this.#clearUpdating();\n });\n $effect(() => {\n if (this.value.current === undefined) {\n this.segmentValues = initializeSegmentValues(this.inferredGranularity);\n }\n });\n watch(() => this.validationStatus, () => {\n if (this.validationStatus !== false) {\n this.onInvalid.current?.(this.validationStatus.reason, this.validationStatus.message);\n }\n });\n }\n setName(name) {\n this.name = name;\n }\n /**\n * Sets the field node for the `DateFieldRootState` instance. We use this method so we can\n * keep `#fieldNode` private to prevent accidental usage of the incorrect field node.\n */\n setFieldNode(node) {\n this.#fieldNode = node;\n }\n /**\n * Gets the correct field node for the date field regardless of whether it's being\n * used in a standalone context or within a `DateRangeField` component.\n */\n getFieldNode() {\n /** If we're not within a DateRangeField, we return this field. */\n if (!this.rangeRoot) {\n return this.#fieldNode;\n }\n else {\n /**\n * Otherwise, we return the rangeRoot's field node which\n * contains both start and end fields.\n */\n return this.rangeRoot.fieldNode;\n }\n }\n /**\n * Sets the label node for the `DateFieldRootState` instance. We use this method so we can\n * keep `#labelNode` private to prevent accidental usage of the incorrect label node.\n */\n setLabelNode(node) {\n this.#labelNode = node;\n }\n /**\n * Gets the correct label node for the date field regardless of whether it's being used in\n * a standalone context or within a `DateRangeField` component.\n */\n getLabelNode() {\n /** If we're not within a DateRangeField, we return this field. */\n if (!this.rangeRoot) {\n return this.#labelNode;\n }\n /** Otherwise we return the rangeRoot's label node. */\n return this.rangeRoot.labelNode;\n }\n #clearUpdating() {\n this.states.day.updating = null;\n this.states.month.updating = null;\n this.states.year.updating = null;\n this.states.hour.updating = null;\n this.states.minute.updating = null;\n this.states.dayPeriod.updating = null;\n }\n setValue(value) {\n this.value.current = value;\n }\n syncSegmentValues(value) {\n const dateValues = DATE_SEGMENT_PARTS.map((part) => {\n const partValue = value[part];\n if (part === \"month\") {\n if (this.states.month.updating) {\n return [part, this.states.month.updating];\n }\n if (partValue < 10) {\n return [part, `0${partValue}`];\n }\n }\n if (part === \"day\") {\n if (this.states.day.updating) {\n return [part, this.states.day.updating];\n }\n if (partValue < 10) {\n return [part, `0${partValue}`];\n }\n }\n if (part === \"year\") {\n if (this.states.year.updating) {\n return [part, this.states.year.updating];\n }\n const valueDigits = `${partValue}`.length;\n const diff = 4 - valueDigits;\n if (diff > 0) {\n return [part, `${\"0\".repeat(diff)}${partValue}`];\n }\n }\n return [part, `${partValue}`];\n });\n if (\"hour\" in value) {\n const timeValues = EDITABLE_TIME_SEGMENT_PARTS.map((part) => {\n if (part === \"dayPeriod\") {\n if (this.states.dayPeriod.updating) {\n return [part, this.states.dayPeriod.updating];\n }\n else {\n return [part, this.formatter.dayPeriod(toDate(value))];\n }\n }\n else if (part === \"hour\") {\n if (this.states.hour.updating) {\n return [part, this.states.hour.updating];\n }\n if (value[part] !== undefined && value[part] < 10) {\n return [part, `0${value[part]}`];\n }\n if (value[part] === 0) {\n /**\n * If we're rendering a `dayPeriod` segment, we're operating in a\n * 12-hour clock, so we never allow the displayed hour to be 0.\n */\n if (this.dayPeriodNode) {\n return [part, \"12\"];\n }\n }\n }\n else if (part === \"minute\") {\n if (this.states.minute.updating) {\n return [part, this.states.minute.updating];\n }\n if (value[part] !== undefined && value[part] < 10) {\n return [part, `0${value[part]}`];\n }\n }\n else if (part === \"second\") {\n if (this.states.second.updating) {\n return [part, this.states.second.updating];\n }\n if (value[part] !== undefined && value[part] < 10) {\n return [part, `0${value[part]}`];\n }\n }\n return [part, `${value[part]}`];\n });\n const mergedSegmentValues = [...dateValues, ...timeValues];\n this.segmentValues = Object.fromEntries(mergedSegmentValues);\n this.#clearUpdating();\n return;\n }\n this.segmentValues = Object.fromEntries(dateValues);\n }\n validationStatus = $derived.by(() => {\n const value = this.value.current;\n if (!value)\n return false;\n const msg = this.validate.current?.(value);\n if (msg) {\n return {\n reason: \"custom\",\n message: msg,\n };\n }\n const minValue = this.minValue.current;\n if (minValue && isBefore(value, minValue)) {\n return {\n reason: \"min\",\n };\n }\n const maxValue = this.maxValue.current;\n if (maxValue && isBefore(maxValue, value)) {\n return {\n reason: \"max\",\n };\n }\n return false;\n });\n isInvalid = $derived.by(() => {\n if (this.validationStatus === false)\n return false;\n if (this.isInvalidProp.current)\n return true;\n return true;\n });\n inferredGranularity = $derived.by(() => {\n const granularity = this.granularity.current;\n if (granularity)\n return granularity;\n const inferred = inferGranularity(this.placeholder.current, this.granularity.current);\n return inferred;\n });\n dateRef = $derived.by(() => this.value.current !== undefined ? this.value.current : this.placeholder.current);\n allSegmentContent = $derived.by(() => {\n return createContent({\n segmentValues: this.segmentValues,\n formatter: this.formatter,\n locale: this.locale.current,\n granularity: this.inferredGranularity,\n dateRef: this.dateRef,\n hideTimeZone: this.hideTimeZone.current,\n hourCycle: this.hourCycle.current,\n });\n });\n segmentContents = $derived.by(() => this.allSegmentContent.arr);\n sharedSegmentAttrs = {\n role: \"spinbutton\",\n contenteditable: \"true\",\n tabindex: 0,\n spellcheck: false,\n inputmode: \"numeric\",\n autocorrect: \"off\",\n enterkeyhint: \"next\",\n style: {\n caretColor: \"transparent\",\n },\n };\n #getLabelledBy(segmentId) {\n return `${segmentId} ${this.getLabelNode()?.id ?? \"\"}`;\n }\n updateSegment(part, cb) {\n const disabled = this.disabled.current;\n const readonly = this.readonly.current;\n const readonlySegmentsSet = this.readonlySegmentsSet;\n if (disabled || readonly || readonlySegmentsSet.has(part))\n return;\n const prev = this.segmentValues;\n let newSegmentValues = prev;\n const dateRef = this.placeholder.current;\n if (isDateAndTimeSegmentObj(prev)) {\n const pVal = prev[part];\n const castCb = cb;\n if (part === \"month\") {\n const next = castCb(pVal);\n this.states.month.updating = next;\n if (next !== null && prev.day !== null) {\n const date = dateRef.set({ month: Number.parseInt(next) });\n const daysInMonth = getDaysInMonth(toDate(date));\n const prevDay = Number.parseInt(prev.day);\n if (prevDay > daysInMonth) {\n prev.day = `${daysInMonth}`;\n }\n }\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"dayPeriod\") {\n const next = castCb(pVal);\n this.states.dayPeriod.updating = next;\n const date = this.value.current;\n if (date && \"hour\" in date) {\n const trueHour = date.hour;\n if (next === \"AM\") {\n if (trueHour >= 12) {\n prev.hour = `${trueHour - 12}`;\n }\n }\n else if (next === \"PM\") {\n if (trueHour < 12) {\n prev.hour = `${trueHour + 12}`;\n }\n }\n }\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"hour\") {\n const next = castCb(pVal);\n this.states.hour.updating = next;\n if (next !== null && prev.dayPeriod !== null) {\n const dayPeriod = this.formatter.dayPeriod(toDate(dateRef.set({ hour: Number.parseInt(next) })), this.hourCycle.current);\n if (dayPeriod === \"AM\" || dayPeriod === \"PM\") {\n prev.dayPeriod = dayPeriod;\n }\n }\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"minute\") {\n const next = castCb(pVal);\n this.states.minute.updating = next;\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"second\") {\n const next = castCb(pVal);\n this.states.second.updating = next;\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"year\") {\n const next = castCb(pVal);\n this.states.year.updating = next;\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"day\") {\n const next = castCb(pVal);\n this.states.day.updating = next;\n newSegmentValues = { ...prev, [part]: next };\n }\n else {\n const next = castCb(pVal);\n newSegmentValues = { ...prev, [part]: next };\n }\n }\n else if (isDateSegmentPart(part)) {\n const pVal = prev[part];\n const castCb = cb;\n const next = castCb(pVal);\n if (part === \"month\" && next !== null && prev.day !== null) {\n this.states.month.updating = next;\n const date = dateRef.set({ month: Number.parseInt(next) });\n const daysInMonth = getDaysInMonth(toDate(date));\n if (Number.parseInt(prev.day) > daysInMonth) {\n prev.day = `${daysInMonth}`;\n }\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"year\") {\n const next = castCb(pVal);\n this.states.year.updating = next;\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"day\") {\n const next = castCb(pVal);\n this.states.day.updating = next;\n newSegmentValues = { ...prev, [part]: next };\n }\n else {\n newSegmentValues = { ...prev, [part]: next };\n }\n }\n this.segmentValues = newSegmentValues;\n if (areAllSegmentsFilled(newSegmentValues, this.#fieldNode)) {\n this.setValue(getValueFromSegments({\n segmentObj: newSegmentValues,\n fieldNode: this.#fieldNode,\n dateRef: this.placeholder.current,\n }));\n }\n else {\n this.setValue(undefined);\n this.segmentValues = newSegmentValues;\n }\n }\n handleSegmentClick(e) {\n if (this.disabled.current) {\n e.preventDefault();\n }\n }\n getBaseSegmentAttrs(part, segmentId) {\n const inReadonlySegments = this.readonlySegmentsSet.has(part);\n const defaultAttrs = {\n \"aria-invalid\": boolToStrTrueOrUndef(this.isInvalid),\n \"aria-disabled\": boolToStr(this.disabled.current),\n \"aria-readonly\": boolToStr(this.readonly.current || inReadonlySegments),\n \"data-invalid\": boolToEmptyStrOrUndef(this.isInvalid),\n \"data-disabled\": boolToEmptyStrOrUndef(this.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.readonly.current || inReadonlySegments),\n \"data-segment\": `${part}`,\n [dateFieldAttrs.segment]: \"\",\n };\n if (part === \"literal\")\n return defaultAttrs;\n const descriptionId = this.descriptionNode?.id;\n const hasDescription = isFirstSegment(segmentId, this.#fieldNode) && descriptionId;\n const errorMsgId = this.errorMessageId?.current;\n const describedBy = hasDescription\n ? `${descriptionId} ${this.isInvalid && errorMsgId ? errorMsgId : \"\"}`\n : undefined;\n const contenteditable = !(this.readonly.current ||\n inReadonlySegments ||\n this.disabled.current);\n return {\n ...defaultAttrs,\n \"aria-labelledby\": this.#getLabelledBy(segmentId),\n contenteditable: contenteditable ? \"true\" : undefined,\n \"aria-describedby\": describedBy,\n tabindex: this.disabled.current ? undefined : 0,\n };\n }\n}\nexport class DateFieldInputState {\n static create(opts) {\n return new DateFieldInputState(opts, DateFieldRootContext.get());\n }\n opts;\n root;\n domContext;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.domContext = new DOMContext(opts.ref);\n this.root.domContext = this.domContext;\n this.attachment = attachRef(opts.ref, (v) => this.root.setFieldNode(v));\n watch(() => this.opts.name.current, (v) => {\n this.root.setName(v);\n });\n }\n #ariaDescribedBy = $derived.by(() => {\n if (!isBrowser)\n return undefined;\n const doesDescriptionExist = this.domContext.getElementById(this.root.descriptionId);\n if (!doesDescriptionExist)\n return undefined;\n return this.root.descriptionId;\n });\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n \"aria-labelledby\": this.root.getLabelNode()?.id ?? undefined,\n \"aria-describedby\": this.#ariaDescribedBy,\n \"aria-disabled\": boolToStr(this.root.disabled.current),\n \"data-invalid\": this.root.isInvalid ? \"\" : undefined,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.disabled.current),\n [dateFieldAttrs.input]: \"\",\n ...this.attachment,\n }));\n}\nexport class DateFieldHiddenInputState {\n static create() {\n return new DateFieldHiddenInputState(DateFieldRootContext.get());\n }\n root;\n shouldRender = $derived.by(() => this.root.name !== \"\");\n isoValue = $derived.by(() => this.root.value.current ? this.root.value.current.toString() : \"\");\n constructor(root) {\n this.root = root;\n }\n props = $derived.by(() => {\n return {\n name: this.root.name,\n value: this.isoValue,\n required: this.root.required.current,\n };\n });\n}\nexport class DateFieldLabelState {\n static create(opts) {\n return new DateFieldLabelState(opts, DateFieldRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.onclick = this.onclick.bind(this);\n this.attachment = attachRef(opts.ref, (v) => this.root.setLabelNode(v));\n }\n onclick(_) {\n if (this.root.disabled.current)\n return;\n const firstSegment = getFirstSegment(this.root.getFieldNode());\n if (!firstSegment)\n return;\n firstSegment.focus();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-invalid\": boolToEmptyStrOrUndef(this.root.isInvalid),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.disabled.current),\n [dateFieldAttrs.label]: \"\",\n onclick: this.onclick,\n ...this.attachment,\n }));\n}\n// Base class for numeric segments\nclass BaseNumericSegmentState {\n opts;\n root;\n announcer;\n part;\n config;\n attachment;\n constructor(opts, root, part, config) {\n this.opts = opts;\n this.root = root;\n this.part = part;\n this.config = config;\n this.announcer = root.announcer;\n this.onkeydown = this.onkeydown.bind(this);\n this.onfocusout = this.onfocusout.bind(this);\n this.attachment = attachRef(opts.ref);\n }\n #getMax() {\n return typeof this.config.max === \"function\" ? this.config.max(this.root) : this.config.max;\n }\n #getMin() {\n return typeof this.config.min === \"function\" ? this.config.min(this.root) : this.config.min;\n }\n #getAnnouncement(value) {\n if (this.config.getAnnouncement) {\n return this.config.getAnnouncement(value, this.root);\n }\n return value;\n }\n #formatValue(value, forDisplay = true) {\n const str = String(value);\n if (forDisplay && this.config.padZero && str.length === 1) {\n return `0${value}`;\n }\n return str;\n }\n onkeydown(e) {\n const placeholder = this.root.value.current ?? this.root.placeholder.current;\n if (e.ctrlKey || e.metaKey || this.root.disabled.current)\n return;\n // Special check for time segments\n if ((this.part === \"hour\" || this.part === \"minute\" || this.part === \"second\") &&\n !(this.part in placeholder))\n return;\n if (e.key !== kbd.TAB)\n e.preventDefault();\n if (!isAcceptableSegmentKey(e.key))\n return;\n if (isArrowUp(e.key)) {\n this.#handleArrowUp(placeholder);\n return;\n }\n if (isArrowDown(e.key)) {\n this.#handleArrowDown(placeholder);\n return;\n }\n if (isNumberString(e.key)) {\n this.#handleNumberKey(e);\n return;\n }\n if (isBackspace(e.key)) {\n this.#handleBackspace(e);\n return;\n }\n if (isSegmentNavigationKey(e.key)) {\n handleSegmentNavigation(e, this.root.getFieldNode());\n }\n }\n #handleArrowUp(placeholder) {\n const stateKey = this.part;\n if (stateKey in this.root.states) {\n this.root.states[stateKey].hasLeftFocus = false;\n }\n // @ts-expect-error this is a part\n this.root.updateSegment(this.part, (prev) => {\n if (prev === null) {\n const next = placeholder[this.part];\n this.announcer.announce(this.#getAnnouncement(next));\n return this.#formatValue(next);\n }\n const current = placeholder.set({\n [this.part]: Number.parseInt(prev),\n });\n // @ts-expect-error this is a part\n const next = current.cycle(this.part, this.config.cycle)[this.part];\n this.announcer.announce(this.#getAnnouncement(next));\n return this.#formatValue(next);\n });\n }\n #handleArrowDown(placeholder) {\n const stateKey = this.part;\n if (stateKey in this.root.states) {\n this.root.states[stateKey].hasLeftFocus = false;\n }\n // @ts-expect-error this is a part\n this.root.updateSegment(this.part, (prev) => {\n if (prev === null) {\n const next = placeholder[this.part];\n this.announcer.announce(this.#getAnnouncement(next));\n return this.#formatValue(next);\n }\n const current = placeholder.set({\n [this.part]: Number.parseInt(prev),\n });\n // @ts-expect-error this is a part\n const next = current.cycle(this.part, -this.config.cycle)[this.part];\n this.announcer.announce(this.#getAnnouncement(next));\n return this.#formatValue(next);\n });\n }\n #handleNumberKey(e) {\n const num = Number.parseInt(e.key);\n let moveToNext = false;\n const max = this.#getMax();\n const maxStart = Math.floor(max / 10);\n const numIsZero = num === 0;\n const stateKey = this.part;\n // @ts-expect-error this is a part\n this.root.updateSegment(this.part, (prev) => {\n // Check if user has left focus\n if (stateKey in this.root.states && this.root.states[stateKey].hasLeftFocus) {\n prev = null;\n this.root.states[stateKey].hasLeftFocus = false;\n }\n // Starting fresh\n if (prev === null) {\n if (numIsZero) {\n if (stateKey in this.root.states) {\n this.root.states[stateKey].lastKeyZero = true;\n }\n this.announcer.announce(\"0\");\n return \"0\";\n }\n if (stateKey in this.root.states &&\n (this.root.states[stateKey].lastKeyZero || num > maxStart)) {\n moveToNext = true;\n }\n if (stateKey in this.root.states) {\n this.root.states[stateKey].lastKeyZero = false;\n }\n if (moveToNext && String(num).length === 1) {\n this.announcer.announce(num);\n return `0${num}`;\n }\n return `${num}`;\n }\n // Handle special cases for segments with lastKeyZero tracking\n if (stateKey in this.root.states && this.root.states[stateKey].lastKeyZero) {\n if (num !== 0) {\n moveToNext = true;\n this.root.states[stateKey].lastKeyZero = false;\n return `0${num}`;\n }\n // Special handling for hour segment with 24-hour cycle\n if (this.part === \"hour\" && num === 0 && this.root.hourCycle.current === 24) {\n moveToNext = true;\n this.root.states[stateKey].lastKeyZero = false;\n return `00`;\n }\n // Special handling for minute/second segments\n if ((this.part === \"minute\" || this.part === \"second\") && num === 0) {\n moveToNext = true;\n this.root.states[stateKey].lastKeyZero = false;\n return \"00\";\n }\n return prev;\n }\n const total = Number.parseInt(prev + num.toString());\n if (total > max) {\n moveToNext = true;\n return `0${num}`;\n }\n moveToNext = true;\n return `${total}`;\n });\n if (moveToNext) {\n moveToNextSegment(e, this.root.getFieldNode());\n }\n }\n #handleBackspace(e) {\n const stateKey = this.part;\n if (stateKey in this.root.states) {\n this.root.states[stateKey].hasLeftFocus = false;\n }\n let moveToPrev = false;\n // @ts-expect-error this is a part\n this.root.updateSegment(this.part, (prev) => {\n if (prev === null) {\n moveToPrev = true;\n this.announcer.announce(null);\n return null;\n }\n if (prev.length === 2 && prev.startsWith(\"0\")) {\n this.announcer.announce(null);\n return null;\n }\n const str = prev.toString();\n if (str.length === 1) {\n this.announcer.announce(null);\n return null;\n }\n const next = Number.parseInt(str.slice(0, -1));\n this.announcer.announce(this.#getAnnouncement(next));\n return `${next}`;\n });\n if (moveToPrev) {\n moveToPrevSegment(e, this.root.getFieldNode());\n }\n }\n onfocusout(_) {\n const stateKey = this.part;\n if (stateKey in this.root.states) {\n this.root.states[stateKey].hasLeftFocus = true;\n }\n // Pad with zero if needed\n if (this.config.padZero) {\n // @ts-expect-error this is a part\n this.root.updateSegment(this.part, (prev) => {\n if (prev && prev.length === 1) {\n return `0${prev}`;\n }\n return prev;\n });\n }\n }\n getSegmentProps() {\n const segmentValues = this.root.segmentValues;\n const placeholder = this.root.placeholder.current;\n const isEmpty = segmentValues[this.part] === null;\n let date = placeholder;\n if (segmentValues[this.part]) {\n date = placeholder.set({\n [this.part]: Number.parseInt(segmentValues[this.part]),\n });\n }\n const valueNow = date[this.part];\n const valueMin = this.#getMin();\n const valueMax = this.#getMax();\n let valueText = isEmpty ? \"Empty\" : `${valueNow}`;\n // Special handling for hour segment with dayPeriod\n if (this.part === \"hour\" && \"dayPeriod\" in segmentValues && segmentValues.dayPeriod) {\n valueText = isEmpty ? \"Empty\" : `${valueNow} ${segmentValues.dayPeriod}`;\n }\n return {\n \"aria-label\": `${this.part}, `,\n \"aria-valuemin\": valueMin,\n \"aria-valuemax\": valueMax,\n \"aria-valuenow\": valueNow,\n \"aria-valuetext\": valueText,\n };\n }\n props = $derived.by(() => {\n return {\n ...this.root.sharedSegmentAttrs,\n id: this.opts.id.current,\n ...this.getSegmentProps(),\n onkeydown: this.onkeydown,\n onfocusout: this.onfocusout,\n onclick: this.root.handleSegmentClick,\n ...this.root.getBaseSegmentAttrs(this.part, this.opts.id.current),\n ...this.attachment,\n };\n });\n}\nclass DateFieldYearSegmentState extends BaseNumericSegmentState {\n #pressedKeys = [];\n #backspaceCount = 0;\n constructor(opts, root) {\n super(opts, root, \"year\", SEGMENT_CONFIGS.year);\n }\n onkeydown(e) {\n if (e.ctrlKey || e.metaKey || this.root.disabled.current)\n return;\n if (e.key !== kbd.TAB)\n e.preventDefault();\n if (!isAcceptableSegmentKey(e.key))\n return;\n if (isArrowUp(e.key)) {\n this.#resetBackspaceCount();\n super.onkeydown(e);\n return;\n }\n if (isArrowDown(e.key)) {\n this.#resetBackspaceCount();\n super.onkeydown(e);\n return;\n }\n if (isNumberString(e.key)) {\n this.#handleYearNumberKey(e);\n return;\n }\n if (isBackspace(e.key)) {\n this.#handleYearBackspace(e);\n return;\n }\n if (isSegmentNavigationKey(e.key)) {\n handleSegmentNavigation(e, this.root.getFieldNode());\n }\n }\n #resetBackspaceCount() {\n this.#backspaceCount = 0;\n }\n #incrementBackspaceCount() {\n this.#backspaceCount++;\n }\n #handleYearNumberKey(e) {\n this.#pressedKeys.push(e.key);\n let moveToNext = false;\n const num = Number.parseInt(e.key);\n this.root.updateSegment(\"year\", (prev) => {\n if (this.root.states.year.hasLeftFocus) {\n prev = null;\n this.root.states.year.hasLeftFocus = false;\n }\n if (prev === null) {\n this.announcer.announce(num);\n return `000${num}`;\n }\n const str = prev.toString() + num.toString();\n const mergedInt = Number.parseInt(str);\n const mergedIntDigits = String(mergedInt).length;\n if (mergedIntDigits < 4) {\n if (this.#backspaceCount > 0 &&\n this.#pressedKeys.length <= this.#backspaceCount &&\n str.length <= 4) {\n this.announcer.announce(mergedInt);\n return str;\n }\n this.announcer.announce(mergedInt);\n return prependYearZeros(mergedInt);\n }\n this.announcer.announce(mergedInt);\n moveToNext = true;\n const mergedIntStr = `${mergedInt}`;\n if (mergedIntStr.length > 4) {\n return mergedIntStr.slice(0, 4);\n }\n return mergedIntStr;\n });\n if (this.#pressedKeys.length === 4 || this.#pressedKeys.length === this.#backspaceCount) {\n moveToNext = true;\n }\n if (moveToNext) {\n moveToNextSegment(e, this.root.getFieldNode());\n }\n }\n #handleYearBackspace(e) {\n this.#pressedKeys = [];\n this.#incrementBackspaceCount();\n let moveToPrev = false;\n this.root.updateSegment(\"year\", (prev) => {\n this.root.states.year.hasLeftFocus = false;\n if (prev === null) {\n moveToPrev = true;\n this.announcer.announce(null);\n return null;\n }\n const str = prev.toString();\n if (str.length === 1) {\n this.announcer.announce(null);\n return null;\n }\n const next = str.slice(0, -1);\n this.announcer.announce(next);\n return `${next}`;\n });\n if (moveToPrev) {\n moveToPrevSegment(e, this.root.getFieldNode());\n }\n }\n onfocusout(_) {\n this.root.states.year.hasLeftFocus = true;\n this.#pressedKeys = [];\n this.#resetBackspaceCount();\n this.root.updateSegment(\"year\", (prev) => {\n if (prev && prev.length !== 4) {\n return prependYearZeros(Number.parseInt(prev));\n }\n return prev;\n });\n }\n}\nclass DateFieldDaySegmentState extends BaseNumericSegmentState {\n constructor(opts, root) {\n super(opts, root, \"day\", SEGMENT_CONFIGS.day);\n }\n}\nclass DateFieldMonthSegmentState extends BaseNumericSegmentState {\n constructor(opts, root) {\n super(opts, root, \"month\", SEGMENT_CONFIGS.month);\n }\n}\nclass DateFieldHourSegmentState extends BaseNumericSegmentState {\n constructor(opts, root) {\n super(opts, root, \"hour\", SEGMENT_CONFIGS.hour);\n }\n // Override to handle special hour logic\n onkeydown(e) {\n // Add special handling for hour display with dayPeriod\n if (isNumberString(e.key)) {\n const oldUpdateSegment = this.root.updateSegment.bind(this.root);\n // oxlint-disable-next-line no-explicit-any\n this.root.updateSegment = (part, cb) => {\n const result = oldUpdateSegment(part, cb);\n // After updating hour, check if we need to display \"12\" instead of \"0\"\n if (part === \"hour\" && \"hour\" in this.root.segmentValues) {\n const hourValue = this.root.segmentValues.hour;\n if (hourValue === \"0\" &&\n this.root.dayPeriodNode &&\n this.root.hourCycle.current !== 24) {\n this.root.segmentValues.hour = \"12\";\n }\n }\n return result;\n };\n }\n super.onkeydown(e);\n // Restore original updateSegment\n this.root.updateSegment = this.root.updateSegment.bind(this.root);\n }\n}\nclass DateFieldMinuteSegmentState extends BaseNumericSegmentState {\n constructor(opts, root) {\n super(opts, root, \"minute\", SEGMENT_CONFIGS.minute);\n }\n}\nclass DateFieldSecondSegmentState extends BaseNumericSegmentState {\n constructor(opts, root) {\n super(opts, root, \"second\", SEGMENT_CONFIGS.second);\n }\n}\nexport class DateFieldDayPeriodSegmentState {\n static create(opts) {\n return new DateFieldDayPeriodSegmentState(opts, DateFieldRootContext.get());\n }\n opts;\n root;\n attachment;\n #announcer;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.#announcer = this.root.announcer;\n this.onkeydown = this.onkeydown.bind(this);\n this.attachment = attachRef(opts.ref, (v) => (this.root.dayPeriodNode = v));\n }\n onkeydown(e) {\n if (e.ctrlKey || e.metaKey || this.root.disabled.current)\n return;\n if (e.key !== kbd.TAB)\n e.preventDefault();\n if (!isAcceptableDayPeriodKey(e.key))\n return;\n if (isArrowUp(e.key) || isArrowDown(e.key)) {\n this.root.updateSegment(\"dayPeriod\", (prev) => {\n if (prev === \"AM\") {\n const next = \"PM\";\n this.#announcer.announce(next);\n return next;\n }\n const next = \"AM\";\n this.#announcer.announce(next);\n return next;\n });\n return;\n }\n if (isBackspace(e.key)) {\n this.root.states.dayPeriod.hasLeftFocus = false;\n this.root.updateSegment(\"dayPeriod\", () => {\n const next = \"AM\";\n this.#announcer.announce(next);\n return next;\n });\n }\n if (e.key === kbd.A || e.key === kbd.P || kbd.a || kbd.p) {\n this.root.updateSegment(\"dayPeriod\", () => {\n const next = e.key === kbd.A || e.key === kbd.a ? \"AM\" : \"PM\";\n this.#announcer.announce(next);\n return next;\n });\n }\n if (isSegmentNavigationKey(e.key)) {\n handleSegmentNavigation(e, this.root.getFieldNode());\n }\n }\n props = $derived.by(() => {\n const segmentValues = this.root.segmentValues;\n if (!(\"dayPeriod\" in segmentValues))\n return;\n const valueMin = 0;\n const valueMax = 12;\n const valueNow = segmentValues.dayPeriod === \"AM\" ? 0 : 12;\n const valueText = segmentValues.dayPeriod ?? \"AM\";\n return {\n ...this.root.sharedSegmentAttrs,\n id: this.opts.id.current,\n inputmode: \"text\",\n \"aria-label\": \"AM/PM\",\n \"aria-valuemin\": valueMin,\n \"aria-valuemax\": valueMax,\n \"aria-valuenow\": valueNow,\n \"aria-valuetext\": valueText,\n onkeydown: this.onkeydown,\n onclick: this.root.handleSegmentClick,\n ...this.root.getBaseSegmentAttrs(\"dayPeriod\", this.opts.id.current),\n ...this.attachment,\n };\n });\n}\nexport class DateFieldLiteralSegmentState {\n static create(opts) {\n return new DateFieldLiteralSegmentState(opts, DateFieldRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-hidden\": boolToStrTrueOrUndef(true),\n ...this.root.getBaseSegmentAttrs(\"literal\", this.opts.id.current),\n ...this.attachment,\n }));\n}\nexport class DateFieldTimeZoneSegmentState {\n static create(opts) {\n return new DateFieldTimeZoneSegmentState(opts, DateFieldRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.onkeydown = this.onkeydown.bind(this);\n this.attachment = attachRef(opts.ref);\n }\n onkeydown(e) {\n if (e.key !== kbd.TAB)\n e.preventDefault();\n if (this.root.disabled.current)\n return;\n if (isSegmentNavigationKey(e.key)) {\n handleSegmentNavigation(e, this.root.getFieldNode());\n }\n }\n props = $derived.by(() => ({\n role: \"textbox\",\n id: this.opts.id.current,\n \"aria-label\": \"timezone, \",\n style: {\n caretColor: \"transparent\",\n },\n onkeydown: this.onkeydown,\n ...this.root.getBaseSegmentAttrs(\"timeZoneName\", this.opts.id.current),\n \"data-readonly\": boolToEmptyStrOrUndef(true),\n ...this.attachment,\n }));\n}\nexport class DateFieldSegmentState {\n static create(part, opts) {\n const root = DateFieldRootContext.get();\n switch (part) {\n case \"day\":\n return new DateFieldDaySegmentState(opts, root);\n case \"month\":\n return new DateFieldMonthSegmentState(opts, root);\n case \"year\":\n return new DateFieldYearSegmentState(opts, root);\n case \"hour\":\n return new DateFieldHourSegmentState(opts, root);\n case \"minute\":\n return new DateFieldMinuteSegmentState(opts, root);\n case \"second\":\n return new DateFieldSecondSegmentState(opts, root);\n case \"dayPeriod\":\n return new DateFieldDayPeriodSegmentState(opts, root);\n case \"literal\":\n return new DateFieldLiteralSegmentState(opts, root);\n case \"timeZoneName\":\n return new DateFieldTimeZoneSegmentState(opts, root);\n }\n }\n}\nfunction isAcceptableDayPeriodKey(key) {\n return (isAcceptableSegmentKey(key) ||\n key === kbd.A ||\n key === kbd.P ||\n key === kbd.a ||\n key === kbd.p);\n}\nfunction isArrowUp(key) {\n return key === kbd.ARROW_UP;\n}\nfunction isArrowDown(key) {\n return key === kbd.ARROW_DOWN;\n}\nfunction isBackspace(key) {\n return key === kbd.BACKSPACE;\n}\nfunction prependYearZeros(year) {\n const digits = String(year).length;\n const diff = 4 - digits;\n return `${\"0\".repeat(diff)}${year}`;\n}\n", "<script lang=\"ts\">\n\timport { watch } from \"runed\";\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport { DateFieldRootState } from \"../date-field.svelte.js\";\n\timport type { DateFieldRootProps } from \"../types.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { getDefaultDate } from \"../../../internal/date-time/utils.js\";\n\timport { resolveLocaleProp } from \"../../utilities/config/prop-resolvers.js\";\n\n\tlet {\n\t\tdisabled = false,\n\t\tgranularity,\n\t\thideTimeZone = false,\n\t\thourCycle,\n\t\tlocale,\n\t\tmaxValue,\n\t\tminValue,\n\t\tonPlaceholderChange = noop,\n\t\tonValueChange = noop,\n\t\tvalidate = noop,\n\t\tonInvalid = noop,\n\t\tplaceholder = $bindable(),\n\t\tvalue = $bindable(),\n\t\treadonly = false,\n\t\treadonlySegments = [],\n\t\trequired = false,\n\t\terrorMessageId,\n\t\tchildren,\n\t}: DateFieldRootProps = $props();\n\n\tfunction handleDefaultPlaceholder(setPlaceholder = true) {\n\t\tif (placeholder !== undefined) return placeholder;\n\n\t\tconst defaultPlaceholder = getDefaultDate({\n\t\t\tgranularity,\n\t\t\tdefaultValue: value,\n\t\t\tminValue,\n\t\t\tmaxValue,\n\t\t});\n\n\t\tif (setPlaceholder) {\n\t\t\tplaceholder = defaultPlaceholder;\n\t\t}\n\n\t\treturn defaultPlaceholder;\n\t}\n\n\t// SSR\n\thandleDefaultPlaceholder();\n\n\t/**\n\t * Covers an edge case where when a spread props object is reassigned,\n\t * the props are reset to their default values, which would make placeholder\n\t * undefined which causes errors to be thrown.\n\t */\n\twatch.pre(\n\t\t() => placeholder,\n\t\t() => {\n\t\t\thandleDefaultPlaceholder();\n\t\t}\n\t);\n\n\tDateFieldRootState.create({\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tplaceholder: boxWith(\n\t\t\t() => {\n\t\t\t\tif (placeholder === undefined) return handleDefaultPlaceholder(false);\n\t\t\t\treturn placeholder;\n\t\t\t},\n\t\t\t(v) => {\n\t\t\t\tif (v === undefined) return;\n\t\t\t\tplaceholder = v;\n\t\t\t\tonPlaceholderChange(v);\n\t\t\t}\n\t\t),\n\t\tdisabled: boxWith(() => disabled),\n\t\tgranularity: boxWith(() => granularity),\n\t\thideTimeZone: boxWith(() => hideTimeZone),\n\t\thourCycle: boxWith(() => hourCycle),\n\t\tlocale: resolveLocaleProp(() => locale),\n\t\tmaxValue: boxWith(() => maxValue),\n\t\tminValue: boxWith(() => minValue),\n\t\tvalidate: boxWith(() => validate),\n\t\treadonly: boxWith(() => readonly),\n\t\treadonlySegments: boxWith(() => readonlySegments),\n\t\trequired: boxWith(() => required),\n\t\tonInvalid: boxWith(() => onInvalid),\n\t\terrorMessageId: boxWith(() => errorMessageId),\n\t\tisInvalidProp: boxWith(() => undefined),\n\t});\n</script>\n\n{@render children?.()}\n", "<script lang=\"ts\">\n\timport { DateFieldHiddenInputState } from \"../date-field.svelte.js\";\n\timport HiddenInput from \"../../utilities/hidden-input.svelte\";\n\n\tconst hiddenInputState = DateFieldHiddenInputState.create();\n</script>\n\n{#if hiddenInputState.shouldRender}\n\t<HiddenInput {...hiddenInputState.props} />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DateFieldInputState } from \"../date-field.svelte.js\";\n\timport type { DateFieldInputProps } from \"../types.js\";\n\timport DateFieldHiddenInput from \"./date-field-hidden-input.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tname = \"\",\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: DateFieldInputProps = $props();\n\n\tconst inputState = DateFieldInputState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tname: boxWith(() => name),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, inputState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, segments: inputState.root.segmentContents })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.({ segments: inputState.root.segmentContents })}\n\t</div>\n{/if}\n\n<DateFieldHiddenInput />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DateFieldLabelState } from \"../date-field.svelte.js\";\n\timport type { DateFieldLabelProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: DateFieldLabelProps = $props();\n\n\tconst labelState = DateFieldLabelState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, labelState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DateFieldSegmentState } from \"../date-field.svelte.js\";\n\timport type { DateFieldSegmentProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\tpart,\n\t\t...restProps\n\t}: DateFieldSegmentProps = $props();\n\n\tconst segmentState = DateFieldSegmentState.create(part, {\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, segmentState.props as Record<string, unknown>)\n\t);\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.()}\n\t</span>\n{/if}\n", "export { default as Root } from \"./components/date-picker.svelte\";\nexport { default as Calendar } from \"./components/date-picker-calendar.svelte\";\nexport { default as Content } from \"./components/date-picker-content.svelte\";\nexport { default as ContentStatic } from \"./components/date-picker-content-static.svelte\";\nexport { default as Trigger } from \"./components/date-picker-trigger.svelte\";\nexport { default as Arrow } from \"../popover/components/popover-arrow.svelte\";\nexport { default as Close } from \"../popover/components/popover-close.svelte\";\nexport { default as Input } from \"../date-field/components/date-field-input.svelte\";\nexport { default as Label } from \"../date-field/components/date-field-label.svelte\";\nexport { default as Segment } from \"../date-field/components/date-field-segment.svelte\";\nexport { default as GridBody } from \"../calendar/components/calendar-grid-body.svelte\";\nexport { default as GridHead } from \"../calendar/components/calendar-grid-head.svelte\";\nexport { default as GridRow } from \"../calendar/components/calendar-grid-row.svelte\";\nexport { default as Grid } from \"../calendar/components/calendar-grid.svelte\";\nexport { default as HeadCell } from \"../calendar/components/calendar-head-cell.svelte\";\nexport { default as Header } from \"../calendar/components/calendar-header.svelte\";\nexport { default as Heading } from \"../calendar/components/calendar-heading.svelte\";\nexport { default as NextButton } from \"../calendar/components/calendar-next-button.svelte\";\nexport { default as PrevButton } from \"../calendar/components/calendar-prev-button.svelte\";\nexport { default as MonthSelect } from \"../calendar/components/calendar-month-select.svelte\";\nexport { default as YearSelect } from \"../calendar/components/calendar-year-select.svelte\";\nexport { default as Cell } from \"../calendar/components/calendar-cell.svelte\";\nexport { default as Day } from \"../calendar/components/calendar-day.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\n", "import { Context } from \"runed\";\nimport {} from \"svelte-toolbelt\";\nexport const DatePickerRootContext = new Context(\"DatePicker.Root\");\nexport class DatePickerRootState {\n static create(opts) {\n return DatePickerRootContext.set(new DatePickerRootState(opts));\n }\n opts;\n constructor(opts) {\n this.opts = opts;\n }\n}\n", "import { getDocument } from \"svelte-toolbelt\";\nimport { on } from \"svelte/events\";\nimport { watch } from \"runed\";\nimport { isElement } from \"./is.js\";\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] ?? [0, 0];\n const [xj, yj] = polygon[j] ?? [0, 0];\n const intersect = yi >= y !== yj >= y && x <= ((xj - xi) * (y - yi)) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInsideRect(point, rect) {\n return (point[0] >= rect.left &&\n point[0] <= rect.right &&\n point[1] >= rect.top &&\n point[1] <= rect.bottom);\n}\nfunction getSide(triggerRect, contentRect) {\n // determine which side the content is on relative to trigger\n const triggerCenterX = triggerRect.left + triggerRect.width / 2;\n const triggerCenterY = triggerRect.top + triggerRect.height / 2;\n const contentCenterX = contentRect.left + contentRect.width / 2;\n const contentCenterY = contentRect.top + contentRect.height / 2;\n const deltaX = contentCenterX - triggerCenterX;\n const deltaY = contentCenterY - triggerCenterY;\n if (Math.abs(deltaX) > Math.abs(deltaY)) {\n return deltaX > 0 ? \"right\" : \"left\";\n }\n return deltaY > 0 ? \"bottom\" : \"top\";\n}\n/**\n * Creates a safe polygon area that allows users to move their cursor between\n * the trigger and floating content without closing it.\n */\nexport class SafePolygon {\n #opts;\n #buffer;\n // tracks the cursor position when leaving trigger or content\n #exitPoint = null;\n // tracks what we're moving toward: \"content\" when leaving trigger, \"trigger\" when leaving content\n #exitTarget = null;\n #triggerRect = null;\n #contentRect = null;\n #pointerMoveRafId = null;\n #pendingClientPoint = null;\n #leaveFallbackRafId = null;\n #cancelLeaveFallback() {\n if (this.#leaveFallbackRafId !== null) {\n cancelAnimationFrame(this.#leaveFallbackRafId);\n this.#leaveFallbackRafId = null;\n }\n }\n #scheduleLeaveFallback() {\n this.#cancelLeaveFallback();\n this.#leaveFallbackRafId = requestAnimationFrame(() => {\n this.#leaveFallbackRafId = null;\n if (!this.#exitPoint || !this.#exitTarget)\n return;\n this.#clearTracking();\n this.#opts.onPointerExit();\n });\n }\n #closeIfPointerEnteredOutside(target, triggerNode, contentNode) {\n if (!isElement(target))\n return false;\n if (triggerNode.contains(target) || contentNode.contains(target))\n return false;\n this.#clearTracking();\n this.#opts.onPointerExit();\n return true;\n }\n constructor(opts) {\n this.#opts = opts;\n this.#buffer = opts.buffer ?? 1;\n watch([opts.triggerNode, opts.contentNode, opts.enabled], ([triggerNode, contentNode, enabled]) => {\n if (!triggerNode || !contentNode || !enabled) {\n this.#clearTracking();\n return;\n }\n const doc = getDocument(triggerNode);\n const handlePointerMove = (e) => {\n if (this.#opts.throttlePointerMove) {\n this.#onPointerMoveThrottled(e, triggerNode, contentNode);\n }\n else {\n this.#onPointerMove([e.clientX, e.clientY], triggerNode, contentNode);\n }\n };\n const handleTriggerLeave = (e) => {\n // when leaving trigger toward content, record exit point\n const target = e.relatedTarget;\n // if going directly to content, no need for polygon tracking\n if (isElement(target) && contentNode.contains(target)) {\n return;\n }\n if (this.#closeIfPointerEnteredOutside(target, triggerNode, contentNode)) {\n return;\n }\n this.#exitPoint = [e.clientX, e.clientY];\n this.#exitTarget = \"content\";\n this.#captureRects(triggerNode, contentNode);\n this.#scheduleLeaveFallback();\n };\n const handleTriggerEnter = () => {\n // reached trigger, clear tracking\n this.#clearTracking();\n };\n const handleContentEnter = () => {\n // reached content, clear tracking\n this.#clearTracking();\n };\n const handleContentLeave = (e) => {\n // when leaving content, check if going directly back to trigger\n const target = e.relatedTarget;\n if (isElement(target) && triggerNode.contains(target)) {\n // going directly to trigger, no polygon tracking needed\n return;\n }\n if (this.#closeIfPointerEnteredOutside(target, triggerNode, contentNode)) {\n return;\n }\n // might be traversing gap back to trigger, set up polygon tracking\n this.#exitPoint = [e.clientX, e.clientY];\n this.#exitTarget = \"trigger\";\n this.#captureRects(triggerNode, contentNode);\n this.#scheduleLeaveFallback();\n };\n return [\n on(doc, \"pointermove\", handlePointerMove),\n on(triggerNode, \"pointerleave\", handleTriggerLeave),\n on(triggerNode, \"pointerenter\", handleTriggerEnter),\n on(contentNode, \"pointerenter\", handleContentEnter),\n on(contentNode, \"pointerleave\", handleContentLeave),\n ].reduce((acc, cleanup) => () => {\n acc();\n cleanup();\n }, () => { });\n });\n }\n #onPointerMoveThrottled(e, triggerNode, contentNode) {\n if (this.#pointerMoveRafId === null) {\n // handle the first move in the frame immediately so close checks\n // are not deferred when only a single pointermove fires.\n this.#pointerMoveRafId = requestAnimationFrame(() => {\n this.#pointerMoveRafId = null;\n const point = this.#pendingClientPoint;\n this.#pendingClientPoint = null;\n if (!point)\n return;\n this.#onPointerMove(point, triggerNode, contentNode);\n });\n this.#onPointerMove([e.clientX, e.clientY], triggerNode, contentNode);\n return;\n }\n this.#pendingClientPoint = [e.clientX, e.clientY];\n }\n #onPointerMove(clientPoint, triggerNode, contentNode) {\n // if no exit point recorded, nothing to check\n if (!this.#exitPoint || !this.#exitTarget)\n return;\n this.#cancelLeaveFallback();\n if (!this.#triggerRect || !this.#contentRect) {\n this.#captureRects(triggerNode, contentNode);\n }\n const triggerRect = this.#triggerRect ?? triggerNode.getBoundingClientRect();\n const contentRect = this.#contentRect ?? contentNode.getBoundingClientRect();\n // check if pointer reached the target\n if (this.#exitTarget === \"content\" && isInsideRect(clientPoint, contentRect)) {\n this.#clearTracking();\n return;\n }\n if (this.#exitTarget === \"trigger\" && isInsideRect(clientPoint, triggerRect)) {\n this.#clearTracking();\n return;\n }\n // check if pointer is in the rectangular corridor between trigger and content\n const side = getSide(triggerRect, contentRect);\n const corridorPoly = this.#getCorridorPolygon(triggerRect, contentRect, side);\n if (corridorPoly && isPointInPolygon(clientPoint, corridorPoly)) {\n return;\n }\n // check if pointer is within the safe polygon from exit point to target\n const targetRect = this.#exitTarget === \"content\" ? contentRect : triggerRect;\n const safePoly = this.#getSafePolygon(this.#exitPoint, targetRect, side, this.#exitTarget);\n if (isPointInPolygon(clientPoint, safePoly)) {\n return;\n }\n // pointer is outside all safe zones - close\n this.#clearTracking();\n this.#opts.onPointerExit();\n }\n #captureRects(triggerNode, contentNode) {\n this.#triggerRect = triggerNode.getBoundingClientRect();\n this.#contentRect = contentNode.getBoundingClientRect();\n }\n #clearTracking() {\n this.#exitPoint = null;\n this.#exitTarget = null;\n this.#triggerRect = null;\n this.#contentRect = null;\n this.#pendingClientPoint = null;\n if (this.#pointerMoveRafId !== null) {\n cancelAnimationFrame(this.#pointerMoveRafId);\n this.#pointerMoveRafId = null;\n }\n this.#cancelLeaveFallback();\n }\n /**\n * Creates a rectangular corridor between trigger and content\n * This prevents closing when cursor is in the gap between them\n */\n #getCorridorPolygon(triggerRect, contentRect, side) {\n const buffer = this.#buffer;\n switch (side) {\n case \"top\":\n return [\n [Math.min(triggerRect.left, contentRect.left) - buffer, triggerRect.top],\n [Math.min(triggerRect.left, contentRect.left) - buffer, contentRect.bottom],\n [Math.max(triggerRect.right, contentRect.right) + buffer, contentRect.bottom],\n [Math.max(triggerRect.right, contentRect.right) + buffer, triggerRect.top],\n ];\n case \"bottom\":\n return [\n [Math.min(triggerRect.left, contentRect.left) - buffer, triggerRect.bottom],\n [Math.min(triggerRect.left, contentRect.left) - buffer, contentRect.top],\n [Math.max(triggerRect.right, contentRect.right) + buffer, contentRect.top],\n [Math.max(triggerRect.right, contentRect.right) + buffer, triggerRect.bottom],\n ];\n case \"left\":\n return [\n [triggerRect.left, Math.min(triggerRect.top, contentRect.top) - buffer],\n [contentRect.right, Math.min(triggerRect.top, contentRect.top) - buffer],\n [contentRect.right, Math.max(triggerRect.bottom, contentRect.bottom) + buffer],\n [triggerRect.left, Math.max(triggerRect.bottom, contentRect.bottom) + buffer],\n ];\n case \"right\":\n return [\n [triggerRect.right, Math.min(triggerRect.top, contentRect.top) - buffer],\n [contentRect.left, Math.min(triggerRect.top, contentRect.top) - buffer],\n [contentRect.left, Math.max(triggerRect.bottom, contentRect.bottom) + buffer],\n [triggerRect.right, Math.max(triggerRect.bottom, contentRect.bottom) + buffer],\n ];\n }\n }\n /**\n * Creates a triangular/trapezoidal safe zone from the exit point to the target\n */\n #getSafePolygon(exitPoint, targetRect, side, exitTarget) {\n const buffer = this.#buffer * 4;\n const [x, y] = exitPoint;\n // when going back to trigger, we need to flip the side\n const effectiveSide = exitTarget === \"trigger\" ? this.#flipSide(side) : side;\n // create polygon points from cursor to target edges\n switch (effectiveSide) {\n case \"top\":\n return [\n [x - buffer, y + buffer],\n [x + buffer, y + buffer],\n [targetRect.right + buffer, targetRect.bottom],\n [targetRect.right + buffer, targetRect.top],\n [targetRect.left - buffer, targetRect.top],\n [targetRect.left - buffer, targetRect.bottom],\n ];\n case \"bottom\":\n return [\n [x - buffer, y - buffer],\n [x + buffer, y - buffer],\n [targetRect.right + buffer, targetRect.top],\n [targetRect.right + buffer, targetRect.bottom],\n [targetRect.left - buffer, targetRect.bottom],\n [targetRect.left - buffer, targetRect.top],\n ];\n case \"left\":\n return [\n [x + buffer, y - buffer],\n [x + buffer, y + buffer],\n [targetRect.right, targetRect.bottom + buffer],\n [targetRect.left, targetRect.bottom + buffer],\n [targetRect.left, targetRect.top - buffer],\n [targetRect.right, targetRect.top - buffer],\n ];\n case \"right\":\n return [\n [x - buffer, y - buffer],\n [x - buffer, y + buffer],\n [targetRect.left, targetRect.bottom + buffer],\n [targetRect.right, targetRect.bottom + buffer],\n [targetRect.right, targetRect.top - buffer],\n [targetRect.left, targetRect.top - buffer],\n ];\n }\n }\n #flipSide(side) {\n switch (side) {\n case \"top\":\n return \"bottom\";\n case \"bottom\":\n return \"top\";\n case \"left\":\n return \"right\";\n case \"right\":\n return \"left\";\n }\n }\n}\n", "import { attachRef, boxWith, DOMContext, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { createBitsAttrs, boolToStr, getDataOpenClosed } from \"../../internal/attrs.js\";\nimport { isElement, isTouch } from \"../../internal/is.js\";\nimport { PresenceManager } from \"../../internal/presence-manager.svelte.js\";\nimport { SafePolygon } from \"../../internal/safe-polygon.svelte.js\";\nimport { isTabbable } from \"tabbable\";\nconst popoverAttrs = createBitsAttrs({\n component: \"popover\",\n parts: [\"root\", \"trigger\", \"content\", \"close\", \"overlay\"],\n});\nconst PopoverRootContext = new Context(\"Popover.Root\");\nexport class PopoverRootState {\n static create(opts) {\n return PopoverRootContext.set(new PopoverRootState(opts));\n }\n opts;\n contentNode = $state(null);\n contentPresence;\n triggerNode = $state(null);\n overlayNode = $state(null);\n overlayPresence;\n // hover tracking state\n openedViaHover = $state(false);\n hasInteractedWithContent = $state(false);\n hoverCooldown = $state(false);\n closeDelay = $state(0);\n #closeTimeout = null;\n #domContext = null;\n constructor(opts) {\n this.opts = opts;\n this.contentPresence = new PresenceManager({\n ref: boxWith(() => this.contentNode),\n open: this.opts.open,\n onComplete: () => {\n this.opts.onOpenChangeComplete.current(this.opts.open.current);\n },\n });\n this.overlayPresence = new PresenceManager({\n ref: boxWith(() => this.overlayNode),\n open: this.opts.open,\n });\n watch(() => this.opts.open.current, (isOpen) => {\n if (!isOpen) {\n this.openedViaHover = false;\n this.hasInteractedWithContent = false;\n this.#clearCloseTimeout();\n }\n });\n }\n setDomContext(ctx) {\n this.#domContext = ctx;\n }\n #clearCloseTimeout() {\n if (this.#closeTimeout !== null && this.#domContext) {\n this.#domContext.clearTimeout(this.#closeTimeout);\n this.#closeTimeout = null;\n }\n }\n toggleOpen() {\n this.#clearCloseTimeout();\n this.opts.open.current = !this.opts.open.current;\n }\n handleClose() {\n this.#clearCloseTimeout();\n if (!this.opts.open.current)\n return;\n this.opts.open.current = false;\n }\n handleHoverOpen() {\n this.#clearCloseTimeout();\n if (this.opts.open.current)\n return;\n this.openedViaHover = true;\n this.opts.open.current = true;\n }\n handleHoverClose() {\n if (!this.opts.open.current)\n return;\n // only close if opened via hover and user hasn't interacted with content\n if (this.openedViaHover && !this.hasInteractedWithContent) {\n this.opts.open.current = false;\n }\n }\n handleDelayedHoverClose() {\n if (!this.opts.open.current)\n return;\n if (!this.openedViaHover || this.hasInteractedWithContent)\n return;\n this.#clearCloseTimeout();\n if (this.closeDelay <= 0) {\n this.opts.open.current = false;\n }\n else if (this.#domContext) {\n this.#closeTimeout = this.#domContext.setTimeout(() => {\n if (this.openedViaHover && !this.hasInteractedWithContent) {\n this.opts.open.current = false;\n }\n this.#closeTimeout = null;\n }, this.closeDelay);\n }\n }\n cancelDelayedClose() {\n this.#clearCloseTimeout();\n }\n markInteraction() {\n this.hasInteractedWithContent = true;\n this.#clearCloseTimeout();\n }\n}\nexport class PopoverTriggerState {\n static create(opts) {\n return new PopoverTriggerState(opts, PopoverRootContext.get());\n }\n opts;\n root;\n attachment;\n domContext;\n #openTimeout = null;\n #closeTimeout = null;\n #isHovering = $state(false);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.triggerNode = v));\n this.domContext = new DOMContext(opts.ref);\n this.root.setDomContext(this.domContext);\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n this.onpointerenter = this.onpointerenter.bind(this);\n this.onpointerleave = this.onpointerleave.bind(this);\n watch(() => this.opts.closeDelay.current, (delay) => {\n this.root.closeDelay = delay;\n });\n }\n #clearOpenTimeout() {\n if (this.#openTimeout !== null) {\n this.domContext.clearTimeout(this.#openTimeout);\n this.#openTimeout = null;\n }\n }\n #clearCloseTimeout() {\n if (this.#closeTimeout !== null) {\n this.domContext.clearTimeout(this.#closeTimeout);\n this.#closeTimeout = null;\n }\n }\n #clearAllTimeouts() {\n this.#clearOpenTimeout();\n this.#clearCloseTimeout();\n }\n onpointerenter(e) {\n if (this.opts.disabled.current)\n return;\n if (!this.opts.openOnHover.current)\n return;\n if (isTouch(e))\n return;\n this.#isHovering = true;\n this.#clearCloseTimeout();\n this.root.cancelDelayedClose();\n if (this.root.opts.open.current || this.root.hoverCooldown)\n return;\n const delay = this.opts.openDelay.current;\n if (delay <= 0) {\n this.root.handleHoverOpen();\n }\n else {\n this.#openTimeout = this.domContext.setTimeout(() => {\n this.root.handleHoverOpen();\n this.#openTimeout = null;\n }, delay);\n }\n }\n onpointerleave(e) {\n if (this.opts.disabled.current)\n return;\n if (!this.opts.openOnHover.current)\n return;\n if (isTouch(e))\n return;\n this.#isHovering = false;\n this.#clearOpenTimeout();\n this.root.hoverCooldown = false;\n // let GraceArea handle the close - it will call handleHoverClose via onPointerExit\n // we just need to stop any pending open timer\n }\n onclick(e) {\n if (this.opts.disabled.current)\n return;\n if (e.button !== 0)\n return;\n this.#clearAllTimeouts();\n // if clicked while hovering and popover is open, convert to click-based open\n if (this.#isHovering && this.root.opts.open.current && this.root.openedViaHover) {\n this.root.openedViaHover = false;\n this.root.hasInteractedWithContent = true;\n return;\n }\n // if closing while hovering with openOnHover enabled, set cooldown to prevent\n // immediate re-open via hover\n if (this.#isHovering && this.opts.openOnHover.current && this.root.opts.open.current) {\n this.root.hoverCooldown = true;\n }\n // if clicking to open while in cooldown, reset cooldown (explicit open)\n if (this.root.hoverCooldown && !this.root.opts.open.current) {\n this.root.hoverCooldown = false;\n }\n this.root.toggleOpen();\n }\n onkeydown(e) {\n if (this.opts.disabled.current)\n return;\n if (!(e.key === kbd.ENTER || e.key === kbd.SPACE))\n return;\n e.preventDefault();\n this.#clearAllTimeouts();\n this.root.toggleOpen();\n }\n #getAriaControls() {\n if (this.root.opts.open.current && this.root.contentNode?.id) {\n return this.root.contentNode?.id;\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": boolToStr(this.root.opts.open.current),\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n \"aria-controls\": this.#getAriaControls(),\n [popoverAttrs.trigger]: \"\",\n disabled: this.opts.disabled.current,\n //\n onkeydown: this.onkeydown,\n onclick: this.onclick,\n onpointerenter: this.onpointerenter,\n onpointerleave: this.onpointerleave,\n ...this.attachment,\n }));\n}\nexport class PopoverContentState {\n static create(opts) {\n return new PopoverContentState(opts, PopoverRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.contentNode = v));\n this.onpointerdown = this.onpointerdown.bind(this);\n this.onfocusin = this.onfocusin.bind(this);\n this.onpointerenter = this.onpointerenter.bind(this);\n this.onpointerleave = this.onpointerleave.bind(this);\n new SafePolygon({\n triggerNode: () => this.root.triggerNode,\n contentNode: () => this.root.contentNode,\n enabled: () => this.root.opts.open.current &&\n this.root.openedViaHover &&\n !this.root.hasInteractedWithContent,\n throttlePointerMove: true,\n onPointerExit: () => {\n this.root.handleDelayedHoverClose();\n },\n });\n }\n onpointerdown(_) {\n this.root.markInteraction();\n }\n onfocusin(e) {\n const target = e.target;\n if (isElement(target) && isTabbable(target)) {\n this.root.markInteraction();\n }\n }\n onpointerenter(e) {\n if (isTouch(e))\n return;\n this.root.cancelDelayedClose();\n }\n onpointerleave(e) {\n if (isTouch(e))\n return;\n // handled by grace area\n }\n onInteractOutside = (e) => {\n this.opts.onInteractOutside.current(e);\n if (e.defaultPrevented)\n return;\n if (!isElement(e.target))\n return;\n const closestTrigger = e.target.closest(popoverAttrs.selector(\"trigger\"));\n if (closestTrigger && closestTrigger === this.root.triggerNode)\n return;\n if (this.opts.customAnchor.current) {\n if (isElement(this.opts.customAnchor.current)) {\n if (this.opts.customAnchor.current.contains(e.target))\n return;\n }\n else if (typeof this.opts.customAnchor.current === \"string\") {\n const el = document.querySelector(this.opts.customAnchor.current);\n if (el && el.contains(e.target))\n return;\n }\n }\n this.root.handleClose();\n };\n onEscapeKeydown = (e) => {\n this.opts.onEscapeKeydown.current(e);\n if (e.defaultPrevented)\n return;\n this.root.handleClose();\n };\n get shouldRender() {\n return this.root.contentPresence.shouldRender;\n }\n get shouldTrapFocus() {\n if (this.root.openedViaHover && !this.root.hasInteractedWithContent)\n return false;\n return true;\n }\n snippetProps = $derived.by(() => ({ open: this.root.opts.open.current }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n tabindex: -1,\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n [popoverAttrs.content]: \"\",\n style: {\n pointerEvents: \"auto\",\n // CSS containment isolates style/layout/paint calculations from the rest of the page\n contain: \"layout style\",\n },\n onpointerdown: this.onpointerdown,\n onfocusin: this.onfocusin,\n onpointerenter: this.onpointerenter,\n onpointerleave: this.onpointerleave,\n ...this.attachment,\n }));\n popperProps = {\n onInteractOutside: this.onInteractOutside,\n onEscapeKeydown: this.onEscapeKeydown,\n };\n}\nexport class PopoverCloseState {\n static create(opts) {\n return new PopoverCloseState(opts, PopoverRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n onclick(_) {\n this.root.handleClose();\n }\n onkeydown(e) {\n if (!(e.key === kbd.ENTER || e.key === kbd.SPACE))\n return;\n e.preventDefault();\n this.root.handleClose();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n type: \"button\",\n [popoverAttrs.close]: \"\",\n ...this.attachment,\n }));\n}\nexport class PopoverOverlayState {\n static create(opts) {\n return new PopoverOverlayState(opts, PopoverRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.overlayNode = v));\n }\n get shouldRender() {\n return this.root.overlayPresence.shouldRender;\n }\n snippetProps = $derived.by(() => ({ open: this.root.opts.open.current }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [popoverAttrs.overlay]: \"\",\n style: {\n pointerEvents: \"auto\",\n },\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\t// Date Picker composes the DateField, Popover, and Calendar components\n\timport { watch } from \"runed\";\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { DateValue } from \"@internationalized/date\";\n\timport { DatePickerRootState } from \"../date-picker.svelte.js\";\n\timport type { DatePickerRootProps } from \"../types.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { PopoverRootState } from \"../../popover/popover.svelte.js\";\n\timport { DateFieldRootState } from \"../../date-field/date-field.svelte.js\";\n\timport { FloatingLayer } from \"../../utilities/floating-layer/index.js\";\n\timport { getDefaultDate } from \"../../../internal/date-time/utils.js\";\n\timport { resolveLocaleProp } from \"../../utilities/config/prop-resolvers.js\";\n\n\tlet {\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tvalue = $bindable(),\n\t\tonValueChange = noop,\n\t\tplaceholder = $bindable(),\n\t\tonPlaceholderChange = noop,\n\t\tisDateUnavailable = () => false,\n\t\tvalidate = noop,\n\t\tonInvalid = noop,\n\t\tminValue,\n\t\tmaxValue,\n\t\tdisabled = false,\n\t\treadonly = false,\n\t\tgranularity,\n\t\treadonlySegments = [],\n\t\thourCycle,\n\t\tlocale,\n\t\thideTimeZone = false,\n\t\trequired = false,\n\t\tcalendarLabel = \"Event\",\n\t\tdisableDaysOutsideMonth = true,\n\t\tpreventDeselect = false,\n\t\tpagedNavigation = false,\n\t\tweekStartsOn,\n\t\tweekdayFormat = \"narrow\",\n\t\tisDateDisabled = () => false,\n\t\tfixedWeeks = false,\n\t\tnumberOfMonths = 1,\n\t\tcloseOnDateSelect = true,\n\t\tinitialFocus = false,\n\t\terrorMessageId,\n\t\tchildren,\n\t\tmonthFormat = \"long\",\n\t\tyearFormat = \"numeric\",\n\t}: DatePickerRootProps = $props();\n\n\tconst defaultPlaceholder = getDefaultDate({\n\t\tgranularity,\n\t\tdefaultValue: value,\n\t\tminValue,\n\t\tmaxValue,\n\t});\n\n\tfunction handleDefaultPlaceholder() {\n\t\tif (placeholder !== undefined) return;\n\t\tplaceholder = defaultPlaceholder;\n\t}\n\n\t// SSR\n\thandleDefaultPlaceholder();\n\n\t/**\n\t * Covers an edge case where when a spread props object is reassigned,\n\t * the props are reset to their default values, which would make placeholder\n\t * undefined which causes errors to be thrown.\n\t */\n\twatch.pre(\n\t\t() => placeholder,\n\t\t() => {\n\t\t\thandleDefaultPlaceholder();\n\t\t}\n\t);\n\n\tfunction onDateSelect() {\n\t\tif (closeOnDateSelect) {\n\t\t\topen = false;\n\t\t}\n\t}\n\n\tconst pickerRootState = DatePickerRootState.create({\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tplaceholder: boxWith(\n\t\t\t() => placeholder as DateValue,\n\t\t\t(v) => {\n\t\t\t\tplaceholder = v;\n\t\t\t\tonPlaceholderChange(v as DateValue);\n\t\t\t}\n\t\t),\n\t\tisDateUnavailable: boxWith(() => isDateUnavailable),\n\t\tminValue: boxWith(() => minValue),\n\t\tmaxValue: boxWith(() => maxValue),\n\t\tdisabled: boxWith(() => disabled),\n\t\treadonly: boxWith(() => readonly),\n\t\tgranularity: boxWith(() => granularity),\n\t\treadonlySegments: boxWith(() => readonlySegments),\n\t\thourCycle: boxWith(() => hourCycle),\n\t\tlocale: resolveLocaleProp(() => locale),\n\t\thideTimeZone: boxWith(() => hideTimeZone),\n\t\trequired: boxWith(() => required),\n\t\tcalendarLabel: boxWith(() => calendarLabel),\n\t\tdisableDaysOutsideMonth: boxWith(() => disableDaysOutsideMonth),\n\t\tpreventDeselect: boxWith(() => preventDeselect),\n\t\tpagedNavigation: boxWith(() => pagedNavigation),\n\t\tweekStartsOn: boxWith(() => weekStartsOn),\n\t\tweekdayFormat: boxWith(() => weekdayFormat),\n\t\tisDateDisabled: boxWith(() => isDateDisabled),\n\t\tfixedWeeks: boxWith(() => fixedWeeks),\n\t\tnumberOfMonths: boxWith(() => numberOfMonths),\n\t\tinitialFocus: boxWith(() => initialFocus),\n\t\tonDateSelect: boxWith(() => onDateSelect),\n\t\tdefaultPlaceholder,\n\t\tmonthFormat: boxWith(() => monthFormat),\n\t\tyearFormat: boxWith(() => yearFormat),\n\t});\n\n\tPopoverRootState.create({\n\t\topen: pickerRootState.opts.open,\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n\n\tDateFieldRootState.create({\n\t\tvalue: pickerRootState.opts.value,\n\t\tdisabled: pickerRootState.opts.disabled,\n\t\treadonly: pickerRootState.opts.readonly,\n\t\treadonlySegments: pickerRootState.opts.readonlySegments,\n\t\tvalidate: boxWith(() => validate),\n\t\tonInvalid: boxWith(() => onInvalid),\n\t\tminValue: pickerRootState.opts.minValue,\n\t\tmaxValue: pickerRootState.opts.maxValue,\n\t\tgranularity: pickerRootState.opts.granularity,\n\t\thideTimeZone: pickerRootState.opts.hideTimeZone,\n\t\thourCycle: pickerRootState.opts.hourCycle,\n\t\tlocale: pickerRootState.opts.locale,\n\t\trequired: pickerRootState.opts.required,\n\t\tplaceholder: pickerRootState.opts.placeholder,\n\t\terrorMessageId: boxWith(() => errorMessageId),\n\t\tisInvalidProp: boxWith(() => undefined),\n\t});\n</script>\n\n<FloatingLayer.Root>\n\t{@render children?.()}\n</FloatingLayer.Root>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { DatePickerCalendarProps } from \"../types.js\";\n\timport { DatePickerRootContext } from \"../date-picker.svelte.js\";\n\timport { CalendarRootState } from \"../../calendar/calendar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: DatePickerCalendarProps = $props();\n\n\tconst datePickerRootState = DatePickerRootContext.get();\n\n\tconst calendarState = CalendarRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tcalendarLabel: datePickerRootState.opts.calendarLabel,\n\t\tfixedWeeks: datePickerRootState.opts.fixedWeeks,\n\t\tisDateDisabled: datePickerRootState.opts.isDateDisabled,\n\t\tisDateUnavailable: datePickerRootState.opts.isDateUnavailable,\n\t\tlocale: datePickerRootState.opts.locale,\n\t\tnumberOfMonths: datePickerRootState.opts.numberOfMonths,\n\t\tpagedNavigation: datePickerRootState.opts.pagedNavigation,\n\t\tpreventDeselect: datePickerRootState.opts.preventDeselect,\n\t\treadonly: datePickerRootState.opts.readonly,\n\t\ttype: boxWith(() => \"single\"),\n\t\tweekStartsOn: datePickerRootState.opts.weekStartsOn,\n\t\tweekdayFormat: datePickerRootState.opts.weekdayFormat,\n\t\tdisabled: datePickerRootState.opts.disabled,\n\t\tdisableDaysOutsideMonth: datePickerRootState.opts.disableDaysOutsideMonth,\n\t\tmaxValue: datePickerRootState.opts.maxValue,\n\t\tminValue: datePickerRootState.opts.minValue,\n\t\tplaceholder: datePickerRootState.opts.placeholder,\n\t\tvalue: datePickerRootState.opts.value,\n\t\tonDateSelect: datePickerRootState.opts.onDateSelect,\n\t\tinitialFocus: datePickerRootState.opts.initialFocus,\n\t\tdefaultPlaceholder: datePickerRootState.opts.defaultPlaceholder,\n\t\tmaxDays: boxWith(() => undefined),\n\t\tmonthFormat: datePickerRootState.opts.monthFormat,\n\t\tyearFormat: datePickerRootState.opts.yearFormat,\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, calendarState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...calendarState.snippetProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.(calendarState.snippetProps)}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PopoverContentProps } from \"../types.js\";\n\timport { PopoverContentState } from \"../popover.svelte.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tforceMount = false,\n\t\tonOpenAutoFocus = noop,\n\t\tonCloseAutoFocus = noop,\n\t\tonEscapeKeydown = noop,\n\t\tonInteractOutside = noop,\n\t\ttrapFocus = true,\n\t\tpreventScroll = false,\n\t\tcustomAnchor = null,\n\t\tstyle,\n\t\t...restProps\n\t}: PopoverContentProps = $props();\n\n\tconst contentState = PopoverContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonEscapeKeydown: boxWith(() => onEscapeKeydown),\n\t\tcustomAnchor: boxWith(() => customAnchor),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n\n\t// respect user's trapFocus setting, but disable when hover-opened without interaction\n\tconst effectiveTrapFocus = $derived(trapFocus && contentState.shouldTrapFocus);\n\n\t// prevent auto-focus when opened via hover until user interacts\n\tfunction handleOpenAutoFocus(e: Event) {\n\t\tif (!contentState.shouldTrapFocus) {\n\t\t\te.preventDefault();\n\t\t}\n\t\tonOpenAutoFocus(e);\n\t}\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tenabled={contentState.root.opts.open.current}\n\t\t{id}\n\t\ttrapFocus={effectiveTrapFocus}\n\t\t{preventScroll}\n\t\tloop\n\t\tforceMount={true}\n\t\t{customAnchor}\n\t\tonOpenAutoFocus={handleOpenAutoFocus}\n\t\t{onCloseAutoFocus}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"popover\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\topen={contentState.root.opts.open.current}\n\t\t{id}\n\t\ttrapFocus={effectiveTrapFocus}\n\t\t{preventScroll}\n\t\tloop\n\t\tforceMount={false}\n\t\t{customAnchor}\n\t\tonOpenAutoFocus={handleOpenAutoFocus}\n\t\t{onCloseAutoFocus}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"popover\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { DatePickerContentProps } from \"../types.js\";\n\timport PopoverContent from \"../../popover/components/popover-content.svelte\";\n\timport { pickerOpenFocus } from \"../../../internal/date-time/calendar-helpers.svelte.js\";\n\n\tlet { ref = $bindable(null), onOpenAutoFocus, ...restProps }: DatePickerContentProps = $props();\n\n\tconst mergedProps = $derived(\n\t\tmergeProps({ onOpenAutoFocus }, { onOpenAutoFocus: pickerOpenFocus })\n\t);\n</script>\n\n<PopoverContent {...mergedProps} bind:ref {...restProps} />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PopoverContentStaticProps } from \"../types.js\";\n\timport { PopoverContentState } from \"../popover.svelte.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tforceMount = false,\n\t\tonCloseAutoFocus = noop,\n\t\tonEscapeKeydown = noop,\n\t\tonInteractOutside = noop,\n\t\ttrapFocus = true,\n\t\tpreventScroll = false,\n\t\tstyle,\n\t\t...restProps\n\t}: PopoverContentStaticProps = $props();\n\n\tconst contentState = PopoverContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonEscapeKeydown: boxWith(() => onEscapeKeydown),\n\t\tcustomAnchor: boxWith(() => null),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tisStatic\n\t\tenabled={contentState.root.opts.open.current}\n\t\t{id}\n\t\t{trapFocus}\n\t\t{preventScroll}\n\t\tloop\n\t\tforceMount={true}\n\t\t{onCloseAutoFocus}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{\n\t\t\t\t\tstyle: getFloatingContentCSSVars(\"popover\"),\n\t\t\t\t},\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tisStatic\n\t\topen={contentState.root.opts.open.current}\n\t\t{id}\n\t\t{trapFocus}\n\t\t{preventScroll}\n\t\tloop\n\t\tforceMount={false}\n\t\t{onCloseAutoFocus}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"popover\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { DatePickerContentStaticProps } from \"../types.js\";\n\timport PopoverContentStatic from \"../../popover/components/popover-content-static.svelte\";\n\timport { pickerOpenFocus } from \"../../../internal/date-time/calendar-helpers.svelte.js\";\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tonOpenAutoFocus,\n\t\t...restProps\n\t}: DatePickerContentStaticProps = $props();\n\n\tconst mergedProps = $derived(\n\t\tmergeProps({ onOpenAutoFocus }, { onOpenAutoFocus: pickerOpenFocus })\n\t);\n</script>\n\n<PopoverContentStatic {...mergedProps} bind:ref {...restProps} />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PopoverTriggerProps } from \"../types.js\";\n\timport { PopoverTriggerState } from \"../popover.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport FloatingLayerAnchor from \"../../utilities/floating-layer/components/floating-layer-anchor.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\ttype = \"button\",\n\t\tdisabled = false,\n\t\topenOnHover = false,\n\t\topenDelay = 700,\n\t\tcloseDelay = 300,\n\t\t...restProps\n\t}: PopoverTriggerProps = $props();\n\n\tconst triggerState = PopoverTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t\topenOnHover: boxWith(() => openOnHover),\n\t\topenDelay: boxWith(() => openDelay),\n\t\tcloseDelay: boxWith(() => closeDelay),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props, { type }));\n</script>\n\n<FloatingLayerAnchor {id} ref={triggerState.opts.ref}>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<button {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</button>\n\t{/if}\n</FloatingLayerAnchor>\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { DatePickerTriggerProps } from \"../types.js\";\n\timport PopoverTrigger from \"../../popover/components/popover-trigger.svelte\";\n\timport { dateFieldAttrs } from \"../../date-field/date-field.svelte.js\";\n\timport {\n\t\thandleSegmentNavigation,\n\t\tisSegmentNavigationKey,\n\t} from \"../../../internal/date-time/field/segments.js\";\n\n\tlet { ref = $bindable(null), onkeydown, ...restProps }: DatePickerTriggerProps = $props();\n\n\tfunction onKeydown(e: KeyboardEvent) {\n\t\tif (isSegmentNavigationKey(e.key)) {\n\t\t\tconst currNode = e.currentTarget as HTMLElement;\n\t\t\tconst dateFieldInputNode = currNode.closest(\n\t\t\t\tdateFieldAttrs.selector(\"input\")\n\t\t\t) as HTMLElement;\n\t\t\tif (!dateFieldInputNode) return;\n\t\t\thandleSegmentNavigation(e, dateFieldInputNode);\n\t\t}\n\t}\n\n\tconst mergedProps = $derived(mergeProps({ onkeydown }, { onkeydown: onKeydown }));\n</script>\n\n<PopoverTrigger {...restProps} bind:ref data-segment=\"trigger\" {...mergedProps} />\n", "<script lang=\"ts\">\n\timport type { PopoverArrowProps } from \"../types.js\";\n\timport FloatingLayerArrow from \"../../utilities/floating-layer/components/floating-layer-arrow.svelte\";\n\n\tlet { ref = $bindable(null), ...restProps }: PopoverArrowProps = $props();\n</script>\n\n<FloatingLayerArrow bind:ref {...restProps} data-popover-arrow=\"\" />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PopoverCloseProps } from \"../types.js\";\n\timport { PopoverCloseState } from \"../popover.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: PopoverCloseProps = $props();\n\n\tconst closeState = PopoverCloseState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\tconst mergedProps = $derived(mergeProps(restProps, closeState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "export { default as Root } from \"./components/date-range-field.svelte\";\nexport { default as Input } from \"./components/date-range-field-input.svelte\";\nexport { default as Label } from \"./components/date-range-field-label.svelte\";\nexport { default as Segment } from \"../date-field/components/date-field-segment.svelte\";\n", "import { boxWith, onDestroyEffect, attachRef, DOMContext, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { DateFieldInputState, DateFieldRootState } from \"../date-field/date-field.svelte.js\";\nimport { useId } from \"../../internal/use-id.js\";\nimport { createBitsAttrs, boolToEmptyStrOrUndef } from \"../../internal/attrs.js\";\nimport { createFormatter } from \"../../internal/date-time/formatter.js\";\nimport { removeDescriptionElement } from \"../../internal/date-time/field/helpers.js\";\nimport { isBefore } from \"../../internal/date-time/utils.js\";\nimport { getFirstSegment } from \"../../internal/date-time/field/segments.js\";\nexport const dateRangeFieldAttrs = createBitsAttrs({\n component: \"date-range-field\",\n parts: [\"root\", \"label\"],\n});\nexport const DateRangeFieldRootContext = new Context(\"DateRangeField.Root\");\nexport class DateRangeFieldRootState {\n static create(opts) {\n return DateRangeFieldRootContext.set(new DateRangeFieldRootState(opts));\n }\n opts;\n startFieldState = undefined;\n endFieldState = undefined;\n descriptionId = useId();\n formatter;\n fieldNode = $state(null);\n labelNode = $state(null);\n descriptionNode = $state(null);\n startValueComplete = $derived.by(() => this.opts.startValue.current !== undefined);\n endValueComplete = $derived.by(() => this.opts.endValue.current !== undefined);\n rangeComplete = $derived(this.startValueComplete && this.endValueComplete);\n domContext;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.formatter = createFormatter({\n initialLocale: this.opts.locale.current,\n monthFormat: boxWith(() => \"long\"),\n yearFormat: boxWith(() => \"numeric\"),\n });\n this.domContext = new DOMContext(this.opts.ref);\n this.attachment = attachRef(this.opts.ref, (v) => (this.fieldNode = v));\n onDestroyEffect(() => {\n removeDescriptionElement(this.descriptionId, this.domContext.getDocument());\n });\n $effect(() => {\n if (this.formatter.getLocale() === this.opts.locale.current)\n return;\n this.formatter.setLocale(this.opts.locale.current);\n });\n /**\n * Synchronize the start and end values with the `value` in case\n * it is updated externally.\n */\n watch(() => this.opts.value.current, (value) => {\n if (value.start && value.end) {\n this.opts.startValue.current = value.start;\n this.opts.endValue.current = value.end;\n }\n else if (value.start) {\n this.opts.startValue.current = value.start;\n this.opts.endValue.current = undefined;\n }\n else if (value.start === undefined && value.end === undefined) {\n this.opts.startValue.current = undefined;\n this.opts.endValue.current = undefined;\n }\n });\n /**\n * Synchronize the placeholder value with the current start value\n */\n watch(() => this.opts.value.current, (value) => {\n const startValue = value.start;\n if (startValue && this.opts.placeholder.current !== startValue) {\n this.opts.placeholder.current = startValue;\n }\n });\n watch([() => this.opts.startValue.current, () => this.opts.endValue.current], ([startValue, endValue]) => {\n if (this.opts.value.current &&\n this.opts.value.current.start === startValue &&\n this.opts.value.current.end === endValue) {\n return;\n }\n if (startValue && endValue) {\n this.#updateValue((prev) => {\n if (prev.start === startValue && prev.end === endValue) {\n return prev;\n }\n return {\n start: startValue,\n end: endValue,\n };\n });\n }\n else if (this.opts.value.current &&\n this.opts.value.current.start &&\n this.opts.value.current.end) {\n this.opts.value.current.start = undefined;\n this.opts.value.current.end = undefined;\n }\n });\n }\n validationStatus = $derived.by(() => {\n const value = this.opts.value.current;\n if (value === undefined)\n return false;\n if (value.start === undefined || value.end === undefined)\n return false;\n const msg = this.opts.validate.current?.({\n start: value.start,\n end: value.end,\n });\n if (msg) {\n return {\n reason: \"custom\",\n message: msg,\n };\n }\n const minValue = this.opts.minValue.current;\n if (minValue && value.start && isBefore(value.start, minValue)) {\n return {\n reason: \"min\",\n };\n }\n const maxValue = this.opts.maxValue.current;\n if ((maxValue && value.end && isBefore(maxValue, value.end)) ||\n (maxValue && value.start && isBefore(maxValue, value.start))) {\n return {\n reason: \"max\",\n };\n }\n return false;\n });\n isInvalid = $derived.by(() => {\n if (this.validationStatus === false)\n return false;\n return true;\n });\n #updateValue(cb) {\n const value = this.opts.value.current;\n const newValue = cb(value);\n this.opts.value.current = newValue;\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n [dateRangeFieldAttrs.root]: \"\",\n \"data-invalid\": boolToEmptyStrOrUndef(this.isInvalid),\n ...this.attachment,\n }));\n}\nexport class DateRangeFieldLabelState {\n static create(opts) {\n return new DateRangeFieldLabelState(opts, DateRangeFieldRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.labelNode = v));\n }\n #onclick = () => {\n if (this.root.opts.disabled.current)\n return;\n const firstSegment = getFirstSegment(this.root.fieldNode);\n if (!firstSegment)\n return;\n firstSegment.focus();\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-invalid\": boolToEmptyStrOrUndef(this.root.isInvalid),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n [dateRangeFieldAttrs.label]: \"\",\n onclick: this.#onclick,\n ...this.attachment,\n }));\n}\nexport class DateRangeFieldInputState {\n static create(opts, type) {\n const root = DateRangeFieldRootContext.get();\n const fieldState = DateFieldRootState.create({\n value: type === \"start\" ? root.opts.startValue : root.opts.endValue,\n disabled: root.opts.disabled,\n readonly: root.opts.readonly,\n readonlySegments: root.opts.readonlySegments,\n validate: boxWith(() => undefined),\n minValue: root.opts.minValue,\n maxValue: root.opts.maxValue,\n hourCycle: root.opts.hourCycle,\n locale: root.opts.locale,\n hideTimeZone: root.opts.hideTimeZone,\n required: root.opts.required,\n granularity: root.opts.granularity,\n placeholder: root.opts.placeholder,\n onInvalid: root.opts.onInvalid,\n errorMessageId: root.opts.errorMessageId,\n isInvalidProp: boxWith(() => root.isInvalid),\n }, root);\n return new DateFieldInputState({ name: opts.name, id: opts.id, ref: opts.ref }, fieldState);\n }\n}\n", "<script lang=\"ts\">\n\timport { watch } from \"runed\";\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { DateValue } from \"@internationalized/date\";\n\timport { DateRangeFieldRootState } from \"../date-range-field.svelte.js\";\n\timport type { DateRangeFieldRootProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport type { DateRange } from \"../../../shared/index.js\";\n\timport { getDefaultDate } from \"../../../internal/date-time/utils.js\";\n\timport { resolveLocaleProp } from \"../../utilities/config/prop-resolvers.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(),\n\t\tonValueChange = noop,\n\t\tplaceholder = $bindable(),\n\t\tonPlaceholderChange = noop,\n\t\tdisabled = false,\n\t\treadonly = false,\n\t\trequired = false,\n\t\thourCycle,\n\t\tgranularity,\n\t\tlocale,\n\t\thideTimeZone = false,\n\t\tvalidate = noop,\n\t\tonInvalid = noop,\n\t\tmaxValue,\n\t\tminValue,\n\t\treadonlySegments = [],\n\t\tchildren,\n\t\tchild,\n\t\tonStartValueChange = noop,\n\t\tonEndValueChange = noop,\n\t\terrorMessageId,\n\t\t...restProps\n\t}: DateRangeFieldRootProps = $props();\n\n\tlet startValue = $state<DateValue | undefined>(value?.start);\n\tlet endValue = $state<DateValue | undefined>(value?.end);\n\n\tfunction handleDefaultPlaceholder() {\n\t\tif (placeholder !== undefined) return;\n\t\tconst defaultPlaceholder = getDefaultDate({\n\t\t\tgranularity,\n\t\t\tdefaultValue: value?.start,\n\t\t\tminValue,\n\t\t\tmaxValue,\n\t\t});\n\t\tplaceholder = defaultPlaceholder;\n\t}\n\n\t// SSR\n\thandleDefaultPlaceholder();\n\n\twatch.pre(\n\t\t() => placeholder,\n\t\t() => {\n\t\t\thandleDefaultPlaceholder();\n\t\t}\n\t);\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tconst defaultValue = { start: undefined, end: undefined };\n\t\tvalue = defaultValue;\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\t/**\n\t * Covers an edge case where when a spread props object is reassigned,\n\t * the props are reset to their default values, which would make value\n\t * undefined which causes errors to be thrown.\n\t */\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tconst rootState = DateRangeFieldRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => disabled),\n\t\treadonly: boxWith(() => readonly),\n\t\trequired: boxWith(() => required),\n\t\thourCycle: boxWith(() => hourCycle),\n\t\tgranularity: boxWith(() => granularity),\n\t\tlocale: resolveLocaleProp(() => locale),\n\t\thideTimeZone: boxWith(() => hideTimeZone),\n\t\tvalidate: boxWith(() => validate),\n\t\tmaxValue: boxWith(() => maxValue),\n\t\tminValue: boxWith(() => minValue),\n\t\tplaceholder: boxWith(\n\t\t\t() => placeholder as DateValue,\n\t\t\t(v) => {\n\t\t\t\tplaceholder = v;\n\t\t\t\tonPlaceholderChange(v);\n\t\t\t}\n\t\t),\n\t\treadonlySegments: boxWith(() => readonlySegments),\n\t\tvalue: boxWith(\n\t\t\t() => value as DateRange,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tstartValue: boxWith(\n\t\t\t() => startValue,\n\t\t\t(v) => {\n\t\t\t\tstartValue = v;\n\t\t\t\tonStartValueChange(v);\n\t\t\t}\n\t\t),\n\t\tendValue: boxWith(\n\t\t\t() => endValue,\n\t\t\t(v) => {\n\t\t\t\tendValue = v;\n\t\t\t\tonEndValueChange(v);\n\t\t\t}\n\t\t),\n\t\tonInvalid: boxWith(() => onInvalid),\n\t\terrorMessageId: boxWith(() => errorMessageId),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { DateRangeFieldInputProps } from \"../types.js\";\n\timport { DateRangeFieldInputState } from \"../date-range-field.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport DateFieldHiddenInput from \"../../date-field/components/date-field-hidden-input.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tname = \"\",\n\t\tchild,\n\t\tchildren,\n\t\ttype,\n\t\t...restProps\n\t}: DateRangeFieldInputProps = $props();\n\n\tconst inputState = DateRangeFieldInputState.create(\n\t\t{\n\t\t\tid: boxWith(() => id),\n\t\t\tref: boxWith(\n\t\t\t\t() => ref,\n\t\t\t\t(v) => (ref = v)\n\t\t\t),\n\t\t\tname: boxWith(() => name),\n\t\t},\n\t\ttype\n\t);\n\n\tconst mergedProps = $derived(mergeProps(restProps, inputState.props, { role: \"presentation\" }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, segments: inputState.root.segmentContents })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.({ segments: inputState.root.segmentContents })}\n\t</div>\n{/if}\n\n<DateFieldHiddenInput />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DateRangeFieldLabelState } from \"../date-range-field.svelte.js\";\n\timport type { DateRangeFieldLabelProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: DateRangeFieldLabelProps = $props();\n\n\tconst labelState = DateRangeFieldLabelState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, labelState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.()}\n\t</span>\n{/if}\n", "export { default as Root } from \"./components/date-range-picker.svelte\";\nexport { default as Calendar } from \"./components/date-range-picker-calendar.svelte\";\nexport { default as Trigger } from \"./components/date-range-picker-trigger.svelte\";\nexport { default as Content } from \"../date-picker/components/date-picker-content.svelte\";\nexport { default as Arrow } from \"../popover/components/popover-arrow.svelte\";\nexport { default as Close } from \"../popover/components/popover-close.svelte\";\nexport { default as Input } from \"../date-range-field/components/date-range-field-input.svelte\";\nexport { default as Label } from \"../date-range-field/components/date-range-field-label.svelte\";\nexport { default as Segment } from \"../date-field/components/date-field-segment.svelte\";\nexport { default as GridBody } from \"../calendar/components/calendar-grid-body.svelte\";\nexport { default as GridHead } from \"../calendar/components/calendar-grid-head.svelte\";\nexport { default as GridRow } from \"../calendar/components/calendar-grid-row.svelte\";\nexport { default as Grid } from \"../calendar/components/calendar-grid.svelte\";\nexport { default as HeadCell } from \"../calendar/components/calendar-head-cell.svelte\";\nexport { default as Header } from \"../calendar/components/calendar-header.svelte\";\nexport { default as Heading } from \"../calendar/components/calendar-heading.svelte\";\nexport { default as NextButton } from \"../calendar/components/calendar-next-button.svelte\";\nexport { default as PrevButton } from \"../calendar/components/calendar-prev-button.svelte\";\nexport { default as MonthSelect } from \"../calendar/components/calendar-month-select.svelte\";\nexport { default as YearSelect } from \"../calendar/components/calendar-year-select.svelte\";\nexport { default as Cell } from \"../range-calendar/components/range-calendar-cell.svelte\";\nexport { default as Day } from \"../range-calendar/components/range-calendar-day.svelte\";\n", "import {} from \"svelte-toolbelt\";\nimport { Context } from \"runed\";\nexport const DateRangePickerRootContext = new Context(\"DateRangePicker.Root\");\nexport class DateRangePickerRootState {\n static create(opts) {\n return DateRangePickerRootContext.set(new DateRangePickerRootState(opts));\n }\n opts;\n constructor(opts) {\n this.opts = opts;\n }\n}\n", "<script lang=\"ts\">\n\timport { watch } from \"runed\";\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { DateValue } from \"@internationalized/date\";\n\timport { DateRangePickerRootState } from \"../date-range-picker.svelte.js\";\n\timport type { DateRangePickerRootProps } from \"../types.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { PopoverRootState } from \"../../popover/popover.svelte.js\";\n\timport { DateRangeFieldRootState } from \"../../date-range-field/date-range-field.svelte.js\";\n\timport FloatingLayer from \"../../utilities/floating-layer/components/floating-layer.svelte\";\n\timport { useId } from \"../../../internal/use-id.js\";\n\timport type { DateRange } from \"../../../shared/index.js\";\n\timport { getDefaultDate } from \"../../../internal/date-time/utils.js\";\n\timport { resolveLocaleProp } from \"../../utilities/config/prop-resolvers.js\";\n\n\tlet {\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tvalue = $bindable(),\n\t\tid = useId(),\n\t\tref = $bindable(null),\n\t\tonValueChange = noop,\n\t\tplaceholder = $bindable(),\n\t\tonPlaceholderChange = noop,\n\t\tisDateUnavailable = () => false,\n\t\tonInvalid = noop,\n\t\tminValue,\n\t\tmaxValue,\n\t\tdisabled = false,\n\t\treadonly = false,\n\t\tgranularity,\n\t\treadonlySegments = [],\n\t\thourCycle,\n\t\tlocale,\n\t\thideTimeZone = false,\n\t\trequired = false,\n\t\tcalendarLabel = \"Event\",\n\t\tdisableDaysOutsideMonth = true,\n\t\tpreventDeselect = false,\n\t\tpagedNavigation = false,\n\t\tweekStartsOn,\n\t\tweekdayFormat = \"narrow\",\n\t\tisDateDisabled = () => false,\n\t\tfixedWeeks = false,\n\t\tnumberOfMonths = 1,\n\t\tcloseOnRangeSelect = true,\n\t\tonStartValueChange = noop,\n\t\tonEndValueChange = noop,\n\t\tvalidate = noop,\n\t\terrorMessageId,\n\t\tminDays,\n\t\tmaxDays,\n\t\texcludeDisabled = false,\n\t\tchild,\n\t\tchildren,\n\t\tmonthFormat = \"long\",\n\t\tyearFormat = \"numeric\",\n\t\t...restProps\n\t}: DateRangePickerRootProps = $props();\n\n\tlet startValue = $state<DateValue | undefined>(value?.start);\n\tlet endValue = $state<DateValue | undefined>(value?.end);\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tvalue = { start: undefined, end: undefined };\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\t/**\n\t * Covers an edge case where when a spread props object is reassigned,\n\t * the props are reset to their default values, which would make value\n\t * undefined which causes errors to be thrown.\n\t */\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tconst defaultPlaceholder = getDefaultDate({\n\t\tgranularity,\n\t\tdefaultValue: value?.start,\n\t\tminValue,\n\t\tmaxValue,\n\t});\n\n\tfunction handleDefaultPlaceholder() {\n\t\tif (placeholder !== undefined) return;\n\t\tplaceholder = defaultPlaceholder;\n\t}\n\n\t// SSR\n\thandleDefaultPlaceholder();\n\n\t/**\n\t * Covers an edge case where when a spread props object is reassigned,\n\t * the props are reset to their default values, which would make placeholder\n\t * undefined which causes errors to be thrown.\n\t */\n\twatch.pre(\n\t\t() => placeholder,\n\t\t() => {\n\t\t\thandleDefaultPlaceholder();\n\t\t}\n\t);\n\n\tfunction onRangeSelect() {\n\t\tif (closeOnRangeSelect) {\n\t\t\topen = false;\n\t\t}\n\t}\n\n\tconst pickerRootState = DateRangePickerRootState.create({\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\tvalue: boxWith(\n\t\t\t() => value as DateRange,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tplaceholder: boxWith(\n\t\t\t() => placeholder as DateValue,\n\t\t\t(v) => {\n\t\t\t\tplaceholder = v;\n\t\t\t\tonPlaceholderChange(v as DateValue);\n\t\t\t}\n\t\t),\n\t\tisDateUnavailable: boxWith(() => isDateUnavailable),\n\t\tminValue: boxWith(() => minValue),\n\t\tmaxValue: boxWith(() => maxValue),\n\t\tminDays: boxWith(() => minDays),\n\t\tmaxDays: boxWith(() => maxDays),\n\t\tdisabled: boxWith(() => disabled),\n\t\treadonly: boxWith(() => readonly),\n\t\tgranularity: boxWith(() => granularity),\n\t\treadonlySegments: boxWith(() => readonlySegments),\n\t\thourCycle: boxWith(() => hourCycle),\n\t\tlocale: resolveLocaleProp(() => locale),\n\t\thideTimeZone: boxWith(() => hideTimeZone),\n\t\trequired: boxWith(() => required),\n\t\tcalendarLabel: boxWith(() => calendarLabel),\n\t\tdisableDaysOutsideMonth: boxWith(() => disableDaysOutsideMonth),\n\t\tpreventDeselect: boxWith(() => preventDeselect),\n\t\tpagedNavigation: boxWith(() => pagedNavigation),\n\t\tweekStartsOn: boxWith(() => weekStartsOn),\n\t\tweekdayFormat: boxWith(() => weekdayFormat),\n\t\tisDateDisabled: boxWith(() => isDateDisabled),\n\t\tfixedWeeks: boxWith(() => fixedWeeks),\n\t\tnumberOfMonths: boxWith(() => numberOfMonths),\n\t\texcludeDisabled: boxWith(() => excludeDisabled),\n\t\tonRangeSelect: boxWith(() => onRangeSelect),\n\t\tstartValue: boxWith(\n\t\t\t() => startValue,\n\t\t\t(v) => {\n\t\t\t\tstartValue = v;\n\t\t\t\tonStartValueChange(v);\n\t\t\t}\n\t\t),\n\t\tendValue: boxWith(\n\t\t\t() => endValue,\n\t\t\t(v) => {\n\t\t\t\tendValue = v;\n\t\t\t\tonEndValueChange(v);\n\t\t\t}\n\t\t),\n\t\tmonthFormat: boxWith(() => monthFormat),\n\t\tyearFormat: boxWith(() => yearFormat),\n\t\tdefaultPlaceholder,\n\t});\n\n\tPopoverRootState.create({\n\t\topen: pickerRootState.opts.open,\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n\n\tconst fieldRootState = DateRangeFieldRootState.create({\n\t\tvalue: pickerRootState.opts.value,\n\t\tdisabled: pickerRootState.opts.disabled,\n\t\treadonly: pickerRootState.opts.readonly,\n\t\treadonlySegments: pickerRootState.opts.readonlySegments,\n\t\tvalidate: boxWith(() => validate),\n\t\tminValue: pickerRootState.opts.minValue,\n\t\tmaxValue: pickerRootState.opts.maxValue,\n\t\tgranularity: pickerRootState.opts.granularity,\n\t\thideTimeZone: pickerRootState.opts.hideTimeZone,\n\t\thourCycle: pickerRootState.opts.hourCycle,\n\t\tlocale: pickerRootState.opts.locale,\n\t\trequired: pickerRootState.opts.required,\n\t\tplaceholder: pickerRootState.opts.placeholder,\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tstartValue: pickerRootState.opts.startValue,\n\t\tendValue: pickerRootState.opts.endValue,\n\t\tonInvalid: boxWith(() => onInvalid),\n\t\terrorMessageId: boxWith(() => errorMessageId),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, fieldRootState.props));\n</script>\n\n<FloatingLayer>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<div {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</div>\n\t{/if}\n</FloatingLayer>\n", "import { getLocalTimeZone, isSameDay, isSameMonth, isToday, } from \"@internationalized/date\";\nimport { attachRef, DOMContext, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { CalendarRootContext } from \"../calendar/calendar.svelte.js\";\nimport { useId } from \"../../internal/use-id.js\";\nimport { boolToStr, boolToEmptyStrOrUndef } from \"../../internal/attrs.js\";\nimport { getAnnouncer } from \"../../internal/date-time/announcer.js\";\nimport { createFormatter } from \"../../internal/date-time/formatter.js\";\nimport { calendarAttrs, createMonths, getCalendarElementProps, getCalendarHeadingValue, getDefaultYears, getIsNextButtonDisabled, getIsPrevButtonDisabled, getWeekdays, handleCalendarKeydown, handleCalendarNextPage, handleCalendarPrevPage, shiftCalendarFocus, useEnsureNonDisabledPlaceholder, useMonthViewOptionsSync, useMonthViewPlaceholderSync, } from \"../../internal/date-time/calendar-helpers.svelte.js\";\nimport { areAllDaysBetweenValid, getDateValueType, isAfter, isBefore, isBetweenInclusive, toDate, } from \"../../internal/date-time/utils.js\";\nimport { onMount, untrack } from \"svelte\";\nconst RangeCalendarCellContext = new Context(\"RangeCalendar.Cell\");\nexport class RangeCalendarRootState {\n static create(opts) {\n return CalendarRootContext.set(new RangeCalendarRootState(opts));\n }\n opts;\n attachment;\n visibleMonths = $derived.by(() => this.months.map((month) => month.value));\n months = $state([]);\n announcer;\n formatter;\n accessibleHeadingId = useId();\n focusedValue = $state(undefined);\n lastPressedDateValue = undefined;\n domContext;\n /**\n * This derived state holds an array of localized day names for the current\n * locale and calendar view. It dynamically syncs with the 'weekStartsOn' option,\n * updating its content when the option changes. Using this state to render the\n * calendar's days of the week is strongly recommended, as it guarantees that\n * the days are correctly formatted for the current locale and calendar view.\n */\n weekdays = $derived.by(() => {\n return getWeekdays({\n months: this.months,\n formatter: this.formatter,\n weekdayFormat: this.opts.weekdayFormat.current,\n });\n });\n isStartInvalid = $derived.by(() => {\n if (!this.opts.startValue.current)\n return false;\n return (this.isDateUnavailable(this.opts.startValue.current) ||\n this.isDateDisabled(this.opts.startValue.current));\n });\n isEndInvalid = $derived.by(() => {\n if (!this.opts.endValue.current)\n return false;\n return (this.isDateUnavailable(this.opts.endValue.current) ||\n this.isDateDisabled(this.opts.endValue.current));\n });\n isInvalid = $derived.by(() => {\n if (this.isStartInvalid || this.isEndInvalid)\n return true;\n if (this.opts.endValue.current &&\n this.opts.startValue.current &&\n isBefore(this.opts.endValue.current, this.opts.startValue.current))\n return true;\n return false;\n });\n isNextButtonDisabled = $derived.by(() => {\n return getIsNextButtonDisabled({\n maxValue: this.opts.maxValue.current,\n months: this.months,\n disabled: this.opts.disabled.current,\n });\n });\n isPrevButtonDisabled = $derived.by(() => {\n return getIsPrevButtonDisabled({\n minValue: this.opts.minValue.current,\n months: this.months,\n disabled: this.opts.disabled.current,\n });\n });\n headingValue = $derived.by(() => {\n this.opts.monthFormat.current;\n this.opts.yearFormat.current;\n return getCalendarHeadingValue({\n months: this.months,\n formatter: this.formatter,\n locale: this.opts.locale.current,\n });\n });\n fullCalendarLabel = $derived.by(() => `${this.opts.calendarLabel.current} ${this.headingValue}`);\n highlightedRange = $derived.by(() => {\n if (this.opts.startValue.current && this.opts.endValue.current)\n return null;\n if (!this.opts.startValue.current || !this.focusedValue)\n return null;\n const isStartBeforeFocused = isBefore(this.opts.startValue.current, this.focusedValue);\n const start = isStartBeforeFocused ? this.opts.startValue.current : this.focusedValue;\n const end = isStartBeforeFocused ? this.focusedValue : this.opts.startValue.current;\n const range = { start, end };\n if (isSameDay(start.add({ days: 1 }), end) || isSameDay(start, end)) {\n return range;\n }\n const isValid = areAllDaysBetweenValid(start, end, this.isDateUnavailable, this.isDateDisabled);\n if (isValid)\n return range;\n return null;\n });\n initialPlaceholderYear = $derived.by(() => untrack(() => this.opts.placeholder.current.year));\n defaultYears = $derived.by(() => {\n return getDefaultYears({\n minValue: this.opts.minValue.current,\n maxValue: this.opts.maxValue.current,\n placeholderYear: this.initialPlaceholderYear,\n });\n });\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(opts.ref);\n this.domContext = new DOMContext(opts.ref);\n this.announcer = getAnnouncer(null);\n this.formatter = createFormatter({\n initialLocale: this.opts.locale.current,\n monthFormat: this.opts.monthFormat,\n yearFormat: this.opts.yearFormat,\n });\n this.months = createMonths({\n dateObj: this.opts.placeholder.current,\n weekStartsOn: this.opts.weekStartsOn.current,\n locale: this.opts.locale.current,\n fixedWeeks: this.opts.fixedWeeks.current,\n numberOfMonths: this.opts.numberOfMonths.current,\n });\n $effect.pre(() => {\n if (this.formatter.getLocale() === this.opts.locale.current)\n return;\n this.formatter.setLocale(this.opts.locale.current);\n });\n onMount(() => {\n this.announcer = getAnnouncer(this.domContext.getDocument());\n });\n /**\n * Updates the displayed months based on changes in the placeholder values,\n * which determines the month to show in the calendar.\n */\n useMonthViewPlaceholderSync({\n placeholder: this.opts.placeholder,\n getVisibleMonths: () => this.visibleMonths,\n weekStartsOn: this.opts.weekStartsOn,\n locale: this.opts.locale,\n fixedWeeks: this.opts.fixedWeeks,\n numberOfMonths: this.opts.numberOfMonths,\n setMonths: this.setMonths,\n });\n /**\n * Updates the displayed months based on changes in the options values,\n * which determines the month to show in the calendar.\n */\n useMonthViewOptionsSync({\n fixedWeeks: this.opts.fixedWeeks,\n locale: this.opts.locale,\n numberOfMonths: this.opts.numberOfMonths,\n placeholder: this.opts.placeholder,\n setMonths: this.setMonths,\n weekStartsOn: this.opts.weekStartsOn,\n });\n /**\n * Update the accessible heading's text content when the `fullCalendarLabel`\n * changes.\n */\n $effect(() => {\n const node = this.domContext.getElementById(this.accessibleHeadingId);\n if (!node)\n return;\n node.textContent = this.fullCalendarLabel;\n });\n /**\n * Synchronize the start and end values with the `value` in case\n * it is updated externally.\n */\n watch(() => this.opts.value.current, (value) => {\n if (value.start && value.end) {\n this.opts.startValue.current = value.start;\n this.opts.endValue.current = value.end;\n }\n else if (value.start) {\n this.opts.startValue.current = value.start;\n this.opts.endValue.current = undefined;\n }\n else if (value.start === undefined && value.end === undefined) {\n this.opts.startValue.current = undefined;\n this.opts.endValue.current = undefined;\n }\n });\n /**\n * Synchronize the placeholder value with the current start value\n */\n watch(() => this.opts.value.current, (value) => {\n const startValue = value.start;\n if (startValue && this.opts.placeholder.current !== startValue) {\n this.opts.placeholder.current = startValue;\n }\n });\n /**\n * Check for disabled dates in the selected range when excludeDisabled is enabled\n */\n watch([\n () => this.opts.startValue.current,\n () => this.opts.endValue.current,\n () => this.opts.excludeDisabled.current,\n ], ([startValue, endValue, excludeDisabled]) => {\n if (!excludeDisabled || !startValue || !endValue)\n return;\n if (this.#hasDisabledDatesInRange(startValue, endValue)) {\n this.#setStartValue(undefined);\n this.#setEndValue(undefined);\n this.#announceEmpty();\n }\n });\n watch([() => this.opts.startValue.current, () => this.opts.endValue.current], ([startValue, endValue]) => {\n if (this.opts.value.current &&\n this.opts.value.current.start === startValue &&\n this.opts.value.current.end === endValue) {\n return;\n }\n if (startValue && endValue) {\n this.#updateValue((prev) => {\n if (prev.start === startValue && prev.end === endValue) {\n return prev;\n }\n if (isBefore(endValue, startValue)) {\n const start = startValue;\n const end = endValue;\n this.#setStartValue(end);\n this.#setEndValue(start);\n if (!this.#isRangeValid(endValue, startValue)) {\n this.#setStartValue(startValue);\n this.#setEndValue(undefined);\n return { start: startValue, end: undefined };\n }\n return { start: endValue, end: startValue };\n }\n else {\n if (!this.#isRangeValid(startValue, endValue)) {\n this.#setStartValue(endValue);\n this.#setEndValue(undefined);\n return { start: endValue, end: undefined };\n }\n return {\n start: startValue,\n end: endValue,\n };\n }\n });\n }\n else if (this.opts.value.current &&\n this.opts.value.current.start &&\n this.opts.value.current.end) {\n this.opts.value.current.start = undefined;\n this.opts.value.current.end = undefined;\n }\n });\n this.shiftFocus = this.shiftFocus.bind(this);\n this.handleCellClick = this.handleCellClick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n this.nextPage = this.nextPage.bind(this);\n this.prevPage = this.prevPage.bind(this);\n this.nextYear = this.nextYear.bind(this);\n this.prevYear = this.prevYear.bind(this);\n this.setYear = this.setYear.bind(this);\n this.setMonth = this.setMonth.bind(this);\n this.isDateDisabled = this.isDateDisabled.bind(this);\n this.isDateUnavailable = this.isDateUnavailable.bind(this);\n this.isOutsideVisibleMonths = this.isOutsideVisibleMonths.bind(this);\n this.isSelected = this.isSelected.bind(this);\n useEnsureNonDisabledPlaceholder({\n placeholder: opts.placeholder,\n defaultPlaceholder: opts.defaultPlaceholder,\n isDateDisabled: opts.isDateDisabled,\n maxValue: opts.maxValue,\n minValue: opts.minValue,\n ref: opts.ref,\n });\n }\n #updateValue(cb) {\n const value = this.opts.value.current;\n const newValue = cb(value);\n this.opts.value.current = newValue;\n if (newValue.start && newValue.end) {\n this.opts.onRangeSelect?.current?.();\n }\n }\n #setStartValue(value) {\n this.opts.startValue.current = value;\n // update the main value prop immediately for external consumers\n this.#updateValue((prev) => ({\n ...prev,\n start: value,\n }));\n }\n #setEndValue(value) {\n this.opts.endValue.current = value;\n // update the main value prop immediately for external consumers\n this.#updateValue((prev) => ({\n ...prev,\n end: value,\n }));\n }\n setMonths = (months) => {\n this.months = months;\n };\n isOutsideVisibleMonths(date) {\n return !this.visibleMonths.some((month) => isSameMonth(date, month));\n }\n isDateDisabled(date) {\n if (this.opts.isDateDisabled.current(date) || this.opts.disabled.current)\n return true;\n const minValue = this.opts.minValue.current;\n const maxValue = this.opts.maxValue.current;\n if (minValue && isBefore(date, minValue))\n return true;\n if (maxValue && isAfter(date, maxValue))\n return true;\n return false;\n }\n isDateUnavailable(date) {\n if (this.opts.isDateUnavailable.current(date))\n return true;\n return false;\n }\n isSelectionStart(date) {\n if (!this.opts.startValue.current)\n return false;\n return isSameDay(date, this.opts.startValue.current);\n }\n isSelectionEnd(date) {\n if (!this.opts.endValue.current)\n return false;\n return isSameDay(date, this.opts.endValue.current);\n }\n isSelected(date) {\n if (this.opts.startValue.current && isSameDay(this.opts.startValue.current, date))\n return true;\n if (this.opts.endValue.current && isSameDay(this.opts.endValue.current, date))\n return true;\n if (this.opts.startValue.current && this.opts.endValue.current) {\n return isBetweenInclusive(date, this.opts.startValue.current, this.opts.endValue.current);\n }\n return false;\n }\n #isRangeValid(start, end) {\n // ensure we always use the correct order for calculation\n const orderedStart = isBefore(end, start) ? end : start;\n const orderedEnd = isBefore(end, start) ? start : end;\n const startDate = orderedStart.toDate(getLocalTimeZone());\n const endDate = orderedEnd.toDate(getLocalTimeZone());\n const timeDifference = endDate.getTime() - startDate.getTime();\n const daysDifference = Math.floor(timeDifference / (1000 * 60 * 60 * 24));\n const daysInRange = daysDifference + 1; // +1 to include both start and end days\n if (this.opts.minDays.current && daysInRange < this.opts.minDays.current)\n return false;\n if (this.opts.maxDays.current && daysInRange > this.opts.maxDays.current)\n return false;\n // check for disabled dates in range if excludeDisabled is enabled\n if (this.opts.excludeDisabled.current &&\n this.#hasDisabledDatesInRange(orderedStart, orderedEnd)) {\n return false;\n }\n return true;\n }\n shiftFocus(node, add) {\n return shiftCalendarFocus({\n node,\n add,\n placeholder: this.opts.placeholder,\n calendarNode: this.opts.ref.current,\n isPrevButtonDisabled: this.isPrevButtonDisabled,\n isNextButtonDisabled: this.isNextButtonDisabled,\n months: this.months,\n numberOfMonths: this.opts.numberOfMonths.current,\n });\n }\n #announceEmpty() {\n this.announcer.announce(\"Selected date is now empty.\", \"polite\");\n }\n #announceSelectedDate(date) {\n this.announcer.announce(`Selected Date: ${this.formatter.selectedDate(date, false)}`, \"polite\");\n }\n #announceSelectedRange(start, end) {\n this.announcer.announce(`Selected Dates: ${this.formatter.selectedDate(start, false)} to ${this.formatter.selectedDate(end, false)}`, \"polite\");\n }\n handleCellClick(e, date) {\n if (this.isDateDisabled(date) || this.isDateUnavailable(date))\n return;\n const prevLastPressedDate = this.lastPressedDateValue;\n this.lastPressedDateValue = date;\n if (this.opts.startValue.current && this.highlightedRange === null) {\n if (isSameDay(this.opts.startValue.current, date) &&\n !this.opts.preventDeselect.current &&\n !this.opts.endValue.current) {\n this.#setStartValue(undefined);\n this.opts.placeholder.current = date;\n this.#announceEmpty();\n return;\n }\n else if (!this.opts.endValue.current) {\n e.preventDefault();\n if (prevLastPressedDate && isSameDay(prevLastPressedDate, date)) {\n this.#setStartValue(date);\n this.#announceSelectedDate(date);\n }\n }\n }\n if (this.opts.startValue.current &&\n this.opts.endValue.current &&\n isSameDay(this.opts.endValue.current, date) &&\n !this.opts.preventDeselect.current) {\n this.#setStartValue(undefined);\n this.#setEndValue(undefined);\n this.opts.placeholder.current = date;\n this.#announceEmpty();\n return;\n }\n if (!this.opts.startValue.current) {\n this.#announceSelectedDate(date);\n this.#setStartValue(date);\n }\n else if (!this.opts.endValue.current) {\n // determine the start and end dates for validation\n const startDate = this.opts.startValue.current;\n const endDate = date;\n const orderedStart = isBefore(endDate, startDate) ? endDate : startDate;\n const orderedEnd = isBefore(endDate, startDate) ? startDate : endDate;\n // check if the range violates constraints\n if (!this.#isRangeValid(orderedStart, orderedEnd)) {\n // reset to just the clicked date\n this.#setStartValue(date);\n this.#setEndValue(undefined);\n this.#announceSelectedDate(date);\n }\n else {\n // ensure start and end are properly ordered\n if (isBefore(endDate, startDate)) {\n // backward selection - reorder the values\n this.#setStartValue(endDate);\n this.#setEndValue(startDate);\n this.#announceSelectedRange(endDate, startDate);\n }\n else {\n // forward selection - keep original order\n this.#setEndValue(date);\n this.#announceSelectedRange(this.opts.startValue.current, date);\n }\n }\n }\n else if (this.opts.endValue.current && this.opts.startValue.current) {\n this.#setEndValue(undefined);\n this.#announceSelectedDate(date);\n this.#setStartValue(date);\n }\n }\n onkeydown(event) {\n return handleCalendarKeydown({\n event,\n handleCellClick: this.handleCellClick,\n placeholderValue: this.opts.placeholder.current,\n shiftFocus: this.shiftFocus,\n });\n }\n /**\n * Navigates to the next page of the calendar.\n */\n nextPage() {\n handleCalendarNextPage({\n fixedWeeks: this.opts.fixedWeeks.current,\n locale: this.opts.locale.current,\n numberOfMonths: this.opts.numberOfMonths.current,\n pagedNavigation: this.opts.pagedNavigation.current,\n setMonths: this.setMonths,\n setPlaceholder: (date) => (this.opts.placeholder.current = date),\n weekStartsOn: this.opts.weekStartsOn.current,\n months: this.months,\n });\n }\n /**\n * Navigates to the previous page of the calendar.\n */\n prevPage() {\n handleCalendarPrevPage({\n fixedWeeks: this.opts.fixedWeeks.current,\n locale: this.opts.locale.current,\n numberOfMonths: this.opts.numberOfMonths.current,\n pagedNavigation: this.opts.pagedNavigation.current,\n setMonths: this.setMonths,\n setPlaceholder: (date) => (this.opts.placeholder.current = date),\n weekStartsOn: this.opts.weekStartsOn.current,\n months: this.months,\n });\n }\n nextYear() {\n this.opts.placeholder.current = this.opts.placeholder.current.add({ years: 1 });\n }\n prevYear() {\n this.opts.placeholder.current = this.opts.placeholder.current.subtract({ years: 1 });\n }\n setYear(year) {\n this.opts.placeholder.current = this.opts.placeholder.current.set({ year });\n }\n setMonth(month) {\n this.opts.placeholder.current = this.opts.placeholder.current.set({ month });\n }\n getBitsAttr = (part) => {\n return calendarAttrs.getAttr(part, \"range-calendar\");\n };\n snippetProps = $derived.by(() => ({\n months: this.months,\n weekdays: this.weekdays,\n }));\n props = $derived.by(() => ({\n ...getCalendarElementProps({\n fullCalendarLabel: this.fullCalendarLabel,\n id: this.opts.id.current,\n isInvalid: this.isInvalid,\n disabled: this.opts.disabled.current,\n readonly: this.opts.readonly.current,\n }),\n [this.getBitsAttr(\"root\")]: \"\",\n //\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n #hasDisabledDatesInRange(start, end) {\n for (let date = start; isBefore(date, end) || isSameDay(date, end); date = date.add({ days: 1 })) {\n if (this.isDateDisabled(date))\n return true;\n }\n return false;\n }\n}\nexport class RangeCalendarCellState {\n static create(opts) {\n return RangeCalendarCellContext.set(new RangeCalendarCellState(opts, CalendarRootContext.get()));\n }\n opts;\n root;\n attachment;\n cellDate = $derived.by(() => toDate(this.opts.date.current));\n isOutsideMonth = $derived.by(() => !isSameMonth(this.opts.date.current, this.opts.month.current));\n isDisabled = $derived.by(() => this.root.isDateDisabled(this.opts.date.current) ||\n (this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current));\n isUnavailable = $derived.by(() => this.root.opts.isDateUnavailable.current(this.opts.date.current));\n isDateToday = $derived.by(() => isToday(this.opts.date.current, getLocalTimeZone()));\n isOutsideVisibleMonths = $derived.by(() => this.root.isOutsideVisibleMonths(this.opts.date.current));\n isFocusedDate = $derived.by(() => isSameDay(this.opts.date.current, this.root.opts.placeholder.current));\n isSelectedDate = $derived.by(() => this.root.isSelected(this.opts.date.current));\n isSelectionStart = $derived.by(() => this.root.isSelectionStart(this.opts.date.current));\n isRangeStart = $derived.by(() => this.root.isSelectionStart(this.opts.date.current));\n isRangeEnd = $derived.by(() => {\n if (!this.root.opts.endValue.current)\n return this.root.isSelectionStart(this.opts.date.current);\n return this.root.isSelectionEnd(this.opts.date.current);\n });\n isRangeMiddle = $derived.by(() => this.isSelectionMiddle);\n isSelectionMiddle = $derived.by(() => {\n return this.isSelectedDate && !this.isSelectionStart && !this.isSelectionEnd;\n });\n isSelectionEnd = $derived.by(() => this.root.isSelectionEnd(this.opts.date.current));\n isHighlighted = $derived.by(() => this.root.highlightedRange\n ? isBetweenInclusive(this.opts.date.current, this.root.highlightedRange.start, this.root.highlightedRange.end)\n : false);\n labelText = $derived.by(() => this.root.formatter.custom(this.cellDate, {\n weekday: \"long\",\n month: \"long\",\n day: \"numeric\",\n year: \"numeric\",\n }));\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n snippetProps = $derived.by(() => ({\n disabled: this.isDisabled,\n unavailable: this.isUnavailable,\n selected: this.isSelectedDate,\n }));\n ariaDisabled = $derived.by(() => {\n return (this.isDisabled ||\n (this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current) ||\n this.isUnavailable);\n });\n sharedDataAttrs = $derived.by(() => ({\n \"data-unavailable\": boolToEmptyStrOrUndef(this.isUnavailable),\n \"data-today\": this.isDateToday ? \"\" : undefined,\n \"data-outside-month\": this.isOutsideMonth ? \"\" : undefined,\n \"data-outside-visible-months\": this.isOutsideVisibleMonths ? \"\" : undefined,\n \"data-focused\": this.isFocusedDate ? \"\" : undefined,\n \"data-selection-start\": this.isSelectionStart ? \"\" : undefined,\n \"data-selection-end\": this.isSelectionEnd ? \"\" : undefined,\n \"data-range-start\": this.isRangeStart ? \"\" : undefined,\n \"data-range-end\": this.isRangeEnd ? \"\" : undefined,\n \"data-range-middle\": this.isRangeMiddle ? \"\" : undefined,\n \"data-highlighted\": this.isHighlighted ? \"\" : undefined,\n \"data-selected\": boolToEmptyStrOrUndef(this.isSelectedDate),\n \"data-value\": this.opts.date.current.toString(),\n \"data-type\": getDateValueType(this.opts.date.current),\n \"data-disabled\": boolToEmptyStrOrUndef(this.isDisabled ||\n (this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current)),\n }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"gridcell\",\n \"aria-selected\": boolToStr(this.isSelectedDate),\n \"aria-disabled\": boolToStr(this.ariaDisabled),\n ...this.sharedDataAttrs,\n [this.root.getBitsAttr(\"cell\")]: \"\",\n ...this.attachment,\n }));\n}\nexport class RangeCalendarDayState {\n static create(opts) {\n return new RangeCalendarDayState(opts, RangeCalendarCellContext.get());\n }\n opts;\n cell;\n attachment;\n constructor(opts, cell) {\n this.opts = opts;\n this.cell = cell;\n this.attachment = attachRef(opts.ref);\n this.onclick = this.onclick.bind(this);\n this.onmouseenter = this.onmouseenter.bind(this);\n this.onfocusin = this.onfocusin.bind(this);\n }\n #tabindex = $derived.by(() => (this.cell.isOutsideMonth && this.cell.root.opts.disableDaysOutsideMonth.current) ||\n this.cell.isDisabled\n ? undefined\n : this.cell.isFocusedDate\n ? 0\n : -1);\n onclick(e) {\n if (this.cell.isDisabled)\n return;\n this.cell.root.handleCellClick(e, this.cell.opts.date.current);\n }\n onmouseenter(_) {\n if (this.cell.isDisabled)\n return;\n this.cell.root.focusedValue = this.cell.opts.date.current;\n }\n onfocusin(_) {\n if (this.cell.isDisabled)\n return;\n this.cell.root.focusedValue = this.cell.opts.date.current;\n }\n snippetProps = $derived.by(() => ({\n disabled: this.cell.isDisabled,\n unavailable: this.cell.isUnavailable,\n selected: this.cell.isSelectedDate,\n day: `${this.cell.opts.date.current.day}`,\n }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"button\",\n \"aria-label\": this.cell.labelText,\n \"aria-disabled\": boolToStr(this.cell.ariaDisabled),\n ...this.cell.sharedDataAttrs,\n tabindex: this.#tabindex,\n [this.cell.root.getBitsAttr(\"day\")]: \"\",\n // Shared logic for range calendar and calendar\n \"data-bits-day\": \"\",\n //\n onclick: this.onclick,\n onmouseenter: this.onmouseenter,\n onfocusin: this.onfocusin,\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { DateRangePickerCalendarProps } from \"../types.js\";\n\timport { DateRangePickerRootContext } from \"../date-range-picker.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { RangeCalendarRootState } from \"../../range-calendar/range-calendar.svelte.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: DateRangePickerCalendarProps = $props();\n\n\tconst dateRangePickerRootState = DateRangePickerRootContext.get();\n\n\tconst rangeCalendarState = RangeCalendarRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tcalendarLabel: dateRangePickerRootState.opts.calendarLabel,\n\t\tfixedWeeks: dateRangePickerRootState.opts.fixedWeeks,\n\t\tisDateDisabled: dateRangePickerRootState.opts.isDateDisabled,\n\t\tisDateUnavailable: dateRangePickerRootState.opts.isDateUnavailable,\n\t\tlocale: dateRangePickerRootState.opts.locale,\n\t\tnumberOfMonths: dateRangePickerRootState.opts.numberOfMonths,\n\t\tpagedNavigation: dateRangePickerRootState.opts.pagedNavigation,\n\t\tpreventDeselect: dateRangePickerRootState.opts.preventDeselect,\n\t\treadonly: dateRangePickerRootState.opts.readonly,\n\t\tweekStartsOn: dateRangePickerRootState.opts.weekStartsOn,\n\t\tweekdayFormat: dateRangePickerRootState.opts.weekdayFormat,\n\t\tdisabled: dateRangePickerRootState.opts.disabled,\n\t\tdisableDaysOutsideMonth: dateRangePickerRootState.opts.disableDaysOutsideMonth,\n\t\tmaxValue: dateRangePickerRootState.opts.maxValue,\n\t\tminValue: dateRangePickerRootState.opts.minValue,\n\t\tplaceholder: dateRangePickerRootState.opts.placeholder,\n\t\tvalue: dateRangePickerRootState.opts.value,\n\t\texcludeDisabled: dateRangePickerRootState.opts.excludeDisabled,\n\t\tonRangeSelect: dateRangePickerRootState.opts.onRangeSelect,\n\t\tstartValue: dateRangePickerRootState.opts.startValue,\n\t\tendValue: dateRangePickerRootState.opts.endValue,\n\t\tdefaultPlaceholder: dateRangePickerRootState.opts.defaultPlaceholder,\n\t\tminDays: dateRangePickerRootState.opts.minDays,\n\t\tmaxDays: dateRangePickerRootState.opts.maxDays,\n\t\tmonthFormat: dateRangePickerRootState.opts.monthFormat,\n\t\tyearFormat: dateRangePickerRootState.opts.yearFormat,\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rangeCalendarState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...rangeCalendarState.snippetProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.(rangeCalendarState.snippetProps)}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { DateRangePickerTriggerProps } from \"../types.js\";\n\timport PopoverTrigger from \"../../popover/components/popover-trigger.svelte\";\n\timport { dateRangeFieldAttrs } from \"../../date-range-field/date-range-field.svelte.js\";\n\timport {\n\t\thandleSegmentNavigation,\n\t\tisSegmentNavigationKey,\n\t} from \"../../../internal/date-time/field/segments.js\";\n\n\tlet { ref = $bindable(null), onkeydown, ...restProps }: DateRangePickerTriggerProps = $props();\n\n\tfunction onKeydown(e: KeyboardEvent) {\n\t\tif (isSegmentNavigationKey(e.key)) {\n\t\t\tconst currNode = e.currentTarget as HTMLElement;\n\t\t\tconst dateFieldInputNode = currNode.closest(\n\t\t\t\tdateRangeFieldAttrs.selector(\"root\")\n\t\t\t) as HTMLElement;\n\t\t\tif (!dateFieldInputNode) return;\n\t\t\thandleSegmentNavigation(e, dateFieldInputNode);\n\t\t}\n\t}\n\n\tconst mergedProps = $derived(mergeProps({ onkeydown }, { onkeydown: onKeydown }));\n</script>\n\n<PopoverTrigger {...restProps} bind:ref data-segment=\"trigger\" {...mergedProps} />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { RangeCalendarCellProps } from \"../types.js\";\n\timport { RangeCalendarCellState } from \"../range-calendar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tdate,\n\t\tmonth,\n\t\t...restProps\n\t}: RangeCalendarCellProps = $props();\n\n\tconst cellState = RangeCalendarCellState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdate: boxWith(() => date),\n\t\tmonth: boxWith(() => month),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, cellState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...cellState.snippetProps })}\n{:else}\n\t<td {...mergedProps}>\n\t\t{@render children?.(cellState.snippetProps)}\n\t</td>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { RangeCalendarDayProps } from \"../types.js\";\n\timport { RangeCalendarDayState } from \"../range-calendar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: RangeCalendarDayProps = $props();\n\n\tconst dayState = RangeCalendarDayState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, dayState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...dayState.snippetProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{#if children}\n\t\t\t{@render children?.(dayState.snippetProps)}\n\t\t{:else}\n\t\t\t{dayState.cell.opts.date.current.day}\n\t\t{/if}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/dialog.svelte\";\nexport { default as Title } from \"./components/dialog-title.svelte\";\nexport { default as Close } from \"./components/dialog-close.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\nexport { default as Content } from \"./components/dialog-content.svelte\";\nexport { default as Overlay } from \"./components/dialog-overlay.svelte\";\nexport { default as Trigger } from \"./components/dialog-trigger.svelte\";\nexport { default as Description } from \"./components/dialog-description.svelte\";\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport { DialogRootState } from \"../dialog.svelte.js\";\n\timport type { DialogRootProps } from \"../types.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tlet {\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tchildren,\n\t}: DialogRootProps = $props();\n\n\tDialogRootState.create({\n\t\tvariant: boxWith(() => \"dialog\"),\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n</script>\n\n{@render children?.()}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DialogCloseState } from \"../dialog.svelte.js\";\n\timport type { DialogCloseProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tdisabled = false,\n\t\t...restProps\n\t}: DialogCloseProps = $props();\n\n\tconst closeState = DialogCloseState.create({\n\t\tvariant: boxWith(() => \"close\"),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, closeState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DialogContentState } from \"../dialog.svelte.js\";\n\timport type { DialogContentProps } from \"../types.js\";\n\timport DismissibleLayer from \"../../utilities/dismissible-layer/dismissible-layer.svelte\";\n\timport EscapeLayer from \"../../utilities/escape-layer/escape-layer.svelte\";\n\timport FocusScope from \"../../utilities/focus-scope/focus-scope.svelte\";\n\timport TextSelectionLayer from \"../../utilities/text-selection-layer/text-selection-layer.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport ScrollLock from \"../../utilities/scroll-lock/scroll-lock.svelte\";\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tforceMount = false,\n\t\tonCloseAutoFocus = noop,\n\t\tonOpenAutoFocus = noop,\n\t\tonEscapeKeydown = noop,\n\t\tonInteractOutside = noop,\n\t\ttrapFocus = true,\n\t\tpreventScroll = true,\n\t\trestoreScrollDelay = null,\n\t\t...restProps\n\t}: DialogContentProps = $props();\n\n\tconst contentState = DialogContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if contentState.shouldRender || forceMount}\n\t<FocusScope\n\t\tref={contentState.opts.ref}\n\t\tloop\n\t\t{trapFocus}\n\t\tenabled={contentState.root.opts.open.current}\n\t\t{onOpenAutoFocus}\n\t\t{onCloseAutoFocus}\n\t>\n\t\t{#snippet focusScope({ props: focusScopeProps })}\n\t\t\t<EscapeLayer\n\t\t\t\t{...mergedProps}\n\t\t\t\tenabled={contentState.root.opts.open.current}\n\t\t\t\tref={contentState.opts.ref}\n\t\t\t\tonEscapeKeydown={(e) => {\n\t\t\t\t\tonEscapeKeydown(e);\n\t\t\t\t\tif (e.defaultPrevented) return;\n\t\t\t\t\tcontentState.root.handleClose();\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t<DismissibleLayer\n\t\t\t\t\t{...mergedProps}\n\t\t\t\t\tref={contentState.opts.ref}\n\t\t\t\t\tenabled={contentState.root.opts.open.current}\n\t\t\t\t\tonInteractOutside={(e) => {\n\t\t\t\t\t\tonInteractOutside(e);\n\t\t\t\t\t\tif (e.defaultPrevented) return;\n\t\t\t\t\t\tcontentState.root.handleClose();\n\t\t\t\t\t}}\n\t\t\t\t>\n\t\t\t\t\t<TextSelectionLayer\n\t\t\t\t\t\t{...mergedProps}\n\t\t\t\t\t\tref={contentState.opts.ref}\n\t\t\t\t\t\tenabled={contentState.root.opts.open.current}\n\t\t\t\t\t>\n\t\t\t\t\t\t{#if child}\n\t\t\t\t\t\t\t{#if contentState.root.opts.open.current}\n\t\t\t\t\t\t\t\t<ScrollLock {preventScroll} {restoreScrollDelay} />\n\t\t\t\t\t\t\t{/if}\n\t\t\t\t\t\t\t{@render child({\n\t\t\t\t\t\t\t\tprops: mergeProps(mergedProps, focusScopeProps),\n\t\t\t\t\t\t\t\t...contentState.snippetProps,\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t{:else}\n\t\t\t\t\t\t\t<ScrollLock {preventScroll} />\n\t\t\t\t\t\t\t<div {...mergeProps(mergedProps, focusScopeProps)}>\n\t\t\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{/if}\n\t\t\t\t\t</TextSelectionLayer>\n\t\t\t\t</DismissibleLayer>\n\t\t\t</EscapeLayer>\n\t\t{/snippet}\n\t</FocusScope>\n{/if}\n", "export { default as Root } from \"../menu/components/menu.svelte\";\nexport { default as Sub } from \"../menu/components/menu-sub.svelte\";\nexport { default as Item } from \"../menu/components/menu-item.svelte\";\nexport { default as Group } from \"../menu/components/menu-group.svelte\";\nexport { default as GroupHeading } from \"../menu/components/menu-group-heading.svelte\";\nexport { default as Arrow } from \"../menu/components/menu-arrow.svelte\";\nexport { default as Content } from \"./components/dropdown-menu-content.svelte\";\nexport { default as ContentStatic } from \"./components/dropdown-menu-content-static.svelte\";\nexport { default as Trigger } from \"../menu/components/menu-trigger.svelte\";\nexport { default as RadioItem } from \"../menu/components/menu-radio-item.svelte\";\nexport { default as Separator } from \"../menu/components/menu-separator.svelte\";\nexport { default as RadioGroup } from \"../menu/components/menu-radio-group.svelte\";\nexport { default as SubContent } from \"../menu/components/menu-sub-content.svelte\";\nexport { default as SubContentStatic } from \"../menu/components/menu-sub-content-static.svelte\";\nexport { default as SubTrigger } from \"../menu/components/menu-sub-trigger.svelte\";\nexport { default as CheckboxItem } from \"../menu/components/menu-checkbox-item.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\nexport { default as CheckboxGroup } from \"../menu/components/menu-checkbox-group.svelte\";\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { MenuRootProps } from \"../types.js\";\n\timport { MenuMenuState, MenuRootState } from \"../menu.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport FloatingLayer from \"../../utilities/floating-layer/components/floating-layer.svelte\";\n\n\tlet {\n\t\topen = $bindable(false),\n\t\tdir = \"ltr\",\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\t_internal_variant: variant = \"dropdown-menu\",\n\t\tchildren,\n\t}: MenuRootProps & {\n\t\t_internal_variant?: \"context-menu\" | \"dropdown-menu\" | \"menubar\";\n\t} = $props();\n\n\tconst root = MenuRootState.create({\n\t\tvariant: boxWith(() => variant),\n\t\tdir: boxWith(() => dir),\n\t\tonClose: () => {\n\t\t\topen = false;\n\t\t\tonOpenChange(false);\n\t\t},\n\t});\n\n\tMenuMenuState.create(\n\t\t{\n\t\t\topen: boxWith(\n\t\t\t\t() => open,\n\t\t\t\t(v) => {\n\t\t\t\t\topen = v;\n\t\t\t\t\tonOpenChange(v);\n\t\t\t\t}\n\t\t\t),\n\t\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t\t},\n\t\troot\n\t);\n</script>\n\n<FloatingLayer>\n\t{@render children?.()}\n</FloatingLayer>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { DropdownMenuContentProps } from \"../types.js\";\n\timport { MenuContentState } from \"../../menu/menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tloop = true,\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tonCloseAutoFocus = noop,\n\t\tforceMount = false,\n\t\ttrapFocus = false,\n\t\tstyle,\n\t\t...restProps\n\t}: DropdownMenuContentProps = $props();\n\n\tconst contentState = MenuContentState.create({\n\t\tid: boxWith(() => id),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonCloseAutoFocus: boxWith(() => onCloseAutoFocus),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n\n\tfunction handleInteractOutside(e: PointerEvent) {\n\t\tcontentState.handleInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\tonInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\n\t\t// don't close if the interaction is with a submenu content or items\n\t\tif (e.target && e.target instanceof Element) {\n\t\t\tconst subContentSelector = `[${contentState.parentMenu.root.getBitsAttr(\"sub-content\")}]`;\n\t\t\tif (e.target.closest(subContentSelector)) return;\n\t\t}\n\t\tcontentState.parentMenu.onClose();\n\t}\n\tfunction handleEscapeKeydown(e: KeyboardEvent) {\n\t\tonEscapeKeydown(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentState.parentMenu.onClose();\n\t}\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tenabled={contentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\t{trapFocus}\n\t\t{loop}\n\t\tforceMount={true}\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"dropdown-menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\topen={contentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\t{trapFocus}\n\t\t{loop}\n\t\tforceMount={false}\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"dropdown-menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { DropdownMenuContentStaticProps } from \"../types.js\";\n\timport { MenuContentState } from \"../../menu/menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tloop = true,\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tonCloseAutoFocus = noop,\n\t\tforceMount = false,\n\t\tstyle,\n\t\t...restProps\n\t}: DropdownMenuContentStaticProps = $props();\n\n\tconst contentState = MenuContentState.create({\n\t\tid: boxWith(() => id),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonCloseAutoFocus: boxWith(() => onCloseAutoFocus),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n\n\tfunction handleInteractOutside(e: PointerEvent) {\n\t\tcontentState.handleInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\tonInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentState.parentMenu.onClose();\n\t}\n\tfunction handleEscapeKeydown(e: KeyboardEvent) {\n\t\tonEscapeKeydown(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentState.parentMenu.onClose();\n\t}\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tenabled={contentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\ttrapFocus\n\t\t{loop}\n\t\tforceMount={true}\n\t\tisStatic\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"dropdown-menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\topen={contentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\ttrapFocus\n\t\t{loop}\n\t\tforceMount={false}\n\t\tisStatic\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"dropdown-menu\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuTriggerProps } from \"../types.js\";\n\timport { DropdownMenuTriggerState } from \"../menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport FloatingLayerAnchor from \"../../utilities/floating-layer/components/floating-layer-anchor.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\tdisabled = false,\n\t\ttype = \"button\",\n\t\t...restProps\n\t}: MenuTriggerProps = $props();\n\n\tconst triggerState = DropdownMenuTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props, { type }));\n</script>\n\n<FloatingLayerAnchor {id} ref={triggerState.opts.ref}>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<button {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</button>\n\t{/if}\n</FloatingLayerAnchor>\n", "export { default as Root } from \"./components/label.svelte\";\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { createBitsAttrs } from \"../../internal/attrs.js\";\nconst labelAttrs = createBitsAttrs({\n component: \"label\",\n parts: [\"root\"],\n});\nexport class LabelRootState {\n static create(opts) {\n return new LabelRootState(opts);\n }\n opts;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.onmousedown = this.onmousedown.bind(this);\n }\n onmousedown(e) {\n if (e.detail > 1)\n e.preventDefault();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [labelAttrs.root]: \"\",\n onmousedown: this.onmousedown,\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { LabelRootProps } from \"../types.js\";\n\timport { LabelRootState } from \"../label.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tfor: forProp,\n\t\t...restProps\n\t}: LabelRootProps = $props();\n\n\tconst rootState = LabelRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props, { for: forProp }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<label {...mergedProps} for={forProp}>\n\t\t{@render children?.()}\n\t</label>\n{/if}\n", "export { default as Arrow } from \"../utilities/floating-layer/components/floating-layer-arrow.svelte\";\nexport { default as Root } from \"./components/link-preview.svelte\";\nexport { default as Content } from \"./components/link-preview-content.svelte\";\nexport { default as Trigger } from \"./components/link-preview-trigger.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\nexport { default as ContentStatic } from \"./components/link-preview-content-static.svelte\";\n", "import { afterSleep, onDestroyEffect, attachRef, DOMContext, boxWith, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { on } from \"svelte/events\";\nimport { createBitsAttrs, boolToStr, getDataOpenClosed } from \"../../internal/attrs.js\";\nimport { isElement, isFocusVisible, isTouch } from \"../../internal/is.js\";\nimport { getTabbableCandidates } from \"../../internal/focus.js\";\nimport { SafePolygon } from \"../../internal/safe-polygon.svelte.js\";\nimport { PresenceManager } from \"../../internal/presence-manager.svelte.js\";\nconst linkPreviewAttrs = createBitsAttrs({\n component: \"link-preview\",\n parts: [\"content\", \"trigger\"],\n});\nconst LinkPreviewRootContext = new Context(\"LinkPreview.Root\");\nexport class LinkPreviewRootState {\n static create(opts) {\n return LinkPreviewRootContext.set(new LinkPreviewRootState(opts));\n }\n opts;\n hasSelection = $state(false);\n isPointerDownOnContent = $state(false);\n containsSelection = $state(false);\n timeout = null;\n contentNode = $state(null);\n contentMounted = $state(false);\n contentPresence;\n triggerNode = $state(null);\n isOpening = false;\n domContext = new DOMContext(() => null);\n constructor(opts) {\n this.opts = opts;\n this.contentPresence = new PresenceManager({\n ref: boxWith(() => this.contentNode),\n open: this.opts.open,\n onComplete: () => {\n this.opts.onOpenChangeComplete.current(this.opts.open.current);\n },\n });\n watch(() => this.opts.open.current, (isOpen) => {\n if (!isOpen) {\n this.hasSelection = false;\n return;\n }\n if (!this.domContext)\n return;\n const handlePointerUp = () => {\n this.containsSelection = false;\n this.isPointerDownOnContent = false;\n afterSleep(1, () => {\n const isSelection = this.domContext.getDocument().getSelection()?.toString() !== \"\";\n if (isSelection) {\n this.hasSelection = true;\n }\n else {\n this.hasSelection = false;\n }\n });\n };\n const unsubListener = on(this.domContext.getDocument(), \"pointerup\", handlePointerUp);\n if (!this.contentNode)\n return;\n const tabCandidates = getTabbableCandidates(this.contentNode);\n for (const candidate of tabCandidates) {\n candidate.setAttribute(\"tabindex\", \"-1\");\n }\n return () => {\n unsubListener();\n this.hasSelection = false;\n this.isPointerDownOnContent = false;\n };\n });\n }\n clearTimeout() {\n if (this.timeout) {\n this.domContext.clearTimeout(this.timeout);\n this.timeout = null;\n }\n }\n handleOpen() {\n this.clearTimeout();\n if (this.opts.open.current || this.opts.disabled.current)\n return;\n this.isOpening = true;\n this.timeout = this.domContext.setTimeout(() => {\n if (this.isOpening) {\n this.opts.open.current = true;\n this.isOpening = false;\n }\n }, this.opts.openDelay.current);\n }\n immediateClose() {\n this.clearTimeout();\n this.isOpening = false;\n this.opts.open.current = false;\n }\n handleClose() {\n this.isOpening = false;\n this.clearTimeout();\n if (!this.isPointerDownOnContent && !this.hasSelection) {\n this.timeout = this.domContext.setTimeout(() => {\n this.opts.open.current = false;\n }, this.opts.closeDelay.current);\n }\n }\n}\nexport class LinkPreviewTriggerState {\n static create(opts) {\n return new LinkPreviewTriggerState(opts, LinkPreviewRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.triggerNode = v));\n this.root.domContext = new DOMContext(opts.ref);\n this.onpointerenter = this.onpointerenter.bind(this);\n this.onpointerleave = this.onpointerleave.bind(this);\n this.onfocus = this.onfocus.bind(this);\n this.onblur = this.onblur.bind(this);\n }\n onpointerenter(e) {\n if (isTouch(e))\n return;\n this.root.handleOpen();\n }\n onpointerleave(e) {\n if (isTouch(e))\n return;\n if (!this.root.contentMounted || !this.root.opts.open.current) {\n this.root.immediateClose();\n }\n }\n onfocus(e) {\n if (!isFocusVisible(e.currentTarget))\n return;\n this.root.handleOpen();\n }\n onblur(_) {\n this.root.handleClose();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": boolToStr(this.root.opts.open.current),\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n \"aria-controls\": this.root.contentNode?.id,\n role: \"button\",\n [linkPreviewAttrs.trigger]: \"\",\n onpointerenter: this.onpointerenter,\n onfocus: this.onfocus,\n onblur: this.onblur,\n onpointerleave: this.onpointerleave,\n ...this.attachment,\n }));\n}\nexport class LinkPreviewContentState {\n static create(opts) {\n return new LinkPreviewContentState(opts, LinkPreviewRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.contentNode = v));\n this.root.domContext = new DOMContext(opts.ref);\n this.onpointerdown = this.onpointerdown.bind(this);\n this.onpointerenter = this.onpointerenter.bind(this);\n this.onfocusout = this.onfocusout.bind(this);\n new SafePolygon({\n triggerNode: () => this.root.triggerNode,\n contentNode: () => this.opts.ref.current,\n enabled: () => this.root.opts.open.current,\n onPointerExit: () => {\n this.root.handleClose();\n },\n });\n onDestroyEffect(() => {\n this.root.clearTimeout();\n });\n }\n onpointerdown(e) {\n const target = e.target;\n if (!isElement(target))\n return;\n if (e.currentTarget.contains(target)) {\n this.root.containsSelection = true;\n }\n this.root.hasSelection = true;\n this.root.isPointerDownOnContent = true;\n }\n onpointerenter(e) {\n if (isTouch(e))\n return;\n this.root.handleOpen();\n }\n onfocusout(e) {\n e.preventDefault();\n }\n onInteractOutside = (e) => {\n this.opts.onInteractOutside.current(e);\n if (e.defaultPrevented)\n return;\n this.root.handleClose();\n };\n onEscapeKeydown = (e) => {\n this.opts.onEscapeKeydown.current?.(e);\n if (e.defaultPrevented)\n return;\n this.root.handleClose();\n };\n onOpenAutoFocus = (e) => {\n e.preventDefault();\n };\n onCloseAutoFocus = (e) => {\n e.preventDefault();\n };\n get shouldRender() {\n return this.root.contentPresence.shouldRender;\n }\n snippetProps = $derived.by(() => ({ open: this.root.opts.open.current }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n tabindex: -1,\n \"data-state\": getDataOpenClosed(this.root.opts.open.current),\n [linkPreviewAttrs.content]: \"\",\n onpointerdown: this.onpointerdown,\n onpointerenter: this.onpointerenter,\n onfocusout: this.onfocusout,\n ...this.attachment,\n }));\n popperProps = {\n onInteractOutside: this.onInteractOutside,\n onEscapeKeydown: this.onEscapeKeydown,\n onOpenAutoFocus: this.onOpenAutoFocus,\n onCloseAutoFocus: this.onCloseAutoFocus,\n };\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { LinkPreviewRootProps } from \"../types.js\";\n\timport { LinkPreviewRootState } from \"../link-preview.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { FloatingLayer } from \"../../utilities/floating-layer/index.js\";\n\n\tlet {\n\t\tdisabled = false,\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\topenDelay = 700,\n\t\tcloseDelay = 300,\n\t\tchildren,\n\t}: LinkPreviewRootProps = $props();\n\n\tLinkPreviewRootState.create({\n\t\tdisabled: boxWith(() => disabled),\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\topenDelay: boxWith(() => openDelay),\n\t\tcloseDelay: boxWith(() => closeDelay),\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n</script>\n\n<FloatingLayer.Root>\n\t{@render children?.()}\n</FloatingLayer.Root>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { LinkPreviewContentProps } from \"../types.js\";\n\timport { LinkPreviewContentState } from \"../link-preview.svelte.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\timport Mounted from \"../../utilities/mounted.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tside = \"top\",\n\t\tsideOffset = 0,\n\t\talign = \"center\",\n\t\tavoidCollisions = true,\n\t\tarrowPadding = 0,\n\t\tsticky = \"partial\",\n\t\thideWhenDetached = false,\n\t\tcollisionPadding = 0,\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tforceMount = false,\n\t\tstyle,\n\t\t...restProps\n\t}: LinkPreviewContentProps = $props();\n\n\tconst contentState = LinkPreviewContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonEscapeKeydown: boxWith(() => onEscapeKeydown),\n\t});\n\n\tconst floatingProps = $derived({\n\t\tside,\n\t\tsideOffset,\n\t\talign,\n\t\tavoidCollisions,\n\t\tarrowPadding,\n\t\tsticky,\n\t\thideWhenDetached,\n\t\tcollisionPadding,\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, floatingProps, contentState.props));\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tenabled={contentState.root.opts.open.current}\n\t\t{id}\n\t\ttrapFocus={false}\n\t\tloop={false}\n\t\tpreventScroll={false}\n\t\tforceMount={true}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"link-preview\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t\t<Mounted bind:mounted={contentState.root.contentMounted} />\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\topen={contentState.root.opts.open.current}\n\t\t{id}\n\t\ttrapFocus={false}\n\t\tloop={false}\n\t\tpreventScroll={false}\n\t\tforceMount={false}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"link-preview\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t\t<Mounted bind:mounted={contentState.root.contentMounted} />\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { LinkPreviewTriggerProps } from \"../types.js\";\n\timport { LinkPreviewTriggerState } from \"../link-preview.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { FloatingLayer } from \"../../utilities/floating-layer/index.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: LinkPreviewTriggerProps = $props();\n\n\tconst triggerState = LinkPreviewTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props));\n</script>\n\n<FloatingLayer.Anchor {id} ref={triggerState.opts.ref}>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<a {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</a>\n\t{/if}\n</FloatingLayer.Anchor>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { LinkPreviewContentStaticProps } from \"../types.js\";\n\timport { LinkPreviewContentState } from \"../link-preview.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\timport Mounted from \"../../utilities/mounted.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tforceMount = false,\n\t\tstyle,\n\t\t...restProps\n\t}: LinkPreviewContentStaticProps = $props();\n\n\tconst contentState = LinkPreviewContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonEscapeKeydown: boxWith(() => onEscapeKeydown),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tenabled={contentState.root.opts.open.current}\n\t\tisStatic\n\t\t{id}\n\t\ttrapFocus={false}\n\t\tloop={false}\n\t\tpreventScroll={false}\n\t\tforceMount={true}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"link-preview\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t\t<Mounted bind:mounted={contentState.root.contentMounted} />\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\topen={contentState.root.opts.open.current}\n\t\tisStatic\n\t\t{id}\n\t\ttrapFocus={false}\n\t\tloop={false}\n\t\tpreventScroll={false}\n\t\tforceMount={false}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"link-preview\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "export { default as Root } from \"./components/menubar.svelte\";\nexport { default as Menu } from \"./components/menubar-menu.svelte\";\nexport { default as Content } from \"./components/menubar-content.svelte\";\nexport { default as ContentStatic } from \"./components/menubar-content-static.svelte\";\nexport { default as Trigger } from \"./components/menubar-trigger.svelte\";\nexport { default as Sub } from \"../menu/components/menu-sub.svelte\";\nexport { default as Item } from \"../menu/components/menu-item.svelte\";\nexport { default as Group } from \"../menu/components/menu-group.svelte\";\nexport { default as GroupHeading } from \"../menu/components/menu-group-heading.svelte\";\nexport { default as Arrow } from \"../menu/components/menu-arrow.svelte\";\nexport { default as RadioItem } from \"../menu/components/menu-radio-item.svelte\";\nexport { default as Separator } from \"../menu/components/menu-separator.svelte\";\nexport { default as SubContent } from \"../menu/components/menu-sub-content.svelte\";\nexport { default as SubContentStatic } from \"../menu/components/menu-sub-content-static.svelte\";\nexport { default as SubTrigger } from \"../menu/components/menu-sub-trigger.svelte\";\nexport { default as RadioGroup } from \"../menu/components/menu-radio-group.svelte\";\nexport { default as CheckboxItem } from \"../menu/components/menu-checkbox-item.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\nexport { default as CheckboxGroup } from \"../menu/components/menu-checkbox-group.svelte\";\n", "import { afterTick, boxWith, attachRef, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { createBitsAttrs, boolToStr, boolToEmptyStrOrUndef, getDataOpenClosed, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { wrapArray } from \"../../internal/arrays.js\";\nimport { onMount } from \"svelte\";\nimport { getFloatingContentCSSVars } from \"../../internal/floating-svelte/floating-utils.svelte.js\";\nimport { RovingFocusGroup } from \"../../internal/roving-focus-group.js\";\nconst menubarAttrs = createBitsAttrs({\n component: \"menubar\",\n parts: [\"root\", \"trigger\", \"content\"],\n});\nconst MenubarRootContext = new Context(\"Menubar.Root\");\nconst MenubarMenuContext = new Context(\"Menubar.Menu\");\nexport class MenubarRootState {\n static create(opts) {\n return MenubarRootContext.set(new MenubarRootState(opts));\n }\n opts;\n rovingFocusGroup;\n attachment;\n wasOpenedByKeyboard = $state(false);\n triggerIds = $state([]);\n valueToChangeHandler = new Map();\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.rovingFocusGroup = new RovingFocusGroup({\n rootNode: this.opts.ref,\n candidateAttr: menubarAttrs.trigger,\n loop: this.opts.loop,\n orientation: boxWith(() => \"horizontal\"),\n });\n }\n /**\n * @param id - the id of the trigger to register\n * @returns - a function to de-register the trigger\n */\n registerTrigger = (id) => {\n this.triggerIds.push(id);\n return () => {\n this.triggerIds = this.triggerIds.filter((triggerId) => triggerId !== id);\n };\n };\n /**\n * @param value - the value of the menu to register\n * @param contentId - the content id to associate with the value\n * @returns - a function to de-register the menu\n */\n registerMenu = (value, onOpenChange) => {\n this.valueToChangeHandler.set(value, onOpenChange);\n return () => {\n this.valueToChangeHandler.delete(value);\n };\n };\n updateValue = (value) => {\n const currValue = this.opts.value.current;\n const currHandler = this.valueToChangeHandler.get(currValue)?.current;\n const nextHandler = this.valueToChangeHandler.get(value)?.current;\n this.opts.value.current = value;\n if (currHandler && currValue !== value) {\n currHandler(false);\n }\n if (nextHandler) {\n nextHandler(true);\n }\n };\n getTriggers = () => {\n const node = this.opts.ref.current;\n if (!node)\n return [];\n return Array.from(node.querySelectorAll(menubarAttrs.selector(\"trigger\")));\n };\n onMenuOpen = (id, triggerId) => {\n this.updateValue(id);\n this.rovingFocusGroup.setCurrentTabStopId(triggerId);\n };\n onMenuClose = () => {\n this.updateValue(\"\");\n };\n onMenuToggle = (id) => {\n this.updateValue(this.opts.value.current ? \"\" : id);\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"menubar\",\n [menubarAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nexport class MenubarMenuState {\n static create(opts) {\n return MenubarMenuContext.set(new MenubarMenuState(opts, MenubarRootContext.get()));\n }\n opts;\n root;\n open = $derived.by(() => this.root.opts.value.current === this.opts.value.current);\n wasOpenedByKeyboard = false;\n triggerNode = $state(null);\n triggerId = $derived.by(() => this.triggerNode?.id);\n contentId = $derived.by(() => this.contentNode?.id);\n contentNode = $state(null);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n watch(() => this.open, () => {\n if (!this.open) {\n this.wasOpenedByKeyboard = false;\n }\n });\n onMount(() => {\n return this.root.registerMenu(this.opts.value.current, opts.onOpenChange);\n });\n }\n getTriggerNode() {\n return this.triggerNode;\n }\n toggleMenu() {\n this.root.onMenuToggle(this.opts.value.current);\n }\n openMenu() {\n this.root.onMenuOpen(this.opts.value.current, this.triggerNode?.id ?? \"\");\n }\n}\nexport class MenubarTriggerState {\n static create(opts) {\n return new MenubarTriggerState(opts, MenubarMenuContext.get());\n }\n opts;\n menu;\n root;\n attachment;\n isFocused = $state(false);\n #tabIndex = $state(0);\n constructor(opts, menu) {\n this.opts = opts;\n this.menu = menu;\n this.root = menu.root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.menu.triggerNode = v));\n onMount(() => {\n return this.root.registerTrigger(opts.id.current);\n });\n $effect(() => {\n if (this.root.triggerIds.length) {\n this.#tabIndex = this.root.rovingFocusGroup.getTabIndex(this.menu.getTriggerNode());\n }\n });\n }\n onpointerdown = (e) => {\n // only call if the left button but not when the CTRL key is pressed\n if (!this.opts.disabled.current && e.button === 0 && e.ctrlKey === false) {\n // prevent trigger from focusing when opening\n // which allows the content to focus without competition\n if (!this.menu.open) {\n e.preventDefault();\n }\n this.menu.toggleMenu();\n }\n };\n onpointerenter = () => {\n const isMenubarOpen = Boolean(this.root.opts.value.current);\n if (isMenubarOpen && !this.menu.open) {\n this.menu.openMenu();\n this.menu.getTriggerNode()?.focus();\n }\n };\n onkeydown = (e) => {\n if (this.opts.disabled.current)\n return;\n if (e.key === kbd.TAB)\n return;\n if (e.key === kbd.ENTER || e.key === kbd.SPACE) {\n this.root.onMenuToggle(this.menu.opts.value.current);\n }\n if (e.key === kbd.ARROW_DOWN) {\n this.menu.openMenu();\n }\n // prevent keydown from scrolling window / first focused item\n // from inadvertently closing the menu\n if (e.key === kbd.ENTER || e.key === kbd.SPACE || e.key === kbd.ARROW_DOWN) {\n this.menu.wasOpenedByKeyboard = true;\n e.preventDefault();\n }\n this.root.rovingFocusGroup.handleKeydown(this.menu.getTriggerNode(), e);\n };\n onfocus = () => {\n this.isFocused = true;\n };\n onblur = () => {\n this.isFocused = false;\n };\n props = $derived.by(() => ({\n type: \"button\",\n role: \"menuitem\",\n id: this.opts.id.current,\n \"aria-haspopup\": \"menu\",\n \"aria-expanded\": boolToStr(this.menu.open),\n \"aria-controls\": this.menu.open ? this.menu.contentId : undefined,\n \"data-highlighted\": this.isFocused ? \"\" : undefined,\n \"data-state\": getDataOpenClosed(this.menu.open),\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-menu-value\": this.menu.opts.value.current,\n disabled: this.opts.disabled.current ? true : undefined,\n tabindex: this.#tabIndex,\n [menubarAttrs.trigger]: \"\",\n onpointerdown: this.onpointerdown,\n onpointerenter: this.onpointerenter,\n onkeydown: this.onkeydown,\n onfocus: this.onfocus,\n onblur: this.onblur,\n ...this.attachment,\n }));\n}\nexport class MenubarContentState {\n static create(opts) {\n return new MenubarContentState(opts, MenubarMenuContext.get());\n }\n opts;\n menu;\n root;\n attachment;\n constructor(opts, menu) {\n this.opts = opts;\n this.menu = menu;\n this.root = menu.root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.menu.contentNode = v));\n }\n onCloseAutoFocus = (e) => {\n this.opts.onCloseAutoFocus.current?.(e);\n if (e.defaultPrevented)\n return;\n };\n onFocusOutside = (e) => {\n const target = e.target;\n const isMenubarTrigger = this.root\n .getTriggers()\n .some((trigger) => trigger.contains(target));\n if (isMenubarTrigger)\n e.preventDefault();\n this.opts.onFocusOutside.current(e);\n };\n onInteractOutside = (e) => {\n this.opts.onInteractOutside.current(e);\n };\n onOpenAutoFocus = (e) => {\n this.opts.onOpenAutoFocus.current(e);\n if (e.defaultPrevented)\n return;\n afterTick(() => this.opts.ref.current?.focus());\n };\n onkeydown = (e) => {\n if (e.key !== kbd.ARROW_LEFT && e.key !== kbd.ARROW_RIGHT)\n return;\n const target = e.target;\n const targetIsSubTrigger = target.hasAttribute(\"data-menu-sub-trigger\");\n const isKeydownInsideSubMenu = target.closest(\"[data-menu-content]\") !== e.currentTarget;\n const prevMenuKey = this.root.opts.dir.current === \"rtl\" ? kbd.ARROW_RIGHT : kbd.ARROW_LEFT;\n const isPrevKey = prevMenuKey === e.key;\n const isNextKey = !isPrevKey;\n // prevent navigation when opening a submenu\n if (isNextKey && targetIsSubTrigger)\n return;\n // or if we're inside a submenu and moving back to close it\n if (isKeydownInsideSubMenu && isPrevKey)\n return;\n const items = this.root.getTriggers().filter((trigger) => !trigger.disabled);\n let candidates = items.map((item) => ({\n value: item.getAttribute(\"data-menu-value\"),\n triggerId: item.id ?? \"\",\n }));\n if (isPrevKey)\n candidates.reverse();\n const candidateValues = candidates.map(({ value }) => value);\n const currentIndex = candidateValues.indexOf(this.menu.opts.value.current);\n candidates = this.root.opts.loop.current\n ? wrapArray(candidates, currentIndex + 1)\n : candidates.slice(currentIndex + 1);\n const [nextValue] = candidates;\n if (nextValue)\n this.menu.root.onMenuOpen(nextValue.value, nextValue.triggerId);\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-labelledby\": this.menu.triggerId,\n style: getFloatingContentCSSVars(\"menubar\"),\n onkeydown: this.onkeydown,\n \"data-menu-content\": \"\",\n [menubarAttrs.content]: \"\",\n ...this.attachment,\n }));\n popperProps = {\n onCloseAutoFocus: this.onCloseAutoFocus,\n onFocusOutside: this.onFocusOutside,\n onInteractOutside: this.onInteractOutside,\n onOpenAutoFocus: this.onOpenAutoFocus,\n };\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenubarRootProps } from \"../types.js\";\n\timport { MenubarRootState } from \"../menubar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(\"\"),\n\t\tdir = \"ltr\",\n\t\tloop = true,\n\t\tonValueChange = noop,\n\t\t...restProps\n\t}: MenubarRootProps = $props();\n\n\tconst rootState = MenubarRootState.create({\n\t\tid: boxWith(() => id),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange?.(v);\n\t\t\t}\n\t\t),\n\t\tdir: boxWith(() => dir),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { MenubarMenuProps } from \"../types.js\";\n\timport { MenubarMenuState } from \"../menubar.svelte.js\";\n\timport Menu from \"../../menu/components/menu.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet { value = createId(uid), onOpenChange = noop, ...restProps }: MenubarMenuProps = $props();\n\n\tconst menuState = MenubarMenuState.create({\n\t\tvalue: boxWith(() => value),\n\t\tonOpenChange: boxWith(() => onOpenChange),\n\t});\n</script>\n\n<Menu\n\topen={menuState.open}\n\tonOpenChange={(open) => {\n\t\tif (!open) menuState.root.onMenuClose();\n\t}}\n\tdir={menuState.root.opts.dir.current}\n\t_internal_variant=\"menubar\"\n\t{...restProps}\n/>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuContentProps } from \"../types.js\";\n\timport { MenuContentState } from \"../menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tloop = true,\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tonCloseAutoFocus: onCloseAutoFocusProp = noop,\n\t\tforceMount = false,\n\t\tstyle,\n\t\t...restProps\n\t}: MenuContentProps = $props();\n\n\tconst contentState = MenuContentState.create({\n\t\tid: boxWith(() => id),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonCloseAutoFocus: boxWith(() => onCloseAutoFocusProp),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, contentState.props, {\n\t\t\tstyle: { outline: \"none\" },\n\t\t})\n\t);\n\n\tfunction handleInteractOutside(e: PointerEvent) {\n\t\tonInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\t// don't close if the interaction is with a submenu content or items\n\t\tif (e.target && e.target instanceof Element) {\n\t\t\tconst subContentSelector = `[${contentState.parentMenu.root.getBitsAttr(\"sub-content\")}]`;\n\t\t\tif (e.target.closest(subContentSelector)) return;\n\t\t}\n\t\tcontentState.parentMenu.onClose();\n\t}\n\n\tfunction handleEscapeKeydown(e: KeyboardEvent) {\n\t\tonEscapeKeydown(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentState.parentMenu.onClose();\n\t}\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tenabled={contentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\ttrapFocus\n\t\t{loop}\n\t\tforceMount={true}\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: { outline: \"none\", ...getFloatingContentCSSVars(\"menu\") } },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\topen={contentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\ttrapFocus\n\t\t{loop}\n\t\tforceMount={false}\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: { outline: \"none\", ...getFloatingContentCSSVars(\"menu\") } },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenubarContentProps } from \"../types.js\";\n\timport { MenubarContentState } from \"../menubar.svelte.js\";\n\timport MenuContent from \"../../menu/components/menu-content.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tinteractOutsideBehavior = \"close\",\n\t\tid = createId(uid),\n\t\tonInteractOutside = noop,\n\t\tonFocusOutside = noop,\n\t\tonCloseAutoFocus = noop,\n\t\tonOpenAutoFocus = noop,\n\t\t...restProps\n\t}: MenubarContentProps = $props();\n\n\tconst contentState = MenubarContentState.create({\n\t\tid: boxWith(() => id),\n\t\tinteractOutsideBehavior: boxWith(() => interactOutsideBehavior),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonFocusOutside: boxWith(() => onFocusOutside),\n\t\tonCloseAutoFocus: boxWith(() => onCloseAutoFocus),\n\t\tonOpenAutoFocus: boxWith(() => onOpenAutoFocus),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n<MenuContent bind:ref {...mergedProps} {...contentState.popperProps} preventScroll={false} />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenuContentStaticProps } from \"../types.js\";\n\timport { MenuContentState } from \"../menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tloop = true,\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tonCloseAutoFocus: onCloseAutoFocusProp = noop,\n\t\tforceMount = false,\n\t\tstyle,\n\t\t...restProps\n\t}: MenuContentStaticProps = $props();\n\n\tconst contentState = MenuContentState.create({\n\t\tid: boxWith(() => id),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonCloseAutoFocus: boxWith(() => onCloseAutoFocusProp),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, contentState.props, {\n\t\t\tstyle: { outline: \"none\" },\n\t\t})\n\t);\n\n\tfunction handleInteractOutside(e: PointerEvent) {\n\t\tonInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentState.parentMenu.onClose();\n\t}\n\n\tfunction handleEscapeKeydown(e: KeyboardEvent) {\n\t\tonEscapeKeydown(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentState.parentMenu.onClose();\n\t}\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\tenabled={contentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\ttrapFocus\n\t\t{loop}\n\t\tforceMount={true}\n\t\tisStatic\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: { outline: \"none\", ...getFloatingContentCSSVars(\"menu\") } },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tref={contentState.opts.ref}\n\t\topen={contentState.parentMenu.opts.open.current}\n\t\tonInteractOutside={handleInteractOutside}\n\t\tonEscapeKeydown={handleEscapeKeydown}\n\t\ttrapFocus\n\t\t{loop}\n\t\tforceMount={false}\n\t\tisStatic\n\t\t{id}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: { outline: \"none\", ...getFloatingContentCSSVars(\"menu\") } },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenubarContentStaticProps } from \"../types.js\";\n\timport { MenubarContentState } from \"../menubar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport MenuContentStatic from \"../../menu/components/menu-content-static.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tinteractOutsideBehavior = \"close\",\n\t\tid = createId(uid),\n\t\tonInteractOutside = noop,\n\t\tonCloseAutoFocus = noop,\n\t\tonFocusOutside = noop,\n\t\tonOpenAutoFocus = noop,\n\t\t...restProps\n\t}: MenubarContentStaticProps = $props();\n\n\tconst contentState = MenubarContentState.create({\n\t\tid: boxWith(() => id),\n\t\tinteractOutsideBehavior: boxWith(() => interactOutsideBehavior),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonFocusOutside: boxWith(() => onFocusOutside),\n\t\tonCloseAutoFocus: boxWith(() => onCloseAutoFocus),\n\t\tonOpenAutoFocus: boxWith(() => onOpenAutoFocus),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n<MenuContentStatic bind:ref {...mergedProps} {...contentState.popperProps} preventScroll={false} />\n", "<script lang=\"ts\">\n\timport { attachRef, boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MenubarTriggerProps } from \"../types.js\";\n\timport { MenubarTriggerState } from \"../menubar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport FloatingLayerAnchor from \"../../utilities/floating-layer/components/floating-layer-anchor.svelte\";\n\timport { DropdownMenuTriggerState } from \"../../menu/menu.svelte.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tdisabled = false,\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: MenubarTriggerProps = $props();\n\n\tconst triggerState = MenubarTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst dropdownTriggerState = DropdownMenuTriggerState.create(triggerState.opts);\n\tconst triggerAttachment = attachRef(\n\t\t(v: HTMLElement | null) => (dropdownTriggerState.parentMenu.triggerNode = v)\n\t);\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, triggerState.props, {\n\t\t\t...triggerAttachment,\n\t\t})\n\t);\n</script>\n\n<FloatingLayerAnchor {id} ref={triggerState.opts.ref}>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<button {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</button>\n\t{/if}\n</FloatingLayerAnchor>\n", "export { default as Root } from \"./components/meter.svelte\";\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { createBitsAttrs } from \"../../internal/attrs.js\";\nconst meterAttrs = createBitsAttrs({\n component: \"meter\",\n parts: [\"root\"],\n});\nexport class MeterRootState {\n static create(opts) {\n return new MeterRootState(opts);\n }\n opts;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n role: \"meter\",\n value: this.opts.value.current,\n \"aria-valuemin\": this.opts.min.current,\n \"aria-valuemax\": this.opts.max.current,\n \"aria-valuenow\": this.opts.value.current,\n \"data-value\": this.opts.value.current,\n \"data-max\": this.opts.max.current,\n \"data-min\": this.opts.min.current,\n [meterAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { MeterRootProps } from \"../types.js\";\n\timport { MeterRootState } from \"../meter.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tvalue = 0,\n\t\tmax = 100,\n\t\tmin = 0,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: MeterRootProps = $props();\n\n\tconst rootState = MeterRootState.create({\n\t\tvalue: boxWith(() => value),\n\t\tmax: boxWith(() => max),\n\t\tmin: boxWith(() => min),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/navigation-menu.svelte\";\nexport { default as Content } from \"./components/navigation-menu-content.svelte\";\nexport { default as Indicator } from \"./components/navigation-menu-indicator.svelte\";\nexport { default as Item } from \"./components/navigation-menu-item.svelte\";\nexport { default as Link } from \"./components/navigation-menu-link.svelte\";\nexport { default as List } from \"./components/navigation-menu-list.svelte\";\nexport { default as Trigger } from \"./components/navigation-menu-trigger.svelte\";\nexport { default as Viewport } from \"./components/navigation-menu-viewport.svelte\";\nexport { default as Sub } from \"./components/navigation-menu-sub.svelte\";\n", "import { getWindow } from \"svelte-toolbelt\";\nconst PWM_BADGE_MARGIN_RIGHT = 18;\nconst PWM_BADGE_SPACE_WIDTH_PX = 40;\nconst PWM_BADGE_SPACE_WIDTH = `${PWM_BADGE_SPACE_WIDTH_PX}px`;\nconst PASSWORD_MANAGER_SELECTORS = [\n \"[data-lastpass-icon-root]\", // LastPass,\n \"com-1password-button\", // 1Password,\n \"[data-dashlanecreated]\", // Dashlane,\n '[style$=\"2147483647 !important;\"]', // Bitwarden\n].join(\",\");\nexport function usePasswordManagerBadge({ containerRef, inputRef, pushPasswordManagerStrategy, isFocused, domContext, }) {\n let hasPwmBadge = $state(false);\n let hasPwmBadgeSpace = $state(false);\n let done = $state(false);\n function willPushPwmBadge() {\n const strategy = pushPasswordManagerStrategy.current;\n if (strategy === \"none\")\n return false;\n const increaseWidthCase = strategy === \"increase-width\" && hasPwmBadge && hasPwmBadgeSpace;\n return increaseWidthCase;\n }\n function trackPwmBadge() {\n const container = containerRef.current;\n const input = inputRef.current;\n if (!container || !input || done || pushPasswordManagerStrategy.current === \"none\")\n return;\n const elementToCompare = container;\n // get the top right-center point of the container\n // that is usually where most password managers place their badge\n const rightCornerX = elementToCompare.getBoundingClientRect().left + elementToCompare.offsetWidth;\n const centeredY = elementToCompare.getBoundingClientRect().top + elementToCompare.offsetHeight / 2;\n const x = rightCornerX - PWM_BADGE_MARGIN_RIGHT;\n const y = centeredY;\n // do an extra search to check for all the password manager badges\n const passwordManagerStrategy = domContext.querySelectorAll(PASSWORD_MANAGER_SELECTORS);\n // if no password manager is detected, dispatch document.elementFromPoint to\n // identify the badges\n if (passwordManagerStrategy.length === 0) {\n const maybeBadgeEl = domContext.getDocument().elementFromPoint(x, y);\n // if the found element is the container,\n // then it is not a badge, most times there is no badge in this case\n if (maybeBadgeEl === container)\n return;\n }\n hasPwmBadge = true;\n done = true;\n }\n $effect(() => {\n const container = containerRef.current;\n if (!container || pushPasswordManagerStrategy.current === \"none\")\n return;\n // check if the pwm area is fully visible\n function checkHasSpace() {\n const viewportWidth = getWindow(container).innerWidth;\n const distanceToRightEdge = viewportWidth - container.getBoundingClientRect().right;\n hasPwmBadgeSpace = distanceToRightEdge >= PWM_BADGE_SPACE_WIDTH_PX;\n }\n checkHasSpace();\n const interval = setInterval(checkHasSpace, 1000);\n return () => {\n clearInterval(interval);\n };\n });\n $effect(() => {\n const focused = isFocused.current || domContext.getActiveElement() === inputRef.current;\n if (pushPasswordManagerStrategy.current === \"none\" || !focused)\n return;\n const t1 = setTimeout(trackPwmBadge, 0);\n const t2 = setTimeout(trackPwmBadge, 2000);\n const t3 = setTimeout(trackPwmBadge, 5000);\n const t4 = setTimeout(() => {\n done = true;\n }, 6000);\n return () => {\n clearTimeout(t1);\n clearTimeout(t2);\n clearTimeout(t3);\n clearTimeout(t4);\n };\n });\n return {\n get hasPwmBadge() {\n return hasPwmBadge;\n },\n get willPushPwmBadge() {\n return willPushPwmBadge();\n },\n PWM_BADGE_SPACE_WIDTH,\n };\n}\n", "import { Previous, watch } from \"runed\";\nimport { onMount } from \"svelte\";\nimport { attachRef, DOMContext, simpleBox, } from \"svelte-toolbelt\";\nimport { usePasswordManagerBadge } from \"./usePasswordManager.svelte.js\";\nimport { createBitsAttrs, boolToTrueOrUndef } from \"../../internal/attrs.js\";\nimport { on } from \"svelte/events\";\nexport const REGEXP_ONLY_DIGITS = \"^\\\\d+$\";\nexport const REGEXP_ONLY_CHARS = \"^[a-zA-Z]+$\";\nexport const REGEXP_ONLY_DIGITS_AND_CHARS = \"^[a-zA-Z0-9]+$\";\nconst pinInputAttrs = createBitsAttrs({\n component: \"pin-input\",\n parts: [\"root\", \"cell\"],\n});\nconst KEYS_TO_IGNORE = [\n \"Backspace\",\n \"Delete\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"ArrowUp\",\n \"ArrowDown\",\n \"Home\",\n \"End\",\n \"Escape\",\n \"Enter\",\n \"Tab\",\n \"Shift\",\n \"Control\",\n \"Meta\",\n];\nexport class PinInputRootState {\n static create(opts) {\n return new PinInputRootState(opts);\n }\n opts;\n attachment;\n #inputRef = simpleBox(null);\n #isHoveringInput = $state(false);\n inputAttachment = attachRef(this.#inputRef);\n #isFocused = simpleBox(false);\n #mirrorSelectionStart = $state(null);\n #mirrorSelectionEnd = $state(null);\n #previousValue = new Previous(() => this.opts.value.current ?? \"\");\n #regexPattern = $derived.by(() => {\n if (typeof this.opts.pattern.current === \"string\") {\n return new RegExp(this.opts.pattern.current);\n }\n else {\n return this.opts.pattern.current;\n }\n });\n #prevInputMetadata = $state({\n prev: [null, null, \"none\"],\n willSyntheticBlur: false,\n });\n #pwmb;\n #initialLoad;\n domContext;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.domContext = new DOMContext(opts.ref);\n this.#initialLoad = {\n value: this.opts.value,\n isIOS: typeof window !== \"undefined\" &&\n window?.CSS?.supports(\"-webkit-touch-callout\", \"none\"),\n };\n this.#pwmb = usePasswordManagerBadge({\n containerRef: this.opts.ref,\n inputRef: this.#inputRef,\n isFocused: this.#isFocused,\n pushPasswordManagerStrategy: this.opts.pushPasswordManagerStrategy,\n domContext: this.domContext,\n });\n onMount(() => {\n const input = this.#inputRef.current;\n const container = this.opts.ref.current;\n if (!input || !container)\n return;\n if (this.#initialLoad.value.current !== input.value) {\n this.opts.value.current = input.value;\n }\n this.#prevInputMetadata.prev = [\n input.selectionStart,\n input.selectionEnd,\n input.selectionDirection ?? \"none\",\n ];\n const unsub = on(this.domContext.getDocument(), \"selectionchange\", this.#onDocumentSelectionChange, {\n capture: true,\n });\n this.#onDocumentSelectionChange();\n if (this.domContext.getActiveElement() === input) {\n this.#isFocused.current = true;\n }\n if (!this.domContext.getElementById(\"pin-input-style\")) {\n this.#applyStyles();\n }\n const updateRootHeight = () => {\n if (container) {\n container.style.setProperty(\"--bits-pin-input-root-height\", `${input.clientHeight}px`);\n }\n };\n updateRootHeight();\n const resizeObserver = new ResizeObserver(updateRootHeight);\n resizeObserver.observe(input);\n return () => {\n unsub();\n resizeObserver.disconnect();\n };\n });\n watch([() => this.opts.value.current, () => this.#inputRef.current], () => {\n syncTimeouts(() => {\n const input = this.#inputRef.current;\n if (!input)\n return;\n // forcefully remove :autofill state\n input.dispatchEvent(new Event(\"input\"));\n // update selection state\n const start = input.selectionStart;\n const end = input.selectionEnd;\n const dir = input.selectionDirection ?? \"none\";\n if (start !== null && end !== null) {\n this.#mirrorSelectionStart = start;\n this.#mirrorSelectionEnd = end;\n this.#prevInputMetadata.prev = [start, end, dir];\n }\n }, this.domContext);\n });\n $effect(() => {\n // invoke `onComplete` when the input is completely filled.\n const value = this.opts.value.current;\n const prevValue = this.#previousValue.current;\n const maxLength = this.opts.maxLength.current;\n const onComplete = this.opts.onComplete.current;\n if (prevValue === undefined)\n return;\n if (value !== prevValue && prevValue.length < maxLength && value.length === maxLength) {\n onComplete(value);\n }\n });\n }\n onkeydown = (e) => {\n const key = e.key;\n if (KEYS_TO_IGNORE.includes(key))\n return;\n // if ctrl or cmd is pressed, they are likely to be shortcuts and should not be tested\n // against the regex\n if (e.ctrlKey || e.metaKey)\n return;\n if (key && this.#regexPattern && !this.#regexPattern.test(key)) {\n e.preventDefault();\n }\n };\n #rootStyles = $derived.by(() => ({\n position: \"relative\",\n cursor: this.opts.disabled.current ? \"default\" : \"text\",\n userSelect: \"none\",\n WebkitUserSelect: \"none\",\n pointerEvents: \"none\",\n }));\n rootProps = $derived.by(() => ({\n id: this.opts.id.current,\n [pinInputAttrs.root]: \"\",\n style: this.#rootStyles,\n ...this.attachment,\n }));\n inputWrapperProps = $derived.by(() => ({\n style: {\n position: \"absolute\",\n inset: 0,\n pointerEvents: \"none\",\n },\n }));\n #inputStyle = $derived.by(() => ({\n position: \"absolute\",\n inset: 0,\n width: this.#pwmb.willPushPwmBadge\n ? `calc(100% + ${this.#pwmb.PWM_BADGE_SPACE_WIDTH})`\n : \"100%\",\n clipPath: this.#pwmb.willPushPwmBadge\n ? `inset(0 ${this.#pwmb.PWM_BADGE_SPACE_WIDTH} 0 0)`\n : undefined,\n height: \"100%\",\n display: \"flex\",\n textAlign: this.opts.textAlign.current,\n opacity: \"1\",\n color: \"transparent\",\n pointerEvents: \"all\",\n background: \"transparent\",\n caretColor: \"transparent\",\n border: \"0 solid transparent\",\n outline: \"0 solid transparent\",\n boxShadow: \"none\",\n lineHeight: \"1\",\n letterSpacing: \"-.5em\",\n fontSize: \"var(--bits-pin-input-root-height)\",\n fontFamily: \"monospace\",\n fontVariantNumeric: \"tabular-nums\",\n }));\n #applyStyles() {\n const doc = this.domContext.getDocument();\n const styleEl = doc.createElement(\"style\");\n styleEl.id = \"pin-input-style\";\n doc.head.appendChild(styleEl);\n if (styleEl.sheet) {\n const autoFillStyles = \"background: transparent !important; color: transparent !important; border-color: transparent !important; opacity: 0 !important; box-shadow: none !important; -webkit-box-shadow: none !important; -webkit-text-fill-color: transparent !important;\";\n safeInsertRule(styleEl.sheet, \"[data-pin-input-input]::selection { background: transparent !important; color: transparent !important; }\");\n safeInsertRule(styleEl.sheet, `[data-pin-input-input]:autofill { ${autoFillStyles} }`);\n safeInsertRule(styleEl.sheet, `[data-pin-input-input]:-webkit-autofill { ${autoFillStyles} }`);\n // iOS\n safeInsertRule(styleEl.sheet, `@supports (-webkit-touch-callout: none) { [data-pin-input-input] { letter-spacing: -.6em !important; font-weight: 100 !important; font-stretch: ultra-condensed; font-optical-sizing: none !important; left: -1px !important; right: 1px !important; } }`);\n // PWM badges\n safeInsertRule(styleEl.sheet, `[data-pin-input-input] + * { pointer-events: all !important; }`);\n }\n }\n #onDocumentSelectionChange = () => {\n const input = this.#inputRef.current;\n const container = this.opts.ref.current;\n if (!input || !container)\n return;\n if (this.domContext.getActiveElement() !== input) {\n this.#mirrorSelectionStart = null;\n this.#mirrorSelectionEnd = null;\n return;\n }\n const selStart = input.selectionStart;\n const selEnd = input.selectionEnd;\n const selDir = input.selectionDirection ?? \"none\";\n const maxLength = input.maxLength;\n const val = input.value;\n const prev = this.#prevInputMetadata.prev;\n let start = -1;\n let end = -1;\n let direction;\n if (val.length !== 0 && selStart !== null && selEnd !== null) {\n const isSingleCaret = selStart === selEnd;\n const isInsertMode = selStart === val.length && val.length < maxLength;\n if (isSingleCaret && !isInsertMode) {\n const c = selStart;\n if (c === 0) {\n start = 0;\n end = 1;\n direction = \"forward\";\n }\n else if (c === maxLength) {\n start = c - 1;\n end = c;\n direction = \"backward\";\n }\n else if (maxLength > 1 && val.length > 1) {\n let offset = 0;\n if (prev[0] !== null && prev[1] !== null) {\n direction = c < prev[1] ? \"backward\" : \"forward\";\n const wasPreviouslyInserting = prev[0] === prev[1] && prev[0] < maxLength;\n if (direction === \"backward\" && !wasPreviouslyInserting) {\n offset = -1;\n }\n }\n start = offset + c;\n end = offset + c + 1;\n }\n }\n if (start !== -1 && end !== -1 && start !== end) {\n this.#inputRef.current?.setSelectionRange(start, end, direction);\n }\n }\n // finally update the state\n const s = start !== -1 ? start : selStart;\n const e = end !== -1 ? end : selEnd;\n const dir = direction ?? selDir;\n this.#mirrorSelectionStart = s;\n this.#mirrorSelectionEnd = e;\n this.#prevInputMetadata.prev = [s, e, dir];\n };\n oninput = (e) => {\n const newValue = e.currentTarget.value.slice(0, this.opts.maxLength.current);\n if (newValue.length > 0 && this.#regexPattern && !this.#regexPattern.test(newValue)) {\n e.preventDefault();\n return;\n }\n const maybeHasDeleted = typeof this.#previousValue.current === \"string\" &&\n newValue.length < this.#previousValue.current.length;\n if (maybeHasDeleted) {\n // Since cutting/deleting text doesn't trigger\n // selectionchange event, we'll have to dispatch it manually.\n // NOTE: The following line also triggers when cmd+A then pasting\n // a value with smaller length, which is not ideal for performance.\n this.domContext.getDocument().dispatchEvent(new Event(\"selectionchange\"));\n }\n this.opts.value.current = newValue;\n };\n onfocus = (_) => {\n const input = this.#inputRef.current;\n if (input) {\n const start = Math.min(input.value.length, this.opts.maxLength.current - 1);\n const end = input.value.length;\n input.setSelectionRange(start, end);\n this.#mirrorSelectionStart = start;\n this.#mirrorSelectionEnd = end;\n }\n this.#isFocused.current = true;\n };\n onpaste = (e) => {\n const input = this.#inputRef.current;\n if (!input)\n return;\n const getNewValue = (finalContent) => {\n const start = input.selectionStart === null ? undefined : input.selectionStart;\n const end = input.selectionEnd === null ? undefined : input.selectionEnd;\n const isReplacing = start !== end;\n const initNewVal = this.opts.value.current;\n const newValueUncapped = isReplacing\n ? initNewVal.slice(0, start) + finalContent + initNewVal.slice(end)\n : initNewVal.slice(0, start) + finalContent + initNewVal.slice(start);\n return newValueUncapped.slice(0, this.opts.maxLength.current);\n };\n const isValueInvalid = (newValue) => {\n return newValue.length > 0 && this.#regexPattern && !this.#regexPattern.test(newValue);\n };\n if (!this.opts.pasteTransformer?.current &&\n (!this.#initialLoad.isIOS || !e.clipboardData || !input)) {\n const newValue = getNewValue(e.clipboardData?.getData(\"text/plain\"));\n if (isValueInvalid(newValue)) {\n e.preventDefault();\n }\n return;\n }\n const _content = e.clipboardData?.getData(\"text/plain\") ?? \"\";\n const content = this.opts.pasteTransformer?.current\n ? this.opts.pasteTransformer.current(_content)\n : _content;\n e.preventDefault();\n const newValue = getNewValue(content);\n if (isValueInvalid(newValue))\n return;\n input.value = newValue;\n this.opts.value.current = newValue;\n const selStart = Math.min(newValue.length, this.opts.maxLength.current - 1);\n const selEnd = newValue.length;\n input.setSelectionRange(selStart, selEnd);\n this.#mirrorSelectionStart = selStart;\n this.#mirrorSelectionEnd = selEnd;\n };\n onmouseover = (_) => {\n this.#isHoveringInput = true;\n };\n onmouseleave = (_) => {\n this.#isHoveringInput = false;\n };\n onblur = (_) => {\n if (this.#prevInputMetadata.willSyntheticBlur) {\n this.#prevInputMetadata.willSyntheticBlur = false;\n return;\n }\n this.#isFocused.current = false;\n };\n inputProps = $derived.by(() => ({\n id: this.opts.inputId.current,\n style: this.#inputStyle,\n autocomplete: this.opts.autocomplete.current || \"one-time-code\",\n \"data-pin-input-input\": \"\",\n \"data-pin-input-input-mss\": this.#mirrorSelectionStart,\n \"data-pin-input-input-mse\": this.#mirrorSelectionEnd,\n inputmode: this.opts.inputmode.current,\n pattern: this.#regexPattern?.source,\n maxlength: this.opts.maxLength.current,\n value: this.opts.value.current,\n disabled: boolToTrueOrUndef(this.opts.disabled.current),\n //\n onpaste: this.onpaste,\n oninput: this.oninput,\n onkeydown: this.onkeydown,\n onmouseover: this.onmouseover,\n onmouseleave: this.onmouseleave,\n onfocus: this.onfocus,\n onblur: this.onblur,\n ...this.inputAttachment,\n }));\n #cells = $derived.by(() => Array.from({ length: this.opts.maxLength.current }).map((_, idx) => {\n const isActive = this.#isFocused.current &&\n this.#mirrorSelectionStart !== null &&\n this.#mirrorSelectionEnd !== null &&\n ((this.#mirrorSelectionStart === this.#mirrorSelectionEnd &&\n idx === this.#mirrorSelectionStart) ||\n (idx >= this.#mirrorSelectionStart && idx < this.#mirrorSelectionEnd));\n const char = this.opts.value.current[idx] !== undefined ? this.opts.value.current[idx] : null;\n return {\n char,\n isActive,\n hasFakeCaret: isActive && char === null,\n };\n }));\n snippetProps = $derived.by(() => ({\n cells: this.#cells,\n isFocused: this.#isFocused.current,\n isHovering: this.#isHoveringInput,\n }));\n}\nexport class PinInputCellState {\n static create(opts) {\n return new PinInputCellState(opts);\n }\n opts;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [pinInputAttrs.cell]: \"\",\n \"data-active\": this.opts.cell.current.isActive ? \"\" : undefined,\n \"data-inactive\": !this.opts.cell.current.isActive ? \"\" : undefined,\n ...this.attachment,\n }));\n}\n// oxlint-disable-next-line no-explicit-any\nexport function syncTimeouts(cb, domContext) {\n const t1 = domContext.setTimeout(cb, 0); // For faster machines\n const t2 = domContext.setTimeout(cb, 1_0);\n const t3 = domContext.setTimeout(cb, 5_0);\n return [t1, t2, t3];\n}\nfunction safeInsertRule(sheet, rule) {\n try {\n sheet.insertRule(rule);\n }\n catch {\n // oxlint-disable-next-line no-console\n console.error(\"pin input could not insert CSS rule:\", rule);\n }\n}\n", "const ignoredElement = [\"INPUT\", \"TEXTAREA\"];\n/**\n *\n * @param e Keyboard event\n * @param currentElement Event initiator element or any element that wants to handle the navigation\n * @param parentElement Parent element where contains all the collection items, this will collect every item to be used when nav\n * @param options further options\n * @returns the navigated html element or null if none\n */\nexport function useArrowNavigation(e, currentElement, parentElement, options) {\n if (!currentElement ||\n (options.enableIgnoredElement && ignoredElement.includes(currentElement.nodeName))) {\n return null;\n }\n const { arrowKeyOptions = \"both\", candidateSelector: attributeName, itemsArray = [], loop = true, dir = \"ltr\", preventScroll = true, focus = false, } = options;\n const [right, left, up, down, home, end] = [\n e.key === \"ArrowRight\",\n e.key === \"ArrowLeft\",\n e.key === \"ArrowUp\",\n e.key === \"ArrowDown\",\n e.key === \"Home\",\n e.key === \"End\",\n ];\n const goingVertical = up || down;\n const goingHorizontal = right || left;\n if (!home &&\n !end &&\n ((!goingVertical && !goingHorizontal) ||\n (arrowKeyOptions === \"vertical\" && goingHorizontal) ||\n (arrowKeyOptions === \"horizontal\" && goingVertical)))\n return null;\n const allCollectionItems = parentElement\n ? Array.from(parentElement.querySelectorAll(attributeName))\n : itemsArray;\n if (!allCollectionItems.length)\n return null;\n if (preventScroll)\n e.preventDefault();\n let item = null;\n if (goingHorizontal || goingVertical) {\n const goForward = goingVertical ? down : dir === \"ltr\" ? right : left;\n item = findNextFocusableElement(allCollectionItems, currentElement, {\n goForward,\n loop,\n });\n }\n else if (home) {\n item = allCollectionItems.at(0) || null;\n }\n else if (end) {\n item = allCollectionItems.at(-1) || null;\n }\n if (focus)\n item?.focus();\n return item;\n}\n/**\n * Recursive function to find the next focusable element to avoid disabled elements\n */\nfunction findNextFocusableElement(elements, currentElement, { goForward, loop }, iterations = elements.length) {\n if (--iterations === 0)\n return null;\n const index = elements.indexOf(currentElement);\n const newIndex = goForward ? index + 1 : index - 1;\n if (!loop && (newIndex < 0 || newIndex >= elements.length))\n return null;\n const adjustedNewIndex = (newIndex + elements.length) % elements.length;\n const candidate = elements[adjustedNewIndex];\n if (!candidate)\n return null;\n const isDisabled = candidate.hasAttribute(\"disabled\") && candidate.getAttribute(\"disabled\") !== \"false\";\n if (isDisabled) {\n return findNextFocusableElement(elements, candidate, { goForward, loop }, iterations);\n }\n return candidate;\n}\n", "export class SvelteResizeObserver {\n #node;\n #onResize;\n constructor(node, onResize) {\n this.#node = node;\n this.#onResize = onResize;\n this.handler = this.handler.bind(this);\n $effect(this.handler);\n }\n handler() {\n let rAF = 0;\n const _node = this.#node();\n if (!_node)\n return;\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(this.#onResize);\n });\n resizeObserver.observe(_node);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(_node);\n };\n }\n}\n", "/**\n * Based on Radix UI's Navigation Menu\n * https://www.radix-ui.com/docs/primitives/components/navigation-menu\n */\nimport { afterSleep, afterTick, attachRef, DOMContext, getWindow, simpleBox, boxWith, } from \"svelte-toolbelt\";\nimport { Context, useDebounce, watch } from \"runed\";\nimport { untrack } from \"svelte\";\nimport { SvelteMap } from \"svelte/reactivity\";\nimport { useId } from \"../../shared/index.js\";\nimport { createBitsAttrs, boolToStr, boolToEmptyStrOrUndef, getDataOpenClosed, } from \"../../internal/attrs.js\";\nimport { noop } from \"../../internal/noop.js\";\nimport { getTabbableCandidates } from \"../../internal/focus.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { CustomEventDispatcher } from \"../../internal/events.js\";\nimport { useArrowNavigation } from \"../../internal/use-arrow-navigation.js\";\nimport { boxAutoReset } from \"../../internal/box-auto-reset.svelte.js\";\nimport { isElement } from \"../../internal/is.js\";\nimport { RovingFocusGroup } from \"../../internal/roving-focus-group.js\";\nimport { SvelteResizeObserver } from \"../../internal/svelte-resize-observer.svelte.js\";\nconst navigationMenuAttrs = createBitsAttrs({\n component: \"navigation-menu\",\n parts: [\n \"root\",\n \"sub\",\n \"item\",\n \"list\",\n \"trigger\",\n \"content\",\n \"link\",\n \"viewport\",\n \"menu\",\n \"indicator\",\n ],\n});\nconst NavigationMenuProviderContext = new Context(\"NavigationMenu.Root\");\nexport const NavigationMenuItemContext = new Context(\"NavigationMenu.Item\");\nconst NavigationMenuListContext = new Context(\"NavigationMenu.List\");\nconst NavigationMenuContentContext = new Context(\"NavigationMenu.Content\");\nconst NavigationMenuSubContext = new Context(\"NavigationMenu.Sub\");\nclass NavigationMenuProviderState {\n static create(opts) {\n return NavigationMenuProviderContext.set(new NavigationMenuProviderState(opts));\n }\n opts;\n indicatorTrackRef = simpleBox(null);\n viewportRef = simpleBox(null);\n viewportContent = new SvelteMap();\n onTriggerEnter;\n onTriggerLeave = noop;\n onContentEnter = noop;\n onContentLeave = noop;\n onItemSelect;\n onItemDismiss;\n activeItem = null;\n prevActiveItem = null;\n constructor(opts) {\n this.opts = opts;\n this.onTriggerEnter = opts.onTriggerEnter;\n this.onTriggerLeave = opts.onTriggerLeave ?? noop;\n this.onContentEnter = opts.onContentEnter ?? noop;\n this.onContentLeave = opts.onContentLeave ?? noop;\n this.onItemDismiss = opts.onItemDismiss;\n this.onItemSelect = opts.onItemSelect;\n }\n setActiveItem = (item) => {\n this.prevActiveItem = this.activeItem;\n this.activeItem = item;\n };\n}\nexport class NavigationMenuRootState {\n static create(opts) {\n return new NavigationMenuRootState(opts);\n }\n opts;\n attachment;\n provider;\n previousValue = simpleBox(\"\");\n isDelaySkipped;\n #derivedDelay = $derived.by(() => {\n const isOpen = this.opts?.value?.current !== \"\";\n if (isOpen || this.isDelaySkipped.current) {\n // 150 for user to switch trigger or move into content view\n return 100;\n }\n else {\n return this.opts.delayDuration.current;\n }\n });\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.isDelaySkipped = boxAutoReset(false, {\n afterMs: this.opts.skipDelayDuration.current,\n getWindow: () => getWindow(opts.ref.current),\n });\n this.provider = NavigationMenuProviderState.create({\n value: this.opts.value,\n previousValue: this.previousValue,\n dir: this.opts.dir,\n orientation: this.opts.orientation,\n rootNavigationMenuRef: this.opts.ref,\n isRootMenu: true,\n onTriggerEnter: (itemValue, itemState) => {\n this.#onTriggerEnter(itemValue, itemState);\n },\n onTriggerLeave: this.#onTriggerLeave,\n onContentEnter: this.#onContentEnter,\n onContentLeave: this.#onContentLeave,\n onItemSelect: this.#onItemSelect,\n onItemDismiss: this.#onItemDismiss,\n });\n }\n #debouncedFn = useDebounce((val, itemState) => {\n // passing `undefined` meant to reset the debounce timer\n if (typeof val === \"string\") {\n this.setValue(val, itemState);\n }\n }, () => this.#derivedDelay);\n #onTriggerEnter = (itemValue, itemState) => {\n this.#debouncedFn(itemValue, itemState);\n };\n #onTriggerLeave = () => {\n this.isDelaySkipped.current = false;\n this.#debouncedFn(\"\", null);\n };\n #onContentEnter = () => {\n this.#debouncedFn(undefined, null);\n };\n #onContentLeave = () => {\n if (this.provider.activeItem &&\n this.provider.activeItem.opts.openOnHover.current === false) {\n return;\n }\n this.#debouncedFn(\"\", null);\n };\n #onItemSelect = (itemValue, itemState) => {\n this.setValue(itemValue, itemState);\n };\n #onItemDismiss = () => {\n this.setValue(\"\", null);\n };\n setValue = (newValue, itemState) => {\n this.previousValue.current = this.opts.value.current;\n this.opts.value.current = newValue;\n this.provider.setActiveItem(itemState);\n // When all menus are closed, we want to reset previousValue to prevent\n // weird transitions from old positions when opening fresh\n if (newValue === \"\") {\n this.previousValue.current = \"\";\n }\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-orientation\": this.opts.orientation.current,\n dir: this.opts.dir.current,\n [navigationMenuAttrs.root]: \"\",\n [navigationMenuAttrs.menu]: \"\",\n ...this.attachment,\n }));\n}\nexport class NavigationMenuSubState {\n static create(opts) {\n return new NavigationMenuSubState(opts, NavigationMenuProviderContext.get());\n }\n opts;\n context;\n previousValue = simpleBox(\"\");\n subProvider;\n attachment;\n constructor(opts, context) {\n this.opts = opts;\n this.context = context;\n this.attachment = attachRef(this.opts.ref);\n this.subProvider = NavigationMenuProviderState.create({\n isRootMenu: false,\n value: this.opts.value,\n dir: this.context.opts.dir,\n orientation: this.opts.orientation,\n rootNavigationMenuRef: this.opts.ref,\n onTriggerEnter: this.setValue,\n onItemSelect: this.setValue,\n onItemDismiss: () => this.setValue(\"\", null),\n previousValue: this.previousValue,\n });\n }\n setValue = (newValue, itemState) => {\n this.previousValue.current = this.opts.value.current;\n this.opts.value.current = newValue;\n this.subProvider.setActiveItem(itemState);\n // When all menus are closed, we want to reset previousValue to prevent\n // weird transitions from old positions when opening fresh\n if (newValue === \"\") {\n this.previousValue.current = \"\";\n }\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-orientation\": this.opts.orientation.current,\n [navigationMenuAttrs.sub]: \"\",\n [navigationMenuAttrs.menu]: \"\",\n ...this.attachment,\n }));\n}\nexport class NavigationMenuListState {\n static create(opts) {\n return NavigationMenuListContext.set(new NavigationMenuListState(opts, NavigationMenuProviderContext.get()));\n }\n wrapperId = simpleBox(useId());\n wrapperRef = simpleBox(null);\n opts;\n context;\n attachment;\n wrapperAttachment = attachRef(this.wrapperRef, (v) => (this.context.indicatorTrackRef.current = v));\n listTriggers = $state.raw([]);\n rovingFocusGroup;\n wrapperMounted = $state(false);\n constructor(opts, context) {\n this.opts = opts;\n this.context = context;\n this.attachment = attachRef(this.opts.ref);\n this.rovingFocusGroup = new RovingFocusGroup({\n rootNode: opts.ref,\n candidateSelector: `${navigationMenuAttrs.selector(\"trigger\")}:not([data-disabled]), ${navigationMenuAttrs.selector(\"link\")}:not([data-disabled])`,\n loop: boxWith(() => false),\n orientation: this.context.opts.orientation,\n });\n }\n registerTrigger(trigger) {\n if (trigger)\n this.listTriggers.push(trigger);\n return () => {\n this.listTriggers = this.listTriggers.filter((t) => t.id !== trigger.id);\n };\n }\n wrapperProps = $derived.by(() => ({\n id: this.wrapperId.current,\n ...this.wrapperAttachment,\n }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-orientation\": this.context.opts.orientation.current,\n [navigationMenuAttrs.list]: \"\",\n ...this.attachment,\n }));\n}\nexport class NavigationMenuItemState {\n static create(opts) {\n return NavigationMenuItemContext.set(new NavigationMenuItemState(opts, NavigationMenuListContext.get()));\n }\n opts;\n attachment;\n listContext;\n contentNode = $state(null);\n triggerNode = $state(null);\n focusProxyNode = $state(null);\n restoreContentTabOrder = noop;\n wasEscapeClose = false;\n contentId = $derived.by(() => this.contentNode?.id);\n triggerId = $derived.by(() => this.triggerNode?.id);\n contentChildren = simpleBox(undefined);\n contentChild = simpleBox(undefined);\n contentProps = simpleBox({});\n domContext;\n constructor(opts, listContext) {\n this.opts = opts;\n this.listContext = listContext;\n this.domContext = new DOMContext(opts.ref);\n this.attachment = attachRef(this.opts.ref);\n }\n #handleContentEntry = (side = \"start\") => {\n if (!this.contentNode)\n return;\n this.restoreContentTabOrder();\n const candidates = getTabbableCandidates(this.contentNode);\n if (candidates.length)\n focusFirst(side === \"start\" ? candidates : candidates.reverse(), () => this.domContext.getActiveElement());\n };\n #handleContentExit = () => {\n if (!this.contentNode)\n return;\n const candidates = getTabbableCandidates(this.contentNode);\n if (candidates.length)\n this.restoreContentTabOrder = removeFromTabOrder(candidates);\n };\n onEntryKeydown = this.#handleContentEntry;\n onFocusProxyEnter = this.#handleContentEntry;\n onRootContentClose = this.#handleContentExit;\n onContentFocusOutside = this.#handleContentExit;\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [navigationMenuAttrs.item]: \"\",\n ...this.attachment,\n }));\n}\nexport class NavigationMenuTriggerState {\n static create(opts) {\n return new NavigationMenuTriggerState(opts, {\n provider: NavigationMenuProviderContext.get(),\n item: NavigationMenuItemContext.get(),\n list: NavigationMenuListContext.get(),\n sub: NavigationMenuSubContext.getOr(null),\n });\n }\n opts;\n attachment;\n focusProxyId = simpleBox(useId());\n focusProxyRef = simpleBox(null);\n focusProxyAttachment = attachRef(this.focusProxyRef, (v) => (this.itemContext.focusProxyNode = v));\n context;\n itemContext;\n listContext;\n hasPointerMoveOpened = simpleBox(false);\n wasClickClose = false;\n focusProxyMounted = $state(false);\n open = $derived.by(() => this.itemContext.opts.value.current === this.context.opts.value.current);\n constructor(opts, context) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref, (v) => (this.itemContext.triggerNode = v));\n this.hasPointerMoveOpened = boxAutoReset(false, {\n afterMs: 300,\n getWindow: () => getWindow(opts.ref.current),\n });\n this.context = context.provider;\n this.itemContext = context.item;\n this.listContext = context.list;\n watch(() => this.opts.ref.current, () => {\n const node = this.opts.ref.current;\n if (!node)\n return;\n return this.listContext.registerTrigger(node);\n });\n }\n onpointerenter = (_) => {\n this.wasClickClose = false;\n this.itemContext.wasEscapeClose = false;\n };\n onpointermove = whenMouse(() => {\n if (this.opts.disabled.current ||\n this.wasClickClose ||\n this.itemContext.wasEscapeClose ||\n this.hasPointerMoveOpened.current ||\n !this.itemContext.opts.openOnHover.current) {\n return;\n }\n this.context.onTriggerEnter(this.itemContext.opts.value.current, this.itemContext);\n this.hasPointerMoveOpened.current = true;\n });\n onpointerleave = whenMouse(() => {\n if (this.opts.disabled.current || !this.itemContext.opts.openOnHover.current)\n return;\n this.context.onTriggerLeave();\n this.hasPointerMoveOpened.current = false;\n });\n onclick = () => {\n // if opened via pointer move, we prevent the click event\n if (this.hasPointerMoveOpened.current)\n return;\n const shouldClose = this.open &&\n (!this.itemContext.opts.openOnHover.current || this.context.opts.isRootMenu);\n if (shouldClose) {\n this.context.onItemSelect(\"\", null);\n }\n else if (!this.open) {\n this.context.onItemSelect(this.itemContext.opts.value.current, this.itemContext);\n }\n this.wasClickClose = shouldClose;\n };\n onkeydown = (e) => {\n const verticalEntryKey = this.context.opts.dir.current === \"rtl\" ? kbd.ARROW_LEFT : kbd.ARROW_RIGHT;\n const entryKey = { horizontal: kbd.ARROW_DOWN, vertical: verticalEntryKey }[this.context.opts.orientation.current];\n if (this.open && e.key === entryKey) {\n this.itemContext.onEntryKeydown();\n // prevent focus group from handling the event\n e.preventDefault();\n return;\n }\n this.itemContext.listContext.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);\n };\n focusProxyOnFocus = (e) => {\n const content = this.itemContext.contentNode;\n const prevFocusedElement = e.relatedTarget;\n const wasTriggerFocused = this.opts.ref.current && prevFocusedElement === this.opts.ref.current;\n const wasFocusFromContent = content?.contains(prevFocusedElement);\n if (wasTriggerFocused || !wasFocusFromContent) {\n this.itemContext.onFocusProxyEnter(wasTriggerFocused ? \"start\" : \"end\");\n }\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n disabled: this.opts.disabled.current,\n \"data-disabled\": boolToEmptyStrOrUndef(Boolean(this.opts.disabled.current)),\n \"data-state\": getDataOpenClosed(this.open),\n \"data-value\": this.itemContext.opts.value.current,\n \"aria-expanded\": boolToStr(this.open),\n \"aria-controls\": this.itemContext.contentId,\n [navigationMenuAttrs.trigger]: \"\",\n onpointermove: this.onpointermove,\n onpointerleave: this.onpointerleave,\n onpointerenter: this.onpointerenter,\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n focusProxyProps = $derived.by(() => ({\n id: this.focusProxyId.current,\n tabindex: 0,\n onfocus: this.focusProxyOnFocus,\n ...this.focusProxyAttachment,\n }));\n}\nconst LINK_SELECT_EVENT = new CustomEventDispatcher(\"bitsLinkSelect\", {\n bubbles: true,\n cancelable: true,\n});\nconst ROOT_CONTENT_DISMISS_EVENT = new CustomEventDispatcher(\"bitsRootContentDismiss\", {\n cancelable: true,\n bubbles: true,\n});\nexport class NavigationMenuLinkState {\n static create(opts) {\n return new NavigationMenuLinkState(opts, {\n provider: NavigationMenuProviderContext.get(),\n item: NavigationMenuItemContext.get(),\n });\n }\n opts;\n context;\n attachment;\n isFocused = $state(false);\n constructor(opts, context) {\n this.opts = opts;\n this.context = context;\n this.attachment = attachRef(this.opts.ref);\n }\n onclick = (e) => {\n const currTarget = e.currentTarget;\n LINK_SELECT_EVENT.listen(currTarget, (e) => this.opts.onSelect.current(e), { once: true });\n const linkSelectEvent = LINK_SELECT_EVENT.dispatch(currTarget);\n if (!linkSelectEvent.defaultPrevented && !e.metaKey) {\n ROOT_CONTENT_DISMISS_EVENT.dispatch(currTarget);\n }\n };\n onkeydown = (e) => {\n if (this.context.item.contentNode)\n return;\n this.context.item.listContext.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);\n };\n onfocus = (_) => {\n this.isFocused = true;\n };\n onblur = (_) => {\n this.isFocused = false;\n };\n #handlePointerDismiss = () => {\n // only close submenu if this link is not inside the currently open submenu content\n const currentlyOpenValue = this.context.provider.opts.value.current;\n const isInsideOpenSubmenu = this.context.item.opts.value.current === currentlyOpenValue;\n const activeItem = this.context.item.listContext.context.activeItem;\n if (activeItem && !activeItem.opts.openOnHover.current)\n return;\n if (currentlyOpenValue && !isInsideOpenSubmenu) {\n this.context.provider.onItemDismiss();\n }\n };\n onpointerenter = () => {\n this.#handlePointerDismiss();\n };\n onpointermove = whenMouse(() => {\n this.#handlePointerDismiss();\n });\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-active\": this.opts.active.current ? \"\" : undefined,\n \"aria-current\": this.opts.active.current ? \"page\" : undefined,\n \"data-focused\": this.isFocused ? \"\" : undefined,\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n onfocus: this.onfocus,\n onblur: this.onblur,\n onpointerenter: this.onpointerenter,\n onpointermove: this.onpointermove,\n [navigationMenuAttrs.link]: \"\",\n ...this.attachment,\n }));\n}\nexport class NavigationMenuIndicatorState {\n static create() {\n return new NavigationMenuIndicatorState(NavigationMenuProviderContext.get());\n }\n context;\n isVisible = $derived.by(() => Boolean(this.context.opts.value.current));\n constructor(context) {\n this.context = context;\n }\n}\nexport class NavigationMenuIndicatorImplState {\n static create(opts) {\n return new NavigationMenuIndicatorImplState(opts, {\n provider: NavigationMenuProviderContext.get(),\n list: NavigationMenuListContext.get(),\n });\n }\n opts;\n attachment;\n context;\n listContext;\n position = $state.raw(null);\n isHorizontal = $derived.by(() => this.context.opts.orientation.current === \"horizontal\");\n isVisible = $derived.by(() => !!this.context.opts.value.current);\n activeTrigger = $derived.by(() => {\n const items = this.listContext.listTriggers;\n const triggerNode = items.find((item) => item.getAttribute(\"data-value\") === this.context.opts.value.current);\n return triggerNode ?? null;\n });\n shouldRender = $derived.by(() => this.position !== null);\n constructor(opts, context) {\n this.opts = opts;\n this.context = context.provider;\n this.listContext = context.list;\n this.attachment = attachRef(this.opts.ref);\n new SvelteResizeObserver(() => this.activeTrigger, this.handlePositionChange);\n new SvelteResizeObserver(() => this.context.indicatorTrackRef.current, this.handlePositionChange);\n }\n handlePositionChange = () => {\n if (!this.activeTrigger)\n return;\n this.position = {\n size: this.isHorizontal\n ? this.activeTrigger.offsetWidth\n : this.activeTrigger.offsetHeight,\n offset: this.isHorizontal\n ? this.activeTrigger.offsetLeft\n : this.activeTrigger.offsetTop,\n };\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-state\": this.isVisible ? \"visible\" : \"hidden\",\n \"data-orientation\": this.context.opts.orientation.current,\n style: {\n position: \"absolute\",\n ...(this.isHorizontal\n ? {\n left: 0,\n width: `${this.position?.size}px`,\n transform: `translateX(${this.position?.offset}px)`,\n }\n : {\n top: 0,\n height: `${this.position?.size}px`,\n transform: `translateY(${this.position?.offset}px)`,\n }),\n },\n [navigationMenuAttrs.indicator]: \"\",\n ...this.attachment,\n }));\n}\nexport class NavigationMenuContentState {\n static create(opts) {\n return NavigationMenuContentContext.set(new NavigationMenuContentState(opts, {\n provider: NavigationMenuProviderContext.get(),\n item: NavigationMenuItemContext.get(),\n list: NavigationMenuListContext.get(),\n }));\n }\n opts;\n context;\n itemContext;\n listContext;\n attachment;\n mounted = $state(false);\n open = $derived.by(() => this.itemContext.opts.value.current === this.context.opts.value.current);\n value = $derived.by(() => this.itemContext.opts.value.current);\n // We persist the last active content value as the viewport may be animating out\n // and we want the content to remain mounted for the lifecycle of the viewport.\n isLastActiveValue = $derived.by(() => {\n if (this.context.viewportRef.current) {\n if (!this.context.opts.value.current && this.context.opts.previousValue.current) {\n return (this.context.opts.previousValue.current === this.itemContext.opts.value.current);\n }\n }\n return false;\n });\n constructor(opts, context) {\n this.opts = opts;\n this.context = context.provider;\n this.itemContext = context.item;\n this.listContext = context.list;\n this.attachment = attachRef(this.opts.ref, (v) => (this.itemContext.contentNode = v));\n }\n onpointerenter = (_) => {\n this.context.onContentEnter();\n };\n onpointerleave = whenMouse(() => {\n if (!this.itemContext.opts.openOnHover.current)\n return;\n this.context.onContentLeave();\n });\n props = $derived.by(() => ({\n id: this.opts.id.current,\n onpointerenter: this.onpointerenter,\n onpointerleave: this.onpointerleave,\n ...this.attachment,\n }));\n}\nexport class NavigationMenuContentImplState {\n static create(opts, itemState) {\n return new NavigationMenuContentImplState(opts, itemState ?? NavigationMenuItemContext.get());\n }\n opts;\n itemContext;\n context;\n listContext;\n attachment;\n prevMotionAttribute = $state(null);\n motionAttribute = $derived.by(() => {\n const items = this.listContext.listTriggers;\n const values = items.map((item) => item.getAttribute(\"data-value\")).filter(Boolean);\n if (this.context.opts.dir.current === \"rtl\")\n values.reverse();\n const index = values.indexOf(this.context.opts.value.current);\n const prevIndex = values.indexOf(this.context.opts.previousValue.current);\n const isSelected = this.itemContext.opts.value.current === this.context.opts.value.current;\n const wasSelected = prevIndex === values.indexOf(this.itemContext.opts.value.current);\n // When all menus are closed, we want to reset motion state to prevent residual animations\n if (!this.context.opts.value.current && !this.context.opts.previousValue.current) {\n untrack(() => (this.prevMotionAttribute = null));\n return null;\n }\n // We only want to update selected and the last selected content\n // this avoids animations being interrupted outside of that range\n if (!isSelected && !wasSelected)\n return untrack(() => this.prevMotionAttribute);\n const attribute = (() => {\n // Don't provide a direction on the initial open\n if (index !== prevIndex) {\n // If we're moving to this item from another\n if (isSelected && prevIndex !== -1)\n return index > prevIndex ? \"from-end\" : \"from-start\";\n // If we're leaving this item for another\n if (wasSelected && index !== -1)\n return index > prevIndex ? \"to-start\" : \"to-end\";\n }\n // Otherwise we're entering from closed or leaving the list\n // entirely and should not animate in any direction\n return null;\n })();\n untrack(() => (this.prevMotionAttribute = attribute));\n return attribute;\n });\n domContext;\n constructor(opts, itemContext) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.itemContext = itemContext;\n this.listContext = itemContext.listContext;\n this.context = itemContext.listContext.context;\n this.domContext = new DOMContext(opts.ref);\n watch([\n () => this.itemContext.opts.value.current,\n () => this.itemContext.triggerNode,\n () => this.opts.ref.current,\n ], () => {\n const content = this.opts.ref.current;\n if (!(content && this.context.opts.isRootMenu))\n return;\n const handleClose = () => {\n this.context.onItemDismiss();\n this.itemContext.onRootContentClose();\n if (content.contains(this.domContext.getActiveElement())) {\n this.itemContext.triggerNode?.focus();\n }\n };\n const removeListener = ROOT_CONTENT_DISMISS_EVENT.listen(content, handleClose);\n return () => {\n removeListener();\n };\n });\n }\n onFocusOutside = (e) => {\n this.itemContext.onContentFocusOutside();\n const target = e.target;\n // only dismiss content when focus moves outside of the menu\n if (this.context.opts.rootNavigationMenuRef.current?.contains(target)) {\n e.preventDefault();\n return;\n }\n this.context.onItemDismiss();\n };\n onInteractOutside = (e) => {\n const target = e.target;\n const isTrigger = this.listContext.listTriggers.some((trigger) => trigger.contains(target));\n const isRootViewport = this.context.opts.isRootMenu && this.context.viewportRef.current?.contains(target);\n if (!this.context.opts.isRootMenu && !isTrigger) {\n this.context.onItemDismiss();\n return;\n }\n if (isTrigger || isRootViewport) {\n e.preventDefault();\n return;\n }\n if (!this.itemContext.opts.openOnHover.current) {\n this.context.onItemSelect(\"\", null);\n }\n };\n onkeydown = (e) => {\n // prevent parent menus handling sub-menu keydown events\n const target = e.target;\n if (!isElement(target))\n return;\n if (target.closest(navigationMenuAttrs.selector(\"menu\")) !==\n this.context.opts.rootNavigationMenuRef.current)\n return;\n const isMetaKey = e.altKey || e.ctrlKey || e.metaKey;\n const isTabKey = e.key === kbd.TAB && !isMetaKey;\n const candidates = getTabbableCandidates(e.currentTarget);\n if (isTabKey) {\n const focusedElement = this.domContext.getActiveElement();\n const index = candidates.findIndex((candidate) => candidate === focusedElement);\n const isMovingBackwards = e.shiftKey;\n const nextCandidates = isMovingBackwards\n ? candidates.slice(0, index).reverse()\n : candidates.slice(index + 1, candidates.length);\n if (focusFirst(nextCandidates, () => this.domContext.getActiveElement())) {\n // prevent browser tab keydown because we've handled focus\n e.preventDefault();\n return;\n }\n else {\n // If we can't focus that means we're at the edges\n // so focus the proxy and let browser handle\n // tab/shift+tab keypress on the proxy instead\n handleProxyFocus(this.itemContext.focusProxyNode);\n return;\n }\n }\n let activeEl = this.domContext.getActiveElement();\n if (this.itemContext.contentNode) {\n const focusedNode = this.itemContext.contentNode.querySelector(\"[data-focused]\");\n if (focusedNode) {\n activeEl = focusedNode;\n }\n }\n if (activeEl === this.itemContext.triggerNode)\n return;\n const newSelectedElement = useArrowNavigation(e, activeEl, undefined, {\n itemsArray: candidates,\n candidateSelector: navigationMenuAttrs.selector(\"link\"),\n loop: false,\n enableIgnoredElement: true,\n });\n newSelectedElement?.focus();\n };\n onEscapeKeydown = (_) => {\n this.context.onItemDismiss();\n this.itemContext.triggerNode?.focus();\n // prevent the dropdown from reopening after the escape key has been pressed\n this.itemContext.wasEscapeClose = true;\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-labelledby\": this.itemContext.triggerId,\n \"data-motion\": this.motionAttribute ?? undefined,\n \"data-orientation\": this.context.opts.orientation.current,\n \"data-state\": getDataOpenClosed(this.context.opts.value.current === this.itemContext.opts.value.current),\n onkeydown: this.onkeydown,\n [navigationMenuAttrs.content]: \"\",\n ...this.attachment,\n }));\n}\nexport class NavigationMenuViewportState {\n static create(opts) {\n return new NavigationMenuViewportState(opts, NavigationMenuProviderContext.get());\n }\n opts;\n context;\n attachment;\n open = $derived.by(() => !!this.context.opts.value.current);\n viewportWidth = $derived.by(() => (this.size ? `${this.size.width}px` : undefined));\n viewportHeight = $derived.by(() => (this.size ? `${this.size.height}px` : undefined));\n activeContentValue = $derived.by(() => this.context.opts.value.current);\n size = $state(null);\n contentNode = $state(null);\n mounted = $state(false);\n constructor(opts, context) {\n this.opts = opts;\n this.context = context;\n this.attachment = attachRef(this.opts.ref, (v) => (this.context.viewportRef.current = v));\n watch([() => this.activeContentValue, () => this.open], () => {\n afterTick(() => {\n const currNode = this.context.viewportRef.current;\n if (!currNode)\n return;\n const el = currNode.querySelector(\"[data-state=open]\")\n ?.children?.[0] ?? null;\n this.contentNode = el;\n });\n });\n /**\n * Update viewport size to match the active content node.\n * We prefer offset dimensions over `getBoundingClientRect` as the latter respects CSS transform.\n * For example, if content animates in from `scale(0.5)` the dimensions would be anything\n * from `0.5` to `1` of the intended size.\n */\n new SvelteResizeObserver(() => this.contentNode, () => {\n if (this.contentNode) {\n this.size = {\n width: this.contentNode.offsetWidth,\n height: this.contentNode.offsetHeight,\n };\n }\n });\n // reset size when viewport closes to prevent residual size animations\n watch(() => this.mounted, () => {\n if (!this.mounted && this.size) {\n this.size = null;\n }\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-state\": getDataOpenClosed(this.open),\n \"data-orientation\": this.context.opts.orientation.current,\n style: {\n pointerEvents: !this.open && this.context.opts.isRootMenu ? \"none\" : undefined,\n \"--bits-navigation-menu-viewport-width\": this.viewportWidth,\n \"--bits-navigation-menu-viewport-height\": this.viewportHeight,\n },\n [navigationMenuAttrs.viewport]: \"\",\n onpointerenter: this.context.onContentEnter,\n onpointerleave: this.context.onContentLeave,\n ...this.attachment,\n }));\n}\n//\nfunction focusFirst(candidates, getActiveElement) {\n const previouslyFocusedElement = getActiveElement();\n return candidates.some((candidate) => {\n // if focus is already where we want to go, we don't want to keep going through the candidates\n if (candidate === previouslyFocusedElement)\n return true;\n candidate.focus();\n return getActiveElement() !== previouslyFocusedElement;\n });\n}\nfunction removeFromTabOrder(candidates) {\n candidates.forEach((candidate) => {\n candidate.dataset.tabindex = candidate.getAttribute(\"tabindex\") || \"\";\n candidate.setAttribute(\"tabindex\", \"-1\");\n });\n return () => {\n candidates.forEach((candidate) => {\n const prevTabIndex = candidate.dataset.tabindex;\n candidate.setAttribute(\"tabindex\", prevTabIndex);\n });\n };\n}\nfunction whenMouse(handler) {\n return (e) => (e.pointerType === \"mouse\" ? handler(e) : undefined);\n}\n/**\n *\n * We apply the `aria-hidden` attribute to elements that should not be visible to screen readers\n * under specific circumstances, mostly when in a \"modal\" context or when they are strictly for\n * utility purposes, like the focus guards.\n *\n * When these elements receive focus before we can remove the aria-hidden attribute, we need to\n * handle the focus in a way that does not cause an error to be logged.\n *\n * This function handles the focus of the guard element first by momentary removing the\n * `aria-hidden` attribute, focusing the guard (which will cause something else to focus), and then\n * restoring the attribute.\n */\nfunction handleProxyFocus(guard, focusOptions) {\n if (!guard)\n return;\n const ariaHidden = guard.getAttribute(\"aria-hidden\");\n guard.removeAttribute(\"aria-hidden\");\n guard.focus(focusOptions);\n afterSleep(0, () => {\n if (ariaHidden === null) {\n guard.setAttribute(\"aria-hidden\", \"\");\n }\n else {\n guard.setAttribute(\"aria-hidden\", ariaHidden);\n }\n });\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { NavigationMenuRootProps } from \"../types.js\";\n\timport { NavigationMenuRootState } from \"../navigation-menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(\"\"),\n\t\tonValueChange = noop,\n\t\tdelayDuration = 200,\n\t\tskipDelayDuration = 300,\n\t\tdir = \"ltr\",\n\t\torientation = \"horizontal\",\n\t\t...restProps\n\t}: NavigationMenuRootProps = $props();\n\n\tconst rootState = NavigationMenuRootState.create({\n\t\tid: boxWith(() => id),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tdelayDuration: boxWith(() => delayDuration),\n\t\tskipDelayDuration: boxWith(() => skipDelayDuration),\n\t\tdir: boxWith(() => dir),\n\t\torientation: boxWith(() => orientation),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps({ \"aria-label\": \"main\" }, restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<nav {...mergedProps}>\n\t\t{@render children?.()}\n\t</nav>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { untrack, type Snippet } from \"svelte\";\n\timport type { NavigationMenuContentProps } from \"../types.js\";\n\timport {\n\t\tNavigationMenuItemContext,\n\t\tNavigationMenuItemState,\n\t\tNavigationMenuContentImplState,\n\t} from \"../navigation-menu.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport DismissibleLayer from \"../../utilities/dismissible-layer/dismissible-layer.svelte\";\n\timport EscapeLayer from \"../../utilities/escape-layer/escape-layer.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tchild: childProp,\n\t\tchildren: childrenProp,\n\t\tonInteractOutside = noop,\n\t\tonFocusOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tescapeKeydownBehavior = \"close\",\n\t\tinteractOutsideBehavior = \"close\",\n\t\titemState,\n\t\tonRefChange,\n\t\t...restProps\n\t}: Omit<NavigationMenuContentProps, \"child\"> & {\n\t\titemState?: NavigationMenuItemState;\n\t\tonRefChange?: (ref: HTMLElement | null) => void;\n\t\tchild?: Snippet<[{ props: Record<string, unknown> }]>;\n\t} = $props();\n\n\tconst contentImplState = NavigationMenuContentImplState.create(\n\t\t{\n\t\t\tid: boxWith(() => id),\n\t\t\tref: boxWith(\n\t\t\t\t() => ref,\n\t\t\t\t(v) => {\n\t\t\t\t\tref = v;\n\t\t\t\t\tuntrack(() => onRefChange?.(v));\n\t\t\t\t}\n\t\t\t),\n\t\t},\n\t\titemState\n\t);\n\n\tif (itemState) {\n\t\tNavigationMenuItemContext.set(itemState);\n\t}\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentImplState.props));\n</script>\n\n<DismissibleLayer\n\t{id}\n\tref={contentImplState.opts.ref}\n\tenabled={true}\n\tonInteractOutside={(e) => {\n\t\tonInteractOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentImplState.onInteractOutside(e);\n\t}}\n\tonFocusOutside={(e) => {\n\t\tonFocusOutside(e);\n\t\tif (e.defaultPrevented) return;\n\t\tcontentImplState.onFocusOutside(e);\n\t}}\n\t{interactOutsideBehavior}\n>\n\t{#snippet children({ props: dismissibleProps })}\n\t\t<EscapeLayer\n\t\t\tenabled={true}\n\t\t\tref={contentImplState.opts.ref}\n\t\t\tonEscapeKeydown={(e) => {\n\t\t\t\tonEscapeKeydown(e);\n\t\t\t\tif (e.defaultPrevented) return;\n\t\t\t\tcontentImplState.onEscapeKeydown(e);\n\t\t\t}}\n\t\t\t{escapeKeydownBehavior}\n\t\t>\n\t\t\t{@const finalProps = mergeProps(mergedProps, dismissibleProps)}\n\t\t\t{#if childProp}\n\t\t\t\t{@render childProp({ props: finalProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render childrenProp?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t</EscapeLayer>\n\t{/snippet}\n</DismissibleLayer>\n", "import { simpleBox } from \"svelte-toolbelt\";\nexport class StateMachine {\n state;\n #machine;\n constructor(initialState, machine) {\n this.state = simpleBox(initialState);\n this.#machine = machine;\n this.dispatch = this.dispatch.bind(this);\n }\n #reducer(event) {\n // @ts-expect-error state.current is keyof M\n const nextState = this.#machine[this.state.current][event];\n return nextState ?? this.state.current;\n }\n dispatch(event) {\n this.state.current = this.#reducer(event);\n }\n}\n", "import { executeCallbacks } from \"svelte-toolbelt\";\nimport { Previous, watch } from \"runed\";\nimport { on } from \"svelte/events\";\nimport { StateMachine } from \"../../../internal/state-machine.js\";\n/**\n * Cache for animation names with TTL to reduce getComputedStyle calls.\n * Uses WeakMap to avoid memory leaks when elements are removed.\n */\nconst animationNameCache = new WeakMap();\nconst ANIMATION_NAME_CACHE_TTL_MS = 16; // One frame at 60fps\nconst presenceMachine = {\n mounted: {\n UNMOUNT: \"unmounted\",\n ANIMATION_OUT: \"unmountSuspended\",\n },\n unmountSuspended: {\n MOUNT: \"mounted\",\n ANIMATION_END: \"unmounted\",\n },\n unmounted: {\n MOUNT: \"mounted\",\n },\n};\nexport class Presence {\n opts;\n prevAnimationNameState = $state(\"none\");\n styles = $state({ display: \"\", animationName: \"none\" });\n initialStatus;\n previousPresent;\n machine;\n present;\n constructor(opts) {\n this.opts = opts;\n this.present = this.opts.open;\n this.initialStatus = opts.open.current ? \"mounted\" : \"unmounted\";\n this.previousPresent = new Previous(() => this.present.current);\n this.machine = new StateMachine(this.initialStatus, presenceMachine);\n this.handleAnimationEnd = this.handleAnimationEnd.bind(this);\n this.handleAnimationStart = this.handleAnimationStart.bind(this);\n watchPresenceChange(this);\n watchStatusChange(this);\n watchRefChange(this);\n }\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n handleAnimationEnd(event) {\n if (!this.opts.ref.current)\n return;\n // Use cached animation name from styles when available to avoid getComputedStyle\n const currAnimationName = this.styles.animationName || getAnimationName(this.opts.ref.current);\n const isCurrentAnimation = currAnimationName.includes(event.animationName) || currAnimationName === \"none\";\n if (event.target === this.opts.ref.current && isCurrentAnimation) {\n this.machine.dispatch(\"ANIMATION_END\");\n }\n }\n handleAnimationStart(event) {\n if (!this.opts.ref.current)\n return;\n if (event.target === this.opts.ref.current) {\n // Force refresh cache on animation start to get accurate animation name\n const animationName = getAnimationName(this.opts.ref.current, true);\n this.prevAnimationNameState = animationName;\n // Update styles cache for subsequent reads\n this.styles.animationName = animationName;\n }\n }\n isPresent = $derived.by(() => {\n return [\"mounted\", \"unmountSuspended\"].includes(this.machine.state.current);\n });\n}\nfunction watchPresenceChange(state) {\n watch(() => state.present.current, () => {\n if (!state.opts.ref.current)\n return;\n const hasPresentChanged = state.present.current !== state.previousPresent.current;\n if (!hasPresentChanged)\n return;\n const prevAnimationName = state.prevAnimationNameState;\n // Force refresh on state change to get accurate current animation\n const currAnimationName = getAnimationName(state.opts.ref.current, true);\n // Update styles cache for subsequent reads\n state.styles.animationName = currAnimationName;\n if (state.present.current) {\n state.machine.dispatch(\"MOUNT\");\n }\n else if (currAnimationName === \"none\" || state.styles.display === \"none\") {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n state.machine.dispatch(\"UNMOUNT\");\n }\n else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currAnimationName;\n if (state.previousPresent.current && isAnimating) {\n state.machine.dispatch(\"ANIMATION_OUT\");\n }\n else {\n state.machine.dispatch(\"UNMOUNT\");\n }\n }\n });\n}\nfunction watchStatusChange(state) {\n watch(() => state.machine.state.current, () => {\n if (!state.opts.ref.current)\n return;\n // Use cached animation name first, only force refresh if needed for mounted state\n const currAnimationName = state.machine.state.current === \"mounted\"\n ? getAnimationName(state.opts.ref.current, true)\n : \"none\";\n state.prevAnimationNameState = currAnimationName;\n // Update styles cache\n state.styles.animationName = currAnimationName;\n });\n}\nfunction watchRefChange(state) {\n watch(() => state.opts.ref.current, () => {\n if (!state.opts.ref.current)\n return;\n // Snapshot only needed style properties instead of storing live CSSStyleDeclaration\n // This avoids triggering style recalculations when accessing the cached object\n const computed = getComputedStyle(state.opts.ref.current);\n state.styles = {\n display: computed.display,\n animationName: computed.animationName || \"none\",\n };\n return executeCallbacks(on(state.opts.ref.current, \"animationstart\", state.handleAnimationStart), on(state.opts.ref.current, \"animationcancel\", state.handleAnimationEnd), on(state.opts.ref.current, \"animationend\", state.handleAnimationEnd));\n });\n}\n/**\n * Gets the animation name from computed styles with optional caching.\n *\n * @param node - The HTML element to get animation name from\n * @param forceRefresh - If true, bypasses the cache and forces a fresh getComputedStyle call\n * @returns The animation name or \"none\" if not animating\n */\nfunction getAnimationName(node, forceRefresh = false) {\n if (!node)\n return \"none\";\n const now = performance.now();\n const cached = animationNameCache.get(node);\n // Return cached value if still valid and not forced to refresh\n if (!forceRefresh && cached && now - cached.timestamp < ANIMATION_NAME_CACHE_TTL_MS) {\n return cached.value;\n }\n // Compute and cache the new value\n const value = getComputedStyle(node).animationName || \"none\";\n animationNameCache.set(node, { value, timestamp: now });\n return value;\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { PresenceLayerImplProps } from \"./types.js\";\n\timport { Presence } from \"./presence.svelte.js\";\n\n\tlet { open, forceMount, presence, ref }: PresenceLayerImplProps = $props();\n\n\tconst presenceState = new Presence({\n\t\topen: boxWith(() => open),\n\t\tref,\n\t});\n</script>\n\n{#if forceMount || open || presenceState.isPresent}\n\t{@render presence?.({ present: presenceState.isPresent })}\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { NavigationMenuContentState } from \"../navigation-menu.svelte.js\";\n\timport NavigationMenuContentImpl from \"./navigation-menu-content-impl.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport type { NavigationMenuContentProps } from \"../../../types.js\";\n\timport Portal from \"../../utilities/portal/portal.svelte\";\n\timport PresenceLayer from \"../../utilities/presence-layer/presence-layer.svelte\";\n\timport Mounted from \"../../utilities/mounted.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tchildren,\n\t\tchild,\n\t\tforceMount = false,\n\t\t...restProps\n\t}: NavigationMenuContentProps = $props();\n\n\tconst contentState = NavigationMenuContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n<Portal\n\tto={contentState.context.viewportRef.current || undefined}\n\tdisabled={!contentState.context.viewportRef.current}\n>\n\t<PresenceLayer\n\t\topen={forceMount || contentState.open || contentState.isLastActiveValue}\n\t\tref={contentState.opts.ref}\n\t>\n\t\t{#snippet presence()}\n\t\t\t<NavigationMenuContentImpl {...mergedProps} {children} {child} />\n\t\t\t<Mounted bind:mounted={contentState.mounted} />\n\t\t{/snippet}\n\t</PresenceLayer>\n</Portal>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { NavigationMenuIndicatorProps } from \"../types.js\";\n\timport { NavigationMenuIndicatorImplState } from \"../navigation-menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: NavigationMenuIndicatorProps = $props();\n\n\tconst indicatorState = NavigationMenuIndicatorImplState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, indicatorState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { NavigationMenuIndicatorProps } from \"../types.js\";\n\timport { NavigationMenuIndicatorState } from \"../navigation-menu.svelte.js\";\n\timport NavigationMenuIndicatorImpl from \"./navigation-menu-indicator-impl.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport PresenceLayer from \"../../utilities/presence-layer/presence-layer.svelte\";\n\timport Portal from \"../../utilities/portal/portal.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\tforceMount = false,\n\t\t...restProps\n\t}: NavigationMenuIndicatorProps = $props();\n\n\tconst indicatorState = NavigationMenuIndicatorState.create();\n\tconst mergedProps = $derived(mergeProps(restProps));\n</script>\n\n{#if indicatorState.context.indicatorTrackRef.current}\n\t<Portal to={indicatorState.context.indicatorTrackRef.current}>\n\t\t<PresenceLayer open={forceMount || indicatorState.isVisible} ref={boxWith(() => ref)}>\n\t\t\t{#snippet presence()}\n\t\t\t\t<NavigationMenuIndicatorImpl {...mergedProps} {children} {child} {id} bind:ref />\n\t\t\t{/snippet}\n\t\t</PresenceLayer>\n\t</Portal>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { NavigationMenuItemProps } from \"../types.js\";\n\timport { NavigationMenuItemState } from \"../navigation-menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\tconst defaultId = createId(uid);\n\n\tlet {\n\t\tid = defaultId,\n\t\tvalue = defaultId,\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\topenOnHover = true,\n\t\t...restProps\n\t}: NavigationMenuItemProps = $props();\n\n\tconst itemState = NavigationMenuItemState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tvalue: boxWith(() => value),\n\t\topenOnHover: boxWith(() => openOnHover),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, itemState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<li {...mergedProps}>\n\t\t{@render children?.()}\n\t</li>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { NavigationMenuLinkProps } from \"../types.js\";\n\timport { NavigationMenuLinkState } from \"../navigation-menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\tactive = false,\n\t\tonSelect = noop,\n\t\ttabindex = 0,\n\t\t...restProps\n\t}: NavigationMenuLinkProps = $props();\n\n\tconst linkState = NavigationMenuLinkState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tactive: boxWith(() => active),\n\t\tonSelect: boxWith(() => onSelect),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, linkState.props, { tabindex }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<a {...mergedProps}>\n\t\t{@render children?.()}\n\t</a>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { NavigationMenuListProps } from \"../types.js\";\n\timport { NavigationMenuListState } from \"../navigation-menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport Mounted from \"../../utilities/mounted.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: NavigationMenuListProps = $props();\n\n\tconst listState = NavigationMenuListState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, listState.props));\n\tconst wrapperProps = $derived(mergeProps(listState.wrapperProps));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, wrapperProps })}\n\t<Mounted bind:mounted={listState.wrapperMounted} />\n{:else}\n\t<div {...wrapperProps}>\n\t\t<ul {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</ul>\n\t</div>\n\t<Mounted bind:mounted={listState.wrapperMounted} />\n{/if}\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { VisuallyHiddenProps } from \"./types.js\";\n\timport type { StyleProperties } from \"../../../shared/index.js\";\n\n\tlet { children, child, ...restProps }: VisuallyHiddenProps = $props();\n\n\tconst style: StyleProperties = {\n\t\tposition: \"absolute\",\n\t\tborder: 0,\n\t\twidth: \"1px\",\n\t\tdisplay: \"inline-block\",\n\t\theight: \"1px\",\n\t\tpadding: 0,\n\t\tmargin: \"-1px\",\n\t\toverflow: \"hidden\",\n\t\tclip: \"rect(0 0 0 0)\",\n\t\twhiteSpace: \"nowrap\",\n\t\twordWrap: \"normal\",\n\t};\n\n\tconst mergedProps = $derived(mergeProps(restProps, { style }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.()}\n\t</span>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { NavigationMenuTriggerProps } from \"../types.js\";\n\timport { NavigationMenuTriggerState } from \"../navigation-menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport VisuallyHidden from \"../../utilities/visually-hidden/visually-hidden.svelte\";\n\timport Mounted from \"../../utilities/mounted.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tdisabled = false,\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\ttabindex = 0,\n\t\t...restProps\n\t}: NavigationMenuTriggerProps = $props();\n\n\tconst triggerState = NavigationMenuTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props, { tabindex }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n\n{#if triggerState.open}\n\t<VisuallyHidden {...triggerState.focusProxyProps} />\n\t<Mounted bind:mounted={triggerState.focusProxyMounted} />\n\t{#if triggerState.context.viewportRef.current}\n\t\t<span aria-owns={triggerState.itemContext.contentId ?? undefined}></span>\n\t{/if}\n{/if}\n", "<script lang=\"ts\">\n\timport type { NavigationMenuViewportProps } from \"../types.js\";\n\timport { NavigationMenuViewportState } from \"../navigation-menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport PresenceLayer from \"../../utilities/presence-layer/presence-layer.svelte\";\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { Mounted } from \"../../utilities/index.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tforceMount = false,\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: NavigationMenuViewportProps = $props();\n\n\tconst viewportState = NavigationMenuViewportState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, viewportState.props));\n</script>\n\n<PresenceLayer open={forceMount || viewportState.open} ref={viewportState.opts.ref}>\n\t{#snippet presence()}\n\t\t{#if child}\n\t\t\t{@render child({ props: mergedProps })}\n\t\t{:else}\n\t\t\t<div {...mergedProps}>\n\t\t\t\t{@render children?.()}\n\t\t\t</div>\n\t\t{/if}\n\t\t<Mounted bind:mounted={viewportState.mounted} />\n\t{/snippet}\n</PresenceLayer>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { NavigationMenuSubProps } from \"../types.js\";\n\timport { NavigationMenuSubState } from \"../navigation-menu.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(\"\"),\n\t\tonValueChange = noop,\n\t\torientation = \"horizontal\",\n\t\t...restProps\n\t}: NavigationMenuSubProps = $props();\n\n\tconst rootState = NavigationMenuSubState.create({\n\t\tid: boxWith(() => id),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\torientation: boxWith(() => orientation),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/pagination.svelte\";\nexport { default as PrevButton } from \"./components/pagination-prev-button.svelte\";\nexport { default as NextButton } from \"./components/pagination-next-button.svelte\";\nexport { default as Page } from \"./components/pagination-page.svelte\";\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { Context } from \"runed\";\nimport { createBitsAttrs } from \"../../internal/attrs.js\";\nimport { getElemDirection } from \"../../internal/locale.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { getDirectionalKeys } from \"../../internal/get-directional-keys.js\";\nimport { useId } from \"../../shared/index.js\";\nconst paginationAttrs = createBitsAttrs({\n component: \"pagination\",\n parts: [\"root\", \"page\", \"prev\", \"next\"],\n});\nconst PaginationRootContext = new Context(\"Pagination.Root\");\nexport class PaginationRootState {\n static create(opts) {\n return PaginationRootContext.set(new PaginationRootState(opts));\n }\n opts;\n attachment;\n totalPages = $derived.by(() => {\n if (this.opts.count.current === 0)\n return 1;\n return Math.ceil(this.opts.count.current / this.opts.perPage.current);\n });\n range = $derived.by(() => {\n const start = (this.opts.page.current - 1) * this.opts.perPage.current;\n const end = Math.min(start + this.opts.perPage.current, this.opts.count.current);\n return { start: start + 1, end };\n });\n pages = $derived.by(() => getPageItems({\n page: this.opts.page.current,\n totalPages: this.totalPages,\n siblingCount: this.opts.siblingCount.current,\n }));\n hasPrevPage = $derived.by(() => this.opts.page.current > 1);\n hasNextPage = $derived.by(() => this.opts.page.current < this.totalPages);\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n }\n setPage(page) {\n this.opts.page.current = page;\n }\n getPageTriggerNodes() {\n const node = this.opts.ref.current;\n if (!node)\n return [];\n return Array.from(node.querySelectorAll(\"[data-pagination-page]\"));\n }\n getButtonNode(type) {\n const node = this.opts.ref.current;\n if (!node)\n return;\n return node.querySelector(paginationAttrs.selector(type));\n }\n prevPage() {\n this.opts.page.current = Math.max(this.opts.page.current - 1, 1);\n }\n nextPage() {\n this.opts.page.current = Math.min(this.opts.page.current + 1, this.totalPages);\n }\n snippetProps = $derived.by(() => ({\n pages: this.pages,\n range: this.range,\n currentPage: this.opts.page.current,\n }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-orientation\": this.opts.orientation.current,\n [paginationAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nexport class PaginationPageState {\n static create(opts) {\n return new PaginationPageState(opts, PaginationRootContext.get());\n }\n opts;\n root;\n attachment;\n #isSelected = $derived.by(() => this.opts.page.current.value === this.root.opts.page.current);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n onclick(e) {\n if (this.opts.disabled.current)\n return;\n if (e.button !== 0)\n return;\n this.root.setPage(this.opts.page.current.value);\n }\n onkeydown(e) {\n if (e.key === kbd.SPACE || e.key === kbd.ENTER) {\n e.preventDefault();\n this.root.setPage(this.opts.page.current.value);\n }\n else {\n handleTriggerKeydown(e, this.opts.ref.current, this.root);\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-label\": `Page ${this.opts.page.current.value}`,\n \"data-value\": `${this.opts.page.current.value}`,\n \"data-selected\": this.#isSelected ? \"\" : undefined,\n [paginationAttrs.page]: \"\",\n //\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class PaginationButtonState {\n static create(opts) {\n return new PaginationButtonState(opts, PaginationRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n #action() {\n this.opts.type === \"prev\" ? this.root.prevPage() : this.root.nextPage();\n }\n #isDisabled = $derived.by(() => {\n if (this.opts.disabled.current)\n return true;\n if (this.opts.type === \"prev\")\n return !this.root.hasPrevPage;\n if (this.opts.type === \"next\")\n return !this.root.hasNextPage;\n return false;\n });\n onclick(e) {\n if (this.opts.disabled.current)\n return;\n if (e.button !== 0)\n return;\n this.#action();\n }\n onkeydown(e) {\n if (e.key === kbd.SPACE || e.key === kbd.ENTER) {\n e.preventDefault();\n this.#action();\n }\n else {\n handleTriggerKeydown(e, this.opts.ref.current, this.root);\n }\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [paginationAttrs[this.opts.type]]: \"\",\n disabled: this.#isDisabled,\n //\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\n//\n// HELPERS\n//\n/**\n * Shared logic for handling keyboard navigation on\n * pagination page triggers and prev/next buttons.\n *\n *\n * @param e - KeyboardEvent\n * @param node - The HTMLElement that triggered the event.\n * @param root - The root pagination state instance\n */\nfunction handleTriggerKeydown(e, node, root) {\n if (!node || !root.opts.ref.current)\n return;\n const items = root.getPageTriggerNodes();\n const nextButton = root.getButtonNode(\"next\");\n const prevButton = root.getButtonNode(\"prev\");\n if (prevButton) {\n items.unshift(prevButton);\n }\n if (nextButton) {\n items.push(nextButton);\n }\n const currentIndex = items.indexOf(node);\n const dir = getElemDirection(root.opts.ref.current);\n const { nextKey, prevKey } = getDirectionalKeys(dir, root.opts.orientation.current);\n const loop = root.opts.loop.current;\n const keyToIndex = {\n [nextKey]: currentIndex + 1,\n [prevKey]: currentIndex - 1,\n [kbd.HOME]: 0,\n [kbd.END]: items.length - 1,\n };\n let itemIndex = keyToIndex[e.key];\n if (itemIndex === undefined)\n return;\n e.preventDefault();\n if (itemIndex < 0 && loop) {\n itemIndex = items.length - 1;\n }\n else if (itemIndex === items.length && loop) {\n itemIndex = 0;\n }\n const itemToFocus = items[itemIndex];\n if (!itemToFocus)\n return;\n itemToFocus.focus();\n}\n/**\n * Returns an array of page items used to render out the\n * pagination page triggers.\n *\n * Credit: https://github.com/melt-ui/melt-ui\n */\nfunction getPageItems({ page = 1, totalPages, siblingCount = 1 }) {\n const pageItems = [];\n const pagesToShow = new Set([1, totalPages]);\n const firstItemWithSiblings = 3 + siblingCount;\n const lastItemWithSiblings = totalPages - 2 - siblingCount;\n if (firstItemWithSiblings > lastItemWithSiblings) {\n for (let i = 2; i <= totalPages - 1; i++) {\n pagesToShow.add(i);\n }\n }\n else if (page < firstItemWithSiblings) {\n for (let i = 2; i <= Math.min(firstItemWithSiblings, totalPages); i++) {\n pagesToShow.add(i);\n }\n }\n else if (page > lastItemWithSiblings) {\n for (let i = totalPages - 1; i >= Math.max(lastItemWithSiblings, 2); i--) {\n pagesToShow.add(i);\n }\n }\n else {\n for (let i = Math.max(page - siblingCount, 2); i <= Math.min(page + siblingCount, totalPages); i++) {\n pagesToShow.add(i);\n }\n }\n function addPage(value) {\n pageItems.push({ type: \"page\", value, key: `page-${value}` });\n }\n function addEllipsis() {\n const id = useId();\n pageItems.push({ type: \"ellipsis\", key: `ellipsis-${id}` });\n }\n let lastNumber = 0;\n for (const p of Array.from(pagesToShow).sort((a, b) => a - b)) {\n if (p - lastNumber > 1) {\n addEllipsis();\n }\n addPage(p);\n lastNumber = p;\n }\n return pageItems;\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PaginationRootProps } from \"../types.js\";\n\timport { PaginationRootState } from \"../pagination.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tcount,\n\t\tperPage = 1,\n\t\tpage = $bindable(1),\n\t\tref = $bindable(null),\n\t\tsiblingCount = 1,\n\t\tonPageChange = noop,\n\t\tloop = false,\n\t\torientation = \"horizontal\",\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: PaginationRootProps = $props();\n\n\tconst rootState = PaginationRootState.create({\n\t\tid: boxWith(() => id),\n\t\tcount: boxWith(() => count),\n\t\tperPage: boxWith(() => perPage),\n\t\tpage: boxWith(\n\t\t\t() => page,\n\t\t\t(v) => {\n\t\t\t\tpage = v;\n\t\t\t\tonPageChange?.(v);\n\t\t\t}\n\t\t),\n\t\tloop: boxWith(() => loop),\n\t\tsiblingCount: boxWith(() => siblingCount),\n\t\torientation: boxWith(() => orientation),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...rootState.snippetProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.(rootState.snippetProps)}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PaginationPrevButtonProps } from \"../types.js\";\n\timport { PaginationButtonState } from \"../pagination.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\ttype = \"button\",\n\t\tdisabled = false,\n\t\t...restProps\n\t}: PaginationPrevButtonProps = $props();\n\n\tconst prevButtonState = PaginationButtonState.create({\n\t\ttype: \"prev\",\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, prevButtonState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PaginationNextButtonProps } from \"../types.js\";\n\timport { PaginationButtonState } from \"../pagination.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\ttype = \"button\",\n\t\tdisabled = false,\n\t\t...restProps\n\t}: PaginationNextButtonProps = $props();\n\n\tconst nextButtonState = PaginationButtonState.create({\n\t\ttype: \"next\",\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, nextButtonState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PaginationPageProps } from \"../types.js\";\n\timport { PaginationPageState } from \"../pagination.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tpage,\n\t\tchild,\n\t\tchildren,\n\t\ttype = \"button\",\n\t\tref = $bindable(null),\n\t\tdisabled = false,\n\t\t...restProps\n\t}: PaginationPageProps = $props();\n\n\tconst pageState = PaginationPageState.create({\n\t\tid: boxWith(() => id),\n\t\tpage: boxWith(() => page),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, pageState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{#if children}\n\t\t\t{@render children?.()}\n\t\t{:else}\n\t\t\t{page.value}\n\t\t{/if}\n\t</button>\n{/if}\n", "export { default as Root } from \"./components/pin-input.svelte\";\nexport { default as Cell } from \"./components/pin-input-cell.svelte\";\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PinInputRootProps } from \"../types.js\";\n\timport { PinInputRootState } from \"../pin-input.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tinputId = `${createId(uid)}-input`,\n\t\tref = $bindable(null),\n\t\tmaxlength = 6,\n\t\ttextalign = \"left\",\n\t\tpattern,\n\t\tinputmode = \"numeric\",\n\t\tonComplete = noop,\n\t\tpushPasswordManagerStrategy = \"increase-width\",\n\t\tclass: containerClass = \"\",\n\t\tchildren,\n\t\tautocomplete = \"one-time-code\",\n\t\tdisabled = false,\n\t\tvalue = $bindable(\"\"),\n\t\tonValueChange = noop,\n\t\tpasteTransformer,\n\t\t...restProps\n\t}: PinInputRootProps = $props();\n\n\tconst rootState = PinInputRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tinputId: boxWith(() => inputId),\n\t\tautocomplete: boxWith(() => autocomplete),\n\t\tmaxLength: boxWith(() => maxlength),\n\t\ttextAlign: boxWith(() => textalign),\n\t\tdisabled: boxWith(() => disabled),\n\t\tinputmode: boxWith(() => inputmode),\n\t\tpattern: boxWith(() => pattern),\n\t\tonComplete: boxWith(() => onComplete),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tpushPasswordManagerStrategy: boxWith(() => pushPasswordManagerStrategy),\n\t\tpasteTransformer: boxWith(() => pasteTransformer),\n\t});\n\n\tconst mergedInputProps = $derived(mergeProps(restProps, rootState.inputProps));\n\tconst mergedRootProps = $derived(mergeProps(rootState.rootProps, { class: containerClass }));\n\tconst mergedInputWrapperProps = $derived(mergeProps(rootState.inputWrapperProps, {}));\n</script>\n\n<div {...mergedRootProps}>\n\t{@render children?.(rootState.snippetProps)}\n\n\t<div {...mergedInputWrapperProps}>\n\t\t<input {...mergedInputProps} />\n\t</div>\n</div>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { PinInputCellProps } from \"../types.js\";\n\timport { PinInputCellState } from \"../pin-input.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tcell,\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: PinInputCellProps = $props();\n\n\tconst cellState = PinInputCellState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tcell: boxWith(() => cell),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, cellState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/popover.svelte\";\nexport { default as Arrow } from \"./components/popover-arrow.svelte\";\nexport { default as Content } from \"./components/popover-content.svelte\";\nexport { default as ContentStatic } from \"./components/popover-content-static.svelte\";\nexport { default as Trigger } from \"./components/popover-trigger.svelte\";\nexport { default as Close } from \"./components/popover-close.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\nexport { default as Overlay } from \"./components/popover-overlay.svelte\";\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { PopoverRootProps } from \"../types.js\";\n\timport { PopoverRootState } from \"../popover.svelte.js\";\n\timport FloatingLayer from \"../../utilities/floating-layer/components/floating-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tlet {\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tchildren,\n\t}: PopoverRootProps = $props();\n\n\tPopoverRootState.create({\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n</script>\n\n<FloatingLayer>\n\t{@render children?.()}\n</FloatingLayer>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { PopoverOverlayState } from \"../popover.svelte.js\";\n\timport type { PopoverOverlayProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tforceMount = false,\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: PopoverOverlayProps = $props();\n\n\tconst overlayState = PopoverOverlayState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, overlayState.props));\n</script>\n\n{#if overlayState.shouldRender || forceMount}\n\t{#if child}\n\t\t{@render child({ props: mergeProps(mergedProps), ...overlayState.snippetProps })}\n\t{:else}\n\t\t<div {...mergeProps(mergedProps)}>\n\t\t\t{@render children?.(overlayState.snippetProps)}\n\t\t</div>\n\t{/if}\n{/if}\n", "export { default as Root } from \"./components/progress.svelte\";\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { createBitsAttrs } from \"../../internal/attrs.js\";\nconst progressAttrs = createBitsAttrs({\n component: \"progress\",\n parts: [\"root\"],\n});\nexport class ProgressRootState {\n static create(opts) {\n return new ProgressRootState(opts);\n }\n opts;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n role: \"progressbar\",\n value: this.opts.value.current,\n \"aria-valuemin\": this.opts.min.current,\n \"aria-valuemax\": this.opts.max.current,\n \"aria-valuenow\": this.opts.value.current === null ? undefined : this.opts.value.current,\n \"data-value\": this.opts.value.current === null ? undefined : this.opts.value.current,\n \"data-state\": getProgressDataState(this.opts.value.current, this.opts.max.current),\n \"data-max\": this.opts.max.current,\n \"data-min\": this.opts.min.current,\n \"data-indeterminate\": this.opts.value.current === null ? \"\" : undefined,\n [progressAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nfunction getProgressDataState(value, max) {\n if (value === null)\n return \"indeterminate\";\n return value === max ? \"loaded\" : \"loading\";\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ProgressRootProps } from \"../types.js\";\n\timport { ProgressRootState } from \"../progress.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tvalue = 0,\n\t\tmax = 100,\n\t\tmin = 0,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: ProgressRootProps = $props();\n\n\tconst rootState = ProgressRootState.create({\n\t\tvalue: boxWith(() => value),\n\t\tmax: boxWith(() => max),\n\t\tmin: boxWith(() => min),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/radio-group.svelte\";\nexport { default as Item } from \"./components/radio-group-item.svelte\";\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { createBitsAttrs, getAriaChecked, boolToEmptyStrOrUndef, boolToStr, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { RovingFocusGroup } from \"../../internal/roving-focus-group.js\";\nconst radioGroupAttrs = createBitsAttrs({\n component: \"radio-group\",\n parts: [\"root\", \"item\"],\n});\nconst RadioGroupRootContext = new Context(\"RadioGroup.Root\");\nexport class RadioGroupRootState {\n static create(opts) {\n return RadioGroupRootContext.set(new RadioGroupRootState(opts));\n }\n opts;\n hasValue = $derived.by(() => this.opts.value.current !== \"\");\n rovingFocusGroup;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.rovingFocusGroup = new RovingFocusGroup({\n rootNode: this.opts.ref,\n candidateAttr: radioGroupAttrs.item,\n loop: this.opts.loop,\n orientation: this.opts.orientation,\n });\n }\n isChecked(value) {\n return this.opts.value.current === value;\n }\n setValue(value) {\n this.opts.value.current = value;\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"radiogroup\",\n \"aria-required\": boolToStr(this.opts.required.current),\n \"aria-disabled\": boolToStr(this.opts.disabled.current),\n \"aria-readonly\": this.opts.readonly.current ? \"true\" : undefined,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.opts.readonly.current),\n \"data-orientation\": this.opts.orientation.current,\n [radioGroupAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nexport class RadioGroupItemState {\n static create(opts) {\n return new RadioGroupItemState(opts, RadioGroupRootContext.get());\n }\n opts;\n root;\n attachment;\n checked = $derived.by(() => this.root.opts.value.current === this.opts.value.current);\n #isDisabled = $derived.by(() => this.opts.disabled.current || this.root.opts.disabled.current);\n #isReadonly = $derived.by(() => this.root.opts.readonly.current);\n #isChecked = $derived.by(() => this.root.isChecked(this.opts.value.current));\n #tabIndex = $state(-1);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n if (this.opts.value.current === this.root.opts.value.current) {\n this.root.rovingFocusGroup.setCurrentTabStopId(this.opts.id.current);\n this.#tabIndex = 0;\n }\n else if (!this.root.opts.value.current) {\n this.#tabIndex = 0;\n }\n $effect(() => {\n this.#tabIndex = this.root.rovingFocusGroup.getTabIndex(this.opts.ref.current);\n });\n watch([() => this.opts.value.current, () => this.root.opts.value.current], () => {\n if (this.opts.value.current === this.root.opts.value.current) {\n this.root.rovingFocusGroup.setCurrentTabStopId(this.opts.id.current);\n this.#tabIndex = 0;\n }\n });\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n this.onfocus = this.onfocus.bind(this);\n }\n onclick(_) {\n if (this.opts.disabled.current || this.#isReadonly)\n return;\n this.root.setValue(this.opts.value.current);\n }\n onfocus(_) {\n if (!this.root.hasValue || this.#isReadonly)\n return;\n this.root.setValue(this.opts.value.current);\n }\n onkeydown(e) {\n if (this.#isDisabled)\n return;\n if (e.key === kbd.SPACE) {\n e.preventDefault();\n if (!this.#isReadonly) {\n this.root.setValue(this.opts.value.current);\n }\n return;\n }\n this.root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e, true);\n }\n snippetProps = $derived.by(() => ({ checked: this.#isChecked }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n disabled: this.#isDisabled ? true : undefined,\n \"data-value\": this.opts.value.current,\n \"data-orientation\": this.root.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.#isDisabled),\n \"data-readonly\": boolToEmptyStrOrUndef(this.#isReadonly),\n \"data-state\": this.#isChecked ? \"checked\" : \"unchecked\",\n \"aria-checked\": getAriaChecked(this.#isChecked, false),\n [radioGroupAttrs.item]: \"\",\n type: \"button\",\n role: \"radio\",\n tabindex: this.#tabIndex,\n //\n onkeydown: this.onkeydown,\n onfocus: this.onfocus,\n onclick: this.onclick,\n ...this.attachment,\n }));\n}\nexport class RadioGroupInputState {\n static create() {\n return new RadioGroupInputState(RadioGroupRootContext.get());\n }\n root;\n shouldRender = $derived.by(() => this.root.opts.name.current !== undefined);\n constructor(root) {\n this.root = root;\n this.onfocus = this.onfocus.bind(this);\n }\n onfocus(_) {\n this.root.rovingFocusGroup.focusCurrentTabStop();\n }\n props = $derived.by(() => ({\n name: this.root.opts.name.current,\n value: this.root.opts.value.current,\n required: this.root.opts.required.current,\n disabled: this.root.opts.disabled.current,\n onfocus: this.onfocus,\n }));\n}\n", "<script lang=\"ts\">\n\timport HiddenInput from \"../../utilities/hidden-input.svelte\";\n\timport { RadioGroupInputState } from \"../radio-group.svelte.js\";\n\n\tconst inputState = RadioGroupInputState.create();\n</script>\n\n{#if inputState.shouldRender}\n\t<HiddenInput {...inputState.props} />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { RadioGroupRootProps } from \"../types.js\";\n\timport { RadioGroupRootState } from \"../radio-group.svelte.js\";\n\timport RadioGroupInput from \"./radio-group-input.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tdisabled = false,\n\t\tchildren,\n\t\tchild,\n\t\tvalue = $bindable(\"\"),\n\t\tref = $bindable(null),\n\t\torientation = \"vertical\",\n\t\tloop = true,\n\t\tname = undefined,\n\t\trequired = false,\n\t\treadonly = false,\n\t\tid = createId(uid),\n\t\tonValueChange = noop,\n\t\t...restProps\n\t}: RadioGroupRootProps = $props();\n\n\tconst rootState = RadioGroupRootState.create({\n\t\torientation: boxWith(() => orientation),\n\t\tdisabled: boxWith(() => disabled),\n\t\tloop: boxWith(() => loop),\n\t\tname: boxWith(() => name),\n\t\trequired: boxWith(() => required),\n\t\treadonly: boxWith(() => readonly),\n\t\tid: boxWith(() => id),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tif (v === value) return;\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange?.(v);\n\t\t\t}\n\t\t),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n\n<RadioGroupInput />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { RadioGroupItemProps } from \"../types.js\";\n\timport { RadioGroupItemState } from \"../radio-group.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tchildren,\n\t\tchild,\n\t\tvalue,\n\t\tdisabled = false,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: RadioGroupItemProps = $props();\n\n\tconst itemState = RadioGroupItemState.create({\n\t\tvalue: boxWith(() => value),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, itemState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...itemState.snippetProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.(itemState.snippetProps)}\n\t</button>\n{/if}\n", "export { default as Root } from \"./components/range-calendar.svelte\";\nexport { default as Day } from \"./components/range-calendar-day.svelte\";\nexport { default as Cell } from \"./components/range-calendar-cell.svelte\";\nexport { default as Grid } from \"../calendar/components/calendar-grid.svelte\";\nexport { default as GridBody } from \"../calendar/components/calendar-grid-body.svelte\";\nexport { default as GridHead } from \"../calendar/components/calendar-grid-head.svelte\";\nexport { default as HeadCell } from \"../calendar/components/calendar-head-cell.svelte\";\nexport { default as GridRow } from \"../calendar/components/calendar-grid-row.svelte\";\nexport { default as Header } from \"../calendar/components/calendar-header.svelte\";\nexport { default as Heading } from \"../calendar/components/calendar-heading.svelte\";\nexport { default as NextButton } from \"../calendar/components/calendar-next-button.svelte\";\nexport { default as PrevButton } from \"../calendar/components/calendar-prev-button.svelte\";\nexport { default as MonthSelect } from \"../calendar/components/calendar-month-select.svelte\";\nexport { default as YearSelect } from \"../calendar/components/calendar-year-select.svelte\";\n", "<script lang=\"ts\">\n\timport { watch } from \"runed\";\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { type DateValue } from \"@internationalized/date\";\n\timport type { RangeCalendarRootProps } from \"../types.js\";\n\timport { RangeCalendarRootState } from \"../range-calendar.svelte.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { getDefaultDate } from \"../../../internal/date-time/utils.js\";\n\timport { resolveLocaleProp } from \"../../utilities/config/prop-resolvers.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(),\n\t\tonValueChange = noop,\n\t\tplaceholder = $bindable(),\n\t\tonPlaceholderChange = noop,\n\t\tweekdayFormat = \"narrow\",\n\t\tweekStartsOn,\n\t\tpagedNavigation = false,\n\t\tisDateDisabled = () => false,\n\t\tisDateUnavailable = () => false,\n\t\tfixedWeeks = false,\n\t\tnumberOfMonths = 1,\n\t\tlocale,\n\t\tcalendarLabel = \"Event\",\n\t\tdisabled = false,\n\t\treadonly = false,\n\t\tminValue = undefined,\n\t\tmaxValue = undefined,\n\t\tpreventDeselect = false,\n\t\tdisableDaysOutsideMonth = true,\n\t\tminDays,\n\t\tmaxDays,\n\t\tonStartValueChange = noop,\n\t\tonEndValueChange = noop,\n\t\texcludeDisabled = false,\n\t\tmonthFormat = \"long\",\n\t\tyearFormat = \"numeric\",\n\t\t...restProps\n\t}: RangeCalendarRootProps = $props();\n\n\tlet startValue = $state<DateValue | undefined>(value?.start);\n\tlet endValue = $state<DateValue | undefined>(value?.end);\n\n\tconst defaultPlaceholder = getDefaultDate({\n\t\tdefaultValue: value?.start,\n\t\tminValue,\n\t\tmaxValue,\n\t});\n\n\tfunction handleDefaultPlaceholder() {\n\t\tif (placeholder !== undefined) return;\n\t\tplaceholder = defaultPlaceholder;\n\t}\n\n\t// SSR\n\thandleDefaultPlaceholder();\n\n\twatch.pre(\n\t\t() => placeholder,\n\t\t() => {\n\t\t\thandleDefaultPlaceholder();\n\t\t}\n\t);\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tvalue = { start: undefined, end: undefined };\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tconst rootState = RangeCalendarRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tvalue: boxWith(\n\t\t\t() => value!,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tplaceholder: boxWith(\n\t\t\t() => placeholder!,\n\t\t\t(v) => {\n\t\t\t\tplaceholder = v;\n\t\t\t\tonPlaceholderChange(v);\n\t\t\t}\n\t\t),\n\t\tdisabled: boxWith(() => disabled),\n\t\treadonly: boxWith(() => readonly),\n\t\tpreventDeselect: boxWith(() => preventDeselect),\n\t\tminValue: boxWith(() => minValue),\n\t\tmaxValue: boxWith(() => maxValue),\n\t\tisDateUnavailable: boxWith(() => isDateUnavailable),\n\t\tisDateDisabled: boxWith(() => isDateDisabled),\n\t\tpagedNavigation: boxWith(() => pagedNavigation),\n\t\tweekStartsOn: boxWith(() => weekStartsOn),\n\t\tweekdayFormat: boxWith(() => weekdayFormat),\n\t\tnumberOfMonths: boxWith(() => numberOfMonths),\n\t\tlocale: resolveLocaleProp(() => locale),\n\t\tcalendarLabel: boxWith(() => calendarLabel),\n\t\tfixedWeeks: boxWith(() => fixedWeeks),\n\t\tdisableDaysOutsideMonth: boxWith(() => disableDaysOutsideMonth),\n\t\tminDays: boxWith(() => minDays),\n\t\tmaxDays: boxWith(() => maxDays),\n\t\texcludeDisabled: boxWith(() => excludeDisabled),\n\t\tstartValue: boxWith(\n\t\t\t() => startValue,\n\t\t\t(v) => {\n\t\t\t\tstartValue = v;\n\t\t\t\tonStartValueChange(v);\n\t\t\t}\n\t\t),\n\t\tendValue: boxWith(\n\t\t\t() => endValue,\n\t\t\t(v) => {\n\t\t\t\tendValue = v;\n\t\t\t\tonEndValueChange(v);\n\t\t\t}\n\t\t),\n\t\tmonthFormat: boxWith(() => monthFormat),\n\t\tyearFormat: boxWith(() => yearFormat),\n\t\tdefaultPlaceholder,\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...rootState.snippetProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.(rootState.snippetProps)}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/rating-group.svelte\";\nexport { default as Item } from \"./components/rating-group-item.svelte\";\n", "import { attachRef, DOMContext, } from \"svelte-toolbelt\";\nimport { Context } from \"runed\";\nimport { createBitsAttrs, boolToStr, boolToEmptyStrOrUndef } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nconst ratingGroupAttrs = createBitsAttrs({\n component: \"rating-group\",\n parts: [\"root\", \"item\"],\n});\nconst RatingGroupRootContext = new Context(\"RatingGroup.Root\");\nexport class RatingGroupRootState {\n static create(opts) {\n return RatingGroupRootContext.set(new RatingGroupRootState(opts));\n }\n opts;\n attachment;\n #hoverValue = $state(null);\n #keySequence = $state(\"\");\n #keySequenceTimeout = null;\n domContext;\n hasValue = $derived.by(() => this.opts.value.current > 0);\n valueToUse = $derived.by(() => this.#hoverValue ?? this.opts.value.current);\n isRTL = $derived.by(() => {\n const element = this.opts.ref.current;\n if (!element)\n return false;\n const style = getComputedStyle(element);\n return style.direction === \"rtl\";\n });\n ariaValuetext = $derived.by(() => {\n return typeof this.opts.ariaValuetext.current === \"function\"\n ? this.opts.ariaValuetext.current(this.opts.value.current, this.opts.max.current)\n : this.opts.ariaValuetext.current;\n });\n items = $derived.by(() => {\n const value = this.valueToUse;\n return Array.from({ length: this.opts.max.current }, (_, i) => {\n const itemValue = i + 1;\n const halfValue = itemValue - 0.5;\n const state = value >= itemValue\n ? \"active\"\n : this.opts.allowHalf.current && value >= halfValue\n ? \"partial\"\n : \"inactive\";\n return { index: i, state };\n });\n });\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(opts.ref);\n this.onkeydown = this.onkeydown.bind(this);\n this.onpointerleave = this.onpointerleave.bind(this);\n this.domContext = new DOMContext(this.opts.ref);\n }\n isActive(itemIndex) {\n return this.valueToUse >= itemIndex + 1;\n }\n isPartial(itemIndex) {\n if (!this.opts.allowHalf.current)\n return false;\n const itemValue = itemIndex + 1;\n return this.valueToUse >= itemValue - 0.5 && this.valueToUse < itemValue;\n }\n setHoverValue(value) {\n if (this.opts.readonly.current ||\n this.opts.disabled.current ||\n !this.opts.hoverPreview.current)\n return;\n this.#hoverValue =\n value === null\n ? null\n : Math.max(this.opts.min.current, Math.min(this.opts.max.current, value));\n }\n setValue(value) {\n if (this.opts.readonly.current || this.opts.disabled.current)\n return;\n this.opts.value.current = Math.max(this.opts.min.current, Math.min(this.opts.max.current, value));\n }\n calculateRatingFromPointer(itemIndex, event) {\n const ratingValue = itemIndex + 1;\n if (!this.opts.allowHalf.current)\n return ratingValue;\n const rect = event.currentTarget.getBoundingClientRect();\n const style = getComputedStyle(event.currentTarget);\n const isHorizontal = this.opts.orientation.current === \"horizontal\";\n const position = isHorizontal\n ? (event.clientX - rect.left) / rect.width\n : (event.clientY - rect.top) / rect.height;\n const normalizedPosition = style.direction === \"rtl\" ? 1 - position : position;\n return normalizedPosition < 0.5 ? ratingValue - 0.5 : ratingValue;\n }\n onpointerleave() {\n this.setHoverValue(null);\n }\n handlers = {\n [kbd.ARROW_UP]: () => {\n this.setHoverValue(null);\n this.#adjustValue(this.opts.allowHalf.current ? 0.5 : 1);\n },\n [kbd.ARROW_RIGHT]: () => {\n this.setHoverValue(null);\n const increment = this.opts.allowHalf.current ? 0.5 : 1;\n // in RTL mode, right arrow should decrement\n this.#adjustValue(this.isRTL ? -increment : increment);\n },\n [kbd.ARROW_DOWN]: () => {\n this.setHoverValue(null);\n this.#adjustValue(this.opts.allowHalf.current ? -0.5 : -1);\n },\n [kbd.ARROW_LEFT]: () => {\n this.setHoverValue(null);\n const increment = this.opts.allowHalf.current ? 0.5 : 1;\n // in RTL mode, left arrow should increment\n this.#adjustValue(this.isRTL ? increment : -increment);\n },\n [kbd.HOME]: () => {\n this.setHoverValue(null);\n this.setValue(this.opts.min.current);\n },\n [kbd.END]: () => {\n this.setHoverValue(null);\n this.setValue(this.opts.max.current);\n },\n [kbd.PAGE_UP]: () => {\n this.setHoverValue(null);\n this.#adjustValue(1);\n },\n [kbd.PAGE_DOWN]: () => {\n this.setHoverValue(null);\n this.#adjustValue(-1);\n },\n };\n onkeydown(e) {\n if (this.opts.disabled.current || this.opts.readonly.current)\n return;\n if (this.handlers[e.key]) {\n e.preventDefault();\n this.#clearKeySequence();\n this.handlers[e.key]?.();\n return;\n }\n if (this.opts.allowHalf.current && this.#handleDecimalInput(e))\n return;\n // handle direct number input\n const num = parseInt(e.key || \"\");\n if (!isNaN(num) && e.key) {\n e.preventDefault();\n if (num >= this.opts.min.current && num <= this.opts.max.current) {\n this.setValue(num);\n if (this.opts.allowHalf.current) {\n this.#startDecimalListening(num);\n }\n }\n return;\n }\n this.#clearKeySequence();\n }\n #adjustValue(delta) {\n this.setValue(this.opts.value.current + delta);\n }\n #handleDecimalInput(e) {\n if (!e.key)\n return false;\n if (e.key === \".\") {\n e.preventDefault();\n this.#keySequence += e.key;\n return true;\n }\n if (e.key === \"5\" && this.#keySequence.match(/^\\d+\\.$/)) {\n e.preventDefault();\n this.#keySequence += e.key;\n const match = this.#keySequence.match(/^(\\d+)\\.5$/);\n if (match?.[1]) {\n const value = parseFloat(this.#keySequence);\n if (value >= this.opts.min.current && value <= this.opts.max.current) {\n this.setValue(value);\n this.#clearKeySequence();\n }\n }\n return true;\n }\n return false;\n }\n #startDecimalListening(baseValue) {\n this.#keySequence = baseValue.toString();\n if (this.#keySequenceTimeout) {\n this.domContext.clearTimeout(this.#keySequenceTimeout);\n }\n this.#keySequenceTimeout = this.domContext.setTimeout(() => this.#clearKeySequence(), 1000);\n }\n #clearKeySequence() {\n this.#keySequence = \"\";\n if (this.#keySequenceTimeout) {\n this.domContext.clearTimeout(this.#keySequenceTimeout);\n this.#keySequenceTimeout = null;\n }\n }\n snippetProps = $derived.by(() => ({\n items: this.items,\n value: this.opts.value.current,\n max: this.opts.max.current,\n }));\n props = $derived.by(() => {\n return {\n id: this.opts.id.current,\n role: \"slider\",\n \"aria-valuenow\": this.opts.value.current,\n \"aria-valuemin\": this.opts.min.current,\n \"aria-valuemax\": this.opts.max.current,\n \"aria-valuetext\": this.ariaValuetext,\n \"aria-orientation\": this.opts.orientation.current,\n \"aria-required\": boolToStr(this.opts.required.current),\n \"aria-disabled\": this.opts.disabled.current ? \"true\" : undefined,\n \"aria-label\": \"Rating\",\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-readonly\": this.opts.readonly.current ? \"\" : undefined,\n \"data-orientation\": this.opts.orientation.current,\n tabindex: this.opts.disabled.current ? -1 : 0,\n [ratingGroupAttrs.root]: \"\",\n onkeydown: this.onkeydown,\n onpointerleave: this.onpointerleave,\n ...this.attachment,\n };\n });\n}\nexport class RatingGroupItemState {\n static create(opts) {\n return new RatingGroupItemState(opts, RatingGroupRootContext.get());\n }\n opts;\n root;\n attachment;\n #isDisabled = $derived.by(() => this.opts.disabled.current || this.root.opts.disabled.current);\n #isActive = $derived.by(() => this.root.isActive(this.opts.index.current));\n #isPartial = $derived.by(() => this.root.isPartial(this.opts.index.current));\n #state = $derived.by(() => {\n if (this.#isActive)\n return \"active\";\n if (this.#isPartial)\n return \"partial\";\n return \"inactive\";\n });\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n this.onclick = this.onclick.bind(this);\n this.onpointermove = this.onpointermove.bind(this);\n }\n onclick(e) {\n if (this.#isDisabled || this.root.opts.readonly.current)\n return;\n // handle clearing when clicking on first item (index 0) that's already\n // active and min is 0\n if (this.opts.index.current === 0 &&\n this.root.opts.min.current === 0 &&\n this.root.opts.value.current > 0) {\n const newValue = this.root.calculateRatingFromPointer(this.opts.index.current, e);\n const currentValue = this.root.opts.value.current;\n // only clear if the calculated rating exactly matches current value\n if (newValue === currentValue) {\n this.root.setValue(0);\n if (this.root.opts.ref.current) {\n this.root.opts.ref.current.focus();\n }\n return;\n }\n }\n const newValue = this.root.calculateRatingFromPointer(this.opts.index.current, e);\n this.root.setValue(newValue);\n if (this.root.opts.ref.current) {\n this.root.opts.ref.current.focus();\n }\n }\n onpointermove(e) {\n if (this.#isDisabled ||\n this.root.opts.readonly.current ||\n !this.root.opts.hoverPreview.current)\n return;\n // skip hover preview for touch devices\n if (e.pointerType === \"touch\")\n return;\n const hoverValue = this.root.calculateRatingFromPointer(this.opts.index.current, e);\n this.root.setHoverValue(hoverValue);\n }\n snippetProps = $derived.by(() => {\n return {\n state: this.#state,\n };\n });\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"presentation\",\n \"data-value\": this.opts.index.current + 1,\n \"data-orientation\": this.root.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.#isDisabled),\n \"data-readonly\": this.root.opts.readonly.current ? \"\" : undefined,\n \"data-state\": this.#state,\n [ratingGroupAttrs.item]: \"\",\n //\n onclick: this.onclick,\n onpointermove: this.onpointermove,\n ...this.attachment,\n }));\n}\nexport class RatingGroupHiddenInputState {\n static create() {\n return new RatingGroupHiddenInputState(RatingGroupRootContext.get());\n }\n root;\n shouldRender = $derived.by(() => this.root.opts.name.current !== undefined);\n props = $derived.by(() => ({\n name: this.root.opts.name.current,\n value: this.root.opts.value.current,\n required: this.root.opts.required.current,\n disabled: this.root.opts.disabled.current,\n }));\n constructor(root) {\n this.root = root;\n }\n}\n", "<script lang=\"ts\">\n\timport { RatingGroupHiddenInputState } from \"../rating-group.svelte.js\";\n\timport HiddenInput from \"../../utilities/hidden-input.svelte\";\n\n\tconst inputState = RatingGroupHiddenInputState.create();\n</script>\n\n{#if inputState.shouldRender}\n\t<HiddenInput {...inputState.props} />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { RatingGroupRootProps } from \"../types.js\";\n\timport { RatingGroupRootState } from \"../rating-group.svelte.js\";\n\timport RatingGroupInput from \"./rating-group-input.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tdisabled = false,\n\t\tchildren,\n\t\tchild,\n\t\tvalue = $bindable(0),\n\t\tref = $bindable(null),\n\t\torientation = \"horizontal\",\n\t\tname = undefined,\n\t\trequired = false,\n\t\tmin = 0,\n\t\tmax = 5,\n\t\tallowHalf = false,\n\t\treadonly = false,\n\t\tid = createId(uid),\n\t\tonValueChange = noop,\n\t\t\"aria-label\": ariaLabel,\n\t\t\"aria-valuetext\": ariaValuetextProp,\n\t\thoverPreview = true,\n\t\t...restProps\n\t}: RatingGroupRootProps = $props();\n\n\tif (value < min || value > max) {\n\t\tvalue = Math.max(min, Math.min(max, value));\n\t}\n\n\tconst ariaValuetext: NonNullable<RatingGroupRootProps[\"aria-valuetext\"]> = $derived.by(() => {\n\t\tif (ariaValuetextProp) return ariaValuetextProp;\n\t\treturn (value: number, max: number) => `${value} out of ${max}`;\n\t});\n\n\tconst rootState = RatingGroupRootState.create({\n\t\torientation: boxWith(() => orientation),\n\t\tdisabled: boxWith(() => disabled),\n\t\tname: boxWith(() => name),\n\t\trequired: boxWith(() => required),\n\t\tmin: boxWith(() => min),\n\t\tmax: boxWith(() => max),\n\t\tallowHalf: boxWith(() => allowHalf),\n\t\treadonly: boxWith(() => readonly),\n\t\tid: boxWith(() => id),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tif (v === value) return;\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange?.(v);\n\t\t\t}\n\t\t),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tariaValuetext: boxWith(() => ariaValuetext),\n\t\thoverPreview: boxWith(() => hoverPreview),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, rootState.props, { \"aria-label\": ariaLabel })\n\t);\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...rootState.snippetProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.(rootState.snippetProps)}\n\t</div>\n{/if}\n\n<RatingGroupInput />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { RatingGroupItemProps } from \"../types.js\";\n\timport { RatingGroupItemState } from \"../rating-group.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tdisabled = false,\n\t\tindex,\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: RatingGroupItemProps = $props();\n\n\tconst itemState = RatingGroupItemState.create({\n\t\tdisabled: boxWith(() => Boolean(disabled)),\n\t\tindex: boxWith(() => index),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, itemState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...itemState.snippetProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.(itemState.snippetProps)}\n\t</div>\n{/if}\n", "export { default as Root } from \"./components/scroll-area.svelte\";\nexport { default as Viewport } from \"./components/scroll-area-viewport.svelte\";\nexport { default as Scrollbar } from \"./components/scroll-area-scrollbar.svelte\";\nexport { default as Thumb } from \"./components/scroll-area-thumb.svelte\";\nexport { default as Corner } from \"./components/scroll-area-corner.svelte\";\n", "/**\n * Clamps a number between a minimum and maximum value.\n */\nexport function clamp(n, min, max) {\n return Math.min(max, Math.max(min, n));\n}\n", "/**\n * This logic is adapted from Radix UI ScrollArea component.\n * https://github.com/radix-ui/primitives/blob/main/packages/react/scroll-area/src/ScrollArea.tsx\n * Credit to Jenna Smith (@jjenzz) for the original implementation.\n * Incredible thought must have went into solving all the intricacies of this component.\n */\nimport { Context, useDebounce, watch } from \"runed\";\nimport { untrack } from \"svelte\";\nimport { simpleBox, executeCallbacks, attachRef, DOMContext, getWindow, } from \"svelte-toolbelt\";\nimport { mergeProps, useId } from \"../../shared/index.js\";\nimport { clamp } from \"../../internal/clamp.js\";\nimport { on } from \"svelte/events\";\nimport { createBitsAttrs } from \"../../internal/attrs.js\";\nimport { StateMachine } from \"../../internal/state-machine.js\";\nimport { SvelteResizeObserver } from \"../../internal/svelte-resize-observer.svelte.js\";\nconst scrollAreaAttrs = createBitsAttrs({\n component: \"scroll-area\",\n parts: [\"root\", \"viewport\", \"corner\", \"thumb\", \"scrollbar\"],\n});\nexport const ScrollAreaRootContext = new Context(\"ScrollArea.Root\");\nexport const ScrollAreaScrollbarContext = new Context(\"ScrollArea.Scrollbar\");\nexport const ScrollAreaScrollbarVisibleContext = new Context(\"ScrollArea.ScrollbarVisible\");\nexport const ScrollAreaScrollbarAxisContext = new Context(\"ScrollArea.ScrollbarAxis\");\nexport const ScrollAreaScrollbarSharedContext = new Context(\"ScrollArea.ScrollbarShared\");\nexport class ScrollAreaRootState {\n static create(opts) {\n return ScrollAreaRootContext.set(new ScrollAreaRootState(opts));\n }\n opts;\n attachment;\n scrollAreaNode = $state(null);\n viewportNode = $state(null);\n contentNode = $state(null);\n scrollbarXNode = $state(null);\n scrollbarYNode = $state(null);\n cornerWidth = $state(0);\n cornerHeight = $state(0);\n scrollbarXEnabled = $state(false);\n scrollbarYEnabled = $state(false);\n domContext;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(opts.ref, (v) => (this.scrollAreaNode = v));\n this.domContext = new DOMContext(opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n dir: this.opts.dir.current,\n style: {\n position: \"relative\",\n \"--bits-scroll-area-corner-height\": `${this.cornerHeight}px`,\n \"--bits-scroll-area-corner-width\": `${this.cornerWidth}px`,\n },\n [scrollAreaAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nexport class ScrollAreaViewportState {\n static create(opts) {\n return new ScrollAreaViewportState(opts, ScrollAreaRootContext.get());\n }\n opts;\n root;\n attachment;\n #contentId = simpleBox(useId());\n #contentRef = simpleBox(null);\n contentAttachment = attachRef(this.#contentRef, (v) => (this.root.contentNode = v));\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref, (v) => (this.root.viewportNode = v));\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n style: {\n overflowX: this.root.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: this.root.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n },\n [scrollAreaAttrs.viewport]: \"\",\n ...this.attachment,\n }));\n contentProps = $derived.by(() => ({\n id: this.#contentId.current,\n \"data-scroll-area-content\": \"\",\n /**\n * When horizontal scrollbar is visible: this element should be at least\n * as wide as its children for size calculations to work correctly.\n *\n * When horizontal scrollbar is NOT visible: this element's width should\n * be constrained by the parent container to enable `text-overflow: ellipsis`\n */\n style: { minWidth: this.root.scrollbarXEnabled ? \"fit-content\" : undefined },\n ...this.contentAttachment,\n }));\n}\nexport class ScrollAreaScrollbarState {\n static create(opts) {\n return ScrollAreaScrollbarContext.set(new ScrollAreaScrollbarState(opts, ScrollAreaRootContext.get()));\n }\n opts;\n root;\n isHorizontal = $derived.by(() => this.opts.orientation.current === \"horizontal\");\n hasThumb = $state(false);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n watch(() => this.isHorizontal, (isHorizontal) => {\n if (isHorizontal) {\n this.root.scrollbarXEnabled = true;\n return () => {\n this.root.scrollbarXEnabled = false;\n };\n }\n else {\n this.root.scrollbarYEnabled = true;\n return () => {\n this.root.scrollbarYEnabled = false;\n };\n }\n });\n }\n}\nexport class ScrollAreaScrollbarHoverState {\n static create() {\n return new ScrollAreaScrollbarHoverState(ScrollAreaScrollbarContext.get());\n }\n scrollbar;\n root;\n isVisible = $state(false);\n constructor(scrollbar) {\n this.scrollbar = scrollbar;\n this.root = scrollbar.root;\n $effect(() => {\n const scrollAreaNode = this.root.scrollAreaNode;\n const hideDelay = this.root.opts.scrollHideDelay.current;\n let hideTimer = 0;\n if (!scrollAreaNode)\n return;\n const handlePointerEnter = () => {\n this.root.domContext.clearTimeout(hideTimer);\n untrack(() => (this.isVisible = true));\n };\n const handlePointerLeave = () => {\n if (hideTimer)\n this.root.domContext.clearTimeout(hideTimer);\n hideTimer = this.root.domContext.setTimeout(() => {\n untrack(() => {\n this.scrollbar.hasThumb = false;\n this.isVisible = false;\n });\n }, hideDelay);\n };\n const unsubListeners = executeCallbacks(on(scrollAreaNode, \"pointerenter\", handlePointerEnter), on(scrollAreaNode, \"pointerleave\", handlePointerLeave));\n return () => {\n this.root.domContext.getWindow().clearTimeout(hideTimer);\n unsubListeners();\n };\n });\n }\n props = $derived.by(() => ({\n \"data-state\": this.isVisible ? \"visible\" : \"hidden\",\n }));\n}\nexport class ScrollAreaScrollbarScrollState {\n static create() {\n return new ScrollAreaScrollbarScrollState(ScrollAreaScrollbarContext.get());\n }\n scrollbar;\n root;\n machine = new StateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\",\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\",\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\",\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\",\n },\n });\n isHidden = $derived.by(() => this.machine.state.current === \"hidden\");\n constructor(scrollbar) {\n this.scrollbar = scrollbar;\n this.root = scrollbar.root;\n const debounceScrollend = useDebounce(() => this.machine.dispatch(\"SCROLL_END\"), 100);\n $effect(() => {\n const _state = this.machine.state.current;\n const scrollHideDelay = this.root.opts.scrollHideDelay.current;\n if (_state === \"idle\") {\n const hideTimer = this.root.domContext.setTimeout(() => this.machine.dispatch(\"HIDE\"), scrollHideDelay);\n return () => this.root.domContext.clearTimeout(hideTimer);\n }\n });\n $effect(() => {\n const viewportNode = this.root.viewportNode;\n if (!viewportNode)\n return;\n const scrollDirection = this.scrollbar.isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n let prevScrollPos = viewportNode[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewportNode[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n this.machine.dispatch(\"SCROLL\");\n debounceScrollend();\n }\n prevScrollPos = scrollPos;\n };\n const unsubListener = on(viewportNode, \"scroll\", handleScroll);\n return unsubListener;\n });\n this.onpointerenter = this.onpointerenter.bind(this);\n this.onpointerleave = this.onpointerleave.bind(this);\n }\n onpointerenter(_) {\n this.machine.dispatch(\"POINTER_ENTER\");\n }\n onpointerleave(_) {\n this.machine.dispatch(\"POINTER_LEAVE\");\n }\n props = $derived.by(() => ({\n \"data-state\": this.machine.state.current === \"hidden\" ? \"hidden\" : \"visible\",\n onpointerenter: this.onpointerenter,\n onpointerleave: this.onpointerleave,\n }));\n}\nexport class ScrollAreaScrollbarAutoState {\n static create() {\n return new ScrollAreaScrollbarAutoState(ScrollAreaScrollbarContext.get());\n }\n scrollbar;\n root;\n isVisible = $state(false);\n constructor(scrollbar) {\n this.scrollbar = scrollbar;\n this.root = scrollbar.root;\n const handleResize = useDebounce(() => {\n const viewportNode = this.root.viewportNode;\n if (!viewportNode)\n return;\n const isOverflowX = viewportNode.offsetWidth < viewportNode.scrollWidth;\n const isOverflowY = viewportNode.offsetHeight < viewportNode.scrollHeight;\n this.isVisible = this.scrollbar.isHorizontal ? isOverflowX : isOverflowY;\n }, 10);\n new SvelteResizeObserver(() => this.root.viewportNode, handleResize);\n new SvelteResizeObserver(() => this.root.contentNode, handleResize);\n }\n props = $derived.by(() => ({\n \"data-state\": this.isVisible ? \"visible\" : \"hidden\",\n }));\n}\nexport class ScrollAreaScrollbarVisibleState {\n static create() {\n return ScrollAreaScrollbarVisibleContext.set(new ScrollAreaScrollbarVisibleState(ScrollAreaScrollbarContext.get()));\n }\n scrollbar;\n root;\n thumbNode = $state(null);\n pointerOffset = $state(0);\n sizes = $state.raw({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n });\n thumbRatio = $derived.by(() => getThumbRatio(this.sizes.viewport, this.sizes.content));\n hasThumb = $derived.by(() => Boolean(this.thumbRatio > 0 && this.thumbRatio < 1));\n // this needs to be a $state to properly restore the transform style when the scrollbar\n // goes from a hidden to visible state, otherwise it will start at the beginning of the\n // scrollbar and flicker to the correct position after\n prevTransformStyle = $state(\"\");\n constructor(scrollbar) {\n this.scrollbar = scrollbar;\n this.root = scrollbar.root;\n $effect(() => {\n this.scrollbar.hasThumb = this.hasThumb;\n });\n $effect(() => {\n if (!this.scrollbar.hasThumb && this.thumbNode) {\n this.prevTransformStyle = this.thumbNode.style.transform;\n }\n });\n }\n setSizes(sizes) {\n this.sizes = sizes;\n }\n getScrollPosition(pointerPos, dir) {\n return getScrollPositionFromPointer({\n pointerPos,\n pointerOffset: this.pointerOffset,\n sizes: this.sizes,\n dir,\n });\n }\n onThumbPointerUp() {\n this.pointerOffset = 0;\n }\n onThumbPointerDown(pointerPos) {\n this.pointerOffset = pointerPos;\n }\n xOnThumbPositionChange() {\n if (!(this.root.viewportNode && this.thumbNode))\n return;\n const scrollPos = this.root.viewportNode.scrollLeft;\n const offset = getThumbOffsetFromScroll({\n scrollPos,\n sizes: this.sizes,\n dir: this.root.opts.dir.current,\n });\n const transformStyle = `translate3d(${offset}px, 0, 0)`;\n this.thumbNode.style.transform = transformStyle;\n this.prevTransformStyle = transformStyle;\n }\n xOnWheelScroll(scrollPos) {\n if (!this.root.viewportNode)\n return;\n this.root.viewportNode.scrollLeft = scrollPos;\n }\n xOnDragScroll(pointerPos) {\n if (!this.root.viewportNode)\n return;\n this.root.viewportNode.scrollLeft = this.getScrollPosition(pointerPos, this.root.opts.dir.current);\n }\n yOnThumbPositionChange() {\n if (!(this.root.viewportNode && this.thumbNode))\n return;\n const scrollPos = this.root.viewportNode.scrollTop;\n const offset = getThumbOffsetFromScroll({ scrollPos, sizes: this.sizes });\n const transformStyle = `translate3d(0, ${offset}px, 0)`;\n this.thumbNode.style.transform = transformStyle;\n this.prevTransformStyle = transformStyle;\n }\n yOnWheelScroll(scrollPos) {\n if (!this.root.viewportNode)\n return;\n this.root.viewportNode.scrollTop = scrollPos;\n }\n yOnDragScroll(pointerPos) {\n if (!this.root.viewportNode)\n return;\n this.root.viewportNode.scrollTop = this.getScrollPosition(pointerPos, this.root.opts.dir.current);\n }\n}\nexport class ScrollAreaScrollbarXState {\n static create(opts) {\n return ScrollAreaScrollbarAxisContext.set(new ScrollAreaScrollbarXState(opts, ScrollAreaScrollbarVisibleContext.get()));\n }\n opts;\n scrollbarVis;\n root;\n scrollbar;\n attachment;\n computedStyle = $state();\n constructor(opts, scrollbarVis) {\n this.opts = opts;\n this.scrollbarVis = scrollbarVis;\n this.root = scrollbarVis.root;\n this.scrollbar = scrollbarVis.scrollbar;\n this.attachment = attachRef(this.scrollbar.opts.ref, (v) => (this.root.scrollbarXNode = v));\n $effect(() => {\n if (!this.scrollbar.opts.ref.current)\n return;\n if (this.opts.mounted.current) {\n this.computedStyle = getComputedStyle(this.scrollbar.opts.ref.current);\n }\n });\n $effect(() => {\n // Ensure when a user scrolls down and then the scrollbar is hidden\n // that when it shows again it will be positioned correctly.\n this.onResize();\n });\n }\n onThumbPointerDown = (pointerPos) => {\n this.scrollbarVis.onThumbPointerDown(pointerPos.x);\n };\n onDragScroll = (pointerPos) => {\n this.scrollbarVis.xOnDragScroll(pointerPos.x);\n };\n onThumbPointerUp = () => {\n this.scrollbarVis.onThumbPointerUp();\n };\n onThumbPositionChange = () => {\n this.scrollbarVis.xOnThumbPositionChange();\n };\n onWheelScroll = (e, maxScrollPos) => {\n if (!this.root.viewportNode)\n return;\n const scrollPos = this.root.viewportNode.scrollLeft + e.deltaX;\n this.scrollbarVis.xOnWheelScroll(scrollPos);\n // prevent window scroll when wheeling scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n e.preventDefault();\n }\n };\n onResize = () => {\n if (!(this.scrollbar.opts.ref.current && this.root.viewportNode && this.computedStyle))\n return;\n this.scrollbarVis.setSizes({\n content: this.root.viewportNode.scrollWidth,\n viewport: this.root.viewportNode.offsetWidth,\n scrollbar: {\n size: this.scrollbar.opts.ref.current.clientWidth,\n paddingStart: toInt(this.computedStyle.paddingLeft),\n paddingEnd: toInt(this.computedStyle.paddingRight),\n },\n });\n };\n thumbSize = $derived.by(() => {\n return getThumbSize(this.scrollbarVis.sizes);\n });\n props = $derived.by(() => ({\n id: this.scrollbar.opts.id.current,\n \"data-orientation\": \"horizontal\",\n style: {\n bottom: 0,\n left: this.root.opts.dir.current === \"rtl\"\n ? \"var(--bits-scroll-area-corner-width)\"\n : 0,\n right: this.root.opts.dir.current === \"ltr\"\n ? \"var(--bits-scroll-area-corner-width)\"\n : 0,\n \"--bits-scroll-area-thumb-width\": `${this.thumbSize}px`,\n },\n ...this.attachment,\n }));\n}\nexport class ScrollAreaScrollbarYState {\n static create(opts) {\n return ScrollAreaScrollbarAxisContext.set(new ScrollAreaScrollbarYState(opts, ScrollAreaScrollbarVisibleContext.get()));\n }\n opts;\n scrollbarVis;\n root;\n scrollbar;\n attachment;\n computedStyle = $state();\n constructor(opts, scrollbarVis) {\n this.opts = opts;\n this.scrollbarVis = scrollbarVis;\n this.root = scrollbarVis.root;\n this.scrollbar = scrollbarVis.scrollbar;\n this.attachment = attachRef(this.scrollbar.opts.ref, (v) => (this.root.scrollbarYNode = v));\n $effect(() => {\n if (!this.scrollbar.opts.ref.current)\n return;\n if (this.opts.mounted.current) {\n this.computedStyle = getComputedStyle(this.scrollbar.opts.ref.current);\n }\n });\n $effect(() => {\n // Ensure when a user scrolls down and then the scrollbar is hidden\n // that when it shows again it will be positioned correctly.\n this.onResize();\n });\n this.onThumbPointerDown = this.onThumbPointerDown.bind(this);\n this.onDragScroll = this.onDragScroll.bind(this);\n this.onThumbPointerUp = this.onThumbPointerUp.bind(this);\n this.onThumbPositionChange = this.onThumbPositionChange.bind(this);\n this.onWheelScroll = this.onWheelScroll.bind(this);\n this.onResize = this.onResize.bind(this);\n }\n onThumbPointerDown(pointerPos) {\n this.scrollbarVis.onThumbPointerDown(pointerPos.y);\n }\n onDragScroll(pointerPos) {\n this.scrollbarVis.yOnDragScroll(pointerPos.y);\n }\n onThumbPointerUp() {\n this.scrollbarVis.onThumbPointerUp();\n }\n onThumbPositionChange() {\n this.scrollbarVis.yOnThumbPositionChange();\n }\n onWheelScroll(e, maxScrollPos) {\n if (!this.root.viewportNode)\n return;\n const scrollPos = this.root.viewportNode.scrollTop + e.deltaY;\n this.scrollbarVis.yOnWheelScroll(scrollPos);\n // prevent window scroll when wheeling scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n e.preventDefault();\n }\n }\n onResize() {\n if (!(this.scrollbar.opts.ref.current && this.root.viewportNode && this.computedStyle))\n return;\n this.scrollbarVis.setSizes({\n content: this.root.viewportNode.scrollHeight,\n viewport: this.root.viewportNode.offsetHeight,\n scrollbar: {\n size: this.scrollbar.opts.ref.current.clientHeight,\n paddingStart: toInt(this.computedStyle.paddingTop),\n paddingEnd: toInt(this.computedStyle.paddingBottom),\n },\n });\n }\n thumbSize = $derived.by(() => {\n return getThumbSize(this.scrollbarVis.sizes);\n });\n props = $derived.by(() => ({\n id: this.scrollbar.opts.id.current,\n \"data-orientation\": \"vertical\",\n style: {\n top: 0,\n right: this.root.opts.dir.current === \"ltr\" ? 0 : undefined,\n left: this.root.opts.dir.current === \"rtl\" ? 0 : undefined,\n bottom: \"var(--bits-scroll-area-corner-height)\",\n \"--bits-scroll-area-thumb-height\": `${this.thumbSize}px`,\n },\n ...this.attachment,\n }));\n}\nexport class ScrollAreaScrollbarSharedState {\n static create() {\n return ScrollAreaScrollbarSharedContext.set(new ScrollAreaScrollbarSharedState(ScrollAreaScrollbarAxisContext.get()));\n }\n scrollbarState;\n root;\n scrollbarVis;\n scrollbar;\n rect = $state.raw(null);\n prevWebkitUserSelect = $state(\"\");\n handleResize;\n handleThumbPositionChange;\n handleWheelScroll;\n handleThumbPointerDown;\n handleThumbPointerUp;\n maxScrollPos = $derived.by(() => this.scrollbarVis.sizes.content - this.scrollbarVis.sizes.viewport);\n constructor(scrollbarState) {\n this.scrollbarState = scrollbarState;\n this.root = scrollbarState.root;\n this.scrollbarVis = scrollbarState.scrollbarVis;\n this.scrollbar = scrollbarState.scrollbarVis.scrollbar;\n this.handleResize = useDebounce(() => this.scrollbarState.onResize(), 10);\n this.handleThumbPositionChange = this.scrollbarState.onThumbPositionChange;\n this.handleWheelScroll = this.scrollbarState.onWheelScroll;\n this.handleThumbPointerDown = this.scrollbarState.onThumbPointerDown;\n this.handleThumbPointerUp = this.scrollbarState.onThumbPointerUp;\n $effect(() => {\n const maxScrollPos = this.maxScrollPos;\n const scrollbarNode = this.scrollbar.opts.ref.current;\n // we want to react to the viewport node changing so we leave this here\n this.root.viewportNode;\n const handleWheel = (e) => {\n const node = e.target;\n const isScrollbarWheel = scrollbarNode?.contains(node);\n if (isScrollbarWheel)\n this.handleWheelScroll(e, maxScrollPos);\n };\n const unsubListener = on(this.root.domContext.getDocument(), \"wheel\", handleWheel, {\n passive: false,\n });\n return unsubListener;\n });\n $effect.pre(() => {\n // react to changes to this:\n this.scrollbarVis.sizes;\n untrack(() => this.handleThumbPositionChange());\n });\n // $effect.pre(() => {\n // \tthis.handleThumbPositionChange();\n // });\n new SvelteResizeObserver(() => this.scrollbar.opts.ref.current, this.handleResize);\n new SvelteResizeObserver(() => this.root.contentNode, this.handleResize);\n this.onpointerdown = this.onpointerdown.bind(this);\n this.onpointermove = this.onpointermove.bind(this);\n this.onpointerup = this.onpointerup.bind(this);\n this.onlostpointercapture = this.onlostpointercapture.bind(this);\n }\n handleDragScroll(e) {\n if (!this.rect)\n return;\n const x = e.clientX - this.rect.left;\n const y = e.clientY - this.rect.top;\n this.scrollbarState.onDragScroll({ x, y });\n }\n #cleanupPointerState() {\n if (this.rect === null)\n return;\n this.root.domContext.getDocument().body.style.webkitUserSelect = this.prevWebkitUserSelect;\n if (this.root.viewportNode)\n this.root.viewportNode.style.scrollBehavior = \"\";\n this.rect = null;\n }\n onpointerdown(e) {\n if (e.button !== 0)\n return;\n const target = e.target;\n target.setPointerCapture(e.pointerId);\n this.rect = this.scrollbar.opts.ref.current?.getBoundingClientRect() ?? null;\n // pointer capture doesn't prevent text selection in Safari\n // so we remove text selection manually when scrolling\n this.prevWebkitUserSelect = this.root.domContext.getDocument().body.style.webkitUserSelect;\n this.root.domContext.getDocument().body.style.webkitUserSelect = \"none\";\n if (this.root.viewportNode)\n this.root.viewportNode.style.scrollBehavior = \"auto\";\n this.handleDragScroll(e);\n }\n onpointermove(e) {\n this.handleDragScroll(e);\n }\n onpointerup(e) {\n const target = e.target;\n if (target.hasPointerCapture(e.pointerId)) {\n target.releasePointerCapture(e.pointerId);\n }\n this.#cleanupPointerState();\n }\n onlostpointercapture(_) {\n this.#cleanupPointerState();\n }\n props = $derived.by(() => mergeProps({\n ...this.scrollbarState.props,\n style: {\n position: \"absolute\",\n ...this.scrollbarState.props.style,\n },\n [scrollAreaAttrs.scrollbar]: \"\",\n onpointerdown: this.onpointerdown,\n onpointermove: this.onpointermove,\n onpointerup: this.onpointerup,\n onlostpointercapture: this.onlostpointercapture,\n }));\n}\nexport class ScrollAreaThumbImplState {\n static create(opts) {\n return new ScrollAreaThumbImplState(opts, ScrollAreaScrollbarSharedContext.get());\n }\n opts;\n scrollbarState;\n attachment;\n #root;\n #removeUnlinkedScrollListener = $state();\n #debounceScrollEnd = useDebounce(() => {\n if (this.#removeUnlinkedScrollListener) {\n this.#removeUnlinkedScrollListener();\n this.#removeUnlinkedScrollListener = undefined;\n }\n }, 100);\n constructor(opts, scrollbarState) {\n this.opts = opts;\n this.scrollbarState = scrollbarState;\n this.#root = scrollbarState.root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.scrollbarState.scrollbarVis.thumbNode = v));\n $effect(() => {\n const viewportNode = this.#root.viewportNode;\n if (!viewportNode)\n return;\n const handleScroll = () => {\n this.#debounceScrollEnd();\n if (!this.#removeUnlinkedScrollListener) {\n const listener = addUnlinkedScrollListener(viewportNode, this.scrollbarState.handleThumbPositionChange);\n this.#removeUnlinkedScrollListener = listener;\n this.scrollbarState.handleThumbPositionChange();\n }\n };\n untrack(() => this.scrollbarState.handleThumbPositionChange());\n const unsubListener = on(viewportNode, \"scroll\", handleScroll);\n return unsubListener;\n });\n this.onpointerdowncapture = this.onpointerdowncapture.bind(this);\n this.onpointerup = this.onpointerup.bind(this);\n }\n onpointerdowncapture(e) {\n const thumb = e.target;\n if (!thumb)\n return;\n const thumbRect = thumb.getBoundingClientRect();\n const x = e.clientX - thumbRect.left;\n const y = e.clientY - thumbRect.top;\n this.scrollbarState.handleThumbPointerDown({ x, y });\n }\n onpointerup(_) {\n this.scrollbarState.handleThumbPointerUp();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-state\": this.scrollbarState.scrollbarVis.hasThumb ? \"visible\" : \"hidden\",\n style: {\n width: \"var(--bits-scroll-area-thumb-width)\",\n height: \"var(--bits-scroll-area-thumb-height)\",\n transform: this.scrollbarState.scrollbarVis.prevTransformStyle,\n },\n onpointerdowncapture: this.onpointerdowncapture,\n onpointerup: this.onpointerup,\n [scrollAreaAttrs.thumb]: \"\",\n ...this.attachment,\n }));\n}\nexport class ScrollAreaCornerImplState {\n static create(opts) {\n return new ScrollAreaCornerImplState(opts, ScrollAreaRootContext.get());\n }\n opts;\n root;\n attachment;\n #width = $state(0);\n #height = $state(0);\n hasSize = $derived(Boolean(this.#width && this.#height));\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n new SvelteResizeObserver(() => this.root.scrollbarXNode, () => {\n const height = this.root.scrollbarXNode?.offsetHeight || 0;\n this.root.cornerHeight = height;\n this.#height = height;\n });\n new SvelteResizeObserver(() => this.root.scrollbarYNode, () => {\n const width = this.root.scrollbarYNode?.offsetWidth || 0;\n this.root.cornerWidth = width;\n this.#width = width;\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n style: {\n width: this.#width,\n height: this.#height,\n position: \"absolute\",\n right: this.root.opts.dir.current === \"ltr\" ? 0 : undefined,\n left: this.root.opts.dir.current === \"rtl\" ? 0 : undefined,\n bottom: 0,\n },\n [scrollAreaAttrs.corner]: \"\",\n ...this.attachment,\n }));\n}\nfunction toInt(value) {\n return value ? Number.parseInt(value, 10) : 0;\n}\nfunction getThumbRatio(viewportSize, contentSize) {\n const ratio = viewportSize / contentSize;\n return Number.isNaN(ratio) ? 0 : ratio;\n}\nfunction getThumbSize(sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n return Math.max(thumbSize, 18);\n}\nfunction getScrollPositionFromPointer({ pointerPos, pointerOffset, sizes, dir = \"ltr\", }) {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos = sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);\n return interpolate(pointerPos);\n}\nfunction getThumbOffsetFromScroll({ scrollPos, sizes, dir = \"ltr\", }) {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange = dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(scrollPos, scrollClampRange[0], scrollClampRange[1]);\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(input, output) {\n return (value) => {\n if (input[0] === input[1] || output[0] === output[1])\n return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\nfunction isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\nfunction addUnlinkedScrollListener(node, handler) {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n const win = getWindow(node);\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll)\n handler();\n prevPosition = position;\n rAF = win.requestAnimationFrame(loop);\n })();\n return () => win.cancelAnimationFrame(rAF);\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ScrollAreaRootProps } from \"../types.js\";\n\timport { ScrollAreaRootState } from \"../scroll-area.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\ttype = \"hover\",\n\t\tdir = \"ltr\",\n\t\tscrollHideDelay = 600,\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: ScrollAreaRootProps = $props();\n\n\tconst rootState = ScrollAreaRootState.create({\n\t\ttype: boxWith(() => type),\n\t\tdir: boxWith(() => dir),\n\t\tscrollHideDelay: boxWith(() => scrollHideDelay),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ScrollAreaViewportProps } from \"../types.js\";\n\timport { ScrollAreaViewportState } from \"../scroll-area.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tchildren,\n\t\t...restProps\n\t}: ScrollAreaViewportProps = $props();\n\n\tconst viewportState = ScrollAreaViewportState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, viewportState.props));\n\tconst mergedContentProps = $derived(mergeProps({}, viewportState.contentProps));\n</script>\n\n<div {...mergedProps}>\n\t<div {...mergedContentProps}>\n\t\t{@render children?.()}\n\t</div>\n</div>\n\n<style>\n\t/* Hide scrollbars cross browser and enable momentum scroll for touch devices */\n\t:global([data-scroll-area-viewport]) {\n\t\tscrollbar-width: none !important;\n\t\t-ms-overflow-style: none !important;\n\t\t-webkit-overflow-scrolling: touch !important;\n\t}\n\t:global([data-scroll-area-viewport])::-webkit-scrollbar {\n\t\tdisplay: none !important;\n\t}\n\n\t:global(:where([data-scroll-area-viewport])) {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: stretch;\n\t}\n\t:global(:where([data-scroll-area-content])) {\n\t\tflex-grow: 1;\n\t}\n</style>\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport { ScrollAreaScrollbarSharedState } from \"../scroll-area.svelte.js\";\n\timport type { _ScrollbarStubProps } from \"../types.js\";\n\n\tlet { child, children, ...restProps }: _ScrollbarStubProps = $props();\n\n\tconst scrollbarSharedState = ScrollAreaScrollbarSharedState.create();\n\n\tconst mergedProps = $derived(mergeProps(restProps, scrollbarSharedState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { IsMounted } from \"runed\";\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { ScrollAreaScrollbarXState } from \"../scroll-area.svelte.js\";\n\timport type { _ScrollbarStubProps } from \"../types.js\";\n\timport ScrollAreaScrollbarShared from \"./scroll-area-scrollbar-shared.svelte\";\n\n\tlet { ...restProps }: _ScrollbarStubProps = $props();\n\n\tconst isMounted = new IsMounted();\n\n\tconst scrollbarXState = ScrollAreaScrollbarXState.create({\n\t\tmounted: boxWith(() => isMounted.current),\n\t});\n\t// oxlint-disable-next-line no-explicit-any\n\tconst mergedProps = $derived(mergeProps(restProps, scrollbarXState.props)) as any;\n</script>\n\n<ScrollAreaScrollbarShared {...mergedProps} />\n", "<script lang=\"ts\">\n\timport { IsMounted } from \"runed\";\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { ScrollAreaScrollbarYState } from \"../scroll-area.svelte.js\";\n\timport type { _ScrollbarStubProps } from \"../types.js\";\n\timport ScrollAreaScrollbarShared from \"./scroll-area-scrollbar-shared.svelte\";\n\n\tlet { ...restProps }: _ScrollbarStubProps = $props();\n\n\tconst isMounted = new IsMounted();\n\n\tconst scrollbarYState = ScrollAreaScrollbarYState.create({\n\t\tmounted: boxWith(() => isMounted.current),\n\t});\n\n\t// oxlint-disable-next-line no-explicit-any\n\tconst mergedProps = $derived(mergeProps(restProps, scrollbarYState.props)) as any;\n</script>\n\n<ScrollAreaScrollbarShared {...mergedProps} />\n", "<script lang=\"ts\">\n\timport { ScrollAreaScrollbarVisibleState } from \"../scroll-area.svelte.js\";\n\timport type { _ScrollbarStubProps } from \"../types.js\";\n\timport ScrollAreaScrollbarX from \"./scroll-area-scrollbar-x.svelte\";\n\timport ScrollAreaScrollbarY from \"./scroll-area-scrollbar-y.svelte\";\n\n\tlet { ...restProps }: Omit<_ScrollbarStubProps, \"forceMount\"> = $props();\n\n\tconst scrollbarVisibleState = ScrollAreaScrollbarVisibleState.create();\n</script>\n\n{#if scrollbarVisibleState.scrollbar.opts.orientation.current === \"horizontal\"}\n\t<ScrollAreaScrollbarX {...restProps} />\n{:else}\n\t<ScrollAreaScrollbarY {...restProps} />\n{/if}\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport { ScrollAreaScrollbarAutoState } from \"../scroll-area.svelte.js\";\n\timport type { _ScrollbarStubProps } from \"../types.js\";\n\timport ScrollAreaScrollbarVisible from \"./scroll-area-scrollbar-visible.svelte\";\n\timport PresenceLayer from \"../../utilities/presence-layer/presence-layer.svelte\";\n\n\tlet { forceMount = false, ...restProps }: _ScrollbarStubProps = $props();\n\n\tconst scrollbarAutoState = ScrollAreaScrollbarAutoState.create();\n\tconst mergedProps = $derived(mergeProps(restProps, scrollbarAutoState.props));\n</script>\n\n<PresenceLayer\n\topen={forceMount || scrollbarAutoState.isVisible}\n\tref={scrollbarAutoState.scrollbar.opts.ref}\n>\n\t{#snippet presence()}\n\t\t<ScrollAreaScrollbarVisible {...mergedProps} />\n\t{/snippet}\n</PresenceLayer>\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport { ScrollAreaScrollbarScrollState } from \"../scroll-area.svelte.js\";\n\timport type { _ScrollbarStubProps } from \"../types.js\";\n\timport ScrollAreaScrollbarVisible from \"./scroll-area-scrollbar-visible.svelte\";\n\timport PresenceLayer from \"../../utilities/presence-layer/presence-layer.svelte\";\n\n\tlet { forceMount = false, ...restProps }: _ScrollbarStubProps = $props();\n\n\tconst scrollbarScrollState = ScrollAreaScrollbarScrollState.create();\n\n\tconst mergedProps = $derived(mergeProps(restProps, scrollbarScrollState.props));\n</script>\n\n<PresenceLayer\n\t{...mergedProps}\n\topen={forceMount || !scrollbarScrollState.isHidden}\n\tref={scrollbarScrollState.scrollbar.opts.ref}\n>\n\t{#snippet presence()}\n\t\t<ScrollAreaScrollbarVisible {...mergedProps} />\n\t{/snippet}\n</PresenceLayer>\n", "<script lang=\"ts\">\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport {\n\t\tScrollAreaScrollbarAutoState,\n\t\tScrollAreaScrollbarHoverState,\n\t} from \"../scroll-area.svelte.js\";\n\timport type { _ScrollbarStubProps } from \"../types.js\";\n\timport ScrollAreaScrollbarVisible from \"./scroll-area-scrollbar-visible.svelte\";\n\timport PresenceLayer from \"../../utilities/presence-layer/presence-layer.svelte\";\n\n\tlet { forceMount = false, ...restProps }: _ScrollbarStubProps = $props();\n\n\tconst scrollbarHoverState = ScrollAreaScrollbarHoverState.create();\n\tconst scrollbarAutoState = ScrollAreaScrollbarAutoState.create();\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, scrollbarHoverState.props, scrollbarAutoState.props, {\n\t\t\t\"data-state\": scrollbarHoverState.isVisible ? \"visible\" : \"hidden\",\n\t\t})\n\t);\n\n\tconst open = $derived(\n\t\tforceMount || (scrollbarHoverState.isVisible && scrollbarAutoState.isVisible)\n\t);\n</script>\n\n<PresenceLayer {open} ref={scrollbarAutoState.scrollbar.opts.ref}>\n\t{#snippet presence()}\n\t\t<ScrollAreaScrollbarVisible {...mergedProps} />\n\t{/snippet}\n</PresenceLayer>\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { ScrollAreaScrollbarProps } from \"../types.js\";\n\timport { ScrollAreaScrollbarState } from \"../scroll-area.svelte.js\";\n\timport ScrollAreaScrollbarAuto from \"./scroll-area-scrollbar-auto.svelte\";\n\timport ScrollAreaScrollbarScroll from \"./scroll-area-scrollbar-scroll.svelte\";\n\timport ScrollAreaScrollbarHover from \"./scroll-area-scrollbar-hover.svelte\";\n\timport ScrollAreaScrollbarVisible from \"./scroll-area-scrollbar-visible.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\torientation,\n\t\t...restProps\n\t}: ScrollAreaScrollbarProps = $props();\n\n\tconst scrollbarState = ScrollAreaScrollbarState.create({\n\t\torientation: boxWith(() => orientation),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst type = $derived(scrollbarState.root.opts.type.current);\n</script>\n\n{#if type === \"hover\"}\n\t<ScrollAreaScrollbarHover {...restProps} {id} />\n{:else if type === \"scroll\"}\n\t<ScrollAreaScrollbarScroll {...restProps} {id} />\n{:else if type === \"auto\"}\n\t<ScrollAreaScrollbarAuto {...restProps} {id} />\n{:else if type === \"always\"}\n\t<ScrollAreaScrollbarVisible {...restProps} {id} />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { IsMounted } from \"runed\";\n\timport type { ScrollAreaThumbProps } from \"../types.js\";\n\timport { ScrollAreaThumbImplState } from \"../scroll-area.svelte.js\";\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid,\n\t\tchild,\n\t\tchildren,\n\t\tpresent,\n\t\t...restProps\n\t}: Omit<ScrollAreaThumbProps, \"forceMount\" | \"id\"> & {\n\t\tid: string;\n\t\tpresent: boolean;\n\t} = $props();\n\n\tconst isMounted = new IsMounted();\n\n\tconst thumbState = ScrollAreaThumbImplState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tmounted: boxWith(() => isMounted.current),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, thumbState.props, {\n\t\t\tstyle: {\n\t\t\t\thidden: !present,\n\t\t\t},\n\t\t})\n\t);\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport type { ScrollAreaThumbProps } from \"../types.js\";\n\timport { ScrollAreaScrollbarVisibleContext } from \"../scroll-area.svelte.js\";\n\timport ScrollAreaThumbImpl from \"./scroll-area-thumb-impl.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport PresenceLayer from \"../../utilities/presence-layer/presence-layer.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tforceMount = false,\n\t\t...restProps\n\t}: ScrollAreaThumbProps = $props();\n\n\tconst scrollbarState = ScrollAreaScrollbarVisibleContext.get();\n</script>\n\n<PresenceLayer open={forceMount || scrollbarState.hasThumb} ref={scrollbarState.scrollbar.opts.ref}>\n\t{#snippet presence({ present })}\n\t\t<ScrollAreaThumbImpl {...restProps} {id} bind:ref {present} />\n\t{/snippet}\n</PresenceLayer>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ScrollAreaCornerProps } from \"../types.js\";\n\timport { ScrollAreaCornerImplState } from \"../scroll-area.svelte.js\";\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid,\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: Omit<ScrollAreaCornerProps, \"id\"> & {\n\t\tid: string;\n\t} = $props();\n\n\tconst cornerState = ScrollAreaCornerImplState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, cornerState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport type { ScrollAreaCornerProps } from \"../types.js\";\n\timport { ScrollAreaRootContext } from \"../scroll-area.svelte.js\";\n\timport ScrollAreaCornerImpl from \"./scroll-area-corner-impl.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: ScrollAreaCornerProps = $props();\n\n\tconst scrollAreaState = ScrollAreaRootContext.get();\n\n\tconst hasBothScrollbarsVisible = $derived(\n\t\tBoolean(scrollAreaState.scrollbarXNode && scrollAreaState.scrollbarYNode)\n\t);\n\tconst hasCorner = $derived(\n\t\tscrollAreaState.opts.type.current !== \"scroll\" && hasBothScrollbarsVisible\n\t);\n</script>\n\n{#if hasCorner}\n\t<ScrollAreaCornerImpl {...restProps} {id} bind:ref />\n{/if}\n", "export { default as Root } from \"./components/select.svelte\";\nexport { default as Content } from \"./components/select-content.svelte\";\nexport { default as ContentStatic } from \"./components/select-content-static.svelte\";\nexport { default as Item } from \"./components/select-item.svelte\";\nexport { default as Group } from \"./components/select-group.svelte\";\nexport { default as GroupHeading } from \"./components/select-group-heading.svelte\";\nexport { default as Trigger } from \"./components/select-trigger.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\nexport { default as Viewport } from \"./components/select-viewport.svelte\";\nexport { default as ScrollUpButton } from \"./components/select-scroll-up-button.svelte\";\nexport { default as ScrollDownButton } from \"./components/select-scroll-down-button.svelte\";\n", "<script lang=\"ts\">\n\timport FloatingLayer from \"../../utilities/floating-layer/components/floating-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { type WritableBox, boxWith } from \"svelte-toolbelt\";\n\timport { SelectRootState } from \"../select.svelte.js\";\n\timport type { SelectRootProps } from \"../types.js\";\n\timport SelectHiddenInput from \"./select-hidden-input.svelte\";\n\timport { watch } from \"runed\";\n\n\tlet {\n\t\tvalue = $bindable(),\n\t\tonValueChange = noop,\n\t\tname = \"\",\n\t\tdisabled = false,\n\t\ttype,\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tloop = false,\n\t\tscrollAlignment = \"nearest\",\n\t\trequired = false,\n\t\titems = [],\n\t\tallowDeselect = false,\n\t\tautocomplete,\n\t\tchildren,\n\t}: SelectRootProps = $props();\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tvalue = type === \"single\" ? \"\" : [];\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tlet inputValue = $state(\"\");\n\n\tconst rootState = SelectRootState.create({\n\t\ttype,\n\t\tvalue: boxWith(\n\t\t\t() => value!,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\t// oxlint-disable-next-line no-explicit-any\n\t\t\t\tonValueChange(v as any);\n\t\t\t}\n\t\t) as WritableBox<string> | WritableBox<string[]>,\n\t\tdisabled: boxWith(() => disabled),\n\t\trequired: boxWith(() => required),\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\tloop: boxWith(() => loop),\n\t\tscrollAlignment: boxWith(() => scrollAlignment),\n\t\tname: boxWith(() => name),\n\t\tisCombobox: false,\n\t\titems: boxWith(() => items),\n\t\tallowDeselect: boxWith(() => allowDeselect),\n\t\tinputValue: boxWith(\n\t\t\t() => inputValue,\n\t\t\t(v) => (inputValue = v)\n\t\t),\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n</script>\n\n<FloatingLayer>\n\t{@render children?.()}\n</FloatingLayer>\n\n{#if Array.isArray(rootState.opts.value.current)}\n\t{#if rootState.opts.value.current.length === 0}\n\t\t<SelectHiddenInput {autocomplete} />\n\t{:else}\n\t\t{#each rootState.opts.value.current as item (item)}\n\t\t\t<SelectHiddenInput value={item} {autocomplete} />\n\t\t{/each}\n\t{/if}\n{:else}\n\t<SelectHiddenInput bind:value={rootState.opts.value.current as string} {autocomplete} />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { SelectTriggerState } from \"../select.svelte.js\";\n\timport type { SelectTriggerProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { FloatingLayer } from \"../../utilities/floating-layer/index.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchild,\n\t\tchildren,\n\t\ttype = \"button\",\n\t\t...restProps\n\t}: SelectTriggerProps = $props();\n\n\tconst triggerState = SelectTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props, { type }));\n</script>\n\n<FloatingLayer.Anchor {id} ref={triggerState.opts.ref}>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<button {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</button>\n\t{/if}\n</FloatingLayer.Anchor>\n", "export { default as Root } from \"./components/separator.svelte\";\n", "export { default as Root } from \"./components/slider.svelte\";\nexport { default as Range } from \"./components/slider-range.svelte\";\nexport { default as Thumb } from \"./components/slider-thumb.svelte\";\nexport { default as Tick } from \"./components/slider-tick.svelte\";\nexport { default as TickLabel } from \"./components/slider-tick-label.svelte\";\nexport { default as ThumbLabel } from \"./components/slider-thumb-label.svelte\";\n", "export function getRangeStyles(direction, min, max) {\n const styles = {\n position: \"absolute\",\n };\n if (direction === \"lr\") {\n styles.left = `${min}%`;\n styles.right = `${max}%`;\n }\n else if (direction === \"rl\") {\n styles.right = `${min}%`;\n styles.left = `${max}%`;\n }\n else if (direction === \"bt\") {\n styles.bottom = `${min}%`;\n styles.top = `${max}%`;\n }\n else {\n styles.top = `${min}%`;\n styles.bottom = `${max}%`;\n }\n return styles;\n}\nexport function getThumbStyles(direction, thumbPos) {\n const styles = {\n position: \"absolute\",\n };\n if (direction === \"lr\") {\n styles.left = `${thumbPos}%`;\n styles.translate = \"-50% 0\";\n }\n else if (direction === \"rl\") {\n styles.right = `${thumbPos}%`;\n styles.translate = \"50% 0\";\n }\n else if (direction === \"bt\") {\n styles.bottom = `${thumbPos}%`;\n styles.translate = \"0 50%\";\n }\n else {\n styles.top = `${thumbPos}%`;\n styles.translate = \"0 -50%\";\n }\n return styles;\n}\nexport function getTickStyles(direction, tickPosition, offsetPercentage) {\n const style = {\n position: \"absolute\",\n };\n if (direction === \"lr\") {\n style.left = `${tickPosition}%`;\n style.translate = `${offsetPercentage}% 0`;\n }\n else if (direction === \"rl\") {\n style.right = `${tickPosition}%`;\n style.translate = `${-offsetPercentage}% 0`;\n }\n else if (direction === \"bt\") {\n style.bottom = `${tickPosition}%`;\n style.translate = `0 ${-offsetPercentage}%`;\n }\n else {\n style.top = `${tickPosition}%`;\n style.translate = `0 ${offsetPercentage}%`;\n }\n return style;\n}\nexport function getTickLabelStyles(direction, tickPosition, labelPosition = \"top\") {\n const style = {\n position: \"absolute\",\n };\n if (direction === \"lr\" || direction === \"rl\") {\n // Horizontal slider\n style.left = direction === \"lr\" ? `${tickPosition}%` : undefined;\n style.right = direction === \"rl\" ? `${tickPosition}%` : undefined;\n style.translate = \"-50% 0\";\n if (labelPosition === \"top\") {\n style.bottom = \"100%\";\n }\n else if (labelPosition === \"bottom\") {\n style.top = \"100%\";\n }\n }\n else {\n // Vertical slider - use same positioning as ticks\n if (direction === \"tb\") {\n style.top = `${tickPosition}%`;\n }\n else {\n style.bottom = `${tickPosition}%`;\n }\n style.translate = \"0 50%\";\n if (labelPosition === \"left\") {\n style.right = \"100%\";\n }\n else if (labelPosition === \"right\") {\n style.left = \"100%\";\n }\n }\n return style;\n}\nexport function getThumbLabelStyles(direction, thumbPosition, labelPosition = \"top\") {\n const style = {\n position: \"absolute\",\n };\n if (direction === \"lr\" || direction === \"rl\") {\n // Horizontal slider\n style.left = direction === \"lr\" ? `${thumbPosition}%` : undefined;\n style.right = direction === \"rl\" ? `${thumbPosition}%` : undefined;\n style.translate = \"-50% 0\";\n if (labelPosition === \"top\") {\n style.bottom = \"100%\";\n }\n else if (labelPosition === \"bottom\") {\n style.top = \"100%\";\n }\n }\n else {\n // Vertical slider\n if (direction === \"tb\") {\n style.top = `${thumbPosition}%`;\n }\n else {\n style.bottom = `${thumbPosition}%`;\n }\n style.translate = \"0 -50%\";\n if (labelPosition === \"left\") {\n style.right = \"100%\";\n }\n else if (labelPosition === \"right\") {\n style.left = \"100%\";\n }\n }\n return style;\n}\n/**\n * Gets the number of decimal places in a number\n */\nfunction getDecimalPlaces(num) {\n if (Math.floor(num) === num)\n return 0;\n const str = num.toString();\n if (str.indexOf(\".\") !== -1 && str.indexOf(\"e-\") === -1) {\n return str.split(\".\")[1].length;\n }\n else if (str.indexOf(\"e-\") !== -1) {\n const parts = str.split(\"e-\");\n return parseInt(parts[1], 10);\n }\n return 0;\n}\n/**\n * Rounds a number to the specified number of decimal places\n */\nfunction roundToPrecision(num, precision) {\n const factor = Math.pow(10, precision);\n return Math.round(num * factor) / factor;\n}\n/**\n * Normalizes step to always be a sorted array of valid values within min/max range\n */\nexport function normalizeSteps(step, min, max) {\n if (typeof step === \"number\") {\n // generate regular steps - match original behavior exactly\n const difference = max - min;\n let count = Math.ceil(difference / step);\n // Get precision from step to avoid floating point errors\n const precision = getDecimalPlaces(step);\n // Check if difference is divisible by step using integer arithmetic to avoid floating point errors\n const factor = Math.pow(10, precision);\n const intDifference = Math.round(difference * factor);\n const intStep = Math.round(step * factor);\n if (intDifference % intStep === 0) {\n count++;\n }\n const steps = [];\n for (let i = 0; i < count; i++) {\n const value = min + i * step;\n // Round to the precision of the step to avoid floating point errors\n const roundedValue = roundToPrecision(value, precision);\n steps.push(roundedValue);\n }\n return steps;\n }\n return [...new Set(step)].filter((value) => value >= min && value <= max).sort((a, b) => a - b);\n}\n/**\n * Snaps a value to the nearest step in a custom steps array\n */\nexport function snapValueToCustomSteps(value, steps) {\n if (steps.length === 0)\n return value;\n // Find the closest step\n let closest = steps[0];\n let minDistance = Math.abs(value - closest);\n for (const step of steps) {\n const distance = Math.abs(value - step);\n if (distance < minDistance) {\n minDistance = distance;\n closest = step;\n }\n }\n return closest;\n}\n/**\n * Gets the next/previous step value for keyboard navigation\n */\nexport function getAdjacentStepValue(currentValue, steps, direction) {\n const currentIndex = steps.indexOf(currentValue);\n if (currentIndex === -1) {\n // current value is not in steps, snap to nearest\n return snapValueToCustomSteps(currentValue, steps);\n }\n if (direction === \"next\") {\n return currentIndex < steps.length - 1 ? steps[currentIndex + 1] : currentValue;\n }\n else {\n return currentIndex > 0 ? steps[currentIndex - 1] : currentValue;\n }\n}\n", "export function linearScale(domain, range, clamp = true) {\n const [d0, d1] = domain;\n const [r0, r1] = range;\n const slope = (r1 - r0) / (d1 - d0);\n return (x) => {\n const result = r0 + slope * (x - d0);\n if (!clamp)\n return result;\n if (result > Math.max(r0, r1))\n return Math.max(r0, r1);\n if (result < Math.min(r0, r1))\n return Math.min(r0, r1);\n return result;\n };\n}\n", "/**\n * This logic is adapted from the @melt-ui/svelte slider, which was mostly written by\n * Abdelrahman (https://github.com/abdel-17)\n */\nimport { untrack } from \"svelte\";\nimport { executeCallbacks, onMountEffect, attachRef, DOMContext, } from \"svelte-toolbelt\";\nimport { on } from \"svelte/events\";\nimport { Context, watch } from \"runed\";\nimport { getRangeStyles, getThumbStyles, getTickStyles, normalizeSteps, snapValueToCustomSteps, getAdjacentStepValue, getTickLabelStyles, getThumbLabelStyles, } from \"./helpers.js\";\nimport { createBitsAttrs, boolToStr, boolToEmptyStrOrUndef } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { isElementOrSVGElement } from \"../../internal/is.js\";\nimport { isValidIndex } from \"../../internal/arrays.js\";\nimport { linearScale } from \"../../internal/math.js\";\nconst sliderAttrs = createBitsAttrs({\n component: \"slider\",\n parts: [\"root\", \"thumb\", \"range\", \"tick\", \"tick-label\", \"thumb-label\"],\n});\nexport const SliderRootContext = new Context(\"Slider.Root\");\nclass SliderBaseRootState {\n opts;\n attachment;\n isActive = $state(false);\n direction = $derived.by(() => {\n if (this.opts.orientation.current === \"horizontal\") {\n return this.opts.dir.current === \"rtl\" ? \"rl\" : \"lr\";\n }\n else {\n return this.opts.dir.current === \"rtl\" ? \"tb\" : \"bt\";\n }\n });\n // Normalized steps array for consistent handling\n normalizedSteps = $derived.by(() => {\n return normalizeSteps(this.opts.step.current, this.opts.min.current, this.opts.max.current);\n });\n domContext;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(opts.ref);\n this.domContext = new DOMContext(this.opts.ref);\n }\n isThumbActive(_index) {\n return this.isActive;\n }\n #touchAction = $derived.by(() => {\n if (this.opts.disabled.current)\n return undefined;\n return this.opts.orientation.current === \"horizontal\" ? \"pan-y\" : \"pan-x\";\n });\n getAllThumbs = () => {\n const node = this.opts.ref.current;\n if (!node)\n return [];\n return Array.from(node.querySelectorAll(sliderAttrs.selector(\"thumb\")));\n };\n getThumbScale = () => {\n // If trackPadding is explicitly set, use it directly instead of calculating from thumb size\n const trackPadding = this.opts.trackPadding?.current;\n if (trackPadding !== undefined && trackPadding > 0) {\n return [trackPadding, 100 - trackPadding];\n }\n if (this.opts.thumbPositioning.current === \"exact\") {\n // User opted out of containment\n return [0, 100];\n }\n const isVertical = this.opts.orientation.current === \"vertical\";\n // this assumes all thumbs are the same width\n const activeThumb = this.getAllThumbs()[0];\n const thumbSize = isVertical ? activeThumb?.offsetHeight : activeThumb?.offsetWidth;\n // if thumb size is undefined or 0, fallback to a 0-100 scale\n if (thumbSize === undefined || Number.isNaN(thumbSize) || thumbSize === 0)\n return [0, 100];\n const trackSize = isVertical\n ? this.opts.ref.current?.offsetHeight\n : this.opts.ref.current?.offsetWidth;\n // if track size is undefined or 0, fallback to a 0-100 scale\n if (trackSize === undefined || Number.isNaN(trackSize) || trackSize === 0)\n return [0, 100];\n // the padding on either side\n // half the width of the thumb\n const percentPadding = (thumbSize / 2 / trackSize) * 100;\n const min = percentPadding;\n const max = 100 - percentPadding;\n return [min, max];\n };\n getPositionFromValue = (thumbValue) => {\n const thumbScale = this.getThumbScale();\n const scale = linearScale([this.opts.min.current, this.opts.max.current], thumbScale);\n return scale(thumbValue);\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-orientation\": this.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n style: {\n touchAction: this.#touchAction,\n },\n [sliderAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nclass SliderSingleRootState extends SliderBaseRootState {\n opts;\n isMulti = false;\n constructor(opts) {\n super(opts);\n this.opts = opts;\n onMountEffect(() => {\n return executeCallbacks(on(this.domContext.getDocument(), \"pointerdown\", this.handlePointerDown), on(this.domContext.getDocument(), \"pointerup\", this.handlePointerUp), on(this.domContext.getDocument(), \"pointermove\", this.handlePointerMove), on(this.domContext.getDocument(), \"pointerleave\", this.handlePointerUp));\n });\n watch([\n () => this.opts.step.current,\n () => this.opts.min.current,\n () => this.opts.max.current,\n () => this.opts.value.current,\n ], ([step, min, max, value]) => {\n const steps = normalizeSteps(step, min, max);\n const isValidValue = (v) => {\n return steps.includes(v);\n };\n const gcv = (v) => {\n return snapValueToCustomSteps(v, steps);\n };\n if (!isValidValue(value)) {\n this.opts.value.current = gcv(value);\n }\n });\n }\n isTickValueSelected = (tickValue) => {\n return this.opts.value.current === tickValue;\n };\n applyPosition({ clientXY, start, end }) {\n const min = this.opts.min.current;\n const max = this.opts.max.current;\n const percent = (clientXY - start) / (end - start);\n const val = percent * (max - min) + min;\n if (val < min) {\n this.updateValue(min);\n }\n else if (val > max) {\n this.updateValue(max);\n }\n else {\n const steps = this.normalizedSteps;\n const newValue = snapValueToCustomSteps(val, steps);\n this.updateValue(newValue);\n }\n }\n updateValue = (newValue) => {\n this.opts.value.current = snapValueToCustomSteps(newValue, this.normalizedSteps);\n };\n handlePointerMove = (e) => {\n if (!this.isActive || this.opts.disabled.current)\n return;\n e.preventDefault();\n e.stopPropagation();\n const sliderNode = this.opts.ref.current;\n const activeThumb = this.getAllThumbs()[0];\n if (!sliderNode || !activeThumb)\n return;\n activeThumb.focus();\n const { left, right, top, bottom } = sliderNode.getBoundingClientRect();\n if (this.direction === \"lr\") {\n this.applyPosition({\n clientXY: e.clientX,\n start: left,\n end: right,\n });\n }\n else if (this.direction === \"rl\") {\n this.applyPosition({\n clientXY: e.clientX,\n start: right,\n end: left,\n });\n }\n else if (this.direction === \"bt\") {\n this.applyPosition({\n clientXY: e.clientY,\n start: bottom,\n end: top,\n });\n }\n else if (this.direction === \"tb\") {\n this.applyPosition({\n clientXY: e.clientY,\n start: top,\n end: bottom,\n });\n }\n };\n handlePointerDown = (e) => {\n if (e.button !== 0 || this.opts.disabled.current)\n return;\n const sliderNode = this.opts.ref.current;\n const closestThumb = this.getAllThumbs()[0];\n if (!closestThumb || !sliderNode)\n return;\n const target = e.composedPath()[0] ?? e.target;\n if (!isElementOrSVGElement(target) || !sliderNode.contains(target))\n return;\n e.preventDefault();\n closestThumb.focus();\n this.isActive = true;\n this.handlePointerMove(e);\n };\n handlePointerUp = () => {\n if (this.opts.disabled.current)\n return;\n if (this.isActive) {\n this.opts.onValueCommit.current(untrack(() => this.opts.value.current));\n }\n this.isActive = false;\n };\n thumbsPropsArr = $derived.by(() => {\n const currValue = this.opts.value.current;\n return Array.from({ length: 1 }, () => {\n const thumbValue = currValue;\n const thumbPosition = this.getPositionFromValue(thumbValue);\n const style = getThumbStyles(this.direction, thumbPosition);\n return {\n role: \"slider\",\n \"aria-valuemin\": this.opts.min.current,\n \"aria-valuemax\": this.opts.max.current,\n \"aria-valuenow\": thumbValue,\n \"aria-disabled\": boolToStr(this.opts.disabled.current),\n \"aria-orientation\": this.opts.orientation.current,\n \"data-value\": thumbValue,\n \"data-orientation\": this.opts.orientation.current,\n style,\n [sliderAttrs.thumb]: \"\",\n };\n });\n });\n thumbsRenderArr = $derived.by(() => {\n return this.thumbsPropsArr.map((_, i) => i);\n });\n ticksPropsArr = $derived.by(() => {\n const steps = this.normalizedSteps;\n const currValue = this.opts.value.current;\n return steps.map((tickValue, i) => {\n // Calculate position relative to the range\n const tickPosition = this.getPositionFromValue(tickValue);\n const isFirst = i === 0;\n const isLast = i === steps.length - 1;\n const offsetPercentage = isFirst ? 0 : isLast ? -100 : -50;\n const style = getTickStyles(this.direction, tickPosition, offsetPercentage);\n const bounded = tickValue <= currValue;\n return {\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-orientation\": this.opts.orientation.current,\n \"data-bounded\": bounded ? \"\" : undefined,\n \"data-value\": tickValue,\n \"data-selected\": this.isTickValueSelected(tickValue) ? \"\" : undefined,\n style,\n [sliderAttrs.tick]: \"\",\n };\n });\n });\n ticksRenderArr = $derived.by(() => {\n return this.ticksPropsArr.map((_, i) => i);\n });\n tickItemsArr = $derived.by(() => {\n return this.ticksPropsArr.map((tick, i) => ({\n value: tick[\"data-value\"],\n index: i,\n }));\n });\n thumbItemsArr = $derived.by(() => {\n const currValue = this.opts.value.current;\n return [\n {\n value: currValue,\n index: 0,\n },\n ];\n });\n snippetProps = $derived.by(() => ({\n ticks: this.ticksRenderArr,\n thumbs: this.thumbsRenderArr,\n tickItems: this.tickItemsArr,\n thumbItems: this.thumbItemsArr,\n }));\n}\nclass SliderMultiRootState extends SliderBaseRootState {\n opts;\n isMulti = true;\n activeThumb = $state(null);\n currentThumbIdx = $state(0);\n constructor(opts) {\n super(opts);\n this.opts = opts;\n onMountEffect(() => {\n return executeCallbacks(on(this.domContext.getDocument(), \"pointerdown\", this.handlePointerDown), on(this.domContext.getDocument(), \"pointerup\", this.handlePointerUp), on(this.domContext.getDocument(), \"pointermove\", this.handlePointerMove), on(this.domContext.getDocument(), \"pointerleave\", this.handlePointerUp));\n });\n watch([\n () => this.opts.step.current,\n () => this.opts.min.current,\n () => this.opts.max.current,\n () => this.opts.value.current,\n ], ([step, min, max, value]) => {\n const steps = normalizeSteps(step, min, max);\n const isValidValue = (v) => {\n return steps.includes(v);\n };\n const gcv = (v) => {\n return snapValueToCustomSteps(v, steps);\n };\n if (value.some((v) => !isValidValue(v))) {\n this.opts.value.current = value.map(gcv);\n }\n });\n }\n isTickValueSelected = (tickValue) => {\n return this.opts.value.current.includes(tickValue);\n };\n isThumbActive(index) {\n return this.isActive && this.activeThumb?.idx === index;\n }\n applyPosition({ clientXY, activeThumbIdx, start, end, }) {\n const min = this.opts.min.current;\n const max = this.opts.max.current;\n const percent = (clientXY - start) / (end - start);\n const val = percent * (max - min) + min;\n if (val < min) {\n this.updateValue(min, activeThumbIdx);\n }\n else if (val > max) {\n this.updateValue(max, activeThumbIdx);\n }\n else {\n const steps = this.normalizedSteps;\n const newValue = snapValueToCustomSteps(val, steps);\n this.updateValue(newValue, activeThumbIdx);\n }\n }\n #getClosestThumb = (e) => {\n const thumbs = this.getAllThumbs();\n if (!thumbs.length)\n return;\n for (const thumb of thumbs) {\n thumb.blur();\n }\n const distances = thumbs.map((thumb) => {\n if (this.opts.orientation.current === \"horizontal\") {\n const { left, right } = thumb.getBoundingClientRect();\n return Math.abs(e.clientX - (left + right) / 2);\n }\n else {\n const { top, bottom } = thumb.getBoundingClientRect();\n return Math.abs(e.clientY - (top + bottom) / 2);\n }\n });\n const node = thumbs[distances.indexOf(Math.min(...distances))];\n const idx = thumbs.indexOf(node);\n return {\n node,\n idx,\n };\n };\n handlePointerMove = (e) => {\n if (!this.isActive || this.opts.disabled.current)\n return;\n e.preventDefault();\n e.stopPropagation();\n const sliderNode = this.opts.ref.current;\n const activeThumb = this.activeThumb;\n if (!sliderNode || !activeThumb)\n return;\n activeThumb.node.focus();\n const { left, right, top, bottom } = sliderNode.getBoundingClientRect();\n const direction = this.direction;\n if (direction === \"lr\") {\n this.applyPosition({\n clientXY: e.clientX,\n activeThumbIdx: activeThumb.idx,\n start: left,\n end: right,\n });\n }\n else if (direction === \"rl\") {\n this.applyPosition({\n clientXY: e.clientX,\n activeThumbIdx: activeThumb.idx,\n start: right,\n end: left,\n });\n }\n else if (direction === \"bt\") {\n this.applyPosition({\n clientXY: e.clientY,\n activeThumbIdx: activeThumb.idx,\n start: bottom,\n end: top,\n });\n }\n else if (direction === \"tb\") {\n this.applyPosition({\n clientXY: e.clientY,\n activeThumbIdx: activeThumb.idx,\n start: top,\n end: bottom,\n });\n }\n };\n handlePointerDown = (e) => {\n if (e.button !== 0 || this.opts.disabled.current)\n return;\n const sliderNode = this.opts.ref.current;\n const closestThumb = this.#getClosestThumb(e);\n if (!closestThumb || !sliderNode)\n return;\n const target = e.composedPath()[0] ?? e.target;\n if (!isElementOrSVGElement(target) || !sliderNode.contains(target))\n return;\n e.preventDefault();\n this.activeThumb = closestThumb;\n closestThumb.node.focus();\n this.isActive = true;\n this.handlePointerMove(e);\n };\n handlePointerUp = () => {\n if (this.opts.disabled.current)\n return;\n if (this.isActive) {\n this.opts.onValueCommit.current(untrack(() => this.opts.value.current));\n }\n this.isActive = false;\n };\n getAllThumbs = () => {\n const node = this.opts.ref.current;\n if (!node)\n return [];\n const thumbs = Array.from(node.querySelectorAll(sliderAttrs.selector(\"thumb\")));\n return thumbs;\n };\n updateValue = (thumbValue, idx) => {\n const currValue = this.opts.value.current;\n if (!currValue.length) {\n this.opts.value.current.push(thumbValue);\n return;\n }\n const valueAtIndex = currValue[idx];\n if (valueAtIndex === thumbValue)\n return;\n const newValue = [...currValue];\n if (!isValidIndex(idx, newValue))\n return;\n const direction = newValue[idx] > thumbValue ? -1 : +1;\n const swap = () => {\n const diffIndex = idx + direction;\n newValue[idx] = newValue[diffIndex];\n newValue[diffIndex] = thumbValue;\n const thumbs = this.getAllThumbs();\n if (!thumbs.length)\n return;\n thumbs[diffIndex]?.focus();\n this.activeThumb = { node: thumbs[diffIndex], idx: diffIndex };\n };\n if (this.opts.autoSort.current &&\n ((direction === -1 && thumbValue < newValue[idx - 1]) ||\n (direction === 1 && thumbValue > newValue[idx + 1]))) {\n swap();\n this.opts.value.current = newValue;\n return;\n }\n const steps = this.normalizedSteps;\n newValue[idx] = snapValueToCustomSteps(thumbValue, steps);\n this.opts.value.current = newValue;\n };\n thumbsPropsArr = $derived.by(() => {\n const currValue = this.opts.value.current;\n return Array.from({ length: currValue.length || 1 }, (_, i) => {\n const currThumb = untrack(() => this.currentThumbIdx);\n if (currThumb < currValue.length) {\n untrack(() => {\n this.currentThumbIdx = currThumb + 1;\n });\n }\n const thumbValue = currValue[i];\n const thumbPosition = this.getPositionFromValue(thumbValue ?? 0);\n const style = getThumbStyles(this.direction, thumbPosition);\n return {\n role: \"slider\",\n \"aria-valuemin\": this.opts.min.current,\n \"aria-valuemax\": this.opts.max.current,\n \"aria-valuenow\": thumbValue,\n \"aria-disabled\": boolToStr(this.opts.disabled.current),\n \"aria-orientation\": this.opts.orientation.current,\n \"data-value\": thumbValue,\n \"data-orientation\": this.opts.orientation.current,\n style,\n [sliderAttrs.thumb]: \"\",\n };\n });\n });\n thumbsRenderArr = $derived.by(() => {\n return this.thumbsPropsArr.map((_, i) => i);\n });\n ticksPropsArr = $derived.by(() => {\n const steps = this.normalizedSteps;\n const currValue = this.opts.value.current;\n return steps.map((tickValue, i) => {\n // Calculate position relative to the range\n const tickPosition = this.getPositionFromValue(tickValue);\n const isFirst = i === 0;\n const isLast = i === steps.length - 1;\n const offsetPercentage = isFirst ? 0 : isLast ? -100 : -50;\n const style = getTickStyles(this.direction, tickPosition, offsetPercentage);\n const bounded = currValue.length === 1\n ? tickValue <= currValue[0]\n : currValue[0] <= tickValue && tickValue <= currValue[currValue.length - 1];\n return {\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-orientation\": this.opts.orientation.current,\n \"data-bounded\": bounded ? \"\" : undefined,\n \"data-value\": tickValue,\n style,\n [sliderAttrs.tick]: \"\",\n };\n });\n });\n ticksRenderArr = $derived.by(() => {\n return this.ticksPropsArr.map((_, i) => i);\n });\n tickItemsArr = $derived.by(() => {\n return this.ticksPropsArr.map((tick, i) => ({\n value: tick[\"data-value\"],\n index: i,\n }));\n });\n thumbItemsArr = $derived.by(() => {\n const currValue = this.opts.value.current;\n return currValue.map((value, index) => ({\n value,\n index,\n }));\n });\n snippetProps = $derived.by(() => ({\n ticks: this.ticksRenderArr,\n thumbs: this.thumbsRenderArr,\n tickItems: this.tickItemsArr,\n thumbItems: this.thumbItemsArr,\n }));\n}\nexport class SliderRootState {\n static create(opts) {\n const { type, ...rest } = opts;\n const rootState = type === \"single\"\n ? new SliderSingleRootState(rest)\n : new SliderMultiRootState(rest);\n return SliderRootContext.set(rootState);\n }\n}\nconst VALID_SLIDER_KEYS = [\n kbd.ARROW_LEFT,\n kbd.ARROW_RIGHT,\n kbd.ARROW_UP,\n kbd.ARROW_DOWN,\n kbd.HOME,\n kbd.END,\n];\nexport class SliderRangeState {\n static create(opts) {\n return new SliderRangeState(opts, SliderRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n rangeStyles = $derived.by(() => {\n if (Array.isArray(this.root.opts.value.current)) {\n // Multi-slider: range between min and max thumbs\n const min = this.root.opts.value.current.length > 1\n ? this.root.getPositionFromValue(Math.min(...this.root.opts.value.current) ?? 0)\n : 0;\n const max = 100 -\n this.root.getPositionFromValue(Math.max(...this.root.opts.value.current) ?? 0);\n return {\n position: \"absolute\",\n ...getRangeStyles(this.root.direction, min, max),\n };\n }\n else {\n // Single slider: range from start to current value\n const trackPadding = this.root.opts.trackPadding?.current;\n const currentValue = this.root.opts.value.current;\n const maxValue = this.root.opts.max.current;\n // Always start from 0% (beginning of track container)\n const min = 0;\n // If trackPadding is set and we're at max value, extend to fill the container\n // Otherwise use the thumb position\n const max = trackPadding !== undefined && trackPadding > 0 && currentValue === maxValue\n ? 0 // 100% - 0% = full width\n : 100 - this.root.getPositionFromValue(currentValue);\n return {\n position: \"absolute\",\n ...getRangeStyles(this.root.direction, min, max),\n };\n }\n });\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-orientation\": this.root.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n style: this.rangeStyles,\n [sliderAttrs.range]: \"\",\n ...this.attachment,\n }));\n}\nexport class SliderThumbState {\n static create(opts) {\n return new SliderThumbState(opts, SliderRootContext.get());\n }\n opts;\n root;\n attachment;\n #isDisabled = $derived.by(() => this.root.opts.disabled.current || this.opts.disabled.current);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n this.onkeydown = this.onkeydown.bind(this);\n }\n #updateValue(newValue) {\n if (this.root.isMulti) {\n this.root.updateValue(newValue, this.opts.index.current);\n }\n else {\n this.root.updateValue(newValue);\n }\n }\n onkeydown(e) {\n if (this.#isDisabled)\n return;\n const currNode = this.opts.ref.current;\n if (!currNode)\n return;\n const thumbs = this.root.getAllThumbs();\n if (!thumbs.length)\n return;\n const idx = thumbs.indexOf(currNode);\n if (this.root.isMulti) {\n this.root.currentThumbIdx = idx;\n }\n if (!VALID_SLIDER_KEYS.includes(e.key))\n return;\n e.preventDefault();\n const min = this.root.opts.min.current;\n const max = this.root.opts.max.current;\n const value = this.root.opts.value.current;\n const thumbValue = Array.isArray(value) ? value[idx] : value;\n const orientation = this.root.opts.orientation.current;\n const direction = this.root.direction;\n const steps = this.root.normalizedSteps;\n switch (e.key) {\n case kbd.HOME:\n this.#updateValue(min);\n break;\n case kbd.END:\n this.#updateValue(max);\n break;\n case kbd.ARROW_LEFT:\n if (orientation !== \"horizontal\")\n break;\n if (e.metaKey) {\n const newValue = direction === \"rl\" ? max : min;\n this.#updateValue(newValue);\n }\n else {\n const stepDirection = direction === \"rl\" ? \"next\" : \"prev\";\n const newValue = getAdjacentStepValue(thumbValue, steps, stepDirection);\n this.#updateValue(newValue);\n }\n break;\n case kbd.ARROW_RIGHT:\n if (orientation !== \"horizontal\")\n break;\n if (e.metaKey) {\n const newValue = direction === \"rl\" ? min : max;\n this.#updateValue(newValue);\n }\n else {\n const stepDirection = direction === \"rl\" ? \"prev\" : \"next\";\n const newValue = getAdjacentStepValue(thumbValue, steps, stepDirection);\n this.#updateValue(newValue);\n }\n break;\n case kbd.ARROW_UP:\n if (e.metaKey) {\n const newValue = direction === \"tb\" ? min : max;\n this.#updateValue(newValue);\n }\n else {\n const stepDirection = direction === \"tb\" ? \"prev\" : \"next\";\n const newValue = getAdjacentStepValue(thumbValue, steps, stepDirection);\n this.#updateValue(newValue);\n }\n break;\n case kbd.ARROW_DOWN:\n if (e.metaKey) {\n const newValue = direction === \"tb\" ? max : min;\n this.#updateValue(newValue);\n }\n else {\n const stepDirection = direction === \"tb\" ? \"next\" : \"prev\";\n const newValue = getAdjacentStepValue(thumbValue, steps, stepDirection);\n this.#updateValue(newValue);\n }\n break;\n }\n // @ts-expect-error - this is fine\n this.root.opts.onValueCommit.current(this.root.opts.value.current);\n }\n props = $derived.by(() => ({\n ...this.root.thumbsPropsArr[this.opts.index.current],\n id: this.opts.id.current,\n onkeydown: this.onkeydown,\n \"data-active\": this.root.isThumbActive(this.opts.index.current) ? \"\" : undefined,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current || this.root.opts.disabled.current),\n tabindex: this.opts.disabled.current || this.root.opts.disabled.current ? -1 : 0,\n ...this.attachment,\n }));\n}\nexport class SliderTickState {\n static create(opts) {\n return new SliderTickState(opts, SliderRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n props = $derived.by(() => ({\n ...this.root.ticksPropsArr[this.opts.index.current],\n id: this.opts.id.current,\n ...this.attachment,\n }));\n}\nexport class SliderTickLabelState {\n static create(opts) {\n return new SliderTickLabelState(opts, SliderRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n props = $derived.by(() => {\n const tickProps = this.root.ticksPropsArr[this.opts.index.current];\n const steps = this.root.normalizedSteps;\n const tickValue = steps[this.opts.index.current];\n const tickPosition = this.root.getPositionFromValue(tickValue);\n const labelPosition = this.opts.position?.current ?? \"top\";\n const style = getTickLabelStyles(this.root.direction, tickPosition, labelPosition);\n return {\n id: this.opts.id.current,\n \"data-orientation\": this.root.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n \"data-bounded\": tickProps[\"data-bounded\"],\n \"data-value\": tickValue,\n \"data-selected\": this.root.isTickValueSelected(tickValue) ? \"\" : undefined,\n \"data-position\": labelPosition,\n style,\n [sliderAttrs[\"tick-label\"]]: \"\",\n ...this.attachment,\n };\n });\n}\nexport class SliderThumbLabelState {\n static create(opts) {\n return new SliderThumbLabelState(opts, SliderRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n props = $derived.by(() => {\n const value = this.root.opts.value.current;\n const thumbValue = Array.isArray(value) ? value[this.opts.index.current] : value;\n const thumbPosition = this.root.getPositionFromValue(thumbValue);\n const labelPosition = this.opts.position?.current ?? \"top\";\n const style = getThumbLabelStyles(this.root.direction, thumbPosition, labelPosition);\n return {\n id: this.opts.id.current,\n \"data-orientation\": this.root.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n \"data-value\": thumbValue,\n \"data-active\": this.root.isThumbActive(this.opts.index.current) ? \"\" : undefined,\n \"data-position\": labelPosition,\n style,\n [sliderAttrs[\"thumb-label\"]]: \"\",\n ...this.attachment,\n };\n });\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps, type WritableBox } from \"svelte-toolbelt\";\n\timport type { SliderRootProps } from \"../types.js\";\n\timport { SliderRootState } from \"../slider.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { watch } from \"runed\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(),\n\t\ttype,\n\t\tonValueChange = noop,\n\t\tonValueCommit = noop,\n\t\tdisabled = false,\n\t\tmin: minProp,\n\t\tmax: maxProp,\n\t\tstep = 1,\n\t\tdir = \"ltr\",\n\t\tautoSort = true,\n\t\torientation = \"horizontal\",\n\t\tthumbPositioning = \"contain\",\n\t\ttrackPadding,\n\t\t...restProps\n\t}: SliderRootProps = $props();\n\n\tconst min = $derived.by(() => {\n\t\tif (minProp !== undefined) return minProp;\n\t\tif (Array.isArray(step)) return Math.min(...step);\n\t\treturn 0;\n\t});\n\n\tconst max = $derived.by(() => {\n\t\tif (maxProp !== undefined) return maxProp;\n\t\tif (Array.isArray(step)) return Math.max(...step);\n\t\treturn 100;\n\t});\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tif (type === \"single\") {\n\t\t\treturn min;\n\t\t}\n\t\treturn [];\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tconst rootState = SliderRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\t// @ts-expect-error - we know\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t) as WritableBox<number> | WritableBox<number[]>,\n\t\t// @ts-expect-error - we know\n\t\tonValueCommit: boxWith(() => onValueCommit),\n\t\tdisabled: boxWith(() => disabled),\n\t\tmin: boxWith(() => min),\n\t\tmax: boxWith(() => max),\n\t\tstep: boxWith(() => step),\n\t\tdir: boxWith(() => dir),\n\t\tautoSort: boxWith(() => autoSort),\n\t\torientation: boxWith(() => orientation),\n\t\tthumbPositioning: boxWith(() => thumbPositioning),\n\t\ttype,\n\t\ttrackPadding: boxWith(() => trackPadding),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...rootState.snippetProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.(rootState.snippetProps)}\n\t</span>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SliderRangeProps } from \"../types.js\";\n\timport { SliderRangeState } from \"../slider.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: SliderRangeProps = $props();\n\n\tconst rangeState = SliderRangeState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\tconst mergedProps = $derived(mergeProps(restProps, rangeState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.()}\n\t</span>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SliderThumbProps } from \"../types.js\";\n\timport { SliderThumbState } from \"../slider.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tindex,\n\t\tdisabled = false,\n\t\t...restProps\n\t}: SliderThumbProps = $props();\n\n\tconst thumbState = SliderThumbState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tindex: boxWith(() => index),\n\t\tdisabled: boxWith(() => disabled),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, thumbState.props));\n</script>\n\n{#if child}\n\t{@render child({\n\t\tactive: thumbState.root.isThumbActive(thumbState.opts.index.current),\n\t\tprops: mergedProps,\n\t})}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.({\n\t\t\tactive: thumbState.root.isThumbActive(thumbState.opts.index.current),\n\t\t})}\n\t</span>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SliderTickProps } from \"../types.js\";\n\timport { SliderTickState } from \"../slider.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tindex,\n\t\t...restProps\n\t}: SliderTickProps = $props();\n\n\tconst tickState = SliderTickState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tindex: boxWith(() => index),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, tickState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>{@render children?.()}</span>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SliderTickLabelProps } from \"../types.js\";\n\timport { SliderRootContext, SliderTickLabelState } from \"../slider.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tindex,\n\t\tposition: positionProp,\n\t\t...restProps\n\t}: SliderTickLabelProps = $props();\n\n\tconst root = SliderRootContext.get();\n\n\tconst position = $derived.by(() => {\n\t\tif (positionProp !== undefined) return positionProp;\n\t\tswitch (root.direction) {\n\t\t\tcase \"lr\":\n\t\t\tcase \"rl\":\n\t\t\t\treturn \"top\";\n\t\t\tcase \"tb\":\n\t\t\tcase \"bt\":\n\t\t\t\treturn \"left\";\n\t\t}\n\t});\n\n\tconst tickLabelState = SliderTickLabelState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tindex: boxWith(() => index),\n\t\tposition: boxWith(() => position),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, tickLabelState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>{@render children?.()}</span>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SliderThumbLabelProps } from \"../types.js\";\n\timport { SliderRootContext, SliderThumbLabelState } from \"../slider.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tindex,\n\t\tposition: positionProp,\n\t\t...restProps\n\t}: SliderThumbLabelProps = $props();\n\n\tconst root = SliderRootContext.get();\n\n\tconst position = $derived.by(() => {\n\t\tif (positionProp !== undefined) return positionProp;\n\t\tswitch (root.direction) {\n\t\t\tcase \"lr\":\n\t\t\tcase \"rl\":\n\t\t\t\treturn \"top\";\n\t\t\tcase \"tb\":\n\t\t\tcase \"bt\":\n\t\t\t\treturn \"left\";\n\t\t}\n\t});\n\n\tconst tickLabelState = SliderThumbLabelState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tindex: boxWith(() => index),\n\t\tposition: boxWith(() => position),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, tickLabelState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>{@render children?.()}</span>\n{/if}\n", "export { default as Root } from \"./components/switch.svelte\";\nexport { default as Thumb } from \"./components/switch-thumb.svelte\";\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { Context } from \"runed\";\nimport { getAriaChecked, boolToStr, getDataChecked, boolToTrueOrUndef, createBitsAttrs, boolToEmptyStrOrUndef, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nconst switchAttrs = createBitsAttrs({\n component: \"switch\",\n parts: [\"root\", \"thumb\"],\n});\nconst SwitchRootContext = new Context(\"Switch.Root\");\nexport class SwitchRootState {\n static create(opts) {\n return SwitchRootContext.set(new SwitchRootState(opts));\n }\n opts;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(opts.ref);\n this.onkeydown = this.onkeydown.bind(this);\n this.onclick = this.onclick.bind(this);\n }\n #toggle() {\n this.opts.checked.current = !this.opts.checked.current;\n }\n onkeydown(e) {\n if (!(e.key === kbd.ENTER || e.key === kbd.SPACE) || this.opts.disabled.current)\n return;\n e.preventDefault();\n this.#toggle();\n }\n onclick(_) {\n if (this.opts.disabled.current)\n return;\n this.#toggle();\n }\n sharedProps = $derived.by(() => ({\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-state\": getDataChecked(this.opts.checked.current),\n \"data-required\": boolToEmptyStrOrUndef(this.opts.required.current),\n }));\n snippetProps = $derived.by(() => ({\n checked: this.opts.checked.current,\n }));\n props = $derived.by(() => ({\n ...this.sharedProps,\n id: this.opts.id.current,\n role: \"switch\",\n disabled: boolToTrueOrUndef(this.opts.disabled.current),\n \"aria-checked\": getAriaChecked(this.opts.checked.current, false),\n \"aria-required\": boolToStr(this.opts.required.current),\n [switchAttrs.root]: \"\",\n //\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class SwitchInputState {\n static create() {\n return new SwitchInputState(SwitchRootContext.get());\n }\n root;\n shouldRender = $derived.by(() => this.root.opts.name.current !== undefined);\n constructor(root) {\n this.root = root;\n }\n props = $derived.by(() => ({\n type: \"checkbox\",\n name: this.root.opts.name.current,\n value: this.root.opts.value.current,\n checked: this.root.opts.checked.current,\n disabled: this.root.opts.disabled.current,\n required: this.root.opts.required.current,\n }));\n}\nexport class SwitchThumbState {\n static create(opts) {\n return new SwitchThumbState(opts, SwitchRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n snippetProps = $derived.by(() => ({\n checked: this.root.opts.checked.current,\n }));\n props = $derived.by(() => ({\n ...this.root.sharedProps,\n id: this.opts.id.current,\n [switchAttrs.thumb]: \"\",\n ...this.attachment,\n }));\n}\n", "<script lang=\"ts\">\n\timport HiddenInput from \"../../utilities/hidden-input.svelte\";\n\timport { SwitchInputState } from \"../switch.svelte.js\";\n\n\tconst inputState = SwitchInputState.create();\n</script>\n\n{#if inputState.shouldRender}\n\t<HiddenInput {...inputState.props} />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SwitchRootProps } from \"../types.js\";\n\timport { SwitchRootState } from \"../switch.svelte.js\";\n\timport SwitchInput from \"./switch-input.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tdisabled = false,\n\t\trequired = false,\n\t\tchecked = $bindable(false),\n\t\tvalue = \"on\",\n\t\tname = undefined,\n\t\ttype = \"button\",\n\t\tonCheckedChange = noop,\n\t\t...restProps\n\t}: SwitchRootProps = $props();\n\n\tconst rootState = SwitchRootState.create({\n\t\tchecked: boxWith(\n\t\t\t() => checked,\n\t\t\t(v) => {\n\t\t\t\tchecked = v;\n\t\t\t\tonCheckedChange?.(v);\n\t\t\t}\n\t\t),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\trequired: boxWith(() => required),\n\t\tvalue: boxWith(() => value),\n\t\tname: boxWith(() => name),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...rootState.snippetProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.(rootState.snippetProps)}\n\t</button>\n{/if}\n\n<SwitchInput />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { SwitchThumbProps } from \"../types.js\";\n\timport { SwitchThumbState } from \"../switch.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: SwitchThumbProps = $props();\n\n\tconst thumbState = SwitchThumbState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, thumbState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...thumbState.snippetProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.(thumbState.snippetProps)}\n\t</span>\n{/if}\n", "export { default as Root } from \"./components/tabs.svelte\";\nexport { default as Content } from \"./components/tabs-content.svelte\";\nexport { default as List } from \"./components/tabs-list.svelte\";\nexport { default as Trigger } from \"./components/tabs-trigger.svelte\";\n", "import { SvelteMap } from \"svelte/reactivity\";\nimport { attachRef } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { createBitsAttrs, boolToStr, boolToEmptyStrOrUndef, boolToTrueOrUndef, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { RovingFocusGroup } from \"../../internal/roving-focus-group.js\";\nconst tabsAttrs = createBitsAttrs({\n component: \"tabs\",\n parts: [\"root\", \"list\", \"trigger\", \"content\"],\n});\nconst TabsRootContext = new Context(\"Tabs.Root\");\nexport class TabsRootState {\n static create(opts) {\n return TabsRootContext.set(new TabsRootState(opts));\n }\n opts;\n attachment;\n rovingFocusGroup;\n triggerIds = $state([]);\n // holds the trigger ID for each value to associate it with the content\n valueToTriggerId = new SvelteMap();\n // holds the content ID for each value to associate it with the trigger\n valueToContentId = new SvelteMap();\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(opts.ref);\n this.rovingFocusGroup = new RovingFocusGroup({\n candidateAttr: tabsAttrs.trigger,\n rootNode: this.opts.ref,\n loop: this.opts.loop,\n orientation: this.opts.orientation,\n });\n }\n registerTrigger(id, value) {\n this.triggerIds.push(id);\n this.valueToTriggerId.set(value, id);\n // returns the deregister function\n return () => {\n this.triggerIds = this.triggerIds.filter((triggerId) => triggerId !== id);\n this.valueToTriggerId.delete(value);\n };\n }\n registerContent(id, value) {\n this.valueToContentId.set(value, id);\n // returns the deregister function\n return () => {\n this.valueToContentId.delete(value);\n };\n }\n setValue(v) {\n this.opts.value.current = v;\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-orientation\": this.opts.orientation.current,\n [tabsAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nexport class TabsListState {\n static create(opts) {\n return new TabsListState(opts, TabsRootContext.get());\n }\n opts;\n root;\n attachment;\n #isDisabled = $derived.by(() => this.root.opts.disabled.current);\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"tablist\",\n \"aria-orientation\": this.root.opts.orientation.current,\n \"data-orientation\": this.root.opts.orientation.current,\n [tabsAttrs.list]: \"\",\n \"data-disabled\": boolToEmptyStrOrUndef(this.#isDisabled),\n ...this.attachment,\n }));\n}\nexport class TabsTriggerState {\n static create(opts) {\n return new TabsTriggerState(opts, TabsRootContext.get());\n }\n opts;\n root;\n attachment;\n #tabIndex = $state(0);\n #isActive = $derived.by(() => this.root.opts.value.current === this.opts.value.current);\n #isDisabled = $derived.by(() => this.opts.disabled.current || this.root.opts.disabled.current);\n #ariaControls = $derived.by(() => this.root.valueToContentId.get(this.opts.value.current));\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n watch([() => this.opts.id.current, () => this.opts.value.current], ([id, value]) => {\n return this.root.registerTrigger(id, value);\n });\n $effect(() => {\n this.root.triggerIds.length;\n if (this.#isActive || !this.root.opts.value.current) {\n this.#tabIndex = 0;\n }\n else {\n this.#tabIndex = -1;\n }\n });\n this.onfocus = this.onfocus.bind(this);\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n #activate() {\n if (this.root.opts.value.current === this.opts.value.current)\n return;\n this.root.setValue(this.opts.value.current);\n }\n onfocus(_) {\n if (this.root.opts.activationMode.current !== \"automatic\" || this.#isDisabled)\n return;\n this.#activate();\n }\n onclick(_) {\n if (this.#isDisabled)\n return;\n this.#activate();\n }\n onkeydown(e) {\n if (this.#isDisabled)\n return;\n if (e.key === kbd.SPACE || e.key === kbd.ENTER) {\n e.preventDefault();\n this.#activate();\n return;\n }\n this.root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"tab\",\n \"data-state\": getTabDataState(this.#isActive),\n \"data-value\": this.opts.value.current,\n \"data-orientation\": this.root.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.#isDisabled),\n \"aria-selected\": boolToStr(this.#isActive),\n \"aria-controls\": this.#ariaControls,\n [tabsAttrs.trigger]: \"\",\n disabled: boolToTrueOrUndef(this.#isDisabled),\n tabindex: this.#tabIndex,\n //\n onclick: this.onclick,\n onfocus: this.onfocus,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class TabsContentState {\n static create(opts) {\n return new TabsContentState(opts, TabsRootContext.get());\n }\n opts;\n root;\n attachment;\n #isActive = $derived.by(() => this.root.opts.value.current === this.opts.value.current);\n #ariaLabelledBy = $derived.by(() => this.root.valueToTriggerId.get(this.opts.value.current));\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n watch([() => this.opts.id.current, () => this.opts.value.current], ([id, value]) => {\n return this.root.registerContent(id, value);\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"tabpanel\",\n hidden: boolToTrueOrUndef(!this.#isActive),\n tabindex: 0,\n \"data-value\": this.opts.value.current,\n \"data-state\": getTabDataState(this.#isActive),\n \"aria-labelledby\": this.#ariaLabelledBy,\n \"data-orientation\": this.root.opts.orientation.current,\n [tabsAttrs.content]: \"\",\n ...this.attachment,\n }));\n}\nfunction getTabDataState(condition) {\n return condition ? \"active\" : \"inactive\";\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { TabsRootProps } from \"../types.js\";\n\timport { TabsRootState } from \"../tabs.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(\"\"),\n\t\tonValueChange = noop,\n\t\torientation = \"horizontal\",\n\t\tloop = true,\n\t\tactivationMode = \"automatic\",\n\t\tdisabled = false,\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: TabsRootProps = $props();\n\n\tconst rootState = TabsRootState.create({\n\t\tid: boxWith(() => id),\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\torientation: boxWith(() => orientation),\n\t\tloop: boxWith(() => loop),\n\t\tactivationMode: boxWith(() => activationMode),\n\t\tdisabled: boxWith(() => disabled),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { TabsContentProps } from \"../types.js\";\n\timport { TabsContentState } from \"../tabs.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue,\n\t\t...restProps\n\t}: TabsContentProps = $props();\n\n\tconst contentState = TabsContentState.create({\n\t\tvalue: boxWith(() => value),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { TabsListProps } from \"../types.js\";\n\timport { TabsListState } from \"../tabs.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: TabsListProps = $props();\n\n\tconst listState = TabsListState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, listState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { TabsTriggerProps } from \"../types.js\";\n\timport { TabsTriggerState } from \"../tabs.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tdisabled = false,\n\t\tid = createId(uid),\n\t\ttype = \"button\",\n\t\tvalue,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: TabsTriggerProps = $props();\n\n\tconst triggerState = TabsTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\tvalue: boxWith(() => value),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "export { default as Root } from \"./components/time-field.svelte\";\nexport { default as Input } from \"./components/time-field-input.svelte\";\nexport { default as Label } from \"./components/time-field-label.svelte\";\nexport { default as Segment } from \"./components/time-field-segment.svelte\";\n", "import { CalendarDateTime, Time, ZonedDateTime } from \"@internationalized/date\";\nimport { onDestroyEffect, attachRef, DOMContext, simpleBox, } from \"svelte-toolbelt\";\nimport { onMount, untrack } from \"svelte\";\nimport { Context, watch } from \"runed\";\nimport { createBitsAttrs, boolToStr, boolToStrTrueOrUndef, boolToEmptyStrOrUndef, } from \"../../internal/attrs.js\";\nimport { isBrowser, isNumberString } from \"../../internal/is.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { useId } from \"../../internal/use-id.js\";\nimport { createTimeFormatter } from \"../../internal/date-time/formatter.js\";\nimport { getAnnouncer } from \"../../internal/date-time/announcer.js\";\nimport { EDITABLE_TIME_SEGMENT_PARTS } from \"../../internal/date-time/field/parts.js\";\nimport { toDate } from \"../../internal/date-time/utils.js\";\nimport { areAllTimeSegmentsFilled, convertTimeValueToTime, createTimeContent, getISOTimeValue, getTimeValueFromSegments, initTimeSegmentStates, isFirstTimeSegment, isTimeBefore, removeTimeDescriptionElement, setTimeDescription, } from \"../../internal/date-time/field/time-helpers.js\";\nimport { getFirstTimeSegment, handleTimeSegmentNavigation, isSegmentNavigationKey, moveToNextTimeSegment, moveToPrevTimeSegment, } from \"../../internal/date-time/field/segments.js\";\nimport { getDefaultHourCycle, isAcceptableSegmentKey, } from \"../../internal/date-time/field/helpers.js\";\nexport const timeFieldAttrs = createBitsAttrs({\n component: \"time-field\",\n parts: [\"input\", \"label\"],\n});\nconst TimeFieldRootContext = new Context(\"TimeField.Root\");\nconst SEGMENT_CONFIGS = {\n hour: {\n min: (root) => (root.hourCycle === 12 ? 1 : 0),\n max: (root) => {\n if (root.hourCycle === 24)\n return 23;\n if (\"dayPeriod\" in root.segmentValues && root.segmentValues.dayPeriod !== null)\n return 12;\n return 23;\n },\n cycle: 1,\n canBeZero: true,\n padZero: true,\n },\n minute: {\n min: 0,\n max: 59,\n cycle: 1,\n canBeZero: true,\n padZero: true,\n },\n second: {\n min: 0,\n max: 59,\n cycle: 1,\n canBeZero: true,\n padZero: true,\n },\n};\nexport class TimeFieldRootState {\n static create(opts, rangeRoot) {\n return TimeFieldRootContext.set(new TimeFieldRootState(opts, rangeRoot));\n }\n value;\n placeholder;\n validate;\n minValue;\n maxValue;\n disabled;\n readonly;\n granularity;\n readonlySegments;\n hourCycleProp;\n locale;\n hideTimeZone;\n required;\n onInvalid;\n errorMessageId;\n isInvalidProp;\n descriptionId = useId();\n formatter;\n initialSegments;\n segmentValues = $state();\n announcer;\n readonlySegmentsSet = $derived.by(() => new Set(this.readonlySegments.current));\n segmentStates = initTimeSegmentStates();\n #fieldNode = $state(null);\n #labelNode = $state(null);\n descriptionNode = $state(null);\n validationNode = $state(null);\n states = initTimeSegmentStates();\n dayPeriodNode = $state(null);\n name = $state(\"\");\n maxValueTime = $derived.by(() => {\n if (!this.maxValue.current)\n return undefined;\n return convertTimeValueToTime(this.maxValue.current);\n });\n minValueTime = $derived.by(() => {\n if (!this.minValue.current)\n return undefined;\n return convertTimeValueToTime(this.minValue.current);\n });\n valueTime = $derived.by(() => {\n if (!this.value.current)\n return undefined;\n return convertTimeValueToTime(this.value.current);\n });\n hourCycle = $derived.by(() => {\n if (this.hourCycleProp.current)\n return this.hourCycleProp.current;\n return getDefaultHourCycle(this.locale.current);\n });\n rangeRoot = undefined;\n domContext = new DOMContext(() => null);\n constructor(props, rangeRoot) {\n this.rangeRoot = rangeRoot;\n /**\n * Since the `TimeFieldRootState` can be used in two contexts, as a standalone\n * field or as a field within a `TimeRangeField` component, we handle assigning\n * the props based on that context.\n */\n this.value = props.value;\n this.placeholder = rangeRoot ? rangeRoot.opts.placeholder : props.placeholder;\n this.validate = rangeRoot ? simpleBox(undefined) : props.validate;\n this.minValue = rangeRoot ? rangeRoot.opts.minValue : props.minValue;\n this.maxValue = rangeRoot ? rangeRoot.opts.maxValue : props.maxValue;\n this.disabled = rangeRoot ? rangeRoot.opts.disabled : props.disabled;\n this.readonly = rangeRoot ? rangeRoot.opts.readonly : props.readonly;\n this.granularity = rangeRoot ? rangeRoot.opts.granularity : props.granularity;\n this.readonlySegments = rangeRoot\n ? rangeRoot.opts.readonlySegments\n : props.readonlySegments;\n this.hourCycleProp = rangeRoot ? rangeRoot.opts.hourCycle : props.hourCycle;\n this.locale = rangeRoot ? rangeRoot.opts.locale : props.locale;\n this.hideTimeZone = rangeRoot ? rangeRoot.opts.hideTimeZone : props.hideTimeZone;\n this.required = rangeRoot ? rangeRoot.opts.required : props.required;\n this.onInvalid = rangeRoot ? rangeRoot.opts.onInvalid : props.onInvalid;\n this.errorMessageId = rangeRoot ? rangeRoot.opts.errorMessageId : props.errorMessageId;\n this.isInvalidProp = props.isInvalidProp;\n this.formatter = createTimeFormatter(this.locale.current);\n this.initialSegments = this.#initializeTimeSegmentValues();\n this.segmentValues = this.initialSegments;\n this.announcer = getAnnouncer(null);\n this.getFieldNode = this.getFieldNode.bind(this);\n this.updateSegment = this.updateSegment.bind(this);\n this.handleSegmentClick = this.handleSegmentClick.bind(this);\n this.getBaseSegmentAttrs = this.getBaseSegmentAttrs.bind(this);\n $effect(() => {\n untrack(() => {\n this.initialSegments = this.#initializeTimeSegmentValues();\n });\n });\n onMount(() => {\n this.announcer = getAnnouncer(this.domContext.getDocument());\n });\n onDestroyEffect(() => {\n removeTimeDescriptionElement(this.descriptionId, this.domContext.getDocument());\n });\n $effect(() => {\n if (this.formatter.getLocale() === this.locale.current)\n return;\n this.formatter.setLocale(this.locale.current);\n });\n $effect(() => {\n if (this.value.current) {\n const descriptionId = untrack(() => this.descriptionId);\n setTimeDescription({\n id: descriptionId,\n formatter: this.formatter,\n value: this.#toDateValue(this.value.current),\n doc: this.domContext.getDocument(),\n });\n }\n const placeholder = untrack(() => this.placeholder.current);\n if (this.value.current && placeholder !== this.value.current) {\n untrack(() => {\n if (this.value.current) {\n this.placeholder.current = this.value.current;\n }\n });\n }\n });\n if (this.value.current) {\n this.syncSegmentValues(this.value.current);\n }\n $effect(() => {\n this.locale.current;\n if (this.value.current) {\n this.syncSegmentValues(this.value.current);\n }\n this.#clearUpdating();\n });\n $effect(() => {\n if (this.value.current === undefined) {\n this.segmentValues = this.#initializeTimeSegmentValues();\n }\n });\n watch(() => this.validationStatus, () => {\n if (this.validationStatus !== false) {\n this.onInvalid.current?.(this.validationStatus.reason, this.validationStatus.message);\n }\n });\n }\n #initializeTimeSegmentValues() {\n const granularity = this.inferredGranularity;\n const segments = {\n hour: null,\n minute: null,\n second: null,\n dayPeriod: \"AM\",\n };\n if (granularity === \"second\") {\n segments.second = null;\n }\n if (this.hourCycle === 24) {\n segments.dayPeriod = null;\n }\n return segments;\n }\n #toDateValue(timeValue) {\n if (\"calendar\" in timeValue) {\n // CalendarDateTime or ZonedDateTime\n return timeValue;\n }\n else {\n return new CalendarDateTime(2000, 1, 1, timeValue.hour, timeValue.minute, timeValue.second, timeValue.millisecond);\n }\n }\n #clearUpdating() {\n this.states.hour.updating = null;\n this.states.minute.updating = null;\n this.states.second.updating = null;\n this.states.dayPeriod.updating = null;\n }\n setName(name) {\n this.name = name;\n }\n setFieldNode(node) {\n this.#fieldNode = node;\n }\n /**\n * Gets the correct field node for the time field regardless of whether it's being\n * used in a standalone context or within a `TimeRangeField` component.\n */\n getFieldNode() {\n /** If we're not within a TimeRangeField, we return this field. */\n if (!this.rangeRoot) {\n return this.#fieldNode;\n }\n else {\n /**\n * Otherwise, we return the rangeRoot's field node which\n * contains both start and end fields.\n */\n return this.rangeRoot.fieldNode;\n }\n }\n setLabelNode(node) {\n this.#labelNode = node;\n }\n getLabelNode() {\n return this.#labelNode;\n }\n setValue(value) {\n this.value.current = value;\n }\n syncSegmentValues(value) {\n const timeValues = EDITABLE_TIME_SEGMENT_PARTS.map((part) => {\n if (part === \"dayPeriod\") {\n if (this.states.dayPeriod.updating) {\n return [part, this.states.dayPeriod.updating];\n }\n else {\n return [part, this.formatter.dayPeriod(toDate(this.#toDateValue(value)))];\n }\n }\n else if (part === \"hour\") {\n if (this.states.hour.updating) {\n return [part, this.states.hour.updating];\n }\n if (value[part] !== undefined && value[part] < 10) {\n return [part, `0${value[part]}`];\n }\n if (value[part] === 0 && this.dayPeriodNode) {\n return [part, \"12\"];\n }\n }\n else if (part === \"minute\") {\n if (this.states.minute.updating) {\n return [part, this.states.minute.updating];\n }\n if (value[part] !== undefined && value[part] < 10) {\n return [part, `0${value[part]}`];\n }\n }\n else if (part === \"second\") {\n if (this.states.second.updating) {\n return [part, this.states.second.updating];\n }\n if (value[part] !== undefined && value[part] < 10) {\n return [part, `0${value[part]}`];\n }\n }\n return [part, `${value[part]}`];\n });\n this.segmentValues = Object.fromEntries(timeValues);\n this.#clearUpdating();\n }\n validationStatus = $derived.by(() => {\n const value = this.value.current;\n if (!value)\n return false;\n const msg = this.validate.current?.(value);\n if (msg) {\n return {\n reason: \"custom\",\n message: msg,\n };\n }\n if (!this.valueTime)\n return false;\n if (this.minValueTime && isTimeBefore(this.valueTime, this.minValueTime)) {\n return {\n reason: \"min\",\n };\n }\n if (this.maxValueTime && isTimeBefore(this.maxValueTime, this.valueTime)) {\n return {\n reason: \"max\",\n };\n }\n return false;\n });\n isInvalid = $derived.by(() => {\n if (this.validationStatus === false)\n return false;\n if (this.isInvalidProp.current)\n return true;\n return true;\n });\n inferredGranularity = $derived.by(() => {\n return this.granularity.current ?? \"minute\";\n });\n timeRef = $derived.by(() => this.value.current ?? this.placeholder.current);\n allSegmentContent = $derived.by(() => createTimeContent({\n segmentValues: this.segmentValues,\n formatter: this.formatter,\n locale: this.locale.current,\n granularity: this.inferredGranularity,\n timeRef: this.timeRef,\n hideTimeZone: this.hideTimeZone.current,\n hourCycle: this.hourCycle,\n }));\n segmentContents = $derived.by(() => this.allSegmentContent.arr);\n sharedSegmentAttrs = {\n role: \"spinbutton\",\n contenteditable: \"true\",\n tabindex: 0,\n spellcheck: false,\n inputmode: \"numeric\",\n autocorrect: \"off\",\n enterkeyhint: \"next\",\n style: {\n caretColor: \"transparent\",\n },\n };\n #getLabelledBy(segmentId) {\n return `${segmentId} ${this.getLabelNode()?.id ?? \"\"}`;\n }\n updateSegment(part, cb) {\n const disabled = this.disabled.current;\n const readonly = this.readonly.current;\n const readonlySegmentsSet = this.readonlySegmentsSet;\n if (disabled || readonly || readonlySegmentsSet.has(part))\n return;\n const prev = this.segmentValues;\n let newSegmentValues = prev;\n if (part === \"dayPeriod\") {\n const next = cb(prev[part]);\n this.states.dayPeriod.updating = next;\n const value = this.value.current;\n if (value && \"hour\" in value) {\n const trueHour = value.hour;\n if (next === \"AM\") {\n if (trueHour >= 12) {\n prev.hour = `${trueHour - 12}`;\n }\n }\n else if (next === \"PM\") {\n if (trueHour < 12) {\n prev.hour = `${trueHour + 12}`;\n }\n }\n }\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"hour\") {\n const next = cb(prev[part]);\n this.states.hour.updating = next;\n if (next !== null && prev.dayPeriod !== null) {\n const dayPeriod = this.formatter.dayPeriod(toDate(this.#toDateValue(this.timeRef.set({ hour: Number.parseInt(next) }))), this.hourCycle);\n if (dayPeriod === \"AM\" || dayPeriod === \"PM\") {\n prev.dayPeriod = dayPeriod;\n }\n }\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"minute\") {\n const next = cb(prev[part]);\n this.states.minute.updating = next;\n newSegmentValues = { ...prev, [part]: next };\n }\n else if (part === \"second\") {\n const next = cb(prev[part]);\n this.states.second.updating = next;\n newSegmentValues = { ...prev, [part]: next };\n }\n this.segmentValues = newSegmentValues;\n if (areAllTimeSegmentsFilled(newSegmentValues, this.#fieldNode)) {\n this.setValue(getTimeValueFromSegments({\n segmentObj: newSegmentValues,\n fieldNode: this.#fieldNode,\n timeRef: this.timeRef,\n }));\n }\n else {\n // this.setValue(undefined);\n // this.segmentValues = newSegmentValues;\n }\n }\n handleSegmentClick(e) {\n if (this.disabled.current) {\n e.preventDefault();\n }\n }\n getBaseSegmentAttrs(part, segmentId) {\n const inReadonlySegments = this.readonlySegmentsSet.has(part);\n const defaultAttrs = {\n \"aria-invalid\": boolToStrTrueOrUndef(this.isInvalid),\n \"aria-disabled\": boolToStr(this.disabled.current),\n \"aria-readonly\": boolToStr(this.readonly.current || inReadonlySegments),\n \"data-invalid\": boolToEmptyStrOrUndef(this.isInvalid),\n \"data-disabled\": boolToEmptyStrOrUndef(this.disabled.current),\n \"data-readonly\": boolToEmptyStrOrUndef(this.readonly.current || inReadonlySegments),\n \"data-segment\": `${part}`,\n };\n if (part === \"literal\")\n return defaultAttrs;\n const descriptionId = this.descriptionNode?.id;\n const hasDescription = isFirstTimeSegment(segmentId, this.#fieldNode) && descriptionId;\n const errorMsgId = this.errorMessageId?.current;\n const describedBy = hasDescription\n ? `${descriptionId} ${this.isInvalid && errorMsgId ? errorMsgId : \"\"}`\n : undefined;\n const contenteditable = !(this.readonly.current ||\n inReadonlySegments ||\n this.disabled.current);\n return {\n ...defaultAttrs,\n \"aria-labelledby\": this.#getLabelledBy(segmentId),\n contenteditable: contenteditable ? \"true\" : undefined,\n \"aria-describedby\": describedBy,\n tabindex: this.disabled.current ? undefined : 0,\n };\n }\n}\nexport class TimeFieldInputState {\n static create(opts) {\n return new TimeFieldInputState(opts, TimeFieldRootContext.get());\n }\n opts;\n root;\n attachment;\n domContext;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref, (v) => this.root.setFieldNode(v));\n this.domContext = new DOMContext(opts.ref);\n this.root.setName(this.opts.name.current);\n $effect(() => {\n this.root.setName(this.opts.name.current);\n });\n }\n #ariaDescribedBy = $derived.by(() => {\n if (!isBrowser)\n return undefined;\n const doesDescriptionExist = this.domContext.getElementById(this.root.descriptionId);\n if (!doesDescriptionExist)\n return undefined;\n return this.root.descriptionId;\n });\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n \"aria-labelledby\": this.root.getLabelNode()?.id ?? undefined,\n \"aria-describedby\": this.#ariaDescribedBy,\n \"aria-disabled\": boolToStr(this.root.disabled.current),\n \"data-invalid\": this.root.isInvalid ? \"\" : undefined,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.disabled.current),\n [timeFieldAttrs.input]: \"\",\n ...this.attachment,\n }));\n}\nexport class TimeFieldHiddenInputState {\n static create() {\n return new TimeFieldHiddenInputState(TimeFieldRootContext.get());\n }\n root;\n shouldRender = $derived.by(() => this.root.name !== \"\");\n isoValue = $derived.by(() => this.root.value.current ? getISOTimeValue(this.root.value.current) : undefined);\n constructor(root) {\n this.root = root;\n }\n props = $derived.by(() => ({\n name: this.root.name,\n value: this.isoValue,\n required: this.root.required.current,\n }));\n}\nexport class TimeFieldLabelState {\n static create(opts) {\n return new TimeFieldLabelState(opts, TimeFieldRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref, (v) => this.root.setLabelNode(v));\n this.onclick = this.onclick.bind(this);\n }\n onclick(_) {\n if (this.root.disabled.current)\n return;\n const firstSegment = getFirstTimeSegment(this.root.getFieldNode());\n if (!firstSegment)\n return;\n firstSegment.focus();\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-invalid\": boolToEmptyStrOrUndef(this.root.isInvalid),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.disabled.current),\n [timeFieldAttrs.label]: \"\",\n onclick: this.onclick,\n ...this.attachment,\n }));\n}\n// Base class for time segments - simplified from date-field version\nclass BaseTimeSegmentState {\n opts;\n root;\n announcer;\n part;\n config;\n attachment;\n constructor(opts, root, part, config) {\n this.opts = opts;\n this.root = root;\n this.part = part;\n this.config = config;\n this.announcer = root.announcer;\n this.attachment = attachRef(opts.ref);\n this.onkeydown = this.onkeydown.bind(this);\n this.onfocusout = this.onfocusout.bind(this);\n }\n #getMax() {\n return typeof this.config.max === \"function\" ? this.config.max(this.root) : this.config.max;\n }\n #getMin() {\n return typeof this.config.min === \"function\" ? this.config.min(this.root) : this.config.min;\n }\n #formatValue(value, forDisplay = true) {\n const str = String(value);\n if (forDisplay && this.config.padZero && str.length === 1) {\n return `0${value}`;\n }\n return str;\n }\n onkeydown(e) {\n const placeholder = this.root.value.current ?? this.root.placeholder.current;\n if (e.ctrlKey || e.metaKey || this.root.disabled.current)\n return;\n if (e.key !== kbd.TAB)\n e.preventDefault();\n if (!isAcceptableSegmentKey(e.key))\n return;\n if (isArrowUp(e.key)) {\n this.#handleArrowUp(placeholder);\n return;\n }\n if (isArrowDown(e.key)) {\n this.#handleArrowDown(placeholder);\n return;\n }\n if (isNumberString(e.key)) {\n this.#handleNumberKey(e);\n return;\n }\n if (isBackspace(e.key)) {\n this.#handleBackspace(e);\n return;\n }\n if (isSegmentNavigationKey(e.key)) {\n handleTimeSegmentNavigation(e, this.root.getFieldNode());\n }\n }\n #handleArrowUp(placeholder) {\n const stateKey = this.part;\n if (stateKey in this.root.states) {\n this.root.states[stateKey].hasLeftFocus = false;\n }\n // @ts-expect-error shhh\n this.root.updateSegment(this.part, (prev) => {\n if (prev === null) {\n const next = placeholder[this.part];\n this.announcer.announce(String(next));\n return this.#formatValue(next);\n }\n const current = placeholder.set({\n [this.part]: Number.parseInt(prev),\n });\n // @ts-expect-error shhh\n const next = current.cycle(this.part, this.config.cycle)[this.part];\n this.announcer.announce(String(next));\n return this.#formatValue(next);\n });\n }\n #handleArrowDown(placeholder) {\n const stateKey = this.part;\n if (stateKey in this.root.states) {\n this.root.states[stateKey].hasLeftFocus = false;\n }\n // @ts-expect-error - this is a part\n this.root.updateSegment(this.part, (prev) => {\n if (prev === null) {\n const next = placeholder[this.part];\n this.announcer.announce(String(next));\n return this.#formatValue(next);\n }\n const current = placeholder.set({\n [this.part]: Number.parseInt(prev),\n });\n // @ts-expect-error shhh\n const next = current.cycle(this.part, -this.config.cycle)[this.part];\n this.announcer.announce(String(next));\n return this.#formatValue(next);\n });\n }\n #handleNumberKey(e) {\n const num = Number.parseInt(e.key);\n let moveToNext = false;\n const max = this.#getMax();\n const maxStart = Math.floor(max / 10);\n const numIsZero = num === 0;\n const stateKey = this.part;\n // @ts-expect-error this is a part\n this.root.updateSegment(this.part, (prev) => {\n if (stateKey in this.root.states && this.root.states[stateKey].hasLeftFocus) {\n prev = null;\n this.root.states[stateKey].hasLeftFocus = false;\n }\n if (prev === null) {\n if (numIsZero) {\n if (stateKey in this.root.states) {\n this.root.states[stateKey].lastKeyZero = true;\n }\n this.announcer.announce(\"0\");\n return \"0\";\n }\n if (stateKey in this.root.states &&\n (this.root.states[stateKey].lastKeyZero || num > maxStart)) {\n moveToNext = true;\n }\n if (stateKey in this.root.states) {\n this.root.states[stateKey].lastKeyZero = false;\n }\n if (moveToNext && String(num).length === 1) {\n this.announcer.announce(num);\n return `0${num}`;\n }\n return `${num}`;\n }\n if (stateKey in this.root.states && this.root.states[stateKey].lastKeyZero) {\n if (num !== 0) {\n moveToNext = true;\n this.root.states[stateKey].lastKeyZero = false;\n return `0${num}`;\n }\n if (this.part === \"hour\" && num === 0 && this.root.hourCycle === 24) {\n moveToNext = true;\n this.root.states[stateKey].lastKeyZero = false;\n return `00`;\n }\n if ((this.part === \"minute\" || this.part === \"second\") && num === 0) {\n moveToNext = true;\n this.root.states[stateKey].lastKeyZero = false;\n return \"00\";\n }\n return prev;\n }\n const total = Number.parseInt(prev + num.toString());\n if (total > max) {\n moveToNext = true;\n return `0${num}`;\n }\n moveToNext = true;\n return `${total}`;\n });\n if (moveToNext) {\n moveToNextTimeSegment(e, this.root.getFieldNode());\n }\n }\n #handleBackspace(e) {\n const stateKey = this.part;\n if (stateKey in this.root.states) {\n this.root.states[stateKey].hasLeftFocus = false;\n }\n let moveToPrev = false;\n // @ts-expect-error this is a part\n this.root.updateSegment(this.part, (prev) => {\n if (prev === null) {\n moveToPrev = true;\n this.announcer.announce(null);\n return null;\n }\n if (prev.length === 2 && prev.startsWith(\"0\")) {\n this.announcer.announce(null);\n return null;\n }\n const str = prev.toString();\n if (str.length === 1) {\n this.announcer.announce(null);\n return null;\n }\n const next = Number.parseInt(str.slice(0, -1));\n this.announcer.announce(String(next));\n return `${next}`;\n });\n if (moveToPrev) {\n moveToPrevTimeSegment(e, this.root.getFieldNode());\n }\n }\n onfocusout(_) {\n const stateKey = this.part;\n if (stateKey in this.root.states) {\n this.root.states[stateKey].hasLeftFocus = true;\n }\n // Pad with zero if needed\n if (this.config.padZero) {\n // @ts-expect-error this is a part\n this.root.updateSegment(this.part, (prev) => {\n if (prev && prev.length === 1) {\n return `0${prev}`;\n }\n return prev;\n });\n }\n }\n getSegmentProps() {\n const segmentValues = this.root.segmentValues;\n const placeholder = this.root.placeholder.current;\n const isEmpty = segmentValues[this.part] === null;\n let value = placeholder;\n if (segmentValues[this.part]) {\n value = placeholder.set({\n [this.part]: Number.parseInt(segmentValues[this.part]),\n });\n }\n const valueNow = value[this.part];\n const valueMin = this.#getMin();\n const valueMax = this.#getMax();\n let valueText = isEmpty ? \"Empty\" : `${valueNow}`;\n // special handling for hour segment with dayPeriod\n if (this.part === \"hour\" && \"dayPeriod\" in segmentValues && segmentValues.dayPeriod) {\n valueText = isEmpty ? \"Empty\" : `${valueNow} ${segmentValues.dayPeriod}`;\n }\n return {\n \"aria-label\": `${this.part}, `,\n \"aria-valuemin\": valueMin,\n \"aria-valuemax\": valueMax,\n \"aria-valuenow\": valueNow,\n \"aria-valuetext\": valueText,\n };\n }\n props = $derived.by(() => {\n return {\n ...this.root.sharedSegmentAttrs,\n id: this.opts.id.current,\n ...this.getSegmentProps(),\n onkeydown: this.onkeydown,\n onfocusout: this.onfocusout,\n onclick: this.root.handleSegmentClick,\n ...this.root.getBaseSegmentAttrs(this.part, this.opts.id.current),\n ...this.attachment,\n };\n });\n}\nclass TimeFieldHourSegmentState extends BaseTimeSegmentState {\n constructor(opts, root) {\n super(opts, root, \"hour\", SEGMENT_CONFIGS.hour);\n }\n onkeydown(e) {\n if (isNumberString(e.key)) {\n const oldUpdateSegment = this.root.updateSegment.bind(this.root);\n // oxlint-disable-next-line no-explicit-any\n this.root.updateSegment = (part, cb) => {\n const result = oldUpdateSegment(part, cb);\n // after updating hour, check if we need to display \"12\" instead of \"0\"\n if (part === \"hour\" && \"hour\" in this.root.segmentValues) {\n const hourValue = this.root.segmentValues.hour;\n if (hourValue === \"0\" &&\n this.root.dayPeriodNode &&\n this.root.hourCycle !== 24) {\n this.root.segmentValues.hour = \"12\";\n }\n }\n return result;\n };\n }\n super.onkeydown(e);\n this.root.updateSegment = this.root.updateSegment.bind(this.root);\n }\n}\nclass TimeFieldMinuteSegmentState extends BaseTimeSegmentState {\n constructor(opts, root) {\n super(opts, root, \"minute\", SEGMENT_CONFIGS.minute);\n }\n}\nclass TimeFieldSecondSegmentState extends BaseTimeSegmentState {\n constructor(opts, root) {\n super(opts, root, \"second\", SEGMENT_CONFIGS.second);\n }\n}\nclass TimeFieldDayPeriodSegmentState {\n opts;\n root;\n attachment;\n #announcer;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.#announcer = this.root.announcer;\n this.attachment = attachRef(opts.ref, (v) => (this.root.dayPeriodNode = v));\n this.onkeydown = this.onkeydown.bind(this);\n }\n onkeydown(e) {\n if (e.ctrlKey || e.metaKey || this.root.disabled.current)\n return;\n if (e.key !== kbd.TAB)\n e.preventDefault();\n if (!isAcceptableDayPeriodKey(e.key))\n return;\n if (isArrowUp(e.key) || isArrowDown(e.key)) {\n this.root.updateSegment(\"dayPeriod\", (prev) => {\n if (prev === \"AM\") {\n const next = \"PM\";\n this.#announcer.announce(next);\n return next;\n }\n const next = \"AM\";\n this.#announcer.announce(next);\n return next;\n });\n return;\n }\n if (isBackspace(e.key)) {\n this.root.states.dayPeriod.hasLeftFocus = false;\n this.root.updateSegment(\"dayPeriod\", () => {\n const next = \"AM\";\n this.#announcer.announce(next);\n return next;\n });\n }\n if (e.key === kbd.A || e.key === kbd.P || e.key === kbd.a || e.key === kbd.p) {\n this.root.updateSegment(\"dayPeriod\", () => {\n const next = e.key === kbd.A || e.key === kbd.a ? \"AM\" : \"PM\";\n this.#announcer.announce(next);\n return next;\n });\n }\n if (isSegmentNavigationKey(e.key)) {\n handleTimeSegmentNavigation(e, this.root.getFieldNode());\n }\n }\n props = $derived.by(() => {\n const segmentValues = this.root.segmentValues;\n if (!(\"dayPeriod\" in segmentValues))\n return;\n const valueMin = 0;\n const valueMax = 12;\n const valueNow = segmentValues.dayPeriod === \"AM\" ? 0 : 12;\n const valueText = segmentValues.dayPeriod === \"AM\" ? \"AM\" : \"PM\";\n return {\n ...this.root.sharedSegmentAttrs,\n id: this.opts.id.current,\n inputmode: \"text\",\n \"aria-label\": \"AM/PM\",\n \"aria-valuemin\": valueMin,\n \"aria-valuemax\": valueMax,\n \"aria-valuenow\": valueNow,\n \"aria-valuetext\": valueText,\n onkeydown: this.onkeydown,\n onclick: this.root.handleSegmentClick,\n ...this.root.getBaseSegmentAttrs(\"dayPeriod\", this.opts.id.current),\n ...this.attachment,\n };\n });\n}\nclass TimeFieldLiteralSegmentState {\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-hidden\": boolToStrTrueOrUndef(true),\n ...this.root.getBaseSegmentAttrs(\"literal\", this.opts.id.current),\n ...this.attachment,\n }));\n}\nclass TimeFieldTimeZoneSegmentState {\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(opts.ref);\n this.onkeydown = this.onkeydown.bind(this);\n }\n onkeydown(e) {\n if (e.key !== kbd.TAB)\n e.preventDefault();\n if (this.root.disabled.current)\n return;\n if (isSegmentNavigationKey(e.key)) {\n handleTimeSegmentNavigation(e, this.root.getFieldNode());\n }\n }\n props = $derived.by(() => ({\n role: \"textbox\",\n id: this.opts.id.current,\n \"aria-label\": \"timezone, \",\n style: {\n caretColor: \"transparent\",\n },\n onkeydown: this.onkeydown,\n tabindex: 0,\n ...this.root.getBaseSegmentAttrs(\"timeZoneName\", this.opts.id.current),\n \"data-readonly\": boolToEmptyStrOrUndef(true),\n ...this.attachment,\n }));\n}\nexport class DateFieldSegmentState {\n static create(part, opts) {\n const root = TimeFieldRootContext.get();\n switch (part) {\n case \"hour\":\n return new TimeFieldHourSegmentState(opts, root);\n case \"minute\":\n return new TimeFieldMinuteSegmentState(opts, root);\n case \"second\":\n return new TimeFieldSecondSegmentState(opts, root);\n case \"dayPeriod\":\n return new TimeFieldDayPeriodSegmentState(opts, root);\n case \"literal\":\n return new TimeFieldLiteralSegmentState(opts, root);\n case \"timeZoneName\":\n return new TimeFieldTimeZoneSegmentState(opts, root);\n default:\n throw new Error(`Invalid part: ${part}`);\n }\n }\n}\n// Utils/helpers\nfunction isAcceptableDayPeriodKey(key) {\n return (isAcceptableSegmentKey(key) ||\n key === kbd.A ||\n key === kbd.P ||\n key === kbd.a ||\n key === kbd.p);\n}\nfunction isArrowUp(key) {\n return key === kbd.ARROW_UP;\n}\nfunction isArrowDown(key) {\n return key === kbd.ARROW_DOWN;\n}\nfunction isBackspace(key) {\n return key === kbd.BACKSPACE;\n}\n", "<script lang=\"ts\" module>\n\timport type { TimeValue } from \"../../../shared/date/types.js\";\n\timport type { Time } from \"@internationalized/date\";\n\ttype T = unknown;\n</script>\n\n<script lang=\"ts\" generics=\"T extends TimeValue = Time\">\n\timport { watch } from \"runed\";\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport { TimeFieldRootState } from \"../time-field.svelte.js\";\n\timport type { TimeFieldRootProps } from \"../types.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { getDefaultTime } from \"../../../internal/date-time/utils.js\";\n\timport { resolveLocaleProp } from \"../../utilities/config/prop-resolvers.js\";\n\n\tlet {\n\t\tdisabled = false,\n\t\tgranularity,\n\t\thideTimeZone = false,\n\t\thourCycle,\n\t\tlocale,\n\t\tmaxValue,\n\t\tminValue,\n\t\tonPlaceholderChange = noop,\n\t\tonValueChange = noop,\n\t\tvalidate = noop,\n\t\tonInvalid = noop,\n\t\tplaceholder = $bindable(),\n\t\tvalue = $bindable(),\n\t\treadonly = false,\n\t\treadonlySegments = [],\n\t\trequired = false,\n\t\terrorMessageId,\n\t\tchildren,\n\t}: TimeFieldRootProps<T> = $props();\n\n\tfunction handleDefaultPlaceholder() {\n\t\tif (placeholder !== undefined) return;\n\n\t\tconst defaultPlaceholder = getDefaultTime({\n\t\t\tgranularity,\n\t\t\tdefaultValue: value,\n\t\t});\n\n\t\tplaceholder = defaultPlaceholder;\n\t}\n\n\t// SSR\n\thandleDefaultPlaceholder();\n\n\t/**\n\t * Covers an edge case where when a spread props object is reassigned,\n\t * the props are reset to their default values, which would make placeholder\n\t * undefined which causes errors to be thrown.\n\t */\n\twatch.pre(\n\t\t() => placeholder,\n\t\t() => {\n\t\t\thandleDefaultPlaceholder();\n\t\t}\n\t);\n\n\tTimeFieldRootState.create({\n\t\tvalue: boxWith(\n\t\t\t() => value,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tplaceholder: boxWith(\n\t\t\t() => placeholder as TimeValue,\n\t\t\t(v) => {\n\t\t\t\tplaceholder = v;\n\t\t\t\tonPlaceholderChange(v);\n\t\t\t}\n\t\t),\n\t\tdisabled: boxWith(() => disabled),\n\t\tgranularity: boxWith(() => granularity),\n\t\thideTimeZone: boxWith(() => hideTimeZone),\n\t\thourCycle: boxWith(() => hourCycle),\n\t\tlocale: resolveLocaleProp(() => locale),\n\t\tmaxValue: boxWith(() => maxValue),\n\t\tminValue: boxWith(() => minValue),\n\t\tvalidate: boxWith(() => validate),\n\t\treadonly: boxWith(() => readonly),\n\t\treadonlySegments: boxWith(() => readonlySegments),\n\t\trequired: boxWith(() => required),\n\t\tonInvalid: boxWith(() => onInvalid),\n\t\terrorMessageId: boxWith(() => errorMessageId),\n\t\tisInvalidProp: boxWith(() => undefined),\n\t});\n</script>\n\n{@render children?.()}\n", "<script lang=\"ts\">\n\timport { TimeFieldHiddenInputState } from \"../time-field.svelte.js\";\n\timport HiddenInput from \"../../utilities/hidden-input.svelte\";\n\n\tconst hiddenInputState = TimeFieldHiddenInputState.create();\n</script>\n\n{#if hiddenInputState.shouldRender}\n\t<HiddenInput {...hiddenInputState.props} />\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { TimeFieldInputState } from \"../time-field.svelte.js\";\n\timport type { TimeFieldInputProps } from \"../types.js\";\n\timport DateFieldHiddenInput from \"./time-field-hidden-input.svelte\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tname = \"\",\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: TimeFieldInputProps = $props();\n\n\tconst inputState = TimeFieldInputState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tname: boxWith(() => name),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, inputState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, segments: inputState.root.segmentContents })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.({ segments: inputState.root.segmentContents })}\n\t</div>\n{/if}\n\n<DateFieldHiddenInput />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { TimeFieldLabelState } from \"../time-field.svelte.js\";\n\timport type { TimeFieldLabelProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: TimeFieldLabelProps = $props();\n\n\tconst labelState = TimeFieldLabelState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, labelState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { DateFieldSegmentState } from \"../time-field.svelte.js\";\n\timport type { TimeFieldSegmentProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\tpart,\n\t\t...restProps\n\t}: TimeFieldSegmentProps = $props();\n\n\tconst segmentState = DateFieldSegmentState.create(part, {\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(\n\t\tmergeProps(restProps, segmentState.props as Record<string, unknown>)\n\t);\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.()}\n\t</span>\n{/if}\n", "export { default as Root } from \"./components/time-range-field.svelte\";\nexport { default as Input } from \"./components/time-range-field-input.svelte\";\nexport { default as Label } from \"./components/time-range-field-label.svelte\";\nexport { default as Segment } from \"../time-field/components/time-field-segment.svelte\";\n", "import { boxWith, onDestroyEffect, attachRef, DOMContext, } from \"svelte-toolbelt\";\nimport { Context, watch } from \"runed\";\nimport { TimeFieldRootState } from \"../time-field/time-field.svelte.js\";\nimport { TimeFieldInputState } from \"../time-field/time-field.svelte.js\";\nimport { useId } from \"../../internal/use-id.js\";\nimport { createBitsAttrs, boolToEmptyStrOrUndef } from \"../../internal/attrs.js\";\nimport { createTimeFormatter } from \"../../internal/date-time/formatter.js\";\nimport { removeDescriptionElement } from \"../../internal/date-time/field/helpers.js\";\nimport { getFirstSegment } from \"../../internal/date-time/field/segments.js\";\nimport { convertTimeValueToTime, isTimeBefore, } from \"../../internal/date-time/field/time-helpers.js\";\nexport const timeRangeFieldAttrs = createBitsAttrs({\n component: \"time-range-field\",\n parts: [\"root\", \"label\"],\n});\nexport const TimeRangeFieldRootContext = new Context(\"TimeRangeField.Root\");\nexport class TimeRangeFieldRootState {\n static create(opts) {\n return TimeRangeFieldRootContext.set(new TimeRangeFieldRootState(opts));\n }\n opts;\n attachment;\n startFieldState = undefined;\n endFieldState = undefined;\n descriptionId = useId();\n formatter;\n fieldNode = $state(null);\n labelNode = $state(null);\n descriptionNode = $state(null);\n startValueComplete = $derived.by(() => this.opts.startValue.current !== undefined);\n endValueComplete = $derived.by(() => this.opts.endValue.current !== undefined);\n rangeComplete = $derived(this.startValueComplete && this.endValueComplete);\n startValueTime = $derived.by(() => {\n if (!this.opts.startValue.current)\n return undefined;\n return convertTimeValueToTime(this.opts.startValue.current);\n });\n endValueTime = $derived.by(() => {\n if (!this.opts.endValue.current)\n return undefined;\n return convertTimeValueToTime(this.opts.endValue.current);\n });\n minValueTime = $derived.by(() => {\n if (!this.opts.minValue.current)\n return undefined;\n return convertTimeValueToTime(this.opts.minValue.current);\n });\n maxValueTime = $derived.by(() => {\n if (!this.opts.maxValue.current)\n return undefined;\n return convertTimeValueToTime(this.opts.maxValue.current);\n });\n domContext;\n constructor(opts) {\n this.opts = opts;\n this.formatter = createTimeFormatter(this.opts.locale.current);\n this.domContext = new DOMContext(this.opts.ref);\n this.attachment = attachRef(this.opts.ref, (v) => (this.fieldNode = v));\n onDestroyEffect(() => {\n removeDescriptionElement(this.descriptionId, this.domContext.getDocument());\n });\n $effect(() => {\n if (this.formatter.getLocale() === this.opts.locale.current)\n return;\n this.formatter.setLocale(this.opts.locale.current);\n });\n /**\n * Synchronize the start and end values with the `value` in case\n * it is updated externally.\n */\n watch(() => this.opts.value.current, (value) => {\n if (value.start && value.end) {\n this.opts.startValue.current = value.start;\n this.opts.endValue.current = value.end;\n }\n else if (value.start) {\n this.opts.startValue.current = value.start;\n this.opts.endValue.current = undefined;\n }\n else if (value.start === undefined && value.end === undefined) {\n this.opts.startValue.current = undefined;\n this.opts.endValue.current = undefined;\n }\n });\n /**\n * Synchronize the placeholder value with the current start value\n */\n watch(() => this.opts.value.current, (value) => {\n const startValue = value.start;\n if (startValue && this.opts.placeholder.current !== startValue) {\n this.opts.placeholder.current = startValue;\n }\n });\n watch([() => this.opts.startValue.current, () => this.opts.endValue.current], ([startValue, endValue]) => {\n if (this.opts.value.current &&\n this.opts.value.current.start === startValue &&\n this.opts.value.current.end === endValue) {\n return;\n }\n if (startValue && endValue) {\n this.#updateValue((prev) => {\n if (prev.start === startValue && prev.end === endValue) {\n return prev;\n }\n return {\n start: startValue,\n end: endValue,\n };\n });\n }\n else if (this.opts.value.current &&\n this.opts.value.current.start &&\n this.opts.value.current.end) {\n this.opts.value.current.start = undefined;\n this.opts.value.current.end = undefined;\n }\n });\n }\n validationStatus = $derived.by(() => {\n const value = this.opts.value.current;\n if (value === undefined)\n return false;\n if (value.start === undefined || value.end === undefined)\n return false;\n const msg = this.opts.validate.current?.({\n start: value.start,\n end: value.end,\n });\n if (msg) {\n return {\n reason: \"custom\",\n message: msg,\n };\n }\n if (this.minValueTime &&\n this.startValueTime &&\n isTimeBefore(this.startValueTime, this.minValueTime)) {\n return {\n reason: \"min\",\n };\n }\n if (this.maxValueTime &&\n this.endValueTime &&\n isTimeBefore(this.maxValueTime, this.endValueTime)) {\n return {\n reason: \"max\",\n };\n }\n return false;\n });\n isInvalid = $derived.by(() => {\n if (this.validationStatus === false)\n return false;\n return true;\n });\n #updateValue(cb) {\n const value = this.opts.value.current;\n const newValue = cb(value);\n this.opts.value.current = newValue;\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"group\",\n [timeRangeFieldAttrs.root]: \"\",\n \"data-invalid\": boolToEmptyStrOrUndef(this.isInvalid),\n ...this.attachment,\n }));\n}\nexport class TimeRangeFieldLabelState {\n static create(opts) {\n return new TimeRangeFieldLabelState(opts, TimeRangeFieldRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.labelNode = v));\n }\n #onclick = () => {\n if (this.root.opts.disabled.current)\n return;\n const firstSegment = getFirstSegment(this.root.fieldNode);\n if (!firstSegment)\n return;\n firstSegment.focus();\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-invalid\": boolToEmptyStrOrUndef(this.root.isInvalid),\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.opts.disabled.current),\n [timeRangeFieldAttrs.label]: \"\",\n onclick: this.#onclick,\n ...this.attachment,\n }));\n}\nexport class TimeRangeFieldInputState {\n static create(opts, type) {\n const root = TimeRangeFieldRootContext.get();\n const fieldState = TimeFieldRootState.create({\n value: type === \"start\" ? root.opts.startValue : root.opts.endValue,\n disabled: root.opts.disabled,\n readonly: root.opts.readonly,\n readonlySegments: root.opts.readonlySegments,\n validate: boxWith(() => undefined),\n minValue: root.opts.minValue,\n maxValue: root.opts.maxValue,\n hourCycle: root.opts.hourCycle,\n locale: root.opts.locale,\n hideTimeZone: root.opts.hideTimeZone,\n required: root.opts.required,\n granularity: root.opts.granularity,\n placeholder: root.opts.placeholder,\n onInvalid: root.opts.onInvalid,\n errorMessageId: root.opts.errorMessageId,\n isInvalidProp: boxWith(() => root.isInvalid),\n }, root);\n return new TimeFieldInputState({ name: opts.name, id: opts.id, ref: opts.ref }, fieldState);\n }\n}\n", "<script lang=\"ts\" module>\n\timport type { TimeRange, TimeValue } from \"../../../shared/date/types.js\";\n\timport type { Time } from \"@internationalized/date\";\n\n\ttype T = unknown;\n</script>\n\n<script lang=\"ts\" generics=\"T extends TimeValue = Time\">\n\timport { watch } from \"runed\";\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { TimeRangeFieldRootState } from \"../time-range-field.svelte.js\";\n\timport type { TimeRangeFieldRootProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { getDefaultTime } from \"../../../internal/date-time/utils.js\";\n\timport { resolveLocaleProp } from \"../../utilities/config/prop-resolvers.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(),\n\t\tonValueChange = noop,\n\t\tplaceholder = $bindable(),\n\t\tonPlaceholderChange = noop,\n\t\tdisabled = false,\n\t\treadonly = false,\n\t\trequired = false,\n\t\thourCycle,\n\t\tgranularity,\n\t\tlocale,\n\t\thideTimeZone = false,\n\t\tvalidate = noop,\n\t\tonInvalid = noop,\n\t\tmaxValue,\n\t\tminValue,\n\t\treadonlySegments = [],\n\t\tchildren,\n\t\tchild,\n\t\tonStartValueChange = noop,\n\t\tonEndValueChange = noop,\n\t\terrorMessageId,\n\t\t...restProps\n\t}: TimeRangeFieldRootProps<T> = $props();\n\n\tlet startValue = $state<T | undefined>(value?.start);\n\tlet endValue = $state<T | undefined>(value?.end);\n\n\tfunction handleDefaultPlaceholder() {\n\t\tif (placeholder !== undefined) return;\n\t\tconst defaultPlaceholder = getDefaultTime({ granularity, defaultValue: value?.start });\n\t\tplaceholder = defaultPlaceholder;\n\t}\n\n\t// SSR\n\thandleDefaultPlaceholder();\n\n\twatch.pre(\n\t\t() => placeholder,\n\t\t() => {\n\t\t\thandleDefaultPlaceholder();\n\t\t}\n\t);\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tconst defaultValue = { start: undefined, end: undefined };\n\t\tvalue = defaultValue;\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\t/**\n\t * Covers an edge case where when a spread props object is reassigned,\n\t * the props are reset to their default values, which would make value\n\t * undefined which causes errors to be thrown.\n\t */\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tconst rootState = TimeRangeFieldRootState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tdisabled: boxWith(() => disabled),\n\t\treadonly: boxWith(() => readonly),\n\t\trequired: boxWith(() => required),\n\t\thourCycle: boxWith(() => hourCycle),\n\t\tgranularity: boxWith(() => granularity),\n\t\tlocale: resolveLocaleProp(() => locale),\n\t\thideTimeZone: boxWith(() => hideTimeZone),\n\t\tvalidate: boxWith(() => validate),\n\t\tmaxValue: boxWith(() => maxValue),\n\t\tminValue: boxWith(() => minValue),\n\t\tplaceholder: boxWith(\n\t\t\t() => placeholder as TimeValue,\n\t\t\t(v) => {\n\t\t\t\tplaceholder = v;\n\t\t\t\tonPlaceholderChange(v);\n\t\t\t}\n\t\t),\n\t\treadonlySegments: boxWith(() => readonlySegments),\n\t\tvalue: boxWith(\n\t\t\t() => value as TimeRange<T>,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t),\n\t\tstartValue: boxWith(\n\t\t\t() => startValue,\n\t\t\t(v) => {\n\t\t\t\tstartValue = v;\n\t\t\t\tonStartValueChange(v);\n\t\t\t}\n\t\t),\n\t\tendValue: boxWith(\n\t\t\t() => endValue,\n\t\t\t(v) => {\n\t\t\t\tendValue = v;\n\t\t\t\tonEndValueChange(v);\n\t\t\t}\n\t\t),\n\t\tonInvalid: boxWith(() => onInvalid),\n\t\terrorMessageId: boxWith(() => errorMessageId),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { TimeRangeFieldInputProps } from \"../types.js\";\n\timport { TimeRangeFieldInputState } from \"../time-range-field.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport TimeFieldHiddenInput from \"../../time-field/components/time-field-hidden-input.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tname = \"\",\n\t\tchild,\n\t\tchildren,\n\t\ttype,\n\t\t...restProps\n\t}: TimeRangeFieldInputProps = $props();\n\n\tconst inputState = TimeRangeFieldInputState.create(\n\t\t{\n\t\t\tid: boxWith(() => id),\n\t\t\tref: boxWith(\n\t\t\t\t() => ref,\n\t\t\t\t(v) => (ref = v)\n\t\t\t),\n\t\t\tname: boxWith(() => name),\n\t\t},\n\t\ttype\n\t);\n\n\tconst mergedProps = $derived(mergeProps(restProps, inputState.props, { role: \"presentation\" }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, segments: inputState.root.segmentContents })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.({ segments: inputState.root.segmentContents })}\n\t</div>\n{/if}\n\n<TimeFieldHiddenInput />\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { TimeRangeFieldLabelState } from \"../time-range-field.svelte.js\";\n\timport type { TimeRangeFieldLabelProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: TimeRangeFieldLabelProps = $props();\n\n\tconst labelState = TimeRangeFieldLabelState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, labelState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<span {...mergedProps}>\n\t\t{@render children?.()}\n\t</span>\n{/if}\n", "export { default as Root } from \"./components/toggle.svelte\";\n", "import { attachRef } from \"svelte-toolbelt\";\nimport { createBitsAttrs, boolToStr, boolToEmptyStrOrUndef, boolToTrueOrUndef, } from \"../../internal/attrs.js\";\nexport const toggleAttrs = createBitsAttrs({\n component: \"toggle\",\n parts: [\"root\"],\n});\nexport class ToggleRootState {\n static create(opts) {\n return new ToggleRootState(opts);\n }\n opts;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.onclick = this.onclick.bind(this);\n }\n onclick(_) {\n if (this.opts.disabled.current)\n return;\n this.opts.pressed.current = !this.opts.pressed.current;\n }\n snippetProps = $derived.by(() => ({\n pressed: this.opts.pressed.current,\n }));\n props = $derived.by(() => ({\n [toggleAttrs.root]: \"\",\n id: this.opts.id.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"aria-pressed\": boolToStr(this.opts.pressed.current),\n \"data-state\": getToggleDataState(this.opts.pressed.current),\n disabled: boolToTrueOrUndef(this.opts.disabled.current),\n onclick: this.onclick,\n ...this.attachment,\n }));\n}\nexport function getToggleDataState(condition) {\n return condition ? \"on\" : \"off\";\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ToggleRootProps } from \"../types.js\";\n\timport { ToggleRootState } from \"../toggle.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\tpressed = $bindable(false),\n\t\tonPressedChange = noop,\n\t\tdisabled = false,\n\t\ttype = \"button\",\n\t\tchildren,\n\t\tchild,\n\t\t...restProps\n\t}: ToggleRootProps = $props();\n\n\tconst toggleState = ToggleRootState.create({\n\t\tpressed: boxWith(\n\t\t\t() => pressed,\n\t\t\t(v) => {\n\t\t\t\tpressed = v;\n\t\t\t\tonPressedChange(v);\n\t\t\t}\n\t\t),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, toggleState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...toggleState.snippetProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.(toggleState.snippetProps)}\n\t</button>\n{/if}\n", "export { default as Root } from \"./components/toggle-group.svelte\";\nexport { default as Item } from \"./components/toggle-group-item.svelte\";\n", "import { attachRef, } from \"svelte-toolbelt\";\nimport { Context } from \"runed\";\nimport { createBitsAttrs, getAriaChecked, boolToStr, boolToEmptyStrOrUndef, boolToTrueOrUndef, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { RovingFocusGroup } from \"../../internal/roving-focus-group.js\";\nexport const toggleGroupAttrs = createBitsAttrs({\n component: \"toggle-group\",\n parts: [\"root\", \"item\"],\n});\nconst ToggleGroupRootContext = new Context(\"ToggleGroup.Root\");\nclass ToggleGroupBaseState {\n opts;\n rovingFocusGroup;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.rovingFocusGroup = new RovingFocusGroup({\n candidateAttr: toggleGroupAttrs.item,\n rootNode: opts.ref,\n loop: opts.loop,\n orientation: opts.orientation,\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [toggleGroupAttrs.root]: \"\",\n role: \"group\",\n \"data-orientation\": this.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n ...this.attachment,\n }));\n}\nclass ToggleGroupSingleState extends ToggleGroupBaseState {\n opts;\n isMulti = false;\n anyPressed = $derived.by(() => this.opts.value.current !== \"\");\n constructor(opts) {\n super(opts);\n this.opts = opts;\n }\n includesItem(item) {\n return this.opts.value.current === item;\n }\n toggleItem(item, id) {\n if (this.includesItem(item)) {\n this.opts.value.current = \"\";\n }\n else {\n this.opts.value.current = item;\n this.rovingFocusGroup.setCurrentTabStopId(id);\n }\n }\n}\nclass ToggleGroupMultipleState extends ToggleGroupBaseState {\n opts;\n isMulti = true;\n anyPressed = $derived.by(() => this.opts.value.current.length > 0);\n constructor(opts) {\n super(opts);\n this.opts = opts;\n }\n includesItem(item) {\n return this.opts.value.current.includes(item);\n }\n toggleItem(item, id) {\n if (this.includesItem(item)) {\n this.opts.value.current = this.opts.value.current.filter((v) => v !== item);\n }\n else {\n this.opts.value.current = [...this.opts.value.current, item];\n this.rovingFocusGroup.setCurrentTabStopId(id);\n }\n }\n}\nexport class ToggleGroupRootState {\n static create(opts) {\n const { type, ...rest } = opts;\n const rootState = type === \"single\"\n ? new ToggleGroupSingleState(rest)\n : new ToggleGroupMultipleState(rest);\n return ToggleGroupRootContext.set(rootState);\n }\n}\nexport class ToggleGroupItemState {\n static create(opts) {\n return new ToggleGroupItemState(opts, ToggleGroupRootContext.get());\n }\n opts;\n root;\n attachment;\n #isDisabled = $derived.by(() => this.opts.disabled.current || this.root.opts.disabled.current);\n isPressed = $derived.by(() => this.root.includesItem(this.opts.value.current));\n #ariaChecked = $derived.by(() => {\n return this.root.isMulti ? undefined : getAriaChecked(this.isPressed, false);\n });\n #ariaPressed = $derived.by(() => {\n return this.root.isMulti ? boolToStr(this.isPressed) : undefined;\n });\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n $effect(() => {\n if (!this.root.opts.rovingFocus.current) {\n this.#tabIndex = 0;\n }\n else {\n this.#tabIndex = this.root.rovingFocusGroup.getTabIndex(this.opts.ref.current);\n }\n });\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n #toggleItem() {\n if (this.#isDisabled)\n return;\n this.root.toggleItem(this.opts.value.current, this.opts.id.current);\n }\n onclick(_) {\n if (this.#isDisabled)\n return;\n this.root.toggleItem(this.opts.value.current, this.opts.id.current);\n }\n onkeydown(e) {\n if (this.#isDisabled)\n return;\n if (e.key === kbd.ENTER || e.key === kbd.SPACE) {\n e.preventDefault();\n this.#toggleItem();\n return;\n }\n if (!this.root.opts.rovingFocus.current)\n return;\n this.root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);\n }\n #tabIndex = $state(0);\n snippetProps = $derived.by(() => ({\n pressed: this.isPressed,\n }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: this.root.isMulti ? undefined : \"radio\",\n tabindex: this.#tabIndex,\n \"data-orientation\": this.root.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.#isDisabled),\n \"data-state\": getToggleItemDataState(this.isPressed),\n \"data-value\": this.opts.value.current,\n \"aria-pressed\": this.#ariaPressed,\n \"aria-checked\": this.#ariaChecked,\n disabled: boolToTrueOrUndef(this.#isDisabled),\n [toggleGroupAttrs.item]: \"\",\n //\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nfunction getToggleItemDataState(condition) {\n return condition ? \"on\" : \"off\";\n}\n", "<script lang=\"ts\">\n\timport { type WritableBox, boxWith } from \"svelte-toolbelt\";\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { ToggleGroupRootProps } from \"../types.js\";\n\timport { ToggleGroupRootState } from \"../toggle-group.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { watch } from \"runed\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(),\n\t\tonValueChange = noop,\n\t\ttype,\n\t\tdisabled = false,\n\t\tloop = true,\n\t\torientation = \"horizontal\",\n\t\trovingFocus = true,\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: ToggleGroupRootProps = $props();\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tvalue = type === \"single\" ? \"\" : [];\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tconst rootState = ToggleGroupRootState.create({\n\t\tid: boxWith(() => id),\n\t\tvalue: boxWith(\n\t\t\t() => value!,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\t// @ts-expect-error - we know\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t) as WritableBox<string> | WritableBox<string[]>,\n\t\tdisabled: boxWith(() => disabled),\n\t\tloop: boxWith(() => loop),\n\t\torientation: boxWith(() => orientation),\n\t\trovingFocus: boxWith(() => rovingFocus),\n\t\ttype,\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ToggleGroupItemProps } from \"../types.js\";\n\timport { ToggleGroupItemState } from \"../toggle-group.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tvalue,\n\t\tdisabled = false,\n\t\tid = createId(uid),\n\t\ttype = \"button\",\n\t\t...restProps\n\t}: ToggleGroupItemProps = $props();\n\n\tconst itemState = ToggleGroupItemState.create({\n\t\tid: boxWith(() => id),\n\t\tvalue: boxWith(() => value),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, itemState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, ...itemState.snippetProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.(itemState.snippetProps)}\n\t</button>\n{/if}\n", "export { default as Root } from \"./components/toolbar.svelte\";\nexport { default as Button } from \"./components/toolbar-button.svelte\";\nexport { default as Link } from \"./components/toolbar-link.svelte\";\nexport { default as Group } from \"./components/toolbar-group.svelte\";\nexport { default as GroupItem } from \"./components/toolbar-group-item.svelte\";\n", "import { attachRef, } from \"svelte-toolbelt\";\nimport { Context } from \"runed\";\nimport { createBitsAttrs, getAriaChecked, boolToStr, boolToEmptyStrOrUndef, boolToTrueOrUndef, } from \"../../internal/attrs.js\";\nimport { kbd } from \"../../internal/kbd.js\";\nimport { RovingFocusGroup } from \"../../internal/roving-focus-group.js\";\nexport const toolbarAttrs = createBitsAttrs({\n component: \"toolbar\",\n parts: [\"root\", \"item\", \"group\", \"group-item\", \"link\", \"button\"],\n});\nconst ToolbarRootContext = new Context(\"Toolbar.Root\");\nconst ToolbarGroupContext = new Context(\"Toolbar.Group\");\nexport class ToolbarRootState {\n static create(opts) {\n return ToolbarRootContext.set(new ToolbarRootState(opts));\n }\n opts;\n rovingFocusGroup;\n attachment;\n constructor(opts) {\n this.opts = opts;\n this.attachment = attachRef(this.opts.ref);\n this.rovingFocusGroup = new RovingFocusGroup({\n orientation: this.opts.orientation,\n loop: this.opts.loop,\n rootNode: this.opts.ref,\n candidateAttr: toolbarAttrs.item,\n });\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: \"toolbar\",\n \"data-orientation\": this.opts.orientation.current,\n [toolbarAttrs.root]: \"\",\n ...this.attachment,\n }));\n}\nclass ToolbarGroupBaseState {\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n }\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [toolbarAttrs.group]: \"\",\n role: \"group\",\n \"data-orientation\": this.root.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n ...this.attachment,\n }));\n}\nclass ToolbarGroupSingleState extends ToolbarGroupBaseState {\n opts;\n root;\n isMulti = false;\n anyPressed = $derived.by(() => this.opts.value.current !== \"\");\n constructor(opts, root) {\n super(opts, root);\n this.opts = opts;\n this.root = root;\n }\n includesItem(item) {\n return this.opts.value.current === item;\n }\n toggleItem(item) {\n if (this.includesItem(item)) {\n this.opts.value.current = \"\";\n }\n else {\n this.opts.value.current = item;\n }\n }\n}\nclass ToolbarGroupMultipleState extends ToolbarGroupBaseState {\n opts;\n root;\n isMulti = true;\n anyPressed = $derived.by(() => this.opts.value.current.length > 0);\n constructor(opts, root) {\n super(opts, root);\n this.opts = opts;\n this.root = root;\n }\n includesItem(item) {\n return this.opts.value.current.includes(item);\n }\n toggleItem(item) {\n if (this.includesItem(item)) {\n this.opts.value.current = this.opts.value.current.filter((v) => v !== item);\n }\n else {\n this.opts.value.current = [...this.opts.value.current, item];\n }\n }\n}\nexport class ToolbarGroupState {\n static create(opts) {\n const { type, ...rest } = opts;\n const rootState = ToolbarRootContext.get();\n const groupState = type === \"single\"\n ? new ToolbarGroupSingleState(rest, rootState)\n : new ToolbarGroupMultipleState(rest, rootState);\n return ToolbarGroupContext.set(groupState);\n }\n}\nexport class ToolbarGroupItemState {\n static create(opts) {\n const group = ToolbarGroupContext.get();\n return new ToolbarGroupItemState(opts, group, group.root);\n }\n opts;\n group;\n root;\n attachment;\n #isDisabled = $derived.by(() => this.opts.disabled.current || this.group.opts.disabled.current);\n constructor(opts, group, root) {\n this.opts = opts;\n this.group = group;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n $effect(() => {\n this.#tabIndex = this.root.rovingFocusGroup.getTabIndex(this.opts.ref.current);\n });\n this.onclick = this.onclick.bind(this);\n this.onkeydown = this.onkeydown.bind(this);\n }\n #toggleItem() {\n if (this.#isDisabled)\n return;\n this.group.toggleItem(this.opts.value.current);\n }\n onclick(_) {\n if (this.#isDisabled)\n return;\n this.#toggleItem();\n }\n onkeydown(e) {\n if (this.#isDisabled)\n return;\n if (e.key === kbd.ENTER || e.key === kbd.SPACE) {\n e.preventDefault();\n this.#toggleItem();\n return;\n }\n this.root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);\n }\n isPressed = $derived.by(() => this.group.includesItem(this.opts.value.current));\n #ariaChecked = $derived.by(() => {\n return this.group.isMulti ? undefined : getAriaChecked(this.isPressed, false);\n });\n #ariaPressed = $derived.by(() => {\n return this.group.isMulti ? boolToStr(this.isPressed) : undefined;\n });\n #tabIndex = $state(0);\n props = $derived.by(() => ({\n id: this.opts.id.current,\n role: this.group.isMulti ? undefined : \"radio\",\n tabindex: this.#tabIndex,\n \"data-orientation\": this.root.opts.orientation.current,\n \"data-disabled\": boolToEmptyStrOrUndef(this.#isDisabled),\n \"data-state\": getToggleItemDataState(this.isPressed),\n \"data-value\": this.opts.value.current,\n \"aria-pressed\": this.#ariaPressed,\n \"aria-checked\": this.#ariaChecked,\n [toolbarAttrs.item]: \"\",\n [toolbarAttrs[\"group-item\"]]: \"\",\n disabled: boolToTrueOrUndef(this.#isDisabled),\n //\n onclick: this.onclick,\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class ToolbarLinkState {\n static create(opts) {\n return new ToolbarLinkState(opts, ToolbarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n $effect(() => {\n this.#tabIndex = this.root.rovingFocusGroup.getTabIndex(this.opts.ref.current);\n });\n this.onkeydown = this.onkeydown.bind(this);\n }\n onkeydown(e) {\n this.root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);\n }\n #role = $derived.by(() => {\n if (!this.opts.ref.current)\n return undefined;\n const tagName = this.opts.ref.current.tagName;\n if (tagName !== \"A\")\n return \"link\";\n return undefined;\n });\n #tabIndex = $state(0);\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [toolbarAttrs.link]: \"\",\n [toolbarAttrs.item]: \"\",\n role: this.#role,\n tabindex: this.#tabIndex,\n \"data-orientation\": this.root.opts.orientation.current,\n //\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\nexport class ToolbarButtonState {\n static create(opts) {\n return new ToolbarButtonState(opts, ToolbarRootContext.get());\n }\n opts;\n root;\n attachment;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref);\n $effect(() => {\n this.#tabIndex = this.root.rovingFocusGroup.getTabIndex(this.opts.ref.current);\n });\n this.onkeydown = this.onkeydown.bind(this);\n }\n onkeydown(e) {\n this.root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);\n }\n #tabIndex = $state(0);\n #role = $derived.by(() => {\n if (!this.opts.ref.current)\n return undefined;\n const tagName = this.opts.ref.current.tagName;\n if (tagName !== \"BUTTON\")\n return \"button\";\n return undefined;\n });\n props = $derived.by(() => ({\n id: this.opts.id.current,\n [toolbarAttrs.item]: \"\",\n [toolbarAttrs.button]: \"\",\n role: this.#role,\n tabindex: this.#tabIndex,\n \"data-disabled\": boolToEmptyStrOrUndef(this.opts.disabled.current),\n \"data-orientation\": this.root.opts.orientation.current,\n disabled: boolToTrueOrUndef(this.opts.disabled.current),\n //\n onkeydown: this.onkeydown,\n ...this.attachment,\n }));\n}\n//\n// HELPERS\n//\nfunction getToggleItemDataState(condition) {\n return condition ? \"on\" : \"off\";\n}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ToolbarRootProps } from \"../types.js\";\n\timport { ToolbarRootState } from \"../toolbar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\torientation = \"horizontal\",\n\t\tloop = true,\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: ToolbarRootProps = $props();\n\n\tconst rootState = ToolbarRootState.create({\n\t\tid: boxWith(() => id),\n\t\torientation: boxWith(() => orientation),\n\t\tloop: boxWith(() => loop),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, rootState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ToolbarButtonProps } from \"../types.js\";\n\timport { ToolbarButtonState } from \"../toolbar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tdisabled = false,\n\t\ttype = \"button\",\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: ToolbarButtonProps = $props();\n\n\tconst buttonState = ToolbarButtonState.create({\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, buttonState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.()}\n\t</button>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport { ToolbarLinkState } from \"../toolbar.svelte.js\";\n\timport type { ToolbarLinkProps } from \"../types.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\thref,\n\t\tchild,\n\t\tref = $bindable(null),\n\t\tid = createId(uid),\n\t\t...restProps\n\t}: ToolbarLinkProps = $props();\n\n\tconst linkState = ToolbarLinkState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, linkState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<a {href} {...mergedProps}>\n\t\t{@render children?.()}\n\t</a>\n{/if}\n", "<script lang=\"ts\">\n\timport { type WritableBox, boxWith } from \"svelte-toolbelt\";\n\timport { mergeProps } from \"svelte-toolbelt\";\n\timport type { ToolbarGroupProps } from \"../types.js\";\n\timport { ToolbarGroupState } from \"../toolbar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport { noop } from \"../../../internal/noop.js\";\n\timport { watch } from \"runed\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tvalue = $bindable(),\n\t\tonValueChange = noop,\n\t\ttype,\n\t\tdisabled = false,\n\t\tchild,\n\t\tchildren,\n\t\t...restProps\n\t}: ToolbarGroupProps = $props();\n\n\tfunction handleDefaultValue() {\n\t\tif (value !== undefined) return;\n\t\tvalue = type === \"single\" ? \"\" : [];\n\t}\n\n\t// SSR\n\thandleDefaultValue();\n\n\twatch.pre(\n\t\t() => value,\n\t\t() => {\n\t\t\thandleDefaultValue();\n\t\t}\n\t);\n\n\tconst groupState = ToolbarGroupState.create({\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled),\n\t\ttype,\n\t\tvalue: boxWith(\n\t\t\t() => value!,\n\t\t\t(v) => {\n\t\t\t\tvalue = v;\n\t\t\t\t// @ts-expect-error - we know\n\t\t\t\tonValueChange(v);\n\t\t\t}\n\t\t) as WritableBox<string> | WritableBox<string[]>,\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, groupState.props));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps })}\n{:else}\n\t<div {...mergedProps}>\n\t\t{@render children?.()}\n\t</div>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { ToolbarGroupItemProps } from \"../types.js\";\n\timport { ToolbarGroupItemState } from \"../toolbar.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchild,\n\t\tchildren,\n\t\tvalue,\n\t\tdisabled = false,\n\t\ttype = \"button\",\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: ToolbarGroupItemProps = $props();\n\n\tconst groupItemState = ToolbarGroupItemState.create({\n\t\tid: boxWith(() => id),\n\t\tvalue: boxWith(() => value),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, groupItemState.props, { type }));\n</script>\n\n{#if child}\n\t{@render child({ props: mergedProps, pressed: groupItemState.isPressed })}\n{:else}\n\t<button {...mergedProps}>\n\t\t{@render children?.({ pressed: groupItemState.isPressed })}\n\t</button>\n{/if}\n", "export { default as Root } from \"./components/tooltip.svelte\";\nexport { default as Content } from \"./components/tooltip-content.svelte\";\nexport { default as ContentStatic } from \"./components/tooltip-content-static.svelte\";\nexport { default as Trigger } from \"./components/tooltip-trigger.svelte\";\nexport { default as Arrow } from \"./components/tooltip-arrow.svelte\";\nexport { default as Provider } from \"./components/tooltip-provider.svelte\";\nexport { default as Portal } from \"../utilities/portal/portal.svelte\";\n", "import { onDestroyEffect } from \"svelte-toolbelt\";\nexport class TimeoutFn {\n #interval;\n #cb;\n #timer = null;\n constructor(cb, interval) {\n this.#cb = cb;\n this.#interval = interval;\n this.stop = this.stop.bind(this);\n this.start = this.start.bind(this);\n onDestroyEffect(this.stop);\n }\n #clear() {\n if (this.#timer !== null) {\n window.clearTimeout(this.#timer);\n this.#timer = null;\n }\n }\n stop() {\n this.#clear();\n }\n start(...args) {\n this.#clear();\n this.#timer = window.setTimeout(() => {\n this.#timer = null;\n this.#cb(...args);\n }, this.#interval);\n }\n}\n", "import { onMountEffect, attachRef, DOMContext, simpleBox, boxWith, } from \"svelte-toolbelt\";\nimport { on } from \"svelte/events\";\nimport { Context, watch } from \"runed\";\nimport { isElement, isFocusVisible } from \"../../internal/is.js\";\nimport { createBitsAttrs, boolToEmptyStrOrUndef } from \"../../internal/attrs.js\";\nimport { TimeoutFn } from \"../../internal/timeout-fn.js\";\nimport { SafePolygon } from \"../../internal/safe-polygon.svelte.js\";\nimport { PresenceManager } from \"../../internal/presence-manager.svelte.js\";\nexport const tooltipAttrs = createBitsAttrs({\n component: \"tooltip\",\n parts: [\"content\", \"trigger\"],\n});\nconst TooltipProviderContext = new Context(\"Tooltip.Provider\");\nconst TooltipRootContext = new Context(\"Tooltip.Root\");\nexport class TooltipProviderState {\n static create(opts) {\n return TooltipProviderContext.set(new TooltipProviderState(opts));\n }\n opts;\n isOpenDelayed = $state(true);\n isPointerInTransit = simpleBox(false);\n #timerFn;\n #openTooltip = $state(null);\n constructor(opts) {\n this.opts = opts;\n this.#timerFn = new TimeoutFn(() => {\n this.isOpenDelayed = true;\n }, this.opts.skipDelayDuration.current);\n onMountEffect(() => on(window, \"scroll\", (e) => {\n const activeTooltip = this.#openTooltip;\n if (!activeTooltip)\n return;\n const triggerNode = activeTooltip.triggerNode;\n if (!triggerNode)\n return;\n const target = e.target;\n if (!(target instanceof Element || target instanceof Document))\n return;\n if (target.contains(triggerNode)) {\n activeTooltip.handleClose();\n }\n }));\n }\n #startTimer = () => {\n const skipDuration = this.opts.skipDelayDuration.current;\n if (skipDuration === 0) {\n return;\n }\n else {\n this.#timerFn.start();\n }\n };\n #clearTimer = () => {\n this.#timerFn.stop();\n };\n onOpen = (tooltip) => {\n if (this.#openTooltip && this.#openTooltip !== tooltip) {\n this.#openTooltip.handleClose();\n }\n this.#clearTimer();\n this.isOpenDelayed = false;\n this.#openTooltip = tooltip;\n };\n onClose = (tooltip) => {\n if (this.#openTooltip === tooltip) {\n this.#openTooltip = null;\n }\n this.#startTimer();\n };\n isTooltipOpen = (tooltip) => {\n return this.#openTooltip === tooltip;\n };\n}\nexport class TooltipRootState {\n static create(opts) {\n return TooltipRootContext.set(new TooltipRootState(opts, TooltipProviderContext.get()));\n }\n opts;\n provider;\n delayDuration = $derived.by(() => this.opts.delayDuration.current ?? this.provider.opts.delayDuration.current);\n disableHoverableContent = $derived.by(() => this.opts.disableHoverableContent.current ??\n this.provider.opts.disableHoverableContent.current);\n disableCloseOnTriggerClick = $derived.by(() => this.opts.disableCloseOnTriggerClick.current ??\n this.provider.opts.disableCloseOnTriggerClick.current);\n disabled = $derived.by(() => this.opts.disabled.current ?? this.provider.opts.disabled.current);\n ignoreNonKeyboardFocus = $derived.by(() => this.opts.ignoreNonKeyboardFocus.current ??\n this.provider.opts.ignoreNonKeyboardFocus.current);\n contentNode = $state(null);\n contentPresence;\n triggerNode = $state(null);\n #wasOpenDelayed = $state(false);\n #timerFn;\n stateAttr = $derived.by(() => {\n if (!this.opts.open.current)\n return \"closed\";\n return this.#wasOpenDelayed ? \"delayed-open\" : \"instant-open\";\n });\n constructor(opts, provider) {\n this.opts = opts;\n this.provider = provider;\n this.#timerFn = new TimeoutFn(() => {\n this.#wasOpenDelayed = true;\n this.opts.open.current = true;\n }, this.delayDuration ?? 0);\n this.contentPresence = new PresenceManager({\n open: this.opts.open,\n ref: boxWith(() => this.contentNode),\n onComplete: () => {\n this.opts.onOpenChangeComplete.current(this.opts.open.current);\n },\n });\n watch(() => this.delayDuration, () => {\n if (this.delayDuration === undefined)\n return;\n this.#timerFn = new TimeoutFn(() => {\n this.#wasOpenDelayed = true;\n this.opts.open.current = true;\n }, this.delayDuration);\n });\n watch(() => this.opts.open.current, (isOpen) => {\n if (isOpen) {\n this.provider.onOpen(this);\n }\n else {\n this.provider.onClose(this);\n }\n }, { lazy: true });\n }\n handleOpen = () => {\n this.#timerFn.stop();\n this.#wasOpenDelayed = false;\n this.opts.open.current = true;\n };\n handleClose = () => {\n this.#timerFn.stop();\n this.opts.open.current = false;\n };\n #handleDelayedOpen = () => {\n this.#timerFn.stop();\n const shouldSkipDelay = !this.provider.isOpenDelayed;\n const delayDuration = this.delayDuration ?? 0;\n // if no delay needed (either skip delay active or delay is 0), open immediately\n if (shouldSkipDelay || delayDuration === 0) {\n // set wasOpenDelayed based on whether we actually had a delay\n this.#wasOpenDelayed = delayDuration > 0 && shouldSkipDelay;\n this.opts.open.current = true;\n }\n else {\n // use timer for actual delays\n this.#timerFn.start();\n }\n };\n onTriggerEnter = () => {\n this.#handleDelayedOpen();\n };\n onTriggerLeave = () => {\n if (this.disableHoverableContent) {\n this.handleClose();\n }\n else {\n this.#timerFn.stop();\n }\n };\n}\nexport class TooltipTriggerState {\n static create(opts) {\n return new TooltipTriggerState(opts, TooltipRootContext.get());\n }\n opts;\n root;\n attachment;\n #isPointerDown = simpleBox(false);\n #hasPointerMoveOpened = $state(false);\n #isDisabled = $derived.by(() => this.opts.disabled.current || this.root.disabled);\n domContext;\n #transitCheckTimeout = null;\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.domContext = new DOMContext(opts.ref);\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.triggerNode = v));\n }\n #clearTransitCheck = () => {\n if (this.#transitCheckTimeout !== null) {\n clearTimeout(this.#transitCheckTimeout);\n this.#transitCheckTimeout = null;\n }\n };\n handlePointerUp = () => {\n this.#isPointerDown.current = false;\n };\n #onpointerup = () => {\n if (this.#isDisabled)\n return;\n this.#isPointerDown.current = false;\n };\n #onpointerdown = () => {\n if (this.#isDisabled)\n return;\n this.#isPointerDown.current = true;\n this.domContext.getDocument().addEventListener(\"pointerup\", () => {\n this.handlePointerUp();\n }, { once: true });\n };\n #onpointerenter = (e) => {\n if (this.#isDisabled)\n return;\n if (e.pointerType === \"touch\")\n return;\n // if in transit, wait briefly to see if user is actually heading to old content or staying here\n if (this.root.provider.isPointerInTransit.current) {\n this.#clearTransitCheck();\n this.#transitCheckTimeout = window.setTimeout(() => {\n // if still in transit after delay, user is likely staying on this trigger\n if (this.root.provider.isPointerInTransit.current) {\n this.root.provider.isPointerInTransit.current = false;\n this.root.onTriggerEnter();\n this.#hasPointerMoveOpened = true;\n }\n }, 250);\n return;\n }\n this.root.onTriggerEnter();\n this.#hasPointerMoveOpened = true;\n };\n #onpointermove = (e) => {\n if (this.#isDisabled)\n return;\n if (e.pointerType === \"touch\")\n return;\n if (this.#hasPointerMoveOpened)\n return;\n // moving within trigger means we're definitely not in transit anymore\n this.#clearTransitCheck();\n this.root.provider.isPointerInTransit.current = false;\n this.root.onTriggerEnter();\n this.#hasPointerMoveOpened = true;\n };\n #onpointerleave = (e) => {\n if (this.#isDisabled)\n return;\n this.#clearTransitCheck();\n const relatedTarget = e.relatedTarget;\n if (!this.root.disableHoverableContent &&\n this.root.opts.open.current &&\n isElement(relatedTarget) &&\n this.root.contentNode &&\n !this.root.contentNode.contains(relatedTarget)) {\n this.root.handleClose();\n }\n else {\n this.root.onTriggerLeave();\n }\n this.#hasPointerMoveOpened = false;\n };\n #onfocus = (e) => {\n if (this.#isPointerDown.current || this.#isDisabled)\n return;\n if (this.root.ignoreNonKeyboardFocus && !isFocusVisible(e.currentTarget))\n return;\n this.root.handleOpen();\n };\n #onblur = () => {\n if (this.#isDisabled)\n return;\n this.root.handleClose();\n };\n #onclick = () => {\n if (this.root.disableCloseOnTriggerClick || this.#isDisabled)\n return;\n this.root.handleClose();\n };\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"aria-describedby\": this.root.opts.open.current\n ? this.root.contentNode?.id\n : undefined,\n \"data-state\": this.root.stateAttr,\n \"data-disabled\": boolToEmptyStrOrUndef(this.#isDisabled),\n \"data-delay-duration\": `${this.root.delayDuration}`,\n [tooltipAttrs.trigger]: \"\",\n tabindex: this.#isDisabled ? undefined : this.opts.tabindex.current,\n disabled: this.opts.disabled.current,\n onpointerup: this.#onpointerup,\n onpointerdown: this.#onpointerdown,\n onpointerenter: this.#onpointerenter,\n onpointermove: this.#onpointermove,\n onpointerleave: this.#onpointerleave,\n onfocus: this.#onfocus,\n onblur: this.#onblur,\n onclick: this.#onclick,\n ...this.attachment,\n }));\n}\nexport class TooltipContentState {\n static create(opts) {\n return new TooltipContentState(opts, TooltipRootContext.get());\n }\n opts;\n root;\n attachment;\n #safePolygon = null;\n #createSafePolygon = () => {\n if (this.#safePolygon)\n return;\n this.#safePolygon = new SafePolygon({\n triggerNode: () => this.root.triggerNode,\n contentNode: () => this.root.contentNode,\n enabled: () => this.root.opts.open.current && !this.root.disableHoverableContent,\n onPointerExit: () => {\n if (this.root.provider.isTooltipOpen(this.root)) {\n this.root.handleClose();\n }\n },\n });\n };\n constructor(opts, root) {\n this.opts = opts;\n this.root = root;\n this.attachment = attachRef(this.opts.ref, (v) => (this.root.contentNode = v));\n watch(() => this.root.opts.open.current && !this.root.disableHoverableContent, (shouldTrackSafePolygon) => {\n if (!shouldTrackSafePolygon)\n return;\n this.#createSafePolygon();\n }, { lazy: true });\n }\n onInteractOutside = (e) => {\n if (isElement(e.target) &&\n this.root.triggerNode?.contains(e.target) &&\n this.root.disableCloseOnTriggerClick) {\n e.preventDefault();\n return;\n }\n this.opts.onInteractOutside.current(e);\n if (e.defaultPrevented)\n return;\n this.root.handleClose();\n };\n onEscapeKeydown = (e) => {\n this.opts.onEscapeKeydown.current?.(e);\n if (e.defaultPrevented)\n return;\n this.root.handleClose();\n };\n onOpenAutoFocus = (e) => {\n e.preventDefault();\n };\n onCloseAutoFocus = (e) => {\n e.preventDefault();\n };\n get shouldRender() {\n return this.root.contentPresence.shouldRender;\n }\n snippetProps = $derived.by(() => ({ open: this.root.opts.open.current }));\n props = $derived.by(() => ({\n id: this.opts.id.current,\n \"data-state\": this.root.stateAttr,\n \"data-disabled\": boolToEmptyStrOrUndef(this.root.disabled),\n style: {\n outline: \"none\",\n },\n [tooltipAttrs.content]: \"\",\n ...this.attachment,\n }));\n popperProps = {\n onInteractOutside: this.onInteractOutside,\n onEscapeKeydown: this.onEscapeKeydown,\n onOpenAutoFocus: this.onOpenAutoFocus,\n onCloseAutoFocus: this.onCloseAutoFocus,\n };\n}\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { TooltipRootProps } from \"../types.js\";\n\timport { TooltipRootState } from \"../tooltip.svelte.js\";\n\timport FloatingLayer from \"../../utilities/floating-layer/components/floating-layer.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tlet {\n\t\topen = $bindable(false),\n\t\tonOpenChange = noop,\n\t\tonOpenChangeComplete = noop,\n\t\tdisabled,\n\t\tdelayDuration,\n\t\tdisableCloseOnTriggerClick,\n\t\tdisableHoverableContent,\n\t\tignoreNonKeyboardFocus,\n\t\tchildren,\n\t}: TooltipRootProps = $props();\n\n\tTooltipRootState.create({\n\t\topen: boxWith(\n\t\t\t() => open,\n\t\t\t(v) => {\n\t\t\t\topen = v;\n\t\t\t\tonOpenChange(v);\n\t\t\t}\n\t\t),\n\t\tdelayDuration: boxWith(() => delayDuration),\n\t\tdisableCloseOnTriggerClick: boxWith(() => disableCloseOnTriggerClick),\n\t\tdisableHoverableContent: boxWith(() => disableHoverableContent),\n\t\tignoreNonKeyboardFocus: boxWith(() => ignoreNonKeyboardFocus),\n\t\tdisabled: boxWith(() => disabled),\n\t\tonOpenChangeComplete: boxWith(() => onOpenChangeComplete),\n\t});\n</script>\n\n<FloatingLayer tooltip>\n\t{@render children?.()}\n</FloatingLayer>\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { TooltipContentProps } from \"../types.js\";\n\timport { TooltipContentState } from \"../tooltip.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tside = \"top\",\n\t\tsideOffset = 0,\n\t\talign = \"center\",\n\t\tavoidCollisions = true,\n\t\tarrowPadding = 0,\n\t\tsticky = \"partial\",\n\t\tstrategy,\n\t\thideWhenDetached = false,\n\t\tcollisionPadding = 0,\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tforceMount = false,\n\t\tstyle,\n\t\t...restProps\n\t}: TooltipContentProps = $props();\n\n\tconst contentState = TooltipContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonEscapeKeydown: boxWith(() => onEscapeKeydown),\n\t});\n\n\tconst floatingProps = $derived({\n\t\tside,\n\t\tsideOffset,\n\t\talign,\n\t\tavoidCollisions,\n\t\tarrowPadding,\n\t\tsticky,\n\t\thideWhenDetached,\n\t\tcollisionPadding,\n\t\tstrategy,\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, floatingProps, contentState.props));\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tenabled={contentState.root.opts.open.current}\n\t\t{id}\n\t\ttrapFocus={false}\n\t\tloop={false}\n\t\tpreventScroll={false}\n\t\tforceMount={true}\n\t\tref={contentState.opts.ref}\n\t\ttooltip={true}\n\t\tshouldRender={contentState.shouldRender}\n\t\tcontentPointerEvents={contentState.root.disableHoverableContent ? \"none\" : \"auto\"}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"tooltip\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\topen={contentState.root.opts.open.current}\n\t\t{id}\n\t\ttrapFocus={false}\n\t\tloop={false}\n\t\tpreventScroll={false}\n\t\tforceMount={false}\n\t\tref={contentState.opts.ref}\n\t\ttooltip={true}\n\t\tshouldRender={contentState.shouldRender}\n\t\tcontentPointerEvents={contentState.root.disableHoverableContent ? \"none\" : \"auto\"}\n\t>\n\t\t{#snippet popper({ props, wrapperProps })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"tooltip\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, wrapperProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...wrapperProps}>\n\t\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t\t{@render children?.()}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { TooltipContentStaticProps } from \"../types.js\";\n\timport { TooltipContentState } from \"../tooltip.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport PopperLayer from \"../../utilities/popper-layer/popper-layer.svelte\";\n\timport { getFloatingContentCSSVars } from \"../../../internal/floating-svelte/floating-utils.svelte.js\";\n\timport PopperLayerForceMount from \"../../utilities/popper-layer/popper-layer-force-mount.svelte\";\n\timport { noop } from \"../../../internal/noop.js\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tref = $bindable(null),\n\t\tonInteractOutside = noop,\n\t\tonEscapeKeydown = noop,\n\t\tforceMount = false,\n\t\tstyle,\n\t\t...restProps\n\t}: TooltipContentStaticProps = $props();\n\n\tconst contentState = TooltipContentState.create({\n\t\tid: boxWith(() => id),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t\tonInteractOutside: boxWith(() => onInteractOutside),\n\t\tonEscapeKeydown: boxWith(() => onEscapeKeydown),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, contentState.props));\n</script>\n\n{#if forceMount}\n\t<PopperLayerForceMount\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\tisStatic\n\t\tenabled={contentState.root.opts.open.current}\n\t\t{id}\n\t\ttrapFocus={false}\n\t\tloop={false}\n\t\tpreventScroll={false}\n\t\tforceMount={true}\n\t\tref={contentState.opts.ref}\n\t\ttooltip={true}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"tooltip\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayerForceMount>\n{:else if !forceMount}\n\t<PopperLayer\n\t\t{...mergedProps}\n\t\t{...contentState.popperProps}\n\t\ttooltip={true}\n\t\tisStatic\n\t\topen={contentState.root.opts.open.current}\n\t\t{id}\n\t\ttrapFocus={false}\n\t\tloop={false}\n\t\tpreventScroll={false}\n\t\tforceMount={false}\n\t\tref={contentState.opts.ref}\n\t\tshouldRender={contentState.shouldRender}\n\t>\n\t\t{#snippet popper({ props })}\n\t\t\t{@const finalProps = mergeProps(\n\t\t\t\tprops,\n\t\t\t\t{ style: getFloatingContentCSSVars(\"tooltip\") },\n\t\t\t\t{ style }\n\t\t\t)}\n\t\t\t{#if child}\n\t\t\t\t{@render child({ props: finalProps, ...contentState.snippetProps })}\n\t\t\t{:else}\n\t\t\t\t<div {...finalProps}>\n\t\t\t\t\t{@render children?.()}\n\t\t\t\t</div>\n\t\t\t{/if}\n\t\t{/snippet}\n\t</PopperLayer>\n{/if}\n", "<script lang=\"ts\">\n\timport { boxWith, mergeProps } from \"svelte-toolbelt\";\n\timport type { TooltipTriggerProps } from \"../types.js\";\n\timport { TooltipTriggerState } from \"../tooltip.svelte.js\";\n\timport { createId } from \"../../../internal/create-id.js\";\n\timport FloatingLayerAnchor from \"../../utilities/floating-layer/components/floating-layer-anchor.svelte\";\n\n\tconst uid = $props.id();\n\n\tlet {\n\t\tchildren,\n\t\tchild,\n\t\tid = createId(uid),\n\t\tdisabled = false,\n\t\ttype = \"button\",\n\t\ttabindex = 0,\n\t\tref = $bindable(null),\n\t\t...restProps\n\t}: TooltipTriggerProps = $props();\n\n\tconst triggerState = TooltipTriggerState.create({\n\t\tid: boxWith(() => id),\n\t\tdisabled: boxWith(() => disabled ?? false),\n\t\ttabindex: boxWith(() => tabindex ?? 0),\n\t\tref: boxWith(\n\t\t\t() => ref,\n\t\t\t(v) => (ref = v)\n\t\t),\n\t});\n\n\tconst mergedProps = $derived(mergeProps(restProps, triggerState.props, { type }));\n</script>\n\n<FloatingLayerAnchor {id} ref={triggerState.opts.ref} tooltip={true}>\n\t{#if child}\n\t\t{@render child({ props: mergedProps })}\n\t{:else}\n\t\t<button {...mergedProps}>\n\t\t\t{@render children?.()}\n\t\t</button>\n\t{/if}\n</FloatingLayerAnchor>\n", "<script lang=\"ts\">\n\timport type { TooltipArrowProps } from \"../types.js\";\n\timport FloatingLayerArrow from \"../../utilities/floating-layer/components/floating-layer-arrow.svelte\";\n\n\tlet { ref = $bindable(null), ...restProps }: TooltipArrowProps = $props();\n</script>\n\n<FloatingLayerArrow bind:ref {...restProps} />\n", "<script lang=\"ts\">\n\timport { boxWith } from \"svelte-toolbelt\";\n\timport type { TooltipProviderProps } from \"../types.js\";\n\timport { TooltipProviderState } from \"../tooltip.svelte.js\";\n\n\tlet {\n\t\tchildren,\n\t\tdelayDuration = 700,\n\t\tdisableCloseOnTriggerClick = false,\n\t\tdisableHoverableContent = false,\n\t\tdisabled = false,\n\t\tignoreNonKeyboardFocus = false,\n\t\tskipDelayDuration = 300,\n\t}: TooltipProviderProps = $props();\n\n\tTooltipProviderState.create({\n\t\tdelayDuration: boxWith(() => delayDuration),\n\t\tdisableCloseOnTriggerClick: boxWith(() => disableCloseOnTriggerClick),\n\t\tdisableHoverableContent: boxWith(() => disableHoverableContent),\n\t\tdisabled: boxWith(() => disabled),\n\t\tignoreNonKeyboardFocus: boxWith(() => ignoreNonKeyboardFocus),\n\t\tskipDelayDuration: boxWith(() => skipDelayDuration),\n\t});\n</script>\n\n{@render children?.()}\n"],
|
||
"mappings": "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",
|
||
"names": ["key", "comment", "prop", "p", "key", "a", "document", "activeElement", "window", "document", "update", "isFunction", "isFunction", "get", "isFunction", "_subscribe", "get", "update", "size", "element", "onCleanup", "options", "child", "next", "getActiveElement", "activeElement", "element", "getActiveElement", "ASTERISK", "isHTMLElement", "element", "isElement", "isHTMLElement", "_opts", "_opts", "_root", "_isDisabled", "element", "noop", "noop", "root_2", "root_2", "root_2", "root_2", "exports_exports", "root", "noop", "root_2", "root_2", "root_2", "target", "element", "debounce", "isOrContainsTarget", "getOwnerDocument", "element", "child", "SELECTION_KEYS", "FIRST_KEYS", "LAST_KEYS", "FIRST_LAST_KEYS", "element", "getActiveElement", "isHiddenInput", "candidateSelectors", "candidateSelector", "join", "NoElement", "Element", "matches", "prototype", "msMatchesSelector", "webkitMatchesSelector", "getRootNode", "element", "_element$getRootNode", "call", "ownerDocument", "isInert", "node", "lookUp", "_node$getAttribute", "inertAtt", "getAttribute", "inert", "result", "closest", "parentNode", "isContentEditable", "_node$getAttribute2", "attValue", "getCandidates", "el", "includeContainer", "filter", "candidates", "Array", "slice", "apply", "querySelectorAll", "unshift", "getCandidatesIteratively", "elements", "options", "elementsToCheck", "from", "length", "shift", "tagName", "assigned", "assignedElements", "content", "children", "nestedCandidates", "flatten", "push", "scopeParent", "validCandidate", "includes", "shadowRoot", "getShadowRoot", "validShadowRoot", "shadowRootFilter", "hasTabIndex", "isNaN", "parseInt", "getTabIndex", "Error", "tabIndex", "test", "getSortOrderTabIndex", "isScope", "sortOrderedTabbables", "a", "b", "documentOrder", "isInput", "isHiddenInput", "type", "isDetailsWithSummary", "r", "some", "child", "getCheckedRadio", "nodes", "form", "i", "checked", "isTabbableRadio", "name", "radioScope", "queryRadios", "radioSet", "window", "CSS", "escape", "err", "console", "error", "message", "isRadio", "isNonTabbableRadio", "isNodeAttached", "_nodeRoot", "nodeRoot", "nodeRootHost", "host", "attached", "_nodeRootHost", "_nodeRootHost$ownerDo", "_node$ownerDocument", "contains", "_nodeRoot2", "_nodeRootHost2", "_nodeRootHost2$ownerD", "isZeroArea", "_node$getBoundingClie", "getBoundingClientRect", "width", "height", "isHidden", "_ref", "displayCheck", "visible", "checkVisibility", "checkOpacity", "opacityProperty", "contentVisibilityAuto", "visibilityProperty", "checkVisibilityCSS", "getComputedStyle", "visibility", "isDirectSummary", "nodeUnderDetails", "parentElement", "originalNode", "rootNode", "assignedSlot", "getClientRects", "isDisabledFromFieldset", "disabled", "item", "isNodeMatchingSelectorFocusable", "isNodeMatchingSelectorTabbable", "isShadowRootTabbable", "shadowHostNode", "sortByOrder", "regularTabbables", "orderedTabbables", "forEach", "candidateTabindex", "sort", "reduce", "acc", "sortable", "concat", "tabbable", "container", "bind", "focusable", "isTabbable", "focusableCandidateSelector", "isFocusable", "index", "a", "key", "size", "next", "currentMatchIndex", "nextMatch", "noop", "getWindow", "_opts", "key", "_a", "_opts", "_enabled", "isElement", "isHTMLElement", "j", "a", "p", "root", "isHTMLElement", "FIRST_LAST_KEYS", "LAST_KEYS", "isElement", "SELECTION_KEYS", "index", "noop", "debounce", "isOrContainsTarget", "getOwnerDocument", "prop", "noop", "isValidEvent", "noop", "noop", "activeElement", "next", "element", "_opts", "cleanup_fn", "noop", "noop", "isHTMLElement", "addEventListeners_fn", "noop", "restoreScrollDelay", "noop", "$$anchor", "root_2", "root_2", "exports_exports", "root_2", "exports_exports", "root", "root_2", "root_2", "root_2", "exports_exports", "exports_exports", "a", "a", "date", "offset", "key", "a", "min", "max", "round", "res", "ms", "min", "max", "offset", "offset", "p", "a", "min", "max", "isHTMLElement", "key", "key", "isHTMLElement", "prev", "next", "index", "key", "getOptsByGranularity", "key", "p", "opts", "part", "isHTMLElement", "index", "h2", "element", "prev", "prev", "next", "index", "root", "noop", "root_2", "root_2", "root_2", "root_2", "root_2", "root_2", "root_2", "root_2", "root_2", "root_2", "root_2", "$$anchor", "root_2", "root_2", "root_2", "$$anchor", "root_5", "exports_exports", "index", "root", "isHTMLElement", "root_2", "get", "set", "root_2", "noop", "root_2", "root_2", "exports_exports", "root", "_height", "_width", "_isMountAnimationPrevented", "_originalStyles", "_isDisabled", "noop", "root_2", "root_2", "root_2", "exports_exports", "state", "platform", "element", "reset", "max", "offset", "state", "platform", "placements", "sides", "side", "a", "placement", "overflow", "state", "platform", "x", "y", "min", "max", "offset", "getNodeName", "isNode", "getWindow", "getDocumentElement", "isElement", "isHTMLElement", "isShadowRoot", "element", "getComputedStyle", "getParentNode", "element", "getComputedStyle", "isHTMLElement", "isElement", "getWindow", "getDocumentElement", "getNodeName", "getParentNode", "a", "root", "update", "offset", "shift", "flip", "size", "hide", "arrow", "limitShift", "computePosition", "get", "element", "get", "update", "computePosition", "reset", "root", "offset", "shift", "limitShift", "flip", "size", "arrow", "hide", "_opts", "_search", "key", "FIRST_KEYS", "LAST_KEYS", "FIRST_LAST_KEYS", "SELECTION_KEYS", "root", "FIRST_LAST_KEYS", "next", "candidateNodes", "handleOpen_fn", "noop", "tick", "noop", "$$anchor", "root_2", "$$anchor", "root_3", "root_2", "root_2", "isValidEvent", "$$anchor", "$$arg0", "isValidEvent", "isValidEvent", "noop", "$$anchor", "root_4", "root_8", "noop", "$$anchor", "root_4", "root_8", "noop", "noop", "root_2", "root_2", "root_2", "root_2", "root_3", "root_3", "exports_exports", "sibling", "index", "key", "index", "max", "a", "element", "item", "root", "root", "Label", "$$anchor", "noop", "root_4", "root_3", "root_2", "root_2", "root", "root_2", "root_2", "get", "set", "noop", "$$anchor", "root_1", "root_4", "noop", "$$anchor", "root_1", "a", "root_4", "$$anchor", "root_3", "root_2", "root_2", "root_3", "index", "exports_exports", "noop", "root", "noop", "noop", "root_2", "root_2", "root_2", "noop", "isValidEvent", "$$anchor", "root_4", "root_8", "noop", "isValidEvent", "$$anchor", "root_4", "root_8", "$$anchor", "root_3", "noop", "root_2", "root_2", "noop", "root_2", "noop", "isHTMLElement", "$$anchor", "root_4", "root_8", "noop", "isHTMLElement", "$$anchor", "root_4", "root_8", "noop", "root_3", "noop", "root_2", "noop", "root_2", "exports_exports", "root", "_labelNode", "prev", "next", "max", "key", "noop", "root_2", "root_2", "root_2", "exports_exports", "isPointInPolygon", "j", "getSide", "_opts", "isElement", "root", "clearCloseTimeout_fn", "_closeTimeout", "isElement", "noop", "$$anchor", "root_2", "noop", "$$anchor", "root_4", "root_8", "noop", "$$anchor", "root_4", "root_8", "root_3", "root_2", "exports_exports", "prev", "root", "noop", "_a", "root_2", "root_2", "root_2", "exports_exports", "noop", "root_3", "updateValue_fn", "prev", "root", "_tabindex", "root_2", "root_2", "root_2", "exports_exports", "noop", "root_2", "noop", "$$anchor", "exports_exports", "noop", "root", "noop", "$$anchor", "root_4", "root_8", "noop", "$$anchor", "root_4", "root_8", "root_3", "exports_exports", "root_2", "exports_exports", "root", "isElement", "noop", "$$anchor", "noop", "$$anchor", "root_4", "root_8", "$$anchor", "a", "root_3", "noop", "$$anchor", "root_4", "root_8", "exports_exports", "root", "noop", "root_2", "noop", "noop", "$$anchor", "root_4", "root_8", "noop", "noop", "$$anchor", "root_4", "root_8", "noop", "root_3", "exports_exports", "max", "min", "root_2", "exports_exports", "key", "prev", "offset", "_isFocused", "newValue", "focus", "index", "_node", "noop", "focusFirst", "e", "index", "isElement", "getActiveElement", "noop", "root_2", "noop", "$$anchor", "root_4", "state", "$$anchor", "root_2", "$$anchor", "root_2", "noop", "a", "root_2", "root_2", "root_2", "root_4", "$$anchor", "root_3", "noop", "root_2", "exports_exports", "root", "_isSelected", "_isDisabled", "p", "a", "noop", "root_2", "root_2", "root_2", "root_2", "exports_exports", "noop", "root", "root_2", "exports_exports", "noop", "root_3", "exports_exports", "max", "max", "min", "root_2", "exports_exports", "root", "_isChecked", "_isDisabled", "_tabIndex", "noop", "root_2", "root_2", "exports_exports", "noop", "root_2", "exports_exports", "element", "state", "root", "_isActive", "_state", "_isDisabled", "newValue", "min", "max", "noop", "value", "root_2", "root_2", "exports_exports", "clamp", "n", "min", "max", "root", "_contentId", "_state", "offset", "_root", "_width", "_height", "clamp", "root_2", "root", "root_2", "$$anchor", "$$anchor", "$$anchor", "root_2", "$$anchor", "root_2", "exports_exports", "noop", "$$anchor", "$$anchor", "root_3", "exports_exports", "exports_exports", "min", "max", "a", "linearScale", "clamp", "min", "max", "linearScale", "tick", "index", "root", "_isDisabled", "updateValue_fn", "noop", "min", "max", "root_2", "root_2", "root_2", "root_2", "root", "root_3", "root", "root_3", "exports_exports", "toggle_fn", "root", "noop", "root_2", "root_2", "exports_exports", "root", "_isDisabled", "_isActive", "_ariaControls", "_tabIndex", "noop", "root_2", "root_2", "root_2", "root_2", "exports_exports", "SEGMENT_CONFIGS", "root", "clearUpdating_fn", "_fieldNode", "_labelNode", "prev", "next", "getLabelledBy_fn", "_ariaDescribedBy", "isArrowUp", "handleArrowUp_fn", "isArrowDown", "handleArrowDown_fn", "handleNumberKey_fn", "isBackspace", "handleBackspace_fn", "getMin_fn", "getMax_fn", "formatValue_fn", "max", "_announcer", "isAcceptableDayPeriodKey", "DateFieldSegmentState", "key", "noop", "root_2", "root_2", "DateFieldSegmentState", "root_2", "exports_exports", "updateValue_fn", "prev", "root", "_onclick", "noop", "_a", "root_2", "root_2", "root_2", "exports_exports", "noop", "root_2", "exports_exports", "root", "_tabIndex", "_isDisabled", "noop", "root_2", "root_2", "exports_exports", "root", "_tabIndex", "_isDisabled", "getToggleItemDataState", "_ariaPressed", "_ariaChecked", "toggleItem_fn", "_role", "root_2", "root_2", "a", "root_2", "noop", "root_2", "root_2", "exports_exports", "_timer", "_timerFn", "root", "_isPointerDown", "_isDisabled", "isElement", "_onclick", "noop", "noop", "$$anchor", "root_4", "root_8", "noop", "$$anchor", "root_4", "root_8", "root_3"]
|
||
}
|