Files
base/node_modules/.vite/deps/bits-ui.js 2.map
T

8 lines
2.0 MiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"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"]
}