diff --git "a/dev-ui/node_modules/.vite/deps/bits-ui.js" "b/dev-ui/node_modules/.vite/deps/bits-ui.js"
deleted file mode 100644--- "a/dev-ui/node_modules/.vite/deps/bits-ui.js"
+++ /dev/null
@@ -1,46972 +0,0 @@
-import "./chunk-MZVN5SDE.js";
-import {
- StyleToObject
-} from "./chunk-3R76EFEV.js";
-import {
- SvelteMap
-} from "./chunk-ME63RQ5D.js";
-import "./chunk-P6H3IEOT.js";
-import "./chunk-7RQDXF5S.js";
-import {
- add_locations,
- append_styles,
- assign,
- attribute_effect,
- bind_this,
- bind_value,
- check_target,
- cleanup_styles,
- component,
- createAttachmentKey,
- create_ownership_validator,
- each,
- element,
- hmr,
- if_block,
- init,
- key,
- legacy_api,
- log_if_contains_state,
- onMount,
- prop,
- rest_props,
- set_attribute,
- set_selected,
- set_style,
- snippet,
- spread_props,
- validate_binding,
- validate_dynamic_element_tag,
- validate_each_keys,
- validate_snippet_args,
- validate_void_dynamic_element,
- wrap_snippet
-} from "./chunk-W6P35DUF.js";
-import {
- clsx
-} from "./chunk-U7P2NEEE.js";
-import {
- append,
- comment,
- from_html,
- from_svg,
- mount,
- props_id,
- set_text,
- text,
- unmount
-} from "./chunk-RPUUDWWB.js";
-import {
- FILENAME,
- HMR,
- add_svelte_meta,
- child,
- createSubscriber,
- effect_root,
- first_child,
- get,
- getAllContexts,
- getContext,
- hasContext,
- next,
- noop,
- on,
- pop,
- proxy,
- push,
- replay_events,
- reset,
- set,
- setContext,
- sibling,
- snapshot,
- state,
- strict_equals,
- tag,
- tag_proxy,
- template_effect,
- tick,
- track_reactivity_loss,
- untrack,
- user_derived,
- user_effect,
- user_pre_effect
-} from "./chunk-W7EPGGG4.js";
-import {
- true_default
-} from "./chunk-ICXW7654.js";
-import "./chunk-JOCHEXZL.js";
-import "./chunk-OHYQYV5R.js";
-import {
- __export
-} from "./chunk-PZ5AY32C.js";
-
-// node_modules/bits-ui/dist/bits/accordion/exports.js
-var exports_exports = {};
-__export(exports_exports, {
- Content: () => accordion_content_default,
- Header: () => accordion_header_default,
- Item: () => accordion_item_default,
- Root: () => accordion_default,
- Trigger: () => accordion_trigger_default
-});
-
-// node_modules/svelte-toolbelt/dist/utils/is.js
-function isFunction(value) {
- return typeof value === "function";
-}
-function isObject(value) {
- return value !== null && typeof value === "object";
-}
-var CLASS_VALUE_PRIMITIVE_TYPES = ["string", "number", "bigint", "boolean"];
-function isClassValue(value) {
- if (value === null || value === void 0)
- return true;
- if (CLASS_VALUE_PRIMITIVE_TYPES.includes(typeof value))
- return true;
- if (Array.isArray(value))
- return value.every((item) => isClassValue(item));
- if (typeof value === "object") {
- if (Object.getPrototypeOf(value) !== Object.prototype)
- return false;
- return true;
- }
- return false;
-}
-
-// node_modules/svelte-toolbelt/dist/box/box-extras.svelte.js
-var BoxSymbol = Symbol("box");
-var isWritableSymbol = Symbol("is-writable");
-function boxWith(getter, setter) {
- const derived = tag(user_derived(getter), "derived");
- if (setter) {
- return {
- [BoxSymbol]: true,
- [isWritableSymbol]: true,
- get current() {
- return get(derived);
- },
- set current(v) {
- setter(v);
- }
- };
- }
- return {
- [BoxSymbol]: true,
- get current() {
- return getter();
- }
- };
-}
-function isBox(value) {
- return isObject(value) && BoxSymbol in value;
-}
-function isWritableBox(value) {
- return isBox(value) && isWritableSymbol in value;
-}
-function boxFrom(value) {
- if (isBox(value)) return value;
- if (isFunction(value)) return boxWith(value);
- return simpleBox(value);
-}
-function boxFlatten(boxes) {
- return Object.entries(boxes).reduce(
- (acc, [key2, b]) => {
- if (!isBox(b)) {
- return Object.assign(acc, { [key2]: b });
- }
- if (isWritableBox(b)) {
- Object.defineProperty(acc, key2, {
- get() {
- return b.current;
- },
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
- set(v) {
- b.current = v;
- }
- });
- } else {
- Object.defineProperty(acc, key2, {
- get() {
- return b.current;
- }
- });
- }
- return acc;
- },
- {}
- );
-}
-function toReadonlyBox(b) {
- if (!isWritableBox(b)) return b;
- return {
- [BoxSymbol]: true,
- get current() {
- return b.current;
- }
- };
-}
-function simpleBox(initialValue) {
- let current = tag(state(proxy(initialValue)), "current");
- return {
- [BoxSymbol]: true,
- [isWritableSymbol]: true,
- get current() {
- return get(current);
- },
- set current(v) {
- set(current, v, true);
- }
- };
-}
-
-// node_modules/svelte-toolbelt/dist/box/box.svelte.js
-function box(initialValue) {
- let current = tag(state(proxy(initialValue)), "current");
- return {
- [BoxSymbol]: true,
- [isWritableSymbol]: true,
- get current() {
- return get(current);
- },
- set current(v) {
- set(current, v, true);
- }
- };
-}
-box.from = boxFrom;
-box.with = boxWith;
-box.flatten = boxFlatten;
-box.readonly = toReadonlyBox;
-box.isBox = isBox;
-box.isWritableBox = isWritableBox;
-
-// node_modules/svelte-toolbelt/dist/utils/compose-handlers.js
-function composeHandlers(...handlers) {
- return function(e) {
- for (const handler of handlers) {
- if (!handler)
- continue;
- if (e.defaultPrevented)
- return;
- if (typeof handler === "function") {
- handler.call(this, e);
- } else {
- handler.current?.call(this, e);
- }
- }
- };
-}
-
-// node_modules/svelte-toolbelt/dist/utils/strings.js
-var NUMBER_CHAR_RE = /\d/;
-var STR_SPLITTERS = ["-", "_", "/", "."];
-function isUppercase(char = "") {
- if (NUMBER_CHAR_RE.test(char))
- return void 0;
- return char !== char.toLowerCase();
-}
-function splitByCase(str) {
- const parts = [];
- let buff = "";
- let previousUpper;
- let previousSplitter;
- for (const char of str) {
- const isSplitter = STR_SPLITTERS.includes(char);
- if (isSplitter === true) {
- parts.push(buff);
- buff = "";
- previousUpper = void 0;
- continue;
- }
- const isUpper = isUppercase(char);
- if (previousSplitter === false) {
- if (previousUpper === false && isUpper === true) {
- parts.push(buff);
- buff = char;
- previousUpper = isUpper;
- continue;
- }
- if (previousUpper === true && isUpper === false && buff.length > 1) {
- const lastChar = buff.at(-1);
- parts.push(buff.slice(0, Math.max(0, buff.length - 1)));
- buff = lastChar + char;
- previousUpper = isUpper;
- continue;
- }
- }
- buff += char;
- previousUpper = isUpper;
- previousSplitter = isSplitter;
- }
- parts.push(buff);
- return parts;
-}
-function pascalCase(str) {
- if (!str)
- return "";
- return splitByCase(str).map((p2) => upperFirst(p2)).join("");
-}
-function camelCase(str) {
- return lowerFirst(pascalCase(str || ""));
-}
-function upperFirst(str) {
- return str ? str[0].toUpperCase() + str.slice(1) : "";
-}
-function lowerFirst(str) {
- return str ? str[0].toLowerCase() + str.slice(1) : "";
-}
-
-// node_modules/svelte-toolbelt/dist/utils/css-to-style-obj.js
-function cssToStyleObj(css) {
- if (!css)
- return {};
- const styleObj = {};
- function iterator(name, value) {
- if (name.startsWith("-moz-") || name.startsWith("-webkit-") || name.startsWith("-ms-") || name.startsWith("-o-")) {
- styleObj[pascalCase(name)] = value;
- return;
- }
- if (name.startsWith("--")) {
- styleObj[name] = value;
- return;
- }
- styleObj[camelCase(name)] = value;
- }
- StyleToObject(css, iterator);
- return styleObj;
-}
-
-// node_modules/svelte-toolbelt/dist/utils/execute-callbacks.js
-function executeCallbacks(...callbacks) {
- return (...args) => {
- for (const callback of callbacks) {
- if (typeof callback === "function") {
- callback(...args);
- }
- }
- };
-}
-
-// node_modules/svelte-toolbelt/dist/utils/style-to-css.js
-function createParser(matcher, replacer) {
- const regex = RegExp(matcher, "g");
- return (str) => {
- if (typeof str !== "string") {
- throw new TypeError(`expected an argument of type string, but got ${typeof str}`);
- }
- if (!str.match(regex))
- return str;
- return str.replace(regex, replacer);
- };
-}
-var camelToKebab = createParser(/[A-Z]/, (match) => `-${match.toLowerCase()}`);
-function styleToCSS(styleObj) {
- if (!styleObj || typeof styleObj !== "object" || Array.isArray(styleObj)) {
- throw new TypeError(`expected an argument of type object, but got ${typeof styleObj}`);
- }
- return Object.keys(styleObj).map((property) => `${camelToKebab(property)}: ${styleObj[property]};`).join("\n");
-}
-
-// node_modules/svelte-toolbelt/dist/utils/style.js
-function styleToString(style = {}) {
- return styleToCSS(style).replace("\n", " ");
-}
-
-// node_modules/svelte-toolbelt/dist/utils/event-list.js
-var EVENT_LIST = [
- "onabort",
- "onanimationcancel",
- "onanimationend",
- "onanimationiteration",
- "onanimationstart",
- "onauxclick",
- "onbeforeinput",
- "onbeforetoggle",
- "onblur",
- "oncancel",
- "oncanplay",
- "oncanplaythrough",
- "onchange",
- "onclick",
- "onclose",
- "oncompositionend",
- "oncompositionstart",
- "oncompositionupdate",
- "oncontextlost",
- "oncontextmenu",
- "oncontextrestored",
- "oncopy",
- "oncuechange",
- "oncut",
- "ondblclick",
- "ondrag",
- "ondragend",
- "ondragenter",
- "ondragleave",
- "ondragover",
- "ondragstart",
- "ondrop",
- "ondurationchange",
- "onemptied",
- "onended",
- "onerror",
- "onfocus",
- "onfocusin",
- "onfocusout",
- "onformdata",
- "ongotpointercapture",
- "oninput",
- "oninvalid",
- "onkeydown",
- "onkeypress",
- "onkeyup",
- "onload",
- "onloadeddata",
- "onloadedmetadata",
- "onloadstart",
- "onlostpointercapture",
- "onmousedown",
- "onmouseenter",
- "onmouseleave",
- "onmousemove",
- "onmouseout",
- "onmouseover",
- "onmouseup",
- "onpaste",
- "onpause",
- "onplay",
- "onplaying",
- "onpointercancel",
- "onpointerdown",
- "onpointerenter",
- "onpointerleave",
- "onpointermove",
- "onpointerout",
- "onpointerover",
- "onpointerup",
- "onprogress",
- "onratechange",
- "onreset",
- "onresize",
- "onscroll",
- "onscrollend",
- "onsecuritypolicyviolation",
- "onseeked",
- "onseeking",
- "onselect",
- "onselectionchange",
- "onselectstart",
- "onslotchange",
- "onstalled",
- "onsubmit",
- "onsuspend",
- "ontimeupdate",
- "ontoggle",
- "ontouchcancel",
- "ontouchend",
- "ontouchmove",
- "ontouchstart",
- "ontransitioncancel",
- "ontransitionend",
- "ontransitionrun",
- "ontransitionstart",
- "onvolumechange",
- "onwaiting",
- "onwebkitanimationend",
- "onwebkitanimationiteration",
- "onwebkitanimationstart",
- "onwebkittransitionend",
- "onwheel"
-];
-var EVENT_LIST_SET = new Set(EVENT_LIST);
-
-// node_modules/svelte-toolbelt/dist/utils/merge-props.js
-function isEventHandler(key2) {
- return EVENT_LIST_SET.has(key2);
-}
-function mergeProps(...args) {
- const result = { ...args[0] };
- for (let i = 1; i < args.length; i++) {
- const props = args[i];
- if (!props)
- continue;
- for (const key2 of Object.keys(props)) {
- const a2 = result[key2];
- const b = props[key2];
- const aIsFunction = typeof a2 === "function";
- const bIsFunction = typeof b === "function";
- if (aIsFunction && typeof bIsFunction && isEventHandler(key2)) {
- const aHandler = a2;
- const bHandler = b;
- result[key2] = composeHandlers(aHandler, bHandler);
- } else if (aIsFunction && bIsFunction) {
- result[key2] = executeCallbacks(a2, b);
- } else if (key2 === "class") {
- const aIsClassValue = isClassValue(a2);
- const bIsClassValue = isClassValue(b);
- if (aIsClassValue && bIsClassValue) {
- result[key2] = clsx(a2, b);
- } else if (aIsClassValue) {
- result[key2] = clsx(a2);
- } else if (bIsClassValue) {
- result[key2] = clsx(b);
- }
- } else if (key2 === "style") {
- const aIsObject = typeof a2 === "object";
- const bIsObject = typeof b === "object";
- const aIsString = typeof a2 === "string";
- const bIsString = typeof b === "string";
- if (aIsObject && bIsObject) {
- result[key2] = { ...a2, ...b };
- } else if (aIsObject && bIsString) {
- const parsedStyle = cssToStyleObj(b);
- result[key2] = { ...a2, ...parsedStyle };
- } else if (aIsString && bIsObject) {
- const parsedStyle = cssToStyleObj(a2);
- result[key2] = { ...parsedStyle, ...b };
- } else if (aIsString && bIsString) {
- const parsedStyleA = cssToStyleObj(a2);
- const parsedStyleB = cssToStyleObj(b);
- result[key2] = { ...parsedStyleA, ...parsedStyleB };
- } else if (aIsObject) {
- result[key2] = a2;
- } else if (bIsObject) {
- result[key2] = b;
- } else if (aIsString) {
- result[key2] = a2;
- } else if (bIsString) {
- result[key2] = b;
- }
- } else {
- result[key2] = b !== void 0 ? b : a2;
- }
- }
- for (const key2 of Object.getOwnPropertySymbols(props)) {
- const a2 = result[key2];
- const b = props[key2];
- result[key2] = b !== void 0 ? b : a2;
- }
- }
- if (typeof result.style === "object") {
- result.style = styleToString(result.style).replaceAll("\n", " ");
- }
- if (result.hidden === false) {
- result.hidden = void 0;
- delete result.hidden;
- }
- if (result.disabled === false) {
- result.disabled = void 0;
- delete result.disabled;
- }
- return result;
-}
-
-// node_modules/svelte-toolbelt/dist/utils/sr-only-styles.js
-var srOnlyStyles = {
- position: "absolute",
- width: "1px",
- height: "1px",
- padding: "0",
- margin: "-1px",
- overflow: "hidden",
- clip: "rect(0, 0, 0, 0)",
- whiteSpace: "nowrap",
- borderWidth: "0",
- transform: "translateX(-100%)"
-};
-var srOnlyStylesString = styleToString(srOnlyStyles);
-
-// node_modules/runed/dist/internal/configurable-globals.js
-var defaultWindow = true_default && typeof window !== "undefined" ? window : void 0;
-var defaultDocument = true_default && typeof window !== "undefined" ? window.document : void 0;
-var defaultNavigator = true_default && typeof window !== "undefined" ? window.navigator : void 0;
-var defaultLocation = true_default && typeof window !== "undefined" ? window.location : void 0;
-
-// node_modules/runed/dist/internal/utils/dom.js
-function getActiveElement(document2) {
- let activeElement2 = document2.activeElement;
- while (activeElement2?.shadowRoot) {
- const node = activeElement2.shadowRoot.activeElement;
- if (node === activeElement2)
- break;
- else
- activeElement2 = node;
- }
- return activeElement2;
-}
-
-// node_modules/runed/dist/utilities/active-element/active-element.svelte.js
-var ActiveElement = class {
- #document;
- #subscribe;
- constructor(options = {}) {
- const { window: window2 = defaultWindow, document: document2 = window2?.document } = options;
- if (strict_equals(window2, void 0)) return;
- this.#document = document2;
- this.#subscribe = createSubscriber((update2) => {
- const cleanupFocusIn = on(window2, "focusin", update2);
- const cleanupFocusOut = on(window2, "focusout", update2);
- return () => {
- cleanupFocusIn();
- cleanupFocusOut();
- };
- });
- }
- get current() {
- this.#subscribe?.();
- if (!this.#document) return null;
- return getActiveElement(this.#document);
- }
-};
-var activeElement = new ActiveElement();
-
-// node_modules/runed/dist/internal/utils/is.js
-function isFunction2(value) {
- return typeof value === "function";
-}
-
-// node_modules/runed/dist/utilities/extract/extract.svelte.js
-function extract(value, defaultValue) {
- if (isFunction2(value)) {
- const getter = value;
- const gotten = getter();
- if (strict_equals(gotten, void 0)) return defaultValue;
- return gotten;
- }
- if (strict_equals(value, void 0)) return defaultValue;
- return value;
-}
-
-// node_modules/runed/dist/utilities/context/context.js
-var Context = class {
- #name;
- #key;
- /**
- * @param name The name of the context.
- * This is used for generating the context key and error messages.
- */
- constructor(name) {
- this.#name = name;
- this.#key = Symbol(name);
- }
- /**
- * The key used to get and set the context.
- *
- * It is not recommended to use this value directly.
- * Instead, use the methods provided by this class.
- */
- get key() {
- return this.#key;
- }
- /**
- * Checks whether this has been set in the context of a parent component.
- *
- * Must be called during component initialisation.
- */
- exists() {
- return hasContext(this.#key);
- }
- /**
- * Retrieves the context that belongs to the closest parent component.
- *
- * Must be called during component initialisation.
- *
- * @throws An error if the context does not exist.
- */
- get() {
- const context = getContext(this.#key);
- if (context === void 0) {
- throw new Error(`Context "${this.#name}" not found`);
- }
- return context;
- }
- /**
- * Retrieves the context that belongs to the closest parent component,
- * or the given fallback value if the context does not exist.
- *
- * Must be called during component initialisation.
- */
- getOr(fallback) {
- const context = getContext(this.#key);
- if (context === void 0) {
- return fallback;
- }
- return context;
- }
- /**
- * Associates the given value with the current component and returns it.
- *
- * Must be called during component initialisation.
- */
- set(context) {
- return setContext(this.#key, context);
- }
-};
-
-// node_modules/runed/dist/utilities/use-debounce/use-debounce.svelte.js
-function useDebounce(callback, wait) {
- let context = tag(state(null), "context");
- const wait$ = tag(user_derived(() => extract(wait, 250)), "wait$");
- function debounced(...args) {
- if (get(context)) {
- if (get(context).timeout) {
- clearTimeout(get(context).timeout);
- }
- } else {
- let resolve;
- let reject;
- const promise = new Promise((res, rej) => {
- resolve = res;
- reject = rej;
- });
- set(context, { timeout: null, runner: null, promise, resolve, reject }, true);
- }
- get(context).runner = async () => {
- if (!get(context)) return;
- const ctx = get(context);
- set(context, null);
- try {
- ctx.resolve((await track_reactivity_loss(callback.apply(this, args)))());
- } catch (error) {
- ctx.reject(error);
- }
- };
- get(context).timeout = setTimeout(get(context).runner, get(wait$));
- return get(context).promise;
- }
- debounced.cancel = async () => {
- if (!get(context) || strict_equals(get(context).timeout, null)) {
- (await track_reactivity_loss(new Promise((resolve) => setTimeout(resolve, 0))))();
- if (!get(context) || strict_equals(get(context).timeout, null)) return;
- }
- clearTimeout(get(context).timeout);
- get(context).reject("Cancelled");
- set(context, null);
- };
- debounced.runScheduledNow = async () => {
- if (!get(context) || !get(context).timeout) {
- (await track_reactivity_loss(new Promise((resolve) => setTimeout(resolve, 0))))();
- if (!get(context) || !get(context).timeout) return;
- }
- clearTimeout(get(context).timeout);
- get(context).timeout = null;
- (await track_reactivity_loss(get(context).runner?.()))();
- };
- Object.defineProperty(debounced, "pending", {
- enumerable: true,
- get() {
- return !!get(context)?.timeout;
- }
- });
- return debounced;
-}
-
-// node_modules/runed/dist/utilities/watch/watch.svelte.js
-function runEffect(flush, effect) {
- switch (flush) {
- case "post":
- user_effect(effect);
- break;
- case "pre":
- user_pre_effect(effect);
- break;
- }
-}
-function runWatcher(sources, flush, effect, options = {}) {
- const { lazy = false } = options;
- let active = !lazy;
- let previousValues = Array.isArray(sources) ? [] : void 0;
- runEffect(flush, () => {
- const values = Array.isArray(sources) ? sources.map((source) => source()) : sources();
- if (!active) {
- active = true;
- previousValues = values;
- return;
- }
- const cleanup = untrack(() => effect(values, previousValues));
- previousValues = values;
- return cleanup;
- });
-}
-function runWatcherOnce(sources, flush, effect) {
- const cleanupRoot = effect_root(() => {
- let stop = false;
- runWatcher(
- sources,
- flush,
- (values, previousValues) => {
- if (stop) {
- cleanupRoot();
- return;
- }
- const cleanup = effect(values, previousValues);
- stop = true;
- return cleanup;
- },
- // Running the effect immediately just once makes no sense at all.
- // That's just `onMount` with extra steps.
- { lazy: true }
- );
- });
- user_effect(() => {
- return cleanupRoot;
- });
-}
-function watch(sources, effect, options) {
- runWatcher(sources, "post", effect, options);
-}
-function watchPre(sources, effect, options) {
- runWatcher(sources, "pre", effect, options);
-}
-watch.pre = watchPre;
-function watchOnce(source, effect) {
- runWatcherOnce(source, "post", effect);
-}
-function watchOncePre(source, effect) {
- runWatcherOnce(source, "pre", effect);
-}
-watchOnce.pre = watchOncePre;
-
-// node_modules/runed/dist/internal/utils/get.js
-function get2(value) {
- if (isFunction2(value)) {
- return value();
- }
- return value;
-}
-
-// node_modules/runed/dist/utilities/element-size/element-size.svelte.js
-var ElementSize = class {
- // no need to use `$state` here since we are using createSubscriber
- #size = { width: 0, height: 0 };
- #observed = false;
- #options;
- #node;
- #window;
- // we use a derived here to extract the width so that if the width doesn't change we don't get a state update
- // which we would get if we would just use a getter since the version of the subscriber will be changing
- #width = tag(
- user_derived(() => {
- get(this.#subscribe)?.();
- return this.getSize().width;
- }),
- "ElementSize.#width"
- );
- // we use a derived here to extract the height so that if the height doesn't change we don't get a state update
- // which we would get if we would just use a getter since the version of the subscriber will be changing
- #height = tag(
- user_derived(() => {
- get(this.#subscribe)?.();
- return this.getSize().height;
- }),
- "ElementSize.#height"
- );
- // we need to use a derived here because the class will be created before the node is bound to the ref
- #subscribe = tag(
- user_derived(() => {
- const node$ = get2(this.#node);
- if (!node$) return;
- return createSubscriber((update2) => {
- if (!this.#window) return;
- const observer = new this.#window.ResizeObserver((entries) => {
- this.#observed = true;
- for (const entry of entries) {
- const boxSize = strict_equals(this.#options.box, "content-box") ? entry.contentBoxSize : entry.borderBoxSize;
- const boxSizeArr = Array.isArray(boxSize) ? boxSize : [boxSize];
- this.#size.width = boxSizeArr.reduce((acc, size3) => Math.max(acc, size3.inlineSize), 0);
- this.#size.height = boxSizeArr.reduce((acc, size3) => Math.max(acc, size3.blockSize), 0);
- }
- update2();
- });
- observer.observe(node$);
- return () => {
- this.#observed = false;
- observer.disconnect();
- };
- });
- }),
- "ElementSize.#subscribe"
- );
- constructor(node, options = { box: "border-box" }) {
- this.#window = options.window ?? defaultWindow;
- this.#options = options;
- this.#node = node;
- this.#size = { width: 0, height: 0 };
- }
- calculateSize() {
- const element2 = get2(this.#node);
- if (!element2 || !this.#window) {
- return;
- }
- const offsetWidth = element2.offsetWidth;
- const offsetHeight = element2.offsetHeight;
- if (strict_equals(this.#options.box, "border-box")) {
- return { width: offsetWidth, height: offsetHeight };
- }
- const style = this.#window.getComputedStyle(element2);
- const paddingWidth = parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);
- const paddingHeight = parseFloat(style.paddingTop) + parseFloat(style.paddingBottom);
- const borderWidth = parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);
- const borderHeight = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);
- const contentWidth = offsetWidth - paddingWidth - borderWidth;
- const contentHeight = offsetHeight - paddingHeight - borderHeight;
- return { width: contentWidth, height: contentHeight };
- }
- getSize() {
- return this.#observed ? this.#size : this.calculateSize() ?? this.#size;
- }
- get current() {
- get(this.#subscribe)?.();
- return this.getSize();
- }
- get width() {
- return get(this.#width);
- }
- get height() {
- return get(this.#height);
- }
-};
-
-// node_modules/runed/dist/utilities/is-mounted/is-mounted.svelte.js
-var IsMounted = class {
- #isMounted = tag(state(false), "IsMounted.#isMounted");
- constructor() {
- user_effect(() => {
- untrack(() => set(this.#isMounted, true));
- return () => {
- set(this.#isMounted, false);
- };
- });
- }
- get current() {
- return get(this.#isMounted);
- }
-};
-
-// node_modules/runed/dist/utilities/previous/previous.svelte.js
-var Previous = class {
- #previousCallback = () => void 0;
- #previous = tag(user_derived(() => this.#previousCallback()), "Previous.#previous");
- constructor(getter, initialValue) {
- let actualPrevious = void 0;
- if (strict_equals(initialValue, void 0, false)) actualPrevious = initialValue;
- this.#previousCallback = () => {
- try {
- return actualPrevious;
- } finally {
- actualPrevious = getter();
- }
- };
- }
- get current() {
- return get(this.#previous);
- }
-};
-
-// node_modules/runed/dist/utilities/resource/resource.svelte.js
-function debounce(fn, delay) {
- let timeoutId;
- let lastResolve = null;
- return (...args) => {
- return new Promise((resolve) => {
- if (lastResolve) {
- lastResolve(void 0);
- }
- lastResolve = resolve;
- clearTimeout(timeoutId);
- timeoutId = setTimeout(
- async () => {
- const result = (await track_reactivity_loss(fn(...args)))();
- if (lastResolve) {
- lastResolve(result);
- lastResolve = null;
- }
- },
- delay
- );
- });
- };
-}
-function throttle(fn, delay) {
- let lastRun = 0;
- let lastPromise = null;
- return (...args) => {
- const now = Date.now();
- if (lastRun && now - lastRun < delay) {
- return lastPromise ?? Promise.resolve(void 0);
- }
- lastRun = now;
- lastPromise = fn(...args);
- return lastPromise;
- };
-}
-function runResource(source, fetcher, options = {}, effectFn) {
- const {
- lazy = false,
- once = false,
- initialValue,
- debounce: debounceTime,
- throttle: throttleTime
- } = options;
- let current = tag(state(proxy(initialValue)), "current");
- let loading = tag(state(false), "loading");
- let error = tag(state(void 0), "error");
- let cleanupFns = tag(state(proxy([])), "cleanupFns");
- const runCleanup = () => {
- get(cleanupFns).forEach((fn) => fn());
- set(cleanupFns, [], true);
- };
- const onCleanup2 = (fn) => {
- set(cleanupFns, [...get(cleanupFns), fn], true);
- };
- const baseFetcher = async (value, previousValue, refetching = false) => {
- try {
- set(loading, true);
- set(error, void 0);
- runCleanup();
- const controller = new AbortController();
- onCleanup2(() => controller.abort());
- const result = (await track_reactivity_loss(fetcher(value, previousValue, {
- data: get(current),
- refetching,
- onCleanup: onCleanup2,
- signal: controller.signal
- })))();
- set(current, result, true);
- return result;
- } catch (e) {
- if (!(e instanceof DOMException && strict_equals(e.name, "AbortError"))) {
- set(error, e, true);
- }
- return void 0;
- } finally {
- set(loading, false);
- }
- };
- const runFetcher = debounceTime ? debounce(baseFetcher, debounceTime) : throttleTime ? throttle(baseFetcher, throttleTime) : baseFetcher;
- const sources = Array.isArray(source) ? source : [source];
- let prevValues;
- effectFn(
- (values, previousValues) => {
- if (once && prevValues) {
- return;
- }
- prevValues = values;
- runFetcher(Array.isArray(source) ? values : values[0], Array.isArray(source) ? previousValues : previousValues?.[0]);
- },
- { lazy }
- );
- return {
- get current() {
- return get(current);
- },
- get loading() {
- return get(loading);
- },
- get error() {
- return get(error);
- },
- mutate: (value) => {
- set(current, value, true);
- },
- refetch: (info) => {
- const values = sources.map((s) => s());
- return runFetcher(Array.isArray(source) ? values : values[0], Array.isArray(source) ? values : values[0], info ?? true);
- }
- };
-}
-function resource(source, fetcher, options) {
- return runResource(source, fetcher, options, (fn, options2) => {
- const sources = Array.isArray(source) ? source : [source];
- const getters = () => sources.map((s) => s());
- watch(
- getters,
- (values, previousValues) => {
- fn(values, previousValues ?? []);
- },
- options2
- );
- });
-}
-function resourcePre(source, fetcher, options) {
- return runResource(source, fetcher, options, (fn, options2) => {
- const sources = Array.isArray(source) ? source : [source];
- const getter = () => sources.map((s) => s());
- watch.pre(
- getter,
- (values, previousValues) => {
- fn(values, previousValues ?? []);
- },
- options2
- );
- });
-}
-resource.pre = resourcePre;
-
-// node_modules/svelte-toolbelt/dist/utils/on-destroy-effect.svelte.js
-function onDestroyEffect(fn) {
- user_effect(() => {
- return () => {
- fn();
- };
- });
-}
-
-// node_modules/svelte-toolbelt/dist/utils/on-mount-effect.svelte.js
-function onMountEffect(fn) {
- user_effect(() => {
- const cleanup = untrack(() => fn());
- return cleanup;
- });
-}
-
-// node_modules/svelte-toolbelt/dist/utils/after-sleep.js
-function afterSleep(ms, cb) {
- return setTimeout(cb, ms);
-}
-
-// node_modules/svelte-toolbelt/dist/utils/after-tick.js
-function afterTick(fn) {
- tick().then(fn);
-}
-
-// node_modules/svelte-toolbelt/dist/utils/dom.js
-var ELEMENT_NODE = 1;
-var DOCUMENT_NODE = 9;
-var DOCUMENT_FRAGMENT_NODE = 11;
-function isHTMLElement(node) {
- return isObject(node) && node.nodeType === ELEMENT_NODE && typeof node.nodeName === "string";
-}
-function isDocument(node) {
- return isObject(node) && node.nodeType === DOCUMENT_NODE;
-}
-function isWindow(node) {
- return isObject(node) && node.constructor?.name === "VisualViewport";
-}
-function isNode(node) {
- return isObject(node) && node.nodeType !== void 0;
-}
-function isShadowRoot(node) {
- return isNode(node) && node.nodeType === DOCUMENT_FRAGMENT_NODE && "host" in node;
-}
-function contains(parent, child2) {
- if (!parent || !child2)
- return false;
- if (!isHTMLElement(parent) || !isHTMLElement(child2))
- return false;
- const rootNode = child2.getRootNode?.();
- if (parent === child2)
- return true;
- if (parent.contains(child2))
- return true;
- if (rootNode && isShadowRoot(rootNode)) {
- let next3 = child2;
- while (next3) {
- if (parent === next3)
- return true;
- next3 = next3.parentNode || next3.host;
- }
- }
- return false;
-}
-function getDocument(node) {
- if (isDocument(node))
- return node;
- if (isWindow(node))
- return node.document;
- return node?.ownerDocument ?? document;
-}
-function getWindow(node) {
- if (isShadowRoot(node))
- return getWindow(node.host);
- if (isDocument(node))
- return node.defaultView ?? window;
- if (isHTMLElement(node))
- return node.ownerDocument?.defaultView ?? window;
- return window;
-}
-function getActiveElement2(rootNode) {
- let activeElement2 = rootNode.activeElement;
- while (activeElement2?.shadowRoot) {
- const el = activeElement2.shadowRoot.activeElement;
- if (el === activeElement2)
- break;
- else
- activeElement2 = el;
- }
- return activeElement2;
-}
-
-// node_modules/svelte-toolbelt/dist/utils/dom-context.svelte.js
-var DOMContext = class {
- element;
- #root = tag(
- user_derived(() => {
- if (!this.element.current) return document;
- const rootNode = this.element.current.getRootNode() ?? document;
- return rootNode;
- }),
- "DOMContext.root"
- );
- get root() {
- return get(this.#root);
- }
- set root(value) {
- set(this.#root, value);
- }
- constructor(element2) {
- if (strict_equals(typeof element2, "function")) {
- this.element = boxWith(element2);
- } else {
- this.element = element2;
- }
- }
- getDocument = () => {
- return getDocument(this.root);
- };
- getWindow = () => {
- return this.getDocument().defaultView ?? window;
- };
- getActiveElement = () => {
- return getActiveElement2(this.root);
- };
- isActiveElement = (node) => {
- return strict_equals(node, this.getActiveElement());
- };
- getElementById(id) {
- return this.root.getElementById(id);
- }
- querySelector = (selector) => {
- if (!this.root) return null;
- return this.root.querySelector(selector);
- };
- querySelectorAll = (selector) => {
- if (!this.root) return [];
- return this.root.querySelectorAll(selector);
- };
- setTimeout = (callback, delay) => {
- return this.getWindow().setTimeout(callback, delay);
- };
- clearTimeout = (timeoutId) => {
- return this.getWindow().clearTimeout(timeoutId);
- };
-};
-
-// node_modules/svelte-toolbelt/dist/utils/attach-ref.js
-function attachRef(ref, onChange) {
- return {
- [createAttachmentKey()]: (node) => {
- if (isBox(ref)) {
- ref.current = node;
- untrack(() => onChange?.(node));
- return () => {
- if ("isConnected" in node && node.isConnected)
- return;
- ref.current = null;
- onChange?.(null);
- };
- }
- ref(node);
- untrack(() => onChange?.(node));
- return () => {
- if ("isConnected" in node && node.isConnected)
- return;
- ref(null);
- onChange?.(null);
- };
- }
- };
-}
-
-// node_modules/bits-ui/dist/internal/attrs.js
-function boolToStr(condition) {
- return condition ? "true" : "false";
-}
-function boolToStrTrueOrUndef(condition) {
- return condition ? "true" : void 0;
-}
-function boolToEmptyStrOrUndef(condition) {
- return condition ? "" : void 0;
-}
-function boolToTrueOrUndef(condition) {
- return condition ? true : void 0;
-}
-function getDataOpenClosed(condition) {
- return condition ? "open" : "closed";
-}
-function getDataChecked(condition) {
- return condition ? "checked" : "unchecked";
-}
-function getAriaChecked(checked, indeterminate) {
- if (indeterminate) {
- return "mixed";
- }
- return checked ? "true" : "false";
-}
-var BitsAttrs = class {
- #variant;
- #prefix;
- attrs;
- constructor(config) {
- this.#variant = config.getVariant ? config.getVariant() : null;
- this.#prefix = this.#variant ? `data-${this.#variant}-` : `data-${config.component}-`;
- this.getAttr = this.getAttr.bind(this);
- this.selector = this.selector.bind(this);
- this.attrs = Object.fromEntries(config.parts.map((part) => [part, this.getAttr(part)]));
- }
- getAttr(part, variantOverride) {
- if (variantOverride)
- return `data-${variantOverride}-${part}`;
- return `${this.#prefix}${part}`;
- }
- selector(part, variantOverride) {
- return `[${this.getAttr(part, variantOverride)}]`;
- }
-};
-function createBitsAttrs(config) {
- const bitsAttrs = new BitsAttrs(config);
- return {
- ...bitsAttrs.attrs,
- selector: bitsAttrs.selector,
- getAttr: bitsAttrs.getAttr
- };
-}
-
-// node_modules/bits-ui/dist/internal/kbd-constants.js
-var kbd_constants_exports = {};
-__export(kbd_constants_exports, {
- A: () => A,
- ALT: () => ALT,
- ARROW_DOWN: () => ARROW_DOWN,
- ARROW_LEFT: () => ARROW_LEFT,
- ARROW_RIGHT: () => ARROW_RIGHT,
- ARROW_UP: () => ARROW_UP,
- ASTERISK: () => ASTERISK,
- BACKSPACE: () => BACKSPACE,
- CAPS_LOCK: () => CAPS_LOCK,
- CONTROL: () => CONTROL,
- CTRL: () => CTRL,
- DELETE: () => DELETE,
- END: () => END,
- ENTER: () => ENTER,
- ESCAPE: () => ESCAPE,
- F1: () => F1,
- F10: () => F10,
- F11: () => F11,
- F12: () => F12,
- F2: () => F2,
- F3: () => F3,
- F4: () => F4,
- F5: () => F5,
- F6: () => F6,
- F7: () => F7,
- F8: () => F8,
- F9: () => F9,
- HOME: () => HOME,
- META: () => META,
- P: () => P,
- PAGE_DOWN: () => PAGE_DOWN,
- PAGE_UP: () => PAGE_UP,
- SHIFT: () => SHIFT,
- SPACE: () => SPACE,
- TAB: () => TAB,
- a: () => a,
- h: () => h,
- j: () => j,
- k: () => k,
- l: () => l,
- n: () => n,
- p: () => p
-});
-var ALT = "Alt";
-var ARROW_DOWN = "ArrowDown";
-var ARROW_LEFT = "ArrowLeft";
-var ARROW_RIGHT = "ArrowRight";
-var ARROW_UP = "ArrowUp";
-var BACKSPACE = "Backspace";
-var CAPS_LOCK = "CapsLock";
-var CONTROL = "Control";
-var DELETE = "Delete";
-var END = "End";
-var ENTER = "Enter";
-var ESCAPE = "Escape";
-var F1 = "F1";
-var F10 = "F10";
-var F11 = "F11";
-var F12 = "F12";
-var F2 = "F2";
-var F3 = "F3";
-var F4 = "F4";
-var F5 = "F5";
-var F6 = "F6";
-var F7 = "F7";
-var F8 = "F8";
-var F9 = "F9";
-var HOME = "Home";
-var META = "Meta";
-var PAGE_DOWN = "PageDown";
-var PAGE_UP = "PageUp";
-var SHIFT = "Shift";
-var SPACE = " ";
-var TAB = "Tab";
-var CTRL = "Control";
-var ASTERISK = "*";
-var a = "a";
-var P = "P";
-var A = "A";
-var p = "p";
-var n = "n";
-var j = "j";
-var k = "k";
-var h = "h";
-var l = "l";
-
-// node_modules/bits-ui/dist/internal/locale.js
-function getElemDirection(elem) {
- const style = window.getComputedStyle(elem);
- const direction = style.getPropertyValue("direction");
- return direction;
-}
-
-// node_modules/bits-ui/dist/internal/get-directional-keys.js
-var FIRST_KEYS = [kbd_constants_exports.ARROW_DOWN, kbd_constants_exports.PAGE_UP, kbd_constants_exports.HOME];
-var LAST_KEYS = [kbd_constants_exports.ARROW_UP, kbd_constants_exports.PAGE_DOWN, kbd_constants_exports.END];
-var FIRST_LAST_KEYS = [...FIRST_KEYS, ...LAST_KEYS];
-var SELECTION_KEYS = [kbd_constants_exports.SPACE, kbd_constants_exports.ENTER];
-function getNextKey(dir = "ltr", orientation = "horizontal") {
- return {
- horizontal: dir === "rtl" ? kbd_constants_exports.ARROW_LEFT : kbd_constants_exports.ARROW_RIGHT,
- vertical: kbd_constants_exports.ARROW_DOWN
- }[orientation];
-}
-function getPrevKey(dir = "ltr", orientation = "horizontal") {
- return {
- horizontal: dir === "rtl" ? kbd_constants_exports.ARROW_RIGHT : kbd_constants_exports.ARROW_LEFT,
- vertical: kbd_constants_exports.ARROW_UP
- }[orientation];
-}
-function getDirectionalKeys(dir = "ltr", orientation = "horizontal") {
- if (!["ltr", "rtl"].includes(dir))
- dir = "ltr";
- if (!["horizontal", "vertical"].includes(orientation))
- orientation = "horizontal";
- return {
- nextKey: getNextKey(dir, orientation),
- prevKey: getPrevKey(dir, orientation)
- };
-}
-
-// node_modules/bits-ui/dist/internal/is.js
-var isBrowser = typeof document !== "undefined";
-var isIOS = getIsIOS();
-function getIsIOS() {
- return isBrowser && window?.navigator?.userAgent && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || // The new iPad Pro Gen3 does not identify itself as iPad, but as Macintosh.
- window?.navigator?.maxTouchPoints > 2 && /iPad|Macintosh/.test(window?.navigator.userAgent));
-}
-function isHTMLElement2(element2) {
- return element2 instanceof HTMLElement;
-}
-function isElement2(element2) {
- return element2 instanceof Element;
-}
-function isElementOrSVGElement(element2) {
- return element2 instanceof Element || element2 instanceof SVGElement;
-}
-function isNumberString(value) {
- return !Number.isNaN(Number(value)) && !Number.isNaN(Number.parseFloat(value));
-}
-function isNull(value) {
- return value === null;
-}
-function isTouch(e) {
- return e.pointerType === "touch";
-}
-function isFocusVisible(element2) {
- return element2.matches(":focus-visible");
-}
-function isNotNull(value) {
- return value !== null;
-}
-function isSelectableInput(element2) {
- return element2 instanceof HTMLInputElement && "select" in element2;
-}
-
-// node_modules/bits-ui/dist/internal/roving-focus-group.js
-var RovingFocusGroup = class {
- #opts;
- #currentTabStopId = box(null);
- constructor(opts) {
- this.#opts = opts;
- }
- getCandidateNodes() {
- if (!true_default || !this.#opts.rootNode.current)
- return [];
- if (this.#opts.candidateSelector) {
- const candidates = Array.from(this.#opts.rootNode.current.querySelectorAll(this.#opts.candidateSelector));
- return candidates;
- } else if (this.#opts.candidateAttr) {
- const candidates = Array.from(this.#opts.rootNode.current.querySelectorAll(`[${this.#opts.candidateAttr}]:not([data-disabled])`));
- return candidates;
- }
- return [];
- }
- focusFirstCandidate() {
- const items = this.getCandidateNodes();
- if (!items.length)
- return;
- items[0]?.focus();
- }
- handleKeydown(node, e, both = false) {
- const rootNode = this.#opts.rootNode.current;
- if (!rootNode || !node)
- return;
- const items = this.getCandidateNodes();
- if (!items.length)
- return;
- const currentIndex = items.indexOf(node);
- const dir = getElemDirection(rootNode);
- const { nextKey, prevKey } = getDirectionalKeys(dir, this.#opts.orientation.current);
- const loop = this.#opts.loop.current;
- const keyToIndex = {
- [nextKey]: currentIndex + 1,
- [prevKey]: currentIndex - 1,
- [kbd_constants_exports.HOME]: 0,
- [kbd_constants_exports.END]: items.length - 1
- };
- if (both) {
- const altNextKey = nextKey === kbd_constants_exports.ARROW_DOWN ? kbd_constants_exports.ARROW_RIGHT : kbd_constants_exports.ARROW_DOWN;
- const altPrevKey = prevKey === kbd_constants_exports.ARROW_UP ? kbd_constants_exports.ARROW_LEFT : kbd_constants_exports.ARROW_UP;
- keyToIndex[altNextKey] = currentIndex + 1;
- keyToIndex[altPrevKey] = currentIndex - 1;
- }
- let itemIndex = keyToIndex[e.key];
- if (itemIndex === void 0)
- return;
- e.preventDefault();
- if (itemIndex < 0 && loop) {
- itemIndex = items.length - 1;
- } else if (itemIndex === items.length && loop) {
- itemIndex = 0;
- }
- const itemToFocus = items[itemIndex];
- if (!itemToFocus)
- return;
- itemToFocus.focus();
- this.#currentTabStopId.current = itemToFocus.id;
- this.#opts.onCandidateFocus?.(itemToFocus);
- return itemToFocus;
- }
- getTabIndex(node) {
- const items = this.getCandidateNodes();
- const anyActive = this.#currentTabStopId.current !== null;
- if (node && !anyActive && items[0] === node) {
- this.#currentTabStopId.current = node.id;
- return 0;
- } else if (node?.id === this.#currentTabStopId.current) {
- return 0;
- }
- return -1;
- }
- setCurrentTabStopId(id) {
- this.#currentTabStopId.current = id;
- }
- focusCurrentTabStop() {
- const currentTabStopId = this.#currentTabStopId.current;
- if (!currentTabStopId)
- return;
- const currentTabStop = this.#opts.rootNode.current?.querySelector(`#${currentTabStopId}`);
- if (!currentTabStop || !isHTMLElement2(currentTabStop))
- return;
- currentTabStop.focus();
- }
-};
-
-// node_modules/bits-ui/dist/internal/animations-complete.js
-var AnimationsComplete = class {
- #opts;
- #currentFrame = null;
- constructor(opts) {
- this.#opts = opts;
- onDestroyEffect(() => this.#cleanup());
- }
- #cleanup() {
- if (!this.#currentFrame)
- return;
- window.cancelAnimationFrame(this.#currentFrame);
- this.#currentFrame = null;
- }
- run(fn) {
- this.#cleanup();
- const node = this.#opts.ref.current;
- if (!node)
- return;
- if (typeof node.getAnimations !== "function") {
- this.#executeCallback(fn);
- return;
- }
- this.#currentFrame = window.requestAnimationFrame(() => {
- const animations = node.getAnimations();
- if (animations.length === 0) {
- this.#executeCallback(fn);
- return;
- }
- Promise.allSettled(animations.map((animation) => animation.finished)).then(() => {
- this.#executeCallback(fn);
- });
- });
- }
- #executeCallback(fn) {
- const execute = () => {
- fn();
- };
- if (this.#opts.afterTick) {
- afterTick(execute);
- } else {
- execute();
- }
- }
-};
-
-// node_modules/bits-ui/dist/internal/presence-manager.svelte.js
-var PresenceManager = class {
- #opts;
- #enabled;
- #afterAnimations;
- #shouldRender = tag(state(false), "PresenceManager.#shouldRender");
- constructor(opts) {
- this.#opts = opts;
- set(this.#shouldRender, opts.open.current, true);
- this.#enabled = opts.enabled ?? true;
- this.#afterAnimations = new AnimationsComplete({ ref: this.#opts.ref, afterTick: this.#opts.open });
- watch(() => this.#opts.open.current, (isOpen) => {
- if (isOpen) set(this.#shouldRender, true);
- if (!this.#enabled) return;
- this.#afterAnimations.run(() => {
- if (strict_equals(isOpen, this.#opts.open.current)) {
- if (!this.#opts.open.current) {
- set(this.#shouldRender, false);
- }
- this.#opts.onComplete?.();
- }
- });
- });
- }
- get shouldRender() {
- return get(this.#shouldRender);
- }
-};
-
-// node_modules/bits-ui/dist/bits/accordion/accordion.svelte.js
-var accordionAttrs = createBitsAttrs({
- component: "accordion",
- parts: ["root", "trigger", "content", "item", "header"]
-});
-var AccordionRootContext = new Context("Accordion.Root");
-var AccordionItemContext = new Context("Accordion.Item");
-var AccordionBaseState = class {
- opts;
- rovingFocusGroup;
- attachment;
- constructor(opts) {
- this.opts = opts;
- this.rovingFocusGroup = new RovingFocusGroup({
- rootNode: this.opts.ref,
- candidateAttr: accordionAttrs.trigger,
- loop: this.opts.loop,
- orientation: this.opts.orientation
- });
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-orientation": this.opts.orientation.current,
- "data-disabled": boolToEmptyStrOrUndef(this.opts.disabled.current),
- [accordionAttrs.root]: "",
- ...this.attachment
- })),
- "AccordionBaseState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var AccordionSingleState = class extends AccordionBaseState {
- opts;
- isMulti = false;
- constructor(opts) {
- super(opts);
- this.opts = opts;
- this.includesItem = this.includesItem.bind(this);
- this.toggleItem = this.toggleItem.bind(this);
- }
- includesItem(item) {
- return strict_equals(this.opts.value.current, item);
- }
- toggleItem(item) {
- this.opts.value.current = this.includesItem(item) ? "" : item;
- }
-};
-var AccordionMultiState = class extends AccordionBaseState {
- #value;
- isMulti = true;
- constructor(props) {
- super(props);
- this.#value = props.value;
- this.includesItem = this.includesItem.bind(this);
- this.toggleItem = this.toggleItem.bind(this);
- }
- includesItem(item) {
- return this.#value.current.includes(item);
- }
- toggleItem(item) {
- this.#value.current = this.includesItem(item) ? this.#value.current.filter((v) => strict_equals(v, item, false)) : [...this.#value.current, item];
- }
-};
-var AccordionRootState = class {
- static create(props) {
- const { type, ...rest } = props;
- const rootState = strict_equals(type, "single") ? new AccordionSingleState(rest) : new AccordionMultiState(rest);
- return AccordionRootContext.set(rootState);
- }
-};
-var AccordionItemState = class _AccordionItemState {
- static create(props) {
- return AccordionItemContext.set(new _AccordionItemState({ ...props, rootState: AccordionRootContext.get() }));
- }
- opts;
- root;
- #isActive = tag(user_derived(() => this.root.includesItem(this.opts.value.current)), "AccordionItemState.isActive");
- get isActive() {
- return get(this.#isActive);
- }
- set isActive(value) {
- set(this.#isActive, value);
- }
- #isDisabled = tag(user_derived(() => this.opts.disabled.current || this.root.opts.disabled.current), "AccordionItemState.isDisabled");
- get isDisabled() {
- return get(this.#isDisabled);
- }
- set isDisabled(value) {
- set(this.#isDisabled, value);
- }
- attachment;
- #contentNode = tag(state(null), "AccordionItemState.contentNode");
- get contentNode() {
- return get(this.#contentNode);
- }
- set contentNode(value) {
- set(this.#contentNode, value, true);
- }
- contentPresence;
- constructor(opts) {
- this.opts = opts;
- this.root = opts.rootState;
- this.updateValue = this.updateValue.bind(this);
- this.attachment = attachRef(this.opts.ref);
- this.contentPresence = new PresenceManager({
- ref: boxWith(() => this.contentNode),
- open: boxWith(() => this.isActive)
- });
- }
- updateValue() {
- this.root.toggleItem(this.opts.value.current);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-state": getDataOpenClosed(this.isActive),
- "data-disabled": boolToEmptyStrOrUndef(this.isDisabled),
- "data-orientation": this.root.opts.orientation.current,
- [accordionAttrs.item]: "",
- ...this.attachment
- })),
- "AccordionItemState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var AccordionTriggerState = class _AccordionTriggerState {
- opts;
- itemState;
- #root;
- #isDisabled = tag(user_derived(() => this.opts.disabled.current || this.itemState.opts.disabled.current || this.#root.opts.disabled.current), "AccordionTriggerState.#isDisabled");
- attachment;
- constructor(opts, itemState) {
- this.opts = opts;
- this.itemState = itemState;
- this.#root = itemState.root;
- this.onclick = this.onclick.bind(this);
- this.onkeydown = this.onkeydown.bind(this);
- this.attachment = attachRef(this.opts.ref);
- }
- static create(props) {
- return new _AccordionTriggerState(props, AccordionItemContext.get());
- }
- onclick(e) {
- if (get(this.#isDisabled) || strict_equals(e.button, 0, false)) {
- e.preventDefault();
- return;
- }
- this.itemState.updateValue();
- }
- onkeydown(e) {
- if (get(this.#isDisabled)) return;
- if (strict_equals(e.key, kbd_constants_exports.SPACE) || strict_equals(e.key, kbd_constants_exports.ENTER)) {
- e.preventDefault();
- this.itemState.updateValue();
- return;
- }
- this.#root.rovingFocusGroup.handleKeydown(this.opts.ref.current, e);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- disabled: get(this.#isDisabled),
- "aria-expanded": boolToStr(this.itemState.isActive),
- "aria-disabled": boolToStr(get(this.#isDisabled)),
- "data-disabled": boolToEmptyStrOrUndef(get(this.#isDisabled)),
- "data-state": getDataOpenClosed(this.itemState.isActive),
- "data-orientation": this.#root.opts.orientation.current,
- [accordionAttrs.trigger]: "",
- tabindex: 0,
- onclick: this.onclick,
- onkeydown: this.onkeydown,
- ...this.attachment
- })),
- "AccordionTriggerState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var AccordionContentState = class _AccordionContentState {
- opts;
- item;
- attachment;
- #originalStyles = void 0;
- #isMountAnimationPrevented = false;
- #dimensions = tag(state(proxy({ width: 0, height: 0 })), "AccordionContentState.#dimensions");
- #open = tag(
- user_derived(() => {
- if (this.opts.hiddenUntilFound.current) return this.item.isActive;
- return this.opts.forceMount.current || this.item.isActive;
- }),
- "AccordionContentState.open"
- );
- get open() {
- return get(this.#open);
- }
- set open(value) {
- set(this.#open, value);
- }
- constructor(opts, item) {
- this.opts = opts;
- this.item = item;
- this.#isMountAnimationPrevented = this.item.isActive;
- this.attachment = attachRef(this.opts.ref, (v) => this.item.contentNode = v);
- user_effect(() => {
- const rAF = requestAnimationFrame(() => {
- this.#isMountAnimationPrevented = false;
- });
- return () => cancelAnimationFrame(rAF);
- });
- watch.pre(
- [
- () => this.opts.ref.current,
- () => this.opts.hiddenUntilFound.current
- ],
- ([node, hiddenUntilFound]) => {
- if (!node || !hiddenUntilFound) return;
- const handleBeforeMatch = () => {
- if (this.item.isActive) return;
- requestAnimationFrame(() => {
- this.item.updateValue();
- });
- };
- return on(node, "beforematch", handleBeforeMatch);
- }
- );
- watch([() => this.open, () => this.opts.ref.current], this.#updateDimensions);
- }
- static create(props) {
- return new _AccordionContentState(props, AccordionItemContext.get());
- }
- #updateDimensions = ([_, node]) => {
- if (!node) return;
- afterTick(() => {
- const element2 = this.opts.ref.current;
- if (!element2) return;
- this.#originalStyles ??= {
- transitionDuration: element2.style.transitionDuration,
- animationName: element2.style.animationName
- };
- element2.style.transitionDuration = "0s";
- element2.style.animationName = "none";
- const rect = element2.getBoundingClientRect();
- set(this.#dimensions, { width: rect.width, height: rect.height }, true);
- if (!this.#isMountAnimationPrevented && this.#originalStyles) {
- element2.style.transitionDuration = this.#originalStyles.transitionDuration;
- element2.style.animationName = this.#originalStyles.animationName;
- }
- });
- };
- get shouldRender() {
- return this.item.contentPresence.shouldRender;
- }
- #snippetProps = tag(user_derived(() => ({ open: this.item.isActive })), "AccordionContentState.snippetProps");
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-state": getDataOpenClosed(this.item.isActive),
- "data-disabled": boolToEmptyStrOrUndef(this.item.isDisabled),
- "data-orientation": this.item.root.opts.orientation.current,
- [accordionAttrs.content]: "",
- style: {
- "--bits-accordion-content-height": `${get(this.#dimensions).height}px`,
- "--bits-accordion-content-width": `${get(this.#dimensions).width}px`
- },
- hidden: this.opts.hiddenUntilFound.current && !this.item.isActive ? "until-found" : void 0,
- ...this.opts.hiddenUntilFound.current && !this.shouldRender ? {} : {
- hidden: this.opts.hiddenUntilFound.current ? !this.shouldRender : this.opts.forceMount.current ? void 0 : !this.shouldRender
- },
- ...this.attachment
- })),
- "AccordionContentState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var AccordionHeaderState = class _AccordionHeaderState {
- opts;
- item;
- attachment;
- constructor(opts, item) {
- this.opts = opts;
- this.item = item;
- this.attachment = attachRef(this.opts.ref);
- }
- static create(props) {
- return new _AccordionHeaderState(props, AccordionItemContext.get());
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "heading",
- "aria-level": this.opts.level.current,
- "data-heading-level": this.opts.level.current,
- "data-state": getDataOpenClosed(this.item.isActive),
- "data-orientation": this.item.root.opts.orientation.current,
- [accordionAttrs.header]: "",
- ...this.attachment
- })),
- "AccordionHeaderState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-
-// node_modules/bits-ui/dist/internal/noop.js
-function noop3() {
-}
-
-// node_modules/bits-ui/dist/internal/create-id.js
-function createId(prefixOrUid, uid) {
- if (uid === void 0)
- return `bits-${prefixOrUid}`;
- return `bits-${prefixOrUid}-${uid}`;
-}
-
-// node_modules/bits-ui/dist/bits/accordion/components/accordion.svelte
-Accordion[FILENAME] = "node_modules/bits-ui/dist/bits/accordion/components/accordion.svelte";
-var root_2 = add_locations(from_html(`
`), Accordion[FILENAME], [[66, 1]]);
-function Accordion($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Accordion);
- let disabled = prop($$props, "disabled", 3, false), value = prop($$props, "value", 15), ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), onValueChange = prop($$props, "onValueChange", 3, noop3), loop = prop($$props, "loop", 3, true), orientation = prop($$props, "orientation", 3, "vertical"), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "disabled",
- "children",
- "child",
- "type",
- "value",
- "ref",
- "id",
- "onValueChange",
- "loop",
- "orientation"
- ],
- "restProps"
- );
- function handleDefaultValue() {
- if (strict_equals(value(), void 0, false)) return;
- value(strict_equals($$props.type, "single") ? "" : []);
- }
- handleDefaultValue();
- watch.pre(() => value(), () => {
- handleDefaultValue();
- });
- const rootState = AccordionRootState.create({
- type: $$props.type,
- value: boxWith(() => value(), (v) => {
- value(v);
- onValueChange()(v);
- }),
- id: boxWith(() => id()),
- disabled: boxWith(() => disabled()),
- loop: boxWith(() => loop()),
- orientation: boxWith(() => orientation()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, rootState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Accordion, 64, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_2();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Accordion, 67, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Accordion,
- 63,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Accordion = hmr(Accordion, () => Accordion[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Accordion[HMR].source;
- set(Accordion[HMR].source, module.default[HMR].original);
- });
-}
-var accordion_default = Accordion;
-
-// node_modules/bits-ui/dist/bits/accordion/components/accordion-item.svelte
-Accordion_item[FILENAME] = "node_modules/bits-ui/dist/bits/accordion/components/accordion-item.svelte";
-var root_22 = add_locations(from_html(``), Accordion_item[FILENAME], [[36, 1]]);
-function Accordion_item($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Accordion_item);
- const defaultId = createId(uid);
- let id = prop($$props, "id", 3, defaultId), disabled = prop($$props, "disabled", 3, false), value = prop($$props, "value", 3, defaultId), ref = prop($$props, "ref", 15, null), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "id",
- "disabled",
- "value",
- "children",
- "child",
- "ref"
- ],
- "restProps"
- );
- const itemState = AccordionItemState.create({
- value: boxWith(() => value()),
- disabled: boxWith(() => disabled()),
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, itemState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Accordion_item, 34, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_22();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Accordion_item, 37, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Accordion_item,
- 33,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Accordion_item = hmr(Accordion_item, () => Accordion_item[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Accordion_item[HMR].source;
- set(Accordion_item[HMR].source, module.default[HMR].original);
- });
-}
-var accordion_item_default = Accordion_item;
-
-// node_modules/bits-ui/dist/bits/accordion/components/accordion-header.svelte
-Accordion_header[FILENAME] = "node_modules/bits-ui/dist/bits/accordion/components/accordion-header.svelte";
-var root_23 = add_locations(from_html(``), Accordion_header[FILENAME], [[33, 1]]);
-function Accordion_header($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Accordion_header);
- let id = prop($$props, "id", 19, () => createId(uid)), level = prop($$props, "level", 3, 2), ref = prop($$props, "ref", 15, null), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "id",
- "level",
- "children",
- "child",
- "ref"
- ],
- "restProps"
- );
- const headerState = AccordionHeaderState.create({
- id: boxWith(() => id()),
- level: boxWith(() => level()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, headerState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Accordion_header, 31, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_23();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Accordion_header, 34, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Accordion_header,
- 30,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Accordion_header = hmr(Accordion_header, () => Accordion_header[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Accordion_header[HMR].source;
- set(Accordion_header[HMR].source, module.default[HMR].original);
- });
-}
-var accordion_header_default = Accordion_header;
-
-// node_modules/bits-ui/dist/bits/accordion/components/accordion-trigger.svelte
-Accordion_trigger[FILENAME] = "node_modules/bits-ui/dist/bits/accordion/components/accordion-trigger.svelte";
-var root_24 = add_locations(from_html(``), Accordion_trigger[FILENAME], [[33, 1]]);
-function Accordion_trigger($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Accordion_trigger);
- let disabled = prop($$props, "disabled", 3, false), ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "disabled",
- "ref",
- "id",
- "children",
- "child"
- ],
- "restProps"
- );
- const triggerState = AccordionTriggerState.create({
- disabled: boxWith(() => disabled()),
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, triggerState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Accordion_trigger, 31, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var button = root_24();
- attribute_effect(button, () => ({ type: "button", ...get(mergedProps) }));
- var node_2 = child(button);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Accordion_trigger, 34, 2);
- reset(button);
- append($$anchor2, button);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Accordion_trigger,
- 30,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Accordion_trigger = hmr(Accordion_trigger, () => Accordion_trigger[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Accordion_trigger[HMR].source;
- set(Accordion_trigger[HMR].source, module.default[HMR].original);
- });
-}
-var accordion_trigger_default = Accordion_trigger;
-
-// node_modules/bits-ui/dist/bits/accordion/components/accordion-content.svelte
-Accordion_content[FILENAME] = "node_modules/bits-ui/dist/bits/accordion/components/accordion-content.svelte";
-var root_25 = add_locations(from_html(``), Accordion_content[FILENAME], [[38, 1]]);
-function Accordion_content($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Accordion_content);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), forceMount = prop($$props, "forceMount", 3, false), hiddenUntilFound = prop($$props, "hiddenUntilFound", 3, false), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "child",
- "ref",
- "id",
- "forceMount",
- "children",
- "hiddenUntilFound"
- ],
- "restProps"
- );
- const contentState = AccordionContentState.create({
- forceMount: boxWith(() => forceMount()),
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- hiddenUntilFound: boxWith(() => hiddenUntilFound())
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, contentState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- let $0 = user_derived(() => ({ props: get(mergedProps), ...contentState.snippetProps }));
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => get($0)), "render", Accordion_content, 33, 1);
- }
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_25();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Accordion_content, 39, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Accordion_content,
- 32,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Accordion_content = hmr(Accordion_content, () => Accordion_content[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Accordion_content[HMR].source;
- set(Accordion_content[HMR].source, module.default[HMR].original);
- });
-}
-var accordion_content_default = Accordion_content;
-
-// node_modules/bits-ui/dist/bits/alert-dialog/exports.js
-var exports_exports2 = {};
-__export(exports_exports2, {
- Action: () => alert_dialog_action_default,
- Cancel: () => alert_dialog_cancel_default,
- Content: () => alert_dialog_content_default,
- Description: () => dialog_description_default,
- Overlay: () => dialog_overlay_default,
- Portal: () => portal_default,
- Root: () => alert_dialog_default,
- Title: () => dialog_title_default,
- Trigger: () => dialog_trigger_default
-});
-
-// node_modules/bits-ui/dist/bits/dialog/dialog.svelte.js
-var dialogAttrs = createBitsAttrs({
- component: "dialog",
- parts: [
- "content",
- "trigger",
- "overlay",
- "title",
- "description",
- "close",
- "cancel",
- "action"
- ]
-});
-var DialogRootContext = new Context("Dialog.Root | AlertDialog.Root");
-var DialogRootState = class _DialogRootState {
- static create(opts) {
- const parent = DialogRootContext.getOr(null);
- return DialogRootContext.set(new _DialogRootState(opts, parent));
- }
- opts;
- #triggerNode = tag(state(null), "DialogRootState.triggerNode");
- get triggerNode() {
- return get(this.#triggerNode);
- }
- set triggerNode(value) {
- set(this.#triggerNode, value, true);
- }
- #contentNode = tag(state(null), "DialogRootState.contentNode");
- get contentNode() {
- return get(this.#contentNode);
- }
- set contentNode(value) {
- set(this.#contentNode, value, true);
- }
- #overlayNode = tag(state(null), "DialogRootState.overlayNode");
- get overlayNode() {
- return get(this.#overlayNode);
- }
- set overlayNode(value) {
- set(this.#overlayNode, value, true);
- }
- #descriptionNode = tag(state(null), "DialogRootState.descriptionNode");
- get descriptionNode() {
- return get(this.#descriptionNode);
- }
- set descriptionNode(value) {
- set(this.#descriptionNode, value, true);
- }
- #contentId = tag(state(void 0), "DialogRootState.contentId");
- get contentId() {
- return get(this.#contentId);
- }
- set contentId(value) {
- set(this.#contentId, value, true);
- }
- #titleId = tag(state(void 0), "DialogRootState.titleId");
- get titleId() {
- return get(this.#titleId);
- }
- set titleId(value) {
- set(this.#titleId, value, true);
- }
- #triggerId = tag(state(void 0), "DialogRootState.triggerId");
- get triggerId() {
- return get(this.#triggerId);
- }
- set triggerId(value) {
- set(this.#triggerId, value, true);
- }
- #descriptionId = tag(state(void 0), "DialogRootState.descriptionId");
- get descriptionId() {
- return get(this.#descriptionId);
- }
- set descriptionId(value) {
- set(this.#descriptionId, value, true);
- }
- #cancelNode = tag(state(null), "DialogRootState.cancelNode");
- get cancelNode() {
- return get(this.#cancelNode);
- }
- set cancelNode(value) {
- set(this.#cancelNode, value, true);
- }
- #nestedOpenCount = tag(state(0), "DialogRootState.nestedOpenCount");
- get nestedOpenCount() {
- return get(this.#nestedOpenCount);
- }
- set nestedOpenCount(value) {
- set(this.#nestedOpenCount, value, true);
- }
- depth;
- parent;
- contentPresence;
- overlayPresence;
- constructor(opts, parent) {
- this.opts = opts;
- this.parent = parent;
- this.depth = parent ? parent.depth + 1 : 0;
- this.handleOpen = this.handleOpen.bind(this);
- this.handleClose = this.handleClose.bind(this);
- this.contentPresence = new PresenceManager({
- ref: boxWith(() => this.contentNode),
- open: this.opts.open,
- enabled: true,
- onComplete: () => {
- this.opts.onOpenChangeComplete.current(this.opts.open.current);
- }
- });
- this.overlayPresence = new PresenceManager({
- ref: boxWith(() => this.overlayNode),
- open: this.opts.open,
- enabled: true
- });
- watch(
- () => this.opts.open.current,
- (isOpen) => {
- if (!this.parent) return;
- if (isOpen) {
- this.parent.incrementNested();
- } else {
- this.parent.decrementNested();
- }
- },
- { lazy: true }
- );
- onDestroyEffect(() => {
- if (this.opts.open.current) {
- this.parent?.decrementNested();
- }
- });
- }
- handleOpen() {
- if (this.opts.open.current) return;
- this.opts.open.current = true;
- }
- handleClose() {
- if (!this.opts.open.current) return;
- this.opts.open.current = false;
- }
- getBitsAttr = (part) => {
- return dialogAttrs.getAttr(part, this.opts.variant.current);
- };
- incrementNested() {
- this.nestedOpenCount++;
- this.parent?.incrementNested();
- }
- decrementNested() {
- if (strict_equals(this.nestedOpenCount, 0)) return;
- this.nestedOpenCount--;
- this.parent?.decrementNested();
- }
- #sharedProps = tag(user_derived(() => ({ "data-state": getDataOpenClosed(this.opts.open.current) })), "DialogRootState.sharedProps");
- get sharedProps() {
- return get(this.#sharedProps);
- }
- set sharedProps(value) {
- set(this.#sharedProps, value);
- }
-};
-var DialogTriggerState = class _DialogTriggerState {
- static create(opts) {
- return new _DialogTriggerState(opts, DialogRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref, (v) => {
- this.root.triggerNode = v;
- this.root.triggerId = v?.id;
- });
- this.onclick = this.onclick.bind(this);
- this.onkeydown = this.onkeydown.bind(this);
- }
- onclick(e) {
- if (this.opts.disabled.current) return;
- if (e.button > 0) return;
- this.root.handleOpen();
- }
- onkeydown(e) {
- if (this.opts.disabled.current) return;
- if (strict_equals(e.key, kbd_constants_exports.SPACE) || strict_equals(e.key, kbd_constants_exports.ENTER)) {
- e.preventDefault();
- this.root.handleOpen();
- }
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "aria-haspopup": "dialog",
- "aria-expanded": boolToStr(this.root.opts.open.current),
- "aria-controls": this.root.contentId,
- [this.root.getBitsAttr("trigger")]: "",
- onkeydown: this.onkeydown,
- onclick: this.onclick,
- disabled: this.opts.disabled.current ? true : void 0,
- ...this.root.sharedProps,
- ...this.attachment
- })),
- "DialogTriggerState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var DialogCloseState = class _DialogCloseState {
- static create(opts) {
- return new _DialogCloseState(opts, DialogRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- this.onclick = this.onclick.bind(this);
- this.onkeydown = this.onkeydown.bind(this);
- }
- onclick(e) {
- if (this.opts.disabled.current) return;
- if (e.button > 0) return;
- this.root.handleClose();
- }
- onkeydown(e) {
- if (this.opts.disabled.current) return;
- if (strict_equals(e.key, kbd_constants_exports.SPACE) || strict_equals(e.key, kbd_constants_exports.ENTER)) {
- e.preventDefault();
- this.root.handleClose();
- }
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- [this.root.getBitsAttr(this.opts.variant.current)]: "",
- onclick: this.onclick,
- onkeydown: this.onkeydown,
- disabled: this.opts.disabled.current ? true : void 0,
- tabindex: 0,
- ...this.root.sharedProps,
- ...this.attachment
- })),
- "DialogCloseState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var DialogActionState = class _DialogActionState {
- static create(opts) {
- return new _DialogActionState(opts, DialogRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- [this.root.getBitsAttr("action")]: "",
- ...this.root.sharedProps,
- ...this.attachment
- })),
- "DialogActionState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var DialogTitleState = class _DialogTitleState {
- static create(opts) {
- return new _DialogTitleState(opts, DialogRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.root.titleId = this.opts.id.current;
- this.attachment = attachRef(this.opts.ref);
- watch.pre(() => this.opts.id.current, (id) => {
- this.root.titleId = id;
- });
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "heading",
- "aria-level": this.opts.level.current,
- [this.root.getBitsAttr("title")]: "",
- ...this.root.sharedProps,
- ...this.attachment
- })),
- "DialogTitleState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var DialogDescriptionState = class _DialogDescriptionState {
- static create(opts) {
- return new _DialogDescriptionState(opts, DialogRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.root.descriptionId = this.opts.id.current;
- this.attachment = attachRef(this.opts.ref, (v) => {
- this.root.descriptionNode = v;
- });
- watch.pre(() => this.opts.id.current, (id) => {
- this.root.descriptionId = id;
- });
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- [this.root.getBitsAttr("description")]: "",
- ...this.root.sharedProps,
- ...this.attachment
- })),
- "DialogDescriptionState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var DialogContentState = class _DialogContentState {
- static create(opts) {
- return new _DialogContentState(opts, DialogRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref, (v) => {
- this.root.contentNode = v;
- this.root.contentId = v?.id;
- });
- }
- #snippetProps = tag(user_derived(() => ({ open: this.root.opts.open.current })), "DialogContentState.snippetProps");
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: strict_equals(this.root.opts.variant.current, "alert-dialog") ? "alertdialog" : "dialog",
- "aria-modal": "true",
- "aria-describedby": this.root.descriptionId,
- "aria-labelledby": this.root.titleId,
- [this.root.getBitsAttr("content")]: "",
- style: {
- pointerEvents: "auto",
- outline: strict_equals(this.root.opts.variant.current, "alert-dialog") ? "none" : void 0,
- "--bits-dialog-depth": this.root.depth,
- "--bits-dialog-nested-count": this.root.nestedOpenCount
- },
- tabindex: strict_equals(this.root.opts.variant.current, "alert-dialog") ? -1 : void 0,
- "data-nested-open": boolToEmptyStrOrUndef(this.root.nestedOpenCount > 0),
- "data-nested": boolToEmptyStrOrUndef(strict_equals(this.root.parent, null, false)),
- ...this.root.sharedProps,
- ...this.attachment
- })),
- "DialogContentState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
- get shouldRender() {
- return this.root.contentPresence.shouldRender;
- }
-};
-var DialogOverlayState = class _DialogOverlayState {
- static create(opts) {
- return new _DialogOverlayState(opts, DialogRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref, (v) => this.root.overlayNode = v);
- }
- #snippetProps = tag(user_derived(() => ({ open: this.root.opts.open.current })), "DialogOverlayState.snippetProps");
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- [this.root.getBitsAttr("overlay")]: "",
- style: {
- pointerEvents: "auto",
- "--bits-dialog-depth": this.root.depth,
- "--bits-dialog-nested-count": this.root.nestedOpenCount
- },
- "data-nested-open": boolToEmptyStrOrUndef(this.root.nestedOpenCount > 0),
- "data-nested": boolToEmptyStrOrUndef(strict_equals(this.root.parent, null, false)),
- ...this.root.sharedProps,
- ...this.attachment
- })),
- "DialogOverlayState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
- get shouldRender() {
- return this.root.overlayPresence.shouldRender;
- }
-};
-var AlertDialogCancelState = class _AlertDialogCancelState {
- static create(opts) {
- return new _AlertDialogCancelState(opts, DialogRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref, (v) => this.root.cancelNode = v);
- this.onclick = this.onclick.bind(this);
- this.onkeydown = this.onkeydown.bind(this);
- }
- onclick(e) {
- if (this.opts.disabled.current) return;
- if (e.button > 0) return;
- this.root.handleClose();
- }
- onkeydown(e) {
- if (this.opts.disabled.current) return;
- if (strict_equals(e.key, kbd_constants_exports.SPACE) || strict_equals(e.key, kbd_constants_exports.ENTER)) {
- e.preventDefault();
- this.root.handleClose();
- }
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- [this.root.getBitsAttr("cancel")]: "",
- onclick: this.onclick,
- onkeydown: this.onkeydown,
- tabindex: 0,
- ...this.root.sharedProps,
- ...this.attachment
- })),
- "AlertDialogCancelState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-
-// node_modules/bits-ui/dist/bits/alert-dialog/components/alert-dialog.svelte
-Alert_dialog[FILENAME] = "node_modules/bits-ui/dist/bits/alert-dialog/components/alert-dialog.svelte";
-function Alert_dialog($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Alert_dialog);
- let open = prop($$props, "open", 15, false), onOpenChange = prop($$props, "onOpenChange", 3, noop3), onOpenChangeComplete = prop($$props, "onOpenChangeComplete", 3, noop3);
- DialogRootState.create({
- variant: boxWith(() => "alert-dialog"),
- open: boxWith(() => open(), (v) => {
- open(v);
- onOpenChange()(v);
- }),
- onOpenChangeComplete: boxWith(() => onOpenChangeComplete())
- });
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- add_svelte_meta(() => snippet(node, () => $$props.children ?? noop), "render", Alert_dialog, 27, 0);
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Alert_dialog = hmr(Alert_dialog, () => Alert_dialog[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Alert_dialog[HMR].source;
- set(Alert_dialog[HMR].source, module.default[HMR].original);
- });
-}
-var alert_dialog_default = Alert_dialog;
-
-// node_modules/bits-ui/dist/bits/dialog/components/dialog-title.svelte
-Dialog_title[FILENAME] = "node_modules/bits-ui/dist/bits/dialog/components/dialog-title.svelte";
-var root_26 = add_locations(from_html(``), Dialog_title[FILENAME], [[33, 1]]);
-function Dialog_title($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Dialog_title);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), level = prop($$props, "level", 3, 2), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "id",
- "ref",
- "child",
- "children",
- "level"
- ],
- "restProps"
- );
- const titleState = DialogTitleState.create({
- id: boxWith(() => id()),
- level: boxWith(() => level()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, titleState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Dialog_title, 31, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_26();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Dialog_title, 34, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Dialog_title,
- 30,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Dialog_title = hmr(Dialog_title, () => Dialog_title[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Dialog_title[HMR].source;
- set(Dialog_title[HMR].source, module.default[HMR].original);
- });
-}
-var dialog_title_default = Dialog_title;
-
-// node_modules/bits-ui/dist/bits/alert-dialog/components/alert-dialog-action.svelte
-Alert_dialog_action[FILENAME] = "node_modules/bits-ui/dist/bits/alert-dialog/components/alert-dialog-action.svelte";
-var root_27 = add_locations(from_html(``), Alert_dialog_action[FILENAME], [[31, 1]]);
-function Alert_dialog_action($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Alert_dialog_action);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "id",
- "ref"
- ],
- "restProps"
- );
- const actionState = DialogActionState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, actionState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Alert_dialog_action, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var button = root_27();
- attribute_effect(button, () => ({ ...get(mergedProps) }));
- var node_2 = child(button);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Alert_dialog_action, 32, 2);
- reset(button);
- append($$anchor2, button);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Alert_dialog_action,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Alert_dialog_action = hmr(Alert_dialog_action, () => Alert_dialog_action[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Alert_dialog_action[HMR].source;
- set(Alert_dialog_action[HMR].source, module.default[HMR].original);
- });
-}
-var alert_dialog_action_default = Alert_dialog_action;
-
-// node_modules/bits-ui/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte
-Alert_dialog_cancel[FILENAME] = "node_modules/bits-ui/dist/bits/alert-dialog/components/alert-dialog-cancel.svelte";
-var root_28 = add_locations(from_html(``), Alert_dialog_cancel[FILENAME], [[33, 1]]);
-function Alert_dialog_cancel($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Alert_dialog_cancel);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), disabled = prop($$props, "disabled", 3, false), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "id",
- "ref",
- "children",
- "child",
- "disabled"
- ],
- "restProps"
- );
- const cancelState = AlertDialogCancelState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- disabled: boxWith(() => Boolean(disabled()))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, cancelState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Alert_dialog_cancel, 31, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var button = root_28();
- attribute_effect(button, () => ({ ...get(mergedProps) }));
- var node_2 = child(button);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Alert_dialog_cancel, 34, 2);
- reset(button);
- append($$anchor2, button);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Alert_dialog_cancel,
- 30,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Alert_dialog_cancel = hmr(Alert_dialog_cancel, () => Alert_dialog_cancel[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Alert_dialog_cancel[HMR].source;
- set(Alert_dialog_cancel[HMR].source, module.default[HMR].original);
- });
-}
-var alert_dialog_cancel_default = Alert_dialog_cancel;
-
-// node_modules/bits-ui/dist/bits/utilities/portal/portal-consumer.svelte
-Portal_consumer[FILENAME] = "node_modules/bits-ui/dist/bits/utilities/portal/portal-consumer.svelte";
-function Portal_consumer($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Portal_consumer);
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- add_svelte_meta(
- () => key(node, () => $$props.children, ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.children ?? noop), "render", Portal_consumer, 8, 1);
- append($$anchor2, fragment_1);
- }),
- "key",
- Portal_consumer,
- 7,
- 0
- );
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Portal_consumer = hmr(Portal_consumer, () => Portal_consumer[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Portal_consumer[HMR].source;
- set(Portal_consumer[HMR].source, module.default[HMR].original);
- });
-}
-var portal_consumer_default = Portal_consumer;
-
-// node_modules/bits-ui/dist/bits/utilities/config/bits-config.js
-var BitsConfigContext = new Context("BitsConfig");
-function getBitsConfig() {
- const fallback = new BitsConfigState(null, {});
- return BitsConfigContext.getOr(fallback).opts;
-}
-function useBitsConfig(opts) {
- return BitsConfigContext.set(new BitsConfigState(BitsConfigContext.getOr(null), opts));
-}
-var BitsConfigState = class {
- opts;
- constructor(parent, opts) {
- const resolveConfigOption = createConfigResolver(parent, opts);
- this.opts = {
- defaultPortalTo: resolveConfigOption((config) => config.defaultPortalTo),
- defaultLocale: resolveConfigOption((config) => config.defaultLocale)
- };
- }
-};
-function createConfigResolver(parent, currentOpts) {
- return (getter) => {
- const configOption = boxWith(() => {
- const value = getter(currentOpts)?.current;
- if (value !== void 0)
- return value;
- if (parent === null)
- return void 0;
- return getter(parent.opts)?.current;
- });
- return configOption;
- };
-}
-
-// node_modules/bits-ui/dist/bits/utilities/config/prop-resolvers.js
-function createPropResolver(configOption, fallback) {
- return (getProp) => {
- const config = getBitsConfig();
- return boxWith(() => {
- const propValue = getProp();
- if (propValue !== void 0)
- return propValue;
- const option = configOption(config).current;
- if (option !== void 0)
- return option;
- return fallback;
- });
- };
-}
-var resolveLocaleProp = createPropResolver((config) => config.defaultLocale, "en");
-var resolvePortalToProp = createPropResolver((config) => config.defaultPortalTo, "body");
-
-// node_modules/bits-ui/dist/bits/utilities/portal/portal.svelte
-Portal[FILENAME] = "node_modules/bits-ui/dist/bits/utilities/portal/portal.svelte";
-function Portal($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Portal);
- const to = resolvePortalToProp(() => $$props.to);
- const context = getAllContexts();
- let target = tag(user_derived(getTarget), "target");
- function getTarget() {
- if (!isBrowser || $$props.disabled) return null;
- let localTarget = null;
- if (strict_equals(typeof to.current, "string")) {
- const target2 = document.querySelector(to.current);
- if (true_default && strict_equals(target2, null)) {
- throw new Error(`Target element "${to.current}" not found.`);
- }
- localTarget = target2;
- } else {
- localTarget = to.current;
- }
- if (true_default && !(localTarget instanceof Element)) {
- const type = strict_equals(localTarget, null) ? "null" : typeof localTarget;
- throw new TypeError(`Unknown portal target type: ${type}. Allowed types: string (query selector) or Element.`);
- }
- return localTarget;
- }
- let instance;
- function unmountInstance() {
- if (instance) {
- unmount(instance);
- instance = null;
- }
- }
- watch([() => get(target), () => $$props.disabled], ([target2, disabled]) => {
- if (!target2 || disabled) {
- unmountInstance();
- return;
- }
- instance = mount(portal_consumer_default, { target: target2, props: { children: $$props.children }, context });
- return () => {
- unmountInstance();
- };
- });
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.children ?? noop), "render", Portal, 69, 1);
- append($$anchor2, fragment_1);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.disabled) $$render(consequent);
- }),
- "if",
- Portal,
- 68,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Portal = hmr(Portal, () => Portal[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Portal[HMR].source;
- set(Portal[HMR].source, module.default[HMR].original);
- });
-}
-var portal_default = Portal;
-
-// node_modules/bits-ui/dist/internal/events.js
-var CustomEventDispatcher = class {
- eventName;
- options;
- constructor(eventName, options = { bubbles: true, cancelable: true }) {
- this.eventName = eventName;
- this.options = options;
- }
- createEvent(detail) {
- return new CustomEvent(this.eventName, {
- ...this.options,
- detail
- });
- }
- dispatch(element2, detail) {
- const event = this.createEvent(detail);
- element2.dispatchEvent(event);
- return event;
- }
- listen(element2, callback, options) {
- const handler = (event) => {
- callback(event);
- };
- return on(element2, this.eventName, handler, options);
- }
-};
-
-// node_modules/bits-ui/dist/internal/debounce.js
-function debounce2(fn, wait = 500) {
- let timeout = null;
- const debounced = (...args) => {
- if (timeout !== null) {
- clearTimeout(timeout);
- }
- timeout = setTimeout(() => {
- fn(...args);
- }, wait);
- };
- debounced.destroy = () => {
- if (timeout !== null) {
- clearTimeout(timeout);
- timeout = null;
- }
- };
- return debounced;
-}
-
-// node_modules/bits-ui/dist/internal/elements.js
-function isOrContainsTarget2(node, target) {
- return node === target || node.contains(target);
-}
-function getOwnerDocument2(el) {
- return el?.ownerDocument ?? document;
-}
-
-// node_modules/bits-ui/dist/internal/dom.js
-function getFirstNonCommentChild(element2) {
- if (!element2)
- return null;
- for (const child2 of element2.childNodes) {
- if (child2.nodeType !== Node.COMMENT_NODE) {
- return child2;
- }
- }
- return null;
-}
-function isClickTrulyOutside(event, contentNode) {
- const { clientX, clientY } = event;
- const rect = contentNode.getBoundingClientRect();
- return clientX < rect.left || clientX > rect.right || clientY < rect.top || clientY > rect.bottom;
-}
-
-// node_modules/bits-ui/dist/bits/menu/utils.js
-var SELECTION_KEYS2 = [kbd_constants_exports.ENTER, kbd_constants_exports.SPACE];
-var FIRST_KEYS2 = [kbd_constants_exports.ARROW_DOWN, kbd_constants_exports.PAGE_UP, kbd_constants_exports.HOME];
-var LAST_KEYS2 = [kbd_constants_exports.ARROW_UP, kbd_constants_exports.PAGE_DOWN, kbd_constants_exports.END];
-var FIRST_LAST_KEYS2 = [...FIRST_KEYS2, ...LAST_KEYS2];
-var SUB_OPEN_KEYS = {
- ltr: [...SELECTION_KEYS2, kbd_constants_exports.ARROW_RIGHT],
- rtl: [...SELECTION_KEYS2, kbd_constants_exports.ARROW_LEFT]
-};
-var SUB_CLOSE_KEYS = {
- ltr: [kbd_constants_exports.ARROW_LEFT],
- rtl: [kbd_constants_exports.ARROW_RIGHT]
-};
-function isIndeterminate(checked) {
- return checked === "indeterminate";
-}
-function getCheckedState(checked) {
- return isIndeterminate(checked) ? "indeterminate" : checked ? "checked" : "unchecked";
-}
-function isMouseEvent(event) {
- return event.pointerType === "mouse";
-}
-
-// node_modules/bits-ui/dist/internal/focus.js
-function focus(element2, { select = false } = {}) {
- if (!element2 || !element2.focus)
- return;
- const doc = getDocument(element2);
- if (doc.activeElement === element2)
- return;
- const previouslyFocusedElement = doc.activeElement;
- element2.focus({ preventScroll: true });
- if (element2 !== previouslyFocusedElement && isSelectableInput(element2) && select) {
- element2.select();
- }
-}
-function focusFirst(candidates, { select = false } = {}, getActiveElement3) {
- const previouslyFocusedElement = getActiveElement3();
- for (const candidate of candidates) {
- focus(candidate, { select });
- if (getActiveElement3() !== previouslyFocusedElement)
- return true;
- }
-}
-function getTabbableCandidates(container) {
- const nodes = [];
- const doc = getDocument(container);
- const walker = doc.createTreeWalker(container, NodeFilter.SHOW_ELEMENT, {
- // oxlint-disable-next-line no-explicit-any
- acceptNode: (node) => {
- const isHiddenInput3 = node.tagName === "INPUT" && node.type === "hidden";
- if (node.disabled || node.hidden || isHiddenInput3)
- return NodeFilter.FILTER_SKIP;
- return node.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;
- }
- });
- while (walker.nextNode())
- nodes.push(walker.currentNode);
- return nodes;
-}
-
-// node_modules/tabbable/dist/index.esm.js
-var candidateSelectors = ["input:not([inert])", "select:not([inert])", "textarea:not([inert])", "a[href]:not([inert])", "button:not([inert])", "[tabindex]:not(slot):not([inert])", "audio[controls]:not([inert])", "video[controls]:not([inert])", '[contenteditable]:not([contenteditable="false"]):not([inert])', "details>summary:first-of-type:not([inert])", "details:not([inert])"];
-var candidateSelector = candidateSelectors.join(",");
-var NoElement = typeof Element === "undefined";
-var matches = NoElement ? function() {
-} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
-var getRootNode = !NoElement && Element.prototype.getRootNode ? function(element2) {
- var _element$getRootNode;
- return element2 === null || element2 === void 0 ? void 0 : (_element$getRootNode = element2.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element2);
-} : function(element2) {
- return element2 === null || element2 === void 0 ? void 0 : element2.ownerDocument;
-};
-var _isInert = function isInert(node, lookUp) {
- var _node$getAttribute;
- if (lookUp === void 0) {
- lookUp = true;
- }
- var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, "inert");
- var inert = inertAtt === "" || inertAtt === "true";
- var result = inert || lookUp && node && _isInert(node.parentNode);
- return result;
-};
-var isContentEditable = function isContentEditable2(node) {
- var _node$getAttribute2;
- var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, "contenteditable");
- return attValue === "" || attValue === "true";
-};
-var getCandidates = function getCandidates2(el, includeContainer, filter) {
- if (_isInert(el)) {
- return [];
- }
- var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));
- if (includeContainer && matches.call(el, candidateSelector)) {
- candidates.unshift(el);
- }
- candidates = candidates.filter(filter);
- return candidates;
-};
-var _getCandidatesIteratively = function getCandidatesIteratively(elements, includeContainer, options) {
- var candidates = [];
- var elementsToCheck = Array.from(elements);
- while (elementsToCheck.length) {
- var element2 = elementsToCheck.shift();
- if (_isInert(element2, false)) {
- continue;
- }
- if (element2.tagName === "SLOT") {
- var assigned = element2.assignedElements();
- var content = assigned.length ? assigned : element2.children;
- var nestedCandidates = _getCandidatesIteratively(content, true, options);
- if (options.flatten) {
- candidates.push.apply(candidates, nestedCandidates);
- } else {
- candidates.push({
- scopeParent: element2,
- candidates: nestedCandidates
- });
- }
- } else {
- var validCandidate = matches.call(element2, candidateSelector);
- if (validCandidate && options.filter(element2) && (includeContainer || !elements.includes(element2))) {
- candidates.push(element2);
- }
- var shadowRoot = element2.shadowRoot || // check for an undisclosed shadow
- typeof options.getShadowRoot === "function" && options.getShadowRoot(element2);
- var validShadowRoot = !_isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element2));
- if (shadowRoot && validShadowRoot) {
- var _nestedCandidates = _getCandidatesIteratively(shadowRoot === true ? element2.children : shadowRoot.children, true, options);
- if (options.flatten) {
- candidates.push.apply(candidates, _nestedCandidates);
- } else {
- candidates.push({
- scopeParent: element2,
- candidates: _nestedCandidates
- });
- }
- } else {
- elementsToCheck.unshift.apply(elementsToCheck, element2.children);
- }
- }
- }
- return candidates;
-};
-var hasTabIndex = function hasTabIndex2(node) {
- return !isNaN(parseInt(node.getAttribute("tabindex"), 10));
-};
-var getTabIndex = function getTabIndex2(node) {
- if (!node) {
- throw new Error("No node provided");
- }
- if (node.tabIndex < 0) {
- if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {
- return 0;
- }
- }
- return node.tabIndex;
-};
-var getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) {
- var tabIndex = getTabIndex(node);
- if (tabIndex < 0 && isScope && !hasTabIndex(node)) {
- return 0;
- }
- return tabIndex;
-};
-var sortOrderedTabbables = function sortOrderedTabbables2(a2, b) {
- return a2.tabIndex === b.tabIndex ? a2.documentOrder - b.documentOrder : a2.tabIndex - b.tabIndex;
-};
-var isInput = function isInput2(node) {
- return node.tagName === "INPUT";
-};
-var isHiddenInput = function isHiddenInput2(node) {
- return isInput(node) && node.type === "hidden";
-};
-var isDetailsWithSummary = function isDetailsWithSummary2(node) {
- var r = node.tagName === "DETAILS" && Array.prototype.slice.apply(node.children).some(function(child2) {
- return child2.tagName === "SUMMARY";
- });
- return r;
-};
-var getCheckedRadio = function getCheckedRadio2(nodes, form) {
- for (var i = 0; i < nodes.length; i++) {
- if (nodes[i].checked && nodes[i].form === form) {
- return nodes[i];
- }
- }
-};
-var isTabbableRadio = function isTabbableRadio2(node) {
- if (!node.name) {
- return true;
- }
- var radioScope = node.form || getRootNode(node);
- var queryRadios = function queryRadios2(name) {
- return radioScope.querySelectorAll('input[type="radio"][name="' + name + '"]');
- };
- var radioSet;
- if (typeof window !== "undefined" && typeof window.CSS !== "undefined" && typeof window.CSS.escape === "function") {
- radioSet = queryRadios(window.CSS.escape(node.name));
- } else {
- try {
- radioSet = queryRadios(node.name);
- } catch (err) {
- console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s", err.message);
- return false;
- }
- }
- var checked = getCheckedRadio(radioSet, node.form);
- return !checked || checked === node;
-};
-var isRadio = function isRadio2(node) {
- return isInput(node) && node.type === "radio";
-};
-var isNonTabbableRadio = function isNonTabbableRadio2(node) {
- return isRadio(node) && !isTabbableRadio(node);
-};
-var isNodeAttached = function isNodeAttached2(node) {
- var _nodeRoot;
- var nodeRoot = node && getRootNode(node);
- var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;
- var attached = false;
- if (nodeRoot && nodeRoot !== node) {
- var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;
- attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));
- while (!attached && nodeRootHost) {
- var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;
- nodeRoot = getRootNode(nodeRootHost);
- nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;
- attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));
- }
- }
- return attached;
-};
-var isZeroArea = function isZeroArea2(node) {
- var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;
- return width === 0 && height === 0;
-};
-var isHidden = function isHidden2(node, _ref) {
- var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;
- if (displayCheck === "full-native") {
- if ("checkVisibility" in node) {
- var visible = node.checkVisibility({
- // Checking opacity might be desirable for some use cases, but natively,
- // opacity zero elements _are_ focusable and tabbable.
- checkOpacity: false,
- opacityProperty: false,
- contentVisibilityAuto: true,
- visibilityProperty: true,
- // This is an alias for `visibilityProperty`. Contemporary browsers
- // support both. However, this alias has wider browser support (Chrome
- // >= 105 and Firefox >= 106, vs. Chrome >= 121 and Firefox >= 122), so
- // we include it anyway.
- checkVisibilityCSS: true
- });
- return !visible;
- }
- }
- if (getComputedStyle(node).visibility === "hidden") {
- return true;
- }
- var isDirectSummary = matches.call(node, "details>summary:first-of-type");
- var nodeUnderDetails = isDirectSummary ? node.parentElement : node;
- if (matches.call(nodeUnderDetails, "details:not([open]) *")) {
- return true;
- }
- if (!displayCheck || displayCheck === "full" || // full-native can run this branch when it falls through in case
- // Element#checkVisibility is unsupported
- displayCheck === "full-native" || displayCheck === "legacy-full") {
- if (typeof getShadowRoot === "function") {
- var originalNode = node;
- while (node) {
- var parentElement = node.parentElement;
- var rootNode = getRootNode(node);
- if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {
- return isZeroArea(node);
- } else if (node.assignedSlot) {
- node = node.assignedSlot;
- } else if (!parentElement && rootNode !== node.ownerDocument) {
- node = rootNode.host;
- } else {
- node = parentElement;
- }
- }
- node = originalNode;
- }
- if (isNodeAttached(node)) {
- return !node.getClientRects().length;
- }
- if (displayCheck !== "legacy-full") {
- return true;
- }
- } else if (displayCheck === "non-zero-area") {
- return isZeroArea(node);
- }
- return false;
-};
-var isDisabledFromFieldset = function isDisabledFromFieldset2(node) {
- if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {
- var parentNode = node.parentElement;
- while (parentNode) {
- if (parentNode.tagName === "FIELDSET" && parentNode.disabled) {
- for (var i = 0; i < parentNode.children.length; i++) {
- var child2 = parentNode.children.item(i);
- if (child2.tagName === "LEGEND") {
- return matches.call(parentNode, "fieldset[disabled] *") ? true : !child2.contains(node);
- }
- }
- return true;
- }
- parentNode = parentNode.parentElement;
- }
- }
- return false;
-};
-var isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) {
- if (node.disabled || // we must do an inert look up to filter out any elements inside an inert ancestor
- // because we're limited in the type of selectors we can use in JSDom (see related
- // note related to `candidateSelectors`)
- _isInert(node) || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus
- isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {
- return false;
- }
- return true;
-};
-var isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) {
- if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {
- return false;
- }
- return true;
-};
-var isShadowRootTabbable = function isShadowRootTabbable2(shadowHostNode) {
- var tabIndex = parseInt(shadowHostNode.getAttribute("tabindex"), 10);
- if (isNaN(tabIndex) || tabIndex >= 0) {
- return true;
- }
- return false;
-};
-var _sortByOrder = function sortByOrder(candidates) {
- var regularTabbables = [];
- var orderedTabbables = [];
- candidates.forEach(function(item, i) {
- var isScope = !!item.scopeParent;
- var element2 = isScope ? item.scopeParent : item;
- var candidateTabindex = getSortOrderTabIndex(element2, isScope);
- var elements = isScope ? _sortByOrder(item.candidates) : element2;
- if (candidateTabindex === 0) {
- isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element2);
- } else {
- orderedTabbables.push({
- documentOrder: i,
- tabIndex: candidateTabindex,
- item,
- isScope,
- content: elements
- });
- }
- });
- return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {
- sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);
- return acc;
- }, []).concat(regularTabbables);
-};
-var tabbable = function tabbable2(container, options) {
- options = options || {};
- var candidates;
- if (options.getShadowRoot) {
- candidates = _getCandidatesIteratively([container], options.includeContainer, {
- filter: isNodeMatchingSelectorTabbable.bind(null, options),
- flatten: false,
- getShadowRoot: options.getShadowRoot,
- shadowRootFilter: isShadowRootTabbable
- });
- } else {
- candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));
- }
- return _sortByOrder(candidates);
-};
-var focusable = function focusable2(container, options) {
- options = options || {};
- var candidates;
- if (options.getShadowRoot) {
- candidates = _getCandidatesIteratively([container], options.includeContainer, {
- filter: isNodeMatchingSelectorFocusable.bind(null, options),
- flatten: true,
- getShadowRoot: options.getShadowRoot
- });
- } else {
- candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));
- }
- return candidates;
-};
-var isTabbable = function isTabbable2(node, options) {
- options = options || {};
- if (!node) {
- throw new Error("No node provided");
- }
- if (matches.call(node, candidateSelector) === false) {
- return false;
- }
- return isNodeMatchingSelectorTabbable(options, node);
-};
-var focusableCandidateSelector = candidateSelectors.concat("iframe").join(",");
-var isFocusable = function isFocusable2(node, options) {
- options = options || {};
- if (!node) {
- throw new Error("No node provided");
- }
- if (matches.call(node, focusableCandidateSelector) === false) {
- return false;
- }
- return isNodeMatchingSelectorFocusable(options, node);
-};
-
-// node_modules/bits-ui/dist/internal/tabbable.js
-function getTabbableOptions() {
- return {
- getShadowRoot: true,
- displayCheck: (
- // JSDOM does not support the `tabbable` library. To solve this we can
- // check if `ResizeObserver` is a real function (not polyfilled), which
- // determines if the current environment is JSDOM-like.
- typeof ResizeObserver === "function" && ResizeObserver.toString().includes("[native code]") ? "full" : "none"
- )
- };
-}
-function getTabbableFrom(currentNode, direction) {
- if (!isTabbable(currentNode, getTabbableOptions())) {
- return getTabbableFromFocusable(currentNode, direction);
- }
- const doc = getDocument(currentNode);
- const allTabbable = tabbable(doc.body, getTabbableOptions());
- if (direction === "prev")
- allTabbable.reverse();
- const activeIndex = allTabbable.indexOf(currentNode);
- if (activeIndex === -1)
- return doc.body;
- const nextTabbableElements = allTabbable.slice(activeIndex + 1);
- return nextTabbableElements[0];
-}
-function getTabbableFromFocusable(currentNode, direction) {
- const doc = getDocument(currentNode);
- if (!isFocusable(currentNode, getTabbableOptions()))
- return doc.body;
- const allFocusable = focusable(doc.body, getTabbableOptions());
- if (direction === "prev")
- allFocusable.reverse();
- const activeIndex = allFocusable.indexOf(currentNode);
- if (activeIndex === -1)
- return doc.body;
- const nextFocusableElements = allFocusable.slice(activeIndex + 1);
- return nextFocusableElements.find((node) => isTabbable(node, getTabbableOptions())) ?? doc.body;
-}
-
-// node_modules/bits-ui/dist/internal/arrays.js
-function arraysAreEqual(arr1, arr2) {
- if (arr1.length !== arr2.length)
- return false;
- return arr1.every((value, index) => isEqual(value, arr2[index]));
-}
-function isEqual(a2, b) {
- if (Number.isNaN(a2) && Number.isNaN(b))
- return true;
- if (Array.isArray(a2) && Array.isArray(b))
- return arraysAreEqual(a2, b);
- if (typeof a2 === "object" && typeof b === "object")
- return isDeepEqual(a2, b);
- return Object.is(a2, b);
-}
-function isDeepEqual(a2, b) {
- if (typeof a2 !== "object" || typeof b !== "object" || a2 === null || b === null)
- return false;
- const aKeys = Object.keys(a2);
- const bKeys = Object.keys(b);
- if (aKeys.length !== bKeys.length)
- return false;
- for (const key2 of aKeys) {
- if (!bKeys.includes(key2))
- return false;
- if (!isEqual(a2[key2], b[key2])) {
- return false;
- }
- }
- return true;
-}
-function chunk(arr, size3) {
- if (size3 <= 0)
- return [];
- const result = [];
- for (let i = 0; i < arr.length; i += size3) {
- result.push(arr.slice(i, i + size3));
- }
- return result;
-}
-function isValidIndex(index, arr) {
- return index >= 0 && index < arr.length;
-}
-function next2(array, index, loop = true) {
- if (array.length === 0 || index < 0 || index >= array.length)
- return;
- if (array.length === 1 && index === 0)
- return array[0];
- if (index === array.length - 1)
- return loop ? array[0] : void 0;
- return array[index + 1];
-}
-function prev(array, index, loop = true) {
- if (array.length === 0 || index < 0 || index >= array.length)
- return;
- if (array.length === 1 && index === 0)
- return array[0];
- if (index === 0)
- return loop ? array[array.length - 1] : void 0;
- return array[index - 1];
-}
-function forward(array, index, increment, loop = true) {
- if (array.length === 0 || index < 0 || index >= array.length)
- return;
- let targetIndex = index + increment;
- if (loop) {
- targetIndex = (targetIndex % array.length + array.length) % array.length;
- } else {
- targetIndex = Math.max(0, Math.min(targetIndex, array.length - 1));
- }
- return array[targetIndex];
-}
-function backward(array, index, decrement, loop = true) {
- if (array.length === 0 || index < 0 || index >= array.length)
- return;
- let targetIndex = index - decrement;
- if (loop) {
- targetIndex = (targetIndex % array.length + array.length) % array.length;
- } else {
- targetIndex = Math.max(0, Math.min(targetIndex, array.length - 1));
- }
- return array[targetIndex];
-}
-function getNextMatch(values, search, currentMatch) {
- const lowerSearch = search.toLowerCase();
- if (lowerSearch.endsWith(" ")) {
- const searchWithoutSpace = lowerSearch.slice(0, -1);
- const matchesWithoutSpace = values.filter((value) => value.toLowerCase().startsWith(searchWithoutSpace));
- if (matchesWithoutSpace.length <= 1) {
- return getNextMatch(values, searchWithoutSpace, currentMatch);
- }
- const currentMatchLowercase = currentMatch?.toLowerCase();
- if (currentMatchLowercase && currentMatchLowercase.startsWith(searchWithoutSpace) && currentMatchLowercase.charAt(searchWithoutSpace.length) === " " && search.trim() === searchWithoutSpace) {
- return currentMatch;
- }
- const spacedMatches = values.filter((value) => value.toLowerCase().startsWith(lowerSearch));
- if (spacedMatches.length > 0) {
- const currentMatchIndex2 = currentMatch ? values.indexOf(currentMatch) : -1;
- let wrappedMatches = wrapArray(spacedMatches, Math.max(currentMatchIndex2, 0));
- const nextMatch2 = wrappedMatches.find((match) => match !== currentMatch);
- return nextMatch2 || currentMatch;
- }
- }
- const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);
- const normalizedSearch = isRepeated ? search[0] : search;
- const normalizedLowerSearch = normalizedSearch.toLowerCase();
- const currentMatchIndex = currentMatch ? values.indexOf(currentMatch) : -1;
- let wrappedValues = wrapArray(values, Math.max(currentMatchIndex, 0));
- const excludeCurrentMatch = normalizedSearch.length === 1;
- if (excludeCurrentMatch)
- wrappedValues = wrappedValues.filter((v) => v !== currentMatch);
- const nextMatch = wrappedValues.find((value) => value?.toLowerCase().startsWith(normalizedLowerSearch));
- return nextMatch !== currentMatch ? nextMatch : void 0;
-}
-function wrapArray(array, startIndex) {
- return array.map((_, index) => array[(startIndex + index) % array.length]);
-}
-
-// node_modules/bits-ui/dist/internal/box-auto-reset.svelte.js
-var defaultOptions = { afterMs: 1e4, onChange: noop3 };
-function boxAutoReset(defaultValue, options) {
- const { afterMs, onChange, getWindow: getWindow3 } = { ...defaultOptions, ...options };
- let timeout = null;
- let value = tag(state(proxy(defaultValue)), "value");
- function resetAfter() {
- return getWindow3().setTimeout(
- () => {
- set(value, defaultValue, true);
- onChange?.(defaultValue);
- },
- afterMs
- );
- }
- user_effect(() => {
- return () => {
- if (timeout) getWindow3().clearTimeout(timeout);
- };
- });
- return boxWith(() => get(value), (v) => {
- set(value, v, true);
- onChange?.(v);
- if (timeout) getWindow3().clearTimeout(timeout);
- timeout = resetAfter();
- });
-}
-
-// node_modules/bits-ui/dist/internal/dom-typeahead.svelte.js
-var DOMTypeahead = class {
- #opts;
- #search;
- #onMatch = tag(
- user_derived(() => {
- if (this.#opts.onMatch) return this.#opts.onMatch;
- return (node) => node.focus();
- }),
- "DOMTypeahead.#onMatch"
- );
- #getCurrentItem = tag(
- user_derived(() => {
- if (this.#opts.getCurrentItem) return this.#opts.getCurrentItem;
- return this.#opts.getActiveElement;
- }),
- "DOMTypeahead.#getCurrentItem"
- );
- constructor(opts) {
- this.#opts = opts;
- this.#search = boxAutoReset("", { afterMs: 1e3, getWindow: opts.getWindow });
- this.handleTypeaheadSearch = this.handleTypeaheadSearch.bind(this);
- this.resetTypeahead = this.resetTypeahead.bind(this);
- }
- handleTypeaheadSearch(key2, candidates) {
- if (!candidates.length) return;
- this.#search.current = this.#search.current + key2;
- const currentItem = get(this.#getCurrentItem)();
- const currentMatch = candidates.find((item) => strict_equals(item, currentItem))?.textContent?.trim() ?? "";
- const values = candidates.map((item) => item.textContent?.trim() ?? "");
- const nextMatch = getNextMatch(values, this.#search.current, currentMatch);
- const newItem = candidates.find((item) => strict_equals(item.textContent?.trim(), nextMatch));
- if (newItem) get(this.#onMatch)(newItem);
- return newItem;
- }
- resetTypeahead() {
- this.#search.current = "";
- }
- get search() {
- return this.#search.current;
- }
-};
-
-// node_modules/bits-ui/dist/internal/grace-area.svelte.js
-var GraceArea = class {
- #opts;
- #enabled;
- #isPointerInTransit;
- #pointerGraceArea = tag(state(null), "GraceArea.#pointerGraceArea");
- constructor(opts) {
- this.#opts = opts;
- this.#enabled = tag(user_derived(() => this.#opts.enabled()), "GraceArea.#enabled");
- this.#isPointerInTransit = boxAutoReset(false, {
- afterMs: opts.transitTimeout ?? 300,
- onChange: (value) => {
- if (!get(this.#enabled)) return;
- this.#opts.setIsPointerInTransit?.(value);
- },
- getWindow: () => getWindow(this.#opts.triggerNode())
- });
- watch([opts.triggerNode, opts.contentNode, opts.enabled], ([triggerNode, contentNode, enabled]) => {
- if (!triggerNode || !contentNode || !enabled) return;
- const handleTriggerLeave = (e) => {
- this.#createGraceArea(e, contentNode);
- };
- const handleContentLeave = (e) => {
- this.#createGraceArea(e, triggerNode);
- };
- return executeCallbacks(on(triggerNode, "pointerleave", handleTriggerLeave), on(contentNode, "pointerleave", handleContentLeave));
- });
- watch(() => get(this.#pointerGraceArea), () => {
- const handleTrackPointerGrace = (e) => {
- if (!get(this.#pointerGraceArea)) return;
- const target = e.target;
- if (!isElement2(target)) return;
- const pointerPosition = { x: e.clientX, y: e.clientY };
- const hasEnteredTarget = opts.triggerNode()?.contains(target) || opts.contentNode()?.contains(target);
- const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, get(this.#pointerGraceArea));
- if (hasEnteredTarget) {
- this.#removeGraceArea();
- } else if (isPointerOutsideGraceArea) {
- this.#removeGraceArea();
- opts.onPointerExit();
- }
- };
- const doc = getDocument(opts.triggerNode() ?? opts.contentNode());
- if (!doc) return;
- return on(doc, "pointermove", handleTrackPointerGrace);
- });
- }
- #removeGraceArea() {
- set(this.#pointerGraceArea, null);
- this.#isPointerInTransit.current = false;
- }
- #createGraceArea(e, hoverTarget) {
- const currentTarget = e.currentTarget;
- if (!isHTMLElement2(currentTarget)) return;
- const exitPoint = { x: e.clientX, y: e.clientY };
- const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
- const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);
- const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
- const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);
- set(this.#pointerGraceArea, graceArea, true);
- this.#isPointerInTransit.current = true;
- }
-};
-function getExitSideFromRect(point, rect) {
- const top = Math.abs(rect.top - point.y);
- const bottom = Math.abs(rect.bottom - point.y);
- const right = Math.abs(rect.right - point.x);
- const left = Math.abs(rect.left - point.x);
- switch (Math.min(top, bottom, right, left)) {
- case left:
- return "left";
- case right:
- return "right";
- case top:
- return "top";
- case bottom:
- return "bottom";
- default:
- throw new Error("unreachable");
- }
-}
-function getPaddedExitPoints(exitPoint, exitSide, padding = 5) {
- const tipPadding = padding * 1.5;
- switch (exitSide) {
- case "top":
- return [
- { x: exitPoint.x - padding, y: exitPoint.y + padding },
- { x: exitPoint.x, y: exitPoint.y - tipPadding },
- { x: exitPoint.x + padding, y: exitPoint.y + padding }
- ];
- case "bottom":
- return [
- { x: exitPoint.x - padding, y: exitPoint.y - padding },
- { x: exitPoint.x, y: exitPoint.y + tipPadding },
- { x: exitPoint.x + padding, y: exitPoint.y - padding }
- ];
- case "left":
- return [
- { x: exitPoint.x + padding, y: exitPoint.y - padding },
- { x: exitPoint.x - tipPadding, y: exitPoint.y },
- { x: exitPoint.x + padding, y: exitPoint.y + padding }
- ];
- case "right":
- return [
- { x: exitPoint.x - padding, y: exitPoint.y - padding },
- { x: exitPoint.x + tipPadding, y: exitPoint.y },
- { x: exitPoint.x - padding, y: exitPoint.y + padding }
- ];
- }
-}
-function getPointsFromRect(rect) {
- const { top, right, bottom, left } = rect;
- return [
- { x: left, y: top },
- { x: right, y: top },
- { x: right, y: bottom },
- { x: left, y: bottom }
- ];
-}
-function isPointInPolygon(point, polygon) {
- const { x, y } = point;
- let inside = false;
- for (let i = 0, j2 = polygon.length - 1; i < polygon.length; j2 = i++) {
- const xi = polygon[i].x;
- const yi = polygon[i].y;
- const xj = polygon[j2].x;
- const yj = polygon[j2].y;
- const intersect = strict_equals(yi > y, yj > y, false) && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
- if (intersect) inside = !inside;
- }
- return inside;
-}
-function getHull(points) {
- const newPoints = points.slice();
- newPoints.sort((a2, b) => {
- if (a2.x < b.x) return -1;
- else if (a2.x > b.x) return 1;
- else if (a2.y < b.y) return -1;
- else if (a2.y > b.y) return 1;
- else return 0;
- });
- return getHullPresorted(newPoints);
-}
-function getHullPresorted(points) {
- if (points.length <= 1) return points.slice();
- const upperHull = [];
- for (let i = 0; i < points.length; i++) {
- const p2 = points[i];
- while (upperHull.length >= 2) {
- const q = upperHull[upperHull.length - 1];
- const r = upperHull[upperHull.length - 2];
- if ((q.x - r.x) * (p2.y - r.y) >= (q.y - r.y) * (p2.x - r.x)) upperHull.pop();
- else break;
- }
- upperHull.push(p2);
- }
- upperHull.pop();
- const lowerHull = [];
- for (let i = points.length - 1; i >= 0; i--) {
- const p2 = points[i];
- while (lowerHull.length >= 2) {
- const q = lowerHull[lowerHull.length - 1];
- const r = lowerHull[lowerHull.length - 2];
- if ((q.x - r.x) * (p2.y - r.y) >= (q.y - r.y) * (p2.x - r.x)) lowerHull.pop();
- else break;
- }
- lowerHull.push(p2);
- }
- lowerHull.pop();
- if (strict_equals(upperHull.length, 1) && strict_equals(lowerHull.length, 1) && strict_equals(upperHull[0].x, lowerHull[0].x) && strict_equals(upperHull[0].y, lowerHull[0].y)) return upperHull;
- else return upperHull.concat(lowerHull);
-}
-
-// node_modules/bits-ui/dist/bits/menu/menu.svelte.js
-var CONTEXT_MENU_TRIGGER_ATTR = "data-context-menu-trigger";
-var CONTEXT_MENU_CONTENT_ATTR = "data-context-menu-content";
-var MenuRootContext = new Context("Menu.Root");
-var MenuMenuContext = new Context("Menu.Root | Menu.Sub");
-var MenuContentContext = new Context("Menu.Content");
-var MenuGroupContext = new Context("Menu.Group | Menu.RadioGroup");
-var MenuRadioGroupContext = new Context("Menu.RadioGroup");
-var MenuCheckboxGroupContext = new Context("Menu.CheckboxGroup");
-var MenuOpenEvent = new CustomEventDispatcher("bitsmenuopen", { bubbles: false, cancelable: true });
-var menuAttrs = createBitsAttrs({
- component: "menu",
- parts: [
- "trigger",
- "content",
- "sub-trigger",
- "item",
- "group",
- "group-heading",
- "checkbox-group",
- "checkbox-item",
- "radio-group",
- "radio-item",
- "separator",
- "sub-content",
- "arrow"
- ]
-});
-var MenuRootState = class _MenuRootState {
- static create(opts) {
- const root18 = new _MenuRootState(opts);
- return MenuRootContext.set(root18);
- }
- opts;
- isUsingKeyboard = new IsUsingKeyboard();
- #ignoreCloseAutoFocus = tag(state(false), "MenuRootState.ignoreCloseAutoFocus");
- get ignoreCloseAutoFocus() {
- return get(this.#ignoreCloseAutoFocus);
- }
- set ignoreCloseAutoFocus(value) {
- set(this.#ignoreCloseAutoFocus, value, true);
- }
- #isPointerInTransit = tag(state(false), "MenuRootState.isPointerInTransit");
- get isPointerInTransit() {
- return get(this.#isPointerInTransit);
- }
- set isPointerInTransit(value) {
- set(this.#isPointerInTransit, value, true);
- }
- constructor(opts) {
- this.opts = opts;
- }
- getBitsAttr = (part) => {
- return menuAttrs.getAttr(part, this.opts.variant.current);
- };
-};
-var MenuMenuState = class _MenuMenuState {
- static create(opts, root18) {
- return MenuMenuContext.set(new _MenuMenuState(opts, root18, null));
- }
- opts;
- root;
- parentMenu;
- contentId = boxWith(() => "");
- #contentNode = tag(state(null), "MenuMenuState.contentNode");
- get contentNode() {
- return get(this.#contentNode);
- }
- set contentNode(value) {
- set(this.#contentNode, value, true);
- }
- contentPresence;
- #triggerNode = tag(state(null), "MenuMenuState.triggerNode");
- get triggerNode() {
- return get(this.#triggerNode);
- }
- set triggerNode(value) {
- set(this.#triggerNode, value, true);
- }
- constructor(opts, root18, parentMenu) {
- this.opts = opts;
- this.root = root18;
- this.parentMenu = parentMenu;
- this.contentPresence = new PresenceManager({
- ref: boxWith(() => this.contentNode),
- open: this.opts.open,
- onComplete: () => {
- this.opts.onOpenChangeComplete.current(this.opts.open.current);
- }
- });
- if (parentMenu) {
- watch(() => parentMenu.opts.open.current, () => {
- if (parentMenu.opts.open.current) return;
- this.opts.open.current = false;
- });
- }
- }
- toggleOpen() {
- this.opts.open.current = !this.opts.open.current;
- }
- onOpen() {
- this.opts.open.current = true;
- }
- onClose() {
- this.opts.open.current = false;
- }
-};
-var MenuContentState = class _MenuContentState {
- static create(opts) {
- return MenuContentContext.set(new _MenuContentState(opts, MenuMenuContext.get()));
- }
- opts;
- parentMenu;
- rovingFocusGroup;
- domContext;
- attachment;
- #search = tag(state(""), "MenuContentState.search");
- get search() {
- return get(this.#search);
- }
- set search(value) {
- set(this.#search, value, true);
- }
- #timer = 0;
- #handleTypeaheadSearch;
- #mounted = tag(state(false), "MenuContentState.mounted");
- get mounted() {
- return get(this.#mounted);
- }
- set mounted(value) {
- set(this.#mounted, value, true);
- }
- #isSub;
- constructor(opts, parentMenu) {
- this.opts = opts;
- this.parentMenu = parentMenu;
- this.domContext = new DOMContext(opts.ref);
- this.attachment = attachRef(this.opts.ref, (v) => {
- if (strict_equals(this.parentMenu.contentNode, v, false)) {
- this.parentMenu.contentNode = v;
- }
- });
- parentMenu.contentId = opts.id;
- this.#isSub = opts.isSub ?? false;
- this.onkeydown = this.onkeydown.bind(this);
- this.onblur = this.onblur.bind(this);
- this.onfocus = this.onfocus.bind(this);
- this.handleInteractOutside = this.handleInteractOutside.bind(this);
- new GraceArea({
- contentNode: () => this.parentMenu.contentNode,
- triggerNode: () => this.parentMenu.triggerNode,
- enabled: () => this.parentMenu.opts.open.current && Boolean(this.parentMenu.triggerNode?.hasAttribute(this.parentMenu.root.getBitsAttr("sub-trigger"))),
- onPointerExit: () => {
- this.parentMenu.opts.open.current = false;
- },
- setIsPointerInTransit: (value) => {
- this.parentMenu.root.isPointerInTransit = value;
- }
- });
- this.#handleTypeaheadSearch = new DOMTypeahead({
- getActiveElement: () => this.domContext.getActiveElement(),
- getWindow: () => this.domContext.getWindow()
- }).handleTypeaheadSearch;
- this.rovingFocusGroup = new RovingFocusGroup({
- rootNode: boxWith(() => this.parentMenu.contentNode),
- candidateAttr: this.parentMenu.root.getBitsAttr("item"),
- loop: this.opts.loop,
- orientation: boxWith(() => "vertical")
- });
- watch(() => this.parentMenu.contentNode, (contentNode) => {
- if (!contentNode) return;
- const handler = () => {
- afterTick(() => {
- if (!this.parentMenu.root.isUsingKeyboard.current) return;
- this.rovingFocusGroup.focusFirstCandidate();
- });
- };
- return MenuOpenEvent.listen(contentNode, handler);
- });
- user_effect(() => {
- if (!this.parentMenu.opts.open.current) {
- this.domContext.getWindow().clearTimeout(this.#timer);
- }
- });
- }
- #getCandidateNodes() {
- const node = this.parentMenu.contentNode;
- if (!node) return [];
- const candidates = Array.from(node.querySelectorAll(`[${this.parentMenu.root.getBitsAttr("item")}]:not([data-disabled])`));
- return candidates;
- }
- #isPointerMovingToSubmenu() {
- return this.parentMenu.root.isPointerInTransit;
- }
- onCloseAutoFocus = (e) => {
- this.opts.onCloseAutoFocus.current?.(e);
- if (e.defaultPrevented || this.#isSub) return;
- if (this.parentMenu.triggerNode && isTabbable(this.parentMenu.triggerNode)) {
- e.preventDefault();
- this.parentMenu.triggerNode.focus();
- }
- };
- handleTabKeyDown(e) {
- let rootMenu = this.parentMenu;
- while (strict_equals(rootMenu.parentMenu, null, false)) {
- rootMenu = rootMenu.parentMenu;
- }
- if (!rootMenu.triggerNode) return;
- e.preventDefault();
- const nodeToFocus = getTabbableFrom(rootMenu.triggerNode, e.shiftKey ? "prev" : "next");
- if (nodeToFocus) {
- this.parentMenu.root.ignoreCloseAutoFocus = true;
- rootMenu.onClose();
- afterTick(() => {
- nodeToFocus.focus();
- afterTick(() => {
- this.parentMenu.root.ignoreCloseAutoFocus = false;
- });
- });
- } else {
- this.domContext.getDocument().body.focus();
- }
- }
- onkeydown(e) {
- if (e.defaultPrevented) return;
- if (strict_equals(e.key, kbd_constants_exports.TAB)) {
- this.handleTabKeyDown(e);
- return;
- }
- const target = e.target;
- const currentTarget = e.currentTarget;
- if (!isHTMLElement2(target) || !isHTMLElement2(currentTarget)) return;
- const isKeydownInside = strict_equals(target.closest(`[${this.parentMenu.root.getBitsAttr("content")}]`)?.id, this.parentMenu.contentId.current);
- const isModifierKey = e.ctrlKey || e.altKey || e.metaKey;
- const isCharacterKey = strict_equals(e.key.length, 1);
- const kbdFocusedEl = this.rovingFocusGroup.handleKeydown(target, e);
- if (kbdFocusedEl) return;
- if (strict_equals(e.code, "Space")) return;
- const candidateNodes = this.#getCandidateNodes();
- if (isKeydownInside) {
- if (!isModifierKey && isCharacterKey) {
- this.#handleTypeaheadSearch(e.key, candidateNodes);
- }
- }
- if (strict_equals(e.target?.id, this.parentMenu.contentId.current, false)) return;
- if (!FIRST_LAST_KEYS2.includes(e.key)) return;
- e.preventDefault();
- if (LAST_KEYS2.includes(e.key)) {
- candidateNodes.reverse();
- }
- focusFirst(candidateNodes, { select: false }, () => this.domContext.getActiveElement());
- }
- onblur(e) {
- if (!isElement2(e.currentTarget)) return;
- if (!isElement2(e.target)) return;
- if (!e.currentTarget.contains?.(e.target)) {
- this.domContext.getWindow().clearTimeout(this.#timer);
- this.search = "";
- }
- }
- onfocus(_) {
- if (!this.parentMenu.root.isUsingKeyboard.current) return;
- afterTick(() => this.rovingFocusGroup.focusFirstCandidate());
- }
- onItemEnter() {
- return this.#isPointerMovingToSubmenu();
- }
- onItemLeave(e) {
- if (e.currentTarget.hasAttribute(this.parentMenu.root.getBitsAttr("sub-trigger"))) return;
- if (this.#isPointerMovingToSubmenu() || this.parentMenu.root.isUsingKeyboard.current) return;
- const contentNode = this.parentMenu.contentNode;
- contentNode?.focus();
- this.rovingFocusGroup.setCurrentTabStopId("");
- }
- onTriggerLeave() {
- if (this.#isPointerMovingToSubmenu()) return true;
- return false;
- }
- handleInteractOutside(e) {
- if (!isElementOrSVGElement(e.target)) return;
- const triggerId = this.parentMenu.triggerNode?.id;
- if (strict_equals(e.target.id, triggerId)) {
- e.preventDefault();
- return;
- }
- if (e.target.closest(`#${triggerId}`)) {
- e.preventDefault();
- }
- }
- get shouldRender() {
- return this.parentMenu.contentPresence.shouldRender;
- }
- #snippetProps = tag(user_derived(() => ({ open: this.parentMenu.opts.open.current })), "MenuContentState.snippetProps");
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "menu",
- "aria-orientation": "vertical",
- [this.parentMenu.root.getBitsAttr("content")]: "",
- "data-state": getDataOpenClosed(this.parentMenu.opts.open.current),
- onkeydown: this.onkeydown,
- onblur: this.onblur,
- onfocus: this.onfocus,
- dir: this.parentMenu.root.opts.dir.current,
- style: { pointerEvents: "auto" },
- ...this.attachment
- })),
- "MenuContentState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
- popperProps = { onCloseAutoFocus: (e) => this.onCloseAutoFocus(e) };
-};
-var MenuItemSharedState = class {
- opts;
- content;
- attachment;
- #isFocused = tag(state(false), "MenuItemSharedState.#isFocused");
- constructor(opts, content) {
- this.opts = opts;
- this.content = content;
- this.attachment = attachRef(this.opts.ref);
- this.onpointermove = this.onpointermove.bind(this);
- this.onpointerleave = this.onpointerleave.bind(this);
- this.onfocus = this.onfocus.bind(this);
- this.onblur = this.onblur.bind(this);
- }
- onpointermove(e) {
- if (e.defaultPrevented) return;
- if (!isMouseEvent(e)) return;
- if (this.opts.disabled.current) {
- this.content.onItemLeave(e);
- } else {
- const defaultPrevented = this.content.onItemEnter();
- if (defaultPrevented) return;
- const item = e.currentTarget;
- if (!isHTMLElement2(item)) return;
- item.focus();
- }
- }
- onpointerleave(e) {
- if (e.defaultPrevented) return;
- if (!isMouseEvent(e)) return;
- this.content.onItemLeave(e);
- }
- onfocus(e) {
- afterTick(() => {
- if (e.defaultPrevented || this.opts.disabled.current) return;
- set(this.#isFocused, true);
- });
- }
- onblur(e) {
- afterTick(() => {
- if (e.defaultPrevented) return;
- set(this.#isFocused, false);
- });
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- tabindex: -1,
- role: "menuitem",
- "aria-disabled": boolToStr(this.opts.disabled.current),
- "data-disabled": boolToEmptyStrOrUndef(this.opts.disabled.current),
- "data-highlighted": get(this.#isFocused) ? "" : void 0,
- [this.content.parentMenu.root.getBitsAttr("item")]: "",
- //
- onpointermove: this.onpointermove,
- onpointerleave: this.onpointerleave,
- onfocus: this.onfocus,
- onblur: this.onblur,
- ...this.attachment
- })),
- "MenuItemSharedState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuItemState = class _MenuItemState {
- static create(opts) {
- const item = new MenuItemSharedState(opts, MenuContentContext.get());
- return new _MenuItemState(opts, item);
- }
- opts;
- item;
- root;
- #isPointerDown = false;
- constructor(opts, item) {
- this.opts = opts;
- this.item = item;
- this.root = item.content.parentMenu.root;
- this.onkeydown = this.onkeydown.bind(this);
- this.onclick = this.onclick.bind(this);
- this.onpointerdown = this.onpointerdown.bind(this);
- this.onpointerup = this.onpointerup.bind(this);
- }
- #handleSelect() {
- if (this.item.opts.disabled.current) return;
- const selectEvent = new CustomEvent("menuitemselect", { bubbles: true, cancelable: true });
- this.opts.onSelect.current(selectEvent);
- if (selectEvent.defaultPrevented) {
- this.item.content.parentMenu.root.isUsingKeyboard.current = false;
- return;
- }
- if (this.opts.closeOnSelect.current) {
- this.item.content.parentMenu.root.opts.onClose();
- }
- }
- onkeydown(e) {
- const isTypingAhead = strict_equals(this.item.content.search, "", false);
- if (this.item.opts.disabled.current || isTypingAhead && strict_equals(e.key, kbd_constants_exports.SPACE)) return;
- if (SELECTION_KEYS2.includes(e.key)) {
- if (!isHTMLElement2(e.currentTarget)) return;
- e.currentTarget.click();
- e.preventDefault();
- }
- }
- onclick(_) {
- if (this.item.opts.disabled.current) return;
- this.#handleSelect();
- }
- onpointerup(e) {
- if (e.defaultPrevented) return;
- if (!this.#isPointerDown) {
- if (!isHTMLElement2(e.currentTarget)) return;
- e.currentTarget?.click();
- }
- }
- onpointerdown(_) {
- this.#isPointerDown = true;
- }
- #props = tag(
- user_derived(() => mergeProps(this.item.props, {
- onclick: this.onclick,
- onpointerdown: this.onpointerdown,
- onpointerup: this.onpointerup,
- onkeydown: this.onkeydown
- })),
- "MenuItemState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuSubTriggerState = class _MenuSubTriggerState {
- static create(opts) {
- const content = MenuContentContext.get();
- const item = new MenuItemSharedState(opts, content);
- const submenu = MenuMenuContext.get();
- return new _MenuSubTriggerState(opts, item, content, submenu);
- }
- opts;
- item;
- content;
- submenu;
- attachment;
- #openTimer = null;
- constructor(opts, item, content, submenu) {
- this.opts = opts;
- this.item = item;
- this.content = content;
- this.submenu = submenu;
- this.attachment = attachRef(this.opts.ref, (v) => this.submenu.triggerNode = v);
- this.onpointerleave = this.onpointerleave.bind(this);
- this.onpointermove = this.onpointermove.bind(this);
- this.onkeydown = this.onkeydown.bind(this);
- this.onclick = this.onclick.bind(this);
- onDestroyEffect(() => {
- this.#clearOpenTimer();
- });
- }
- #clearOpenTimer() {
- if (strict_equals(this.#openTimer, null)) return;
- this.content.domContext.getWindow().clearTimeout(this.#openTimer);
- this.#openTimer = null;
- }
- onpointermove(e) {
- if (!isMouseEvent(e)) return;
- if (!this.item.opts.disabled.current && !this.submenu.opts.open.current && !this.#openTimer && !this.content.parentMenu.root.isPointerInTransit) {
- this.#openTimer = this.content.domContext.setTimeout(
- () => {
- this.submenu.onOpen();
- this.#clearOpenTimer();
- },
- this.opts.openDelay.current
- );
- }
- }
- onpointerleave(e) {
- if (!isMouseEvent(e)) return;
- this.#clearOpenTimer();
- }
- onkeydown(e) {
- const isTypingAhead = strict_equals(this.content.search, "", false);
- if (this.item.opts.disabled.current || isTypingAhead && strict_equals(e.key, kbd_constants_exports.SPACE)) return;
- if (SUB_OPEN_KEYS[this.submenu.root.opts.dir.current].includes(e.key)) {
- e.currentTarget.click();
- e.preventDefault();
- }
- }
- onclick(e) {
- if (this.item.opts.disabled.current) return;
- if (!isHTMLElement2(e.currentTarget)) return;
- e.currentTarget.focus();
- const selectEvent = new CustomEvent("menusubtriggerselect", { bubbles: true, cancelable: true });
- this.opts.onSelect.current(selectEvent);
- if (!this.submenu.opts.open.current) {
- this.submenu.onOpen();
- afterTick(() => {
- const contentNode = this.submenu.contentNode;
- if (!contentNode) return;
- MenuOpenEvent.dispatch(contentNode);
- });
- }
- }
- #props = tag(
- user_derived(() => mergeProps(
- {
- "aria-haspopup": "menu",
- "aria-expanded": boolToStr(this.submenu.opts.open.current),
- "data-state": getDataOpenClosed(this.submenu.opts.open.current),
- "aria-controls": this.submenu.opts.open.current ? this.submenu.contentId.current : void 0,
- [this.submenu.root.getBitsAttr("sub-trigger")]: "",
- onclick: this.onclick,
- onpointermove: this.onpointermove,
- onpointerleave: this.onpointerleave,
- onkeydown: this.onkeydown,
- ...this.attachment
- },
- this.item.props
- )),
- "MenuSubTriggerState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuCheckboxItemState = class _MenuCheckboxItemState {
- static create(opts, checkboxGroup) {
- const item = new MenuItemState(opts, new MenuItemSharedState(opts, MenuContentContext.get()));
- return new _MenuCheckboxItemState(opts, item, checkboxGroup);
- }
- opts;
- item;
- group;
- constructor(opts, item, group = null) {
- this.opts = opts;
- this.item = item;
- this.group = group;
- if (this.group) {
- watch(() => this.group.opts.value.current, (groupValues) => {
- this.opts.checked.current = groupValues.includes(this.opts.value.current);
- });
- watch(() => this.opts.checked.current, (checked) => {
- if (checked) {
- this.group.addValue(this.opts.value.current);
- } else {
- this.group.removeValue(this.opts.value.current);
- }
- });
- }
- }
- toggleChecked() {
- if (this.opts.indeterminate.current) {
- this.opts.indeterminate.current = false;
- this.opts.checked.current = true;
- } else {
- this.opts.checked.current = !this.opts.checked.current;
- }
- }
- #snippetProps = tag(
- user_derived(() => ({
- checked: this.opts.checked.current,
- indeterminate: this.opts.indeterminate.current
- })),
- "MenuCheckboxItemState.snippetProps"
- );
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- #props = tag(
- user_derived(() => ({
- ...this.item.props,
- role: "menuitemcheckbox",
- "aria-checked": getAriaChecked(this.opts.checked.current, this.opts.indeterminate.current),
- "data-state": getCheckedState(this.opts.checked.current),
- [this.item.root.getBitsAttr("checkbox-item")]: ""
- })),
- "MenuCheckboxItemState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuGroupState = class _MenuGroupState {
- static create(opts) {
- return MenuGroupContext.set(new _MenuGroupState(opts, MenuRootContext.get()));
- }
- opts;
- root;
- attachment;
- #groupHeadingId = tag(state(void 0), "MenuGroupState.groupHeadingId");
- get groupHeadingId() {
- return get(this.#groupHeadingId);
- }
- set groupHeadingId(value) {
- set(this.#groupHeadingId, value, true);
- }
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "group",
- "aria-labelledby": this.groupHeadingId,
- [this.root.getBitsAttr("group")]: "",
- ...this.attachment
- })),
- "MenuGroupState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuGroupHeadingState = class _MenuGroupHeadingState {
- static create(opts) {
- const checkboxGroup = MenuCheckboxGroupContext.getOr(null);
- if (checkboxGroup) return new _MenuGroupHeadingState(opts, checkboxGroup);
- const radioGroup = MenuRadioGroupContext.getOr(null);
- if (radioGroup) return new _MenuGroupHeadingState(opts, radioGroup);
- return new _MenuGroupHeadingState(opts, MenuGroupContext.get());
- }
- opts;
- group;
- attachment;
- constructor(opts, group) {
- this.opts = opts;
- this.group = group;
- this.attachment = attachRef(this.opts.ref, (v) => this.group.groupHeadingId = v?.id);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "group",
- [this.group.root.getBitsAttr("group-heading")]: "",
- ...this.attachment
- })),
- "MenuGroupHeadingState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuSeparatorState = class _MenuSeparatorState {
- static create(opts) {
- return new _MenuSeparatorState(opts, MenuRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "group",
- [this.root.getBitsAttr("separator")]: "",
- ...this.attachment
- })),
- "MenuSeparatorState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuArrowState = class _MenuArrowState {
- static create() {
- return new _MenuArrowState(MenuRootContext.get());
- }
- root;
- constructor(root18) {
- this.root = root18;
- }
- #props = tag(user_derived(() => ({ [this.root.getBitsAttr("arrow")]: "" })), "MenuArrowState.props");
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuRadioGroupState = class _MenuRadioGroupState {
- static create(opts) {
- return MenuGroupContext.set(MenuRadioGroupContext.set(new _MenuRadioGroupState(opts, MenuContentContext.get())));
- }
- opts;
- content;
- attachment;
- #groupHeadingId = tag(state(null), "MenuRadioGroupState.groupHeadingId");
- get groupHeadingId() {
- return get(this.#groupHeadingId);
- }
- set groupHeadingId(value) {
- set(this.#groupHeadingId, value, true);
- }
- root;
- constructor(opts, content) {
- this.opts = opts;
- this.content = content;
- this.root = content.parentMenu.root;
- this.attachment = attachRef(this.opts.ref);
- }
- setValue(v) {
- this.opts.value.current = v;
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- [this.root.getBitsAttr("radio-group")]: "",
- role: "group",
- "aria-labelledby": this.groupHeadingId,
- ...this.attachment
- })),
- "MenuRadioGroupState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuRadioItemState = class _MenuRadioItemState {
- static create(opts) {
- const radioGroup = MenuRadioGroupContext.get();
- const sharedItem = new MenuItemSharedState(opts, radioGroup.content);
- const item = new MenuItemState(opts, sharedItem);
- return new _MenuRadioItemState(opts, item, radioGroup);
- }
- opts;
- item;
- group;
- attachment;
- #isChecked = tag(user_derived(() => strict_equals(this.group.opts.value.current, this.opts.value.current)), "MenuRadioItemState.isChecked");
- get isChecked() {
- return get(this.#isChecked);
- }
- set isChecked(value) {
- set(this.#isChecked, value);
- }
- constructor(opts, item, group) {
- this.opts = opts;
- this.item = item;
- this.group = group;
- this.attachment = attachRef(this.opts.ref);
- }
- selectValue() {
- this.group.setValue(this.opts.value.current);
- }
- #props = tag(
- user_derived(() => ({
- [this.group.root.getBitsAttr("radio-item")]: "",
- ...this.item.props,
- role: "menuitemradio",
- "aria-checked": getAriaChecked(this.isChecked, false),
- "data-state": getCheckedState(this.isChecked),
- ...this.attachment
- })),
- "MenuRadioItemState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var DropdownMenuTriggerState = class _DropdownMenuTriggerState {
- static create(opts) {
- return new _DropdownMenuTriggerState(opts, MenuMenuContext.get());
- }
- opts;
- parentMenu;
- attachment;
- constructor(opts, parentMenu) {
- this.opts = opts;
- this.parentMenu = parentMenu;
- this.attachment = attachRef(this.opts.ref, (v) => this.parentMenu.triggerNode = v);
- }
- onclick = (e) => {
- if (this.opts.disabled.current || strict_equals(e.detail, 0, false)) return;
- this.parentMenu.toggleOpen();
- e.preventDefault();
- };
- onpointerdown = (e) => {
- if (this.opts.disabled.current) return;
- if (strict_equals(e.pointerType, "touch")) return e.preventDefault();
- if (strict_equals(e.button, 0) && strict_equals(e.ctrlKey, false)) {
- this.parentMenu.toggleOpen();
- if (!this.parentMenu.opts.open.current) e.preventDefault();
- }
- };
- onpointerup = (e) => {
- if (this.opts.disabled.current) return;
- if (strict_equals(e.pointerType, "touch")) {
- e.preventDefault();
- this.parentMenu.toggleOpen();
- }
- };
- onkeydown = (e) => {
- if (this.opts.disabled.current) return;
- if (strict_equals(e.key, kbd_constants_exports.SPACE) || strict_equals(e.key, kbd_constants_exports.ENTER)) {
- this.parentMenu.toggleOpen();
- e.preventDefault();
- return;
- }
- if (strict_equals(e.key, kbd_constants_exports.ARROW_DOWN)) {
- this.parentMenu.onOpen();
- e.preventDefault();
- }
- };
- #ariaControls = tag(
- user_derived(() => {
- if (this.parentMenu.opts.open.current && this.parentMenu.contentId.current) return this.parentMenu.contentId.current;
- return void 0;
- }),
- "DropdownMenuTriggerState.#ariaControls"
- );
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- disabled: this.opts.disabled.current,
- "aria-haspopup": "menu",
- "aria-expanded": boolToStr(this.parentMenu.opts.open.current),
- "aria-controls": get(this.#ariaControls),
- "data-disabled": boolToEmptyStrOrUndef(this.opts.disabled.current),
- "data-state": getDataOpenClosed(this.parentMenu.opts.open.current),
- [this.parentMenu.root.getBitsAttr("trigger")]: "",
- //
- onclick: this.onclick,
- onpointerdown: this.onpointerdown,
- onpointerup: this.onpointerup,
- onkeydown: this.onkeydown,
- ...this.attachment
- })),
- "DropdownMenuTriggerState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var ContextMenuTriggerState = class _ContextMenuTriggerState {
- static create(opts) {
- return new _ContextMenuTriggerState(opts, MenuMenuContext.get());
- }
- opts;
- parentMenu;
- attachment;
- #point = tag(state(proxy({ x: 0, y: 0 })), "ContextMenuTriggerState.#point");
- virtualElement = simpleBox({
- getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...get(this.#point) })
- });
- #longPressTimer = null;
- constructor(opts, parentMenu) {
- this.opts = opts;
- this.parentMenu = parentMenu;
- this.attachment = attachRef(this.opts.ref, (v) => this.parentMenu.triggerNode = v);
- this.oncontextmenu = this.oncontextmenu.bind(this);
- this.onpointerdown = this.onpointerdown.bind(this);
- this.onpointermove = this.onpointermove.bind(this);
- this.onpointercancel = this.onpointercancel.bind(this);
- this.onpointerup = this.onpointerup.bind(this);
- watch(() => get(this.#point), (point) => {
- this.virtualElement.current = {
- getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point })
- };
- });
- watch(() => this.opts.disabled.current, (isDisabled) => {
- if (isDisabled) {
- this.#clearLongPressTimer();
- }
- });
- onDestroyEffect(() => this.#clearLongPressTimer());
- }
- #clearLongPressTimer() {
- if (strict_equals(this.#longPressTimer, null)) return;
- getWindow(this.opts.ref.current).clearTimeout(this.#longPressTimer);
- }
- #handleOpen(e) {
- set(this.#point, { x: e.clientX, y: e.clientY }, true);
- this.parentMenu.onOpen();
- }
- oncontextmenu(e) {
- if (e.defaultPrevented || this.opts.disabled.current) return;
- this.#clearLongPressTimer();
- this.#handleOpen(e);
- e.preventDefault();
- this.parentMenu.contentNode?.focus();
- }
- onpointerdown(e) {
- if (this.opts.disabled.current || isMouseEvent(e)) return;
- this.#clearLongPressTimer();
- this.#longPressTimer = getWindow(this.opts.ref.current).setTimeout(() => this.#handleOpen(e), 700);
- }
- onpointermove(e) {
- if (this.opts.disabled.current || isMouseEvent(e)) return;
- this.#clearLongPressTimer();
- }
- onpointercancel(e) {
- if (this.opts.disabled.current || isMouseEvent(e)) return;
- this.#clearLongPressTimer();
- }
- onpointerup(e) {
- if (this.opts.disabled.current || isMouseEvent(e)) return;
- this.#clearLongPressTimer();
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- disabled: this.opts.disabled.current,
- "data-disabled": boolToEmptyStrOrUndef(this.opts.disabled.current),
- "data-state": getDataOpenClosed(this.parentMenu.opts.open.current),
- [CONTEXT_MENU_TRIGGER_ATTR]: "",
- tabindex: -1,
- //
- onpointerdown: this.onpointerdown,
- onpointermove: this.onpointermove,
- onpointercancel: this.onpointercancel,
- onpointerup: this.onpointerup,
- oncontextmenu: this.oncontextmenu,
- ...this.attachment
- })),
- "ContextMenuTriggerState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuCheckboxGroupState = class _MenuCheckboxGroupState {
- static create(opts) {
- return MenuCheckboxGroupContext.set(new _MenuCheckboxGroupState(opts, MenuContentContext.get()));
- }
- opts;
- content;
- root;
- attachment;
- #groupHeadingId = tag(state(null), "MenuCheckboxGroupState.groupHeadingId");
- get groupHeadingId() {
- return get(this.#groupHeadingId);
- }
- set groupHeadingId(value) {
- set(this.#groupHeadingId, value, true);
- }
- constructor(opts, content) {
- this.opts = opts;
- this.content = content;
- this.root = content.parentMenu.root;
- this.attachment = attachRef(this.opts.ref);
- }
- addValue(checkboxValue) {
- if (!checkboxValue) return;
- if (!this.opts.value.current.includes(checkboxValue)) {
- const newValue = [...snapshot(this.opts.value.current), checkboxValue];
- this.opts.value.current = newValue;
- this.opts.onValueChange.current(newValue);
- }
- }
- removeValue(checkboxValue) {
- if (!checkboxValue) return;
- const index = this.opts.value.current.indexOf(checkboxValue);
- if (strict_equals(index, -1)) return;
- const newValue = this.opts.value.current.filter((v) => strict_equals(v, checkboxValue, false));
- this.opts.value.current = newValue;
- this.opts.onValueChange.current(newValue);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- [this.root.getBitsAttr("checkbox-group")]: "",
- role: "group",
- "aria-labelledby": this.groupHeadingId,
- ...this.attachment
- })),
- "MenuCheckboxGroupState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var MenuSubmenuState = class {
- static create(opts) {
- const menu = MenuMenuContext.get();
- return MenuMenuContext.set(new MenuMenuState(opts, menu.root, menu));
- }
-};
-
-// node_modules/bits-ui/dist/bits/utilities/dismissible-layer/use-dismissable-layer.svelte.js
-globalThis.bitsDismissableLayers ??= /* @__PURE__ */ new Map();
-var DismissibleLayerState = class _DismissibleLayerState {
- static create(opts) {
- return new _DismissibleLayerState(opts);
- }
- opts;
- #interactOutsideProp;
- #behaviorType;
- #interceptedEvents = { pointerdown: false };
- #isResponsibleLayer = false;
- #isFocusInsideDOMTree = false;
- #documentObj = void 0;
- #onFocusOutside;
- #unsubClickListener = noop3;
- constructor(opts) {
- this.opts = opts;
- this.#behaviorType = opts.interactOutsideBehavior;
- this.#interactOutsideProp = opts.onInteractOutside;
- this.#onFocusOutside = opts.onFocusOutside;
- user_effect(() => {
- this.#documentObj = getOwnerDocument2(this.opts.ref.current);
- });
- let unsubEvents = noop3;
- const cleanup = () => {
- this.#resetState();
- globalThis.bitsDismissableLayers.delete(this);
- this.#handleInteractOutside.destroy();
- unsubEvents();
- };
- watch([() => this.opts.enabled.current, () => this.opts.ref.current], () => {
- if (!this.opts.enabled.current || !this.opts.ref.current) return;
- afterSleep(1, () => {
- if (!this.opts.ref.current) return;
- globalThis.bitsDismissableLayers.set(this, this.#behaviorType);
- unsubEvents();
- unsubEvents = this.#addEventListeners();
- });
- return cleanup;
- });
- onDestroyEffect(() => {
- this.#resetState.destroy();
- globalThis.bitsDismissableLayers.delete(this);
- this.#handleInteractOutside.destroy();
- this.#unsubClickListener();
- unsubEvents();
- });
- }
- #handleFocus = (event) => {
- if (event.defaultPrevented) return;
- if (!this.opts.ref.current) return;
- afterTick(() => {
- if (!this.opts.ref.current || this.#isTargetWithinLayer(event.target)) return;
- if (event.target && !this.#isFocusInsideDOMTree) {
- this.#onFocusOutside.current?.(event);
- }
- });
- };
- #addEventListeners() {
- return executeCallbacks(
- /**
- * CAPTURE INTERACTION START
- * mark interaction-start event as intercepted.
- * mark responsible layer during interaction start
- * to avoid checking if is responsible layer during interaction end
- * when a new floating element may have been opened.
- */
- on(this.#documentObj, "pointerdown", executeCallbacks(this.#markInterceptedEvent, this.#markResponsibleLayer), { capture: true }),
- /**
- * BUBBLE INTERACTION START
- * Mark interaction-start event as non-intercepted. Debounce `onInteractOutsideStart`
- * to avoid prematurely checking if other events were intercepted.
- */
- on(this.#documentObj, "pointerdown", executeCallbacks(this.#markNonInterceptedEvent, this.#handleInteractOutside)),
- /**
- * HANDLE FOCUS OUTSIDE
- */
- on(this.#documentObj, "focusin", this.#handleFocus)
- );
- }
- #handleDismiss = (e) => {
- let event = e;
- if (event.defaultPrevented) {
- event = createWrappedEvent(e);
- }
- this.#interactOutsideProp.current(e);
- };
- #handleInteractOutside = debounce2(
- (e) => {
- if (!this.opts.ref.current) {
- this.#unsubClickListener();
- return;
- }
- const isEventValid = this.opts.isValidEvent.current(e, this.opts.ref.current) || isValidEvent(e, this.opts.ref.current);
- if (!this.#isResponsibleLayer || this.#isAnyEventIntercepted() || !isEventValid) {
- this.#unsubClickListener();
- return;
- }
- let event = e;
- if (event.defaultPrevented) {
- event = createWrappedEvent(event);
- }
- if (strict_equals(this.#behaviorType.current, "close", false) && strict_equals(this.#behaviorType.current, "defer-otherwise-close", false)) {
- this.#unsubClickListener();
- return;
- }
- if (strict_equals(e.pointerType, "touch")) {
- this.#unsubClickListener();
- this.#unsubClickListener = on(this.#documentObj, "click", this.#handleDismiss, { once: true });
- } else {
- this.#interactOutsideProp.current(event);
- }
- },
- 10
- );
- #markInterceptedEvent = (e) => {
- this.#interceptedEvents[e.type] = true;
- };
- #markNonInterceptedEvent = (e) => {
- this.#interceptedEvents[e.type] = false;
- };
- #markResponsibleLayer = () => {
- if (!this.opts.ref.current) return;
- this.#isResponsibleLayer = isResponsibleLayer(this.opts.ref.current);
- };
- #isTargetWithinLayer = (target) => {
- if (!this.opts.ref.current) return false;
- return isOrContainsTarget2(this.opts.ref.current, target);
- };
- #resetState = debounce2(
- () => {
- for (const eventType in this.#interceptedEvents) {
- this.#interceptedEvents[eventType] = false;
- }
- this.#isResponsibleLayer = false;
- },
- 20
- );
- #isAnyEventIntercepted() {
- const i = Object.values(this.#interceptedEvents).some(Boolean);
- return i;
- }
- #onfocuscapture = () => {
- this.#isFocusInsideDOMTree = true;
- };
- #onblurcapture = () => {
- this.#isFocusInsideDOMTree = false;
- };
- props = {
- onfocuscapture: this.#onfocuscapture,
- onblurcapture: this.#onblurcapture
- };
-};
-function getTopMostDismissableLayer(layersArr = [...globalThis.bitsDismissableLayers]) {
- return layersArr.findLast(([_, { current: behaviorType }]) => strict_equals(behaviorType, "close") || strict_equals(behaviorType, "ignore"));
-}
-function isResponsibleLayer(node) {
- const layersArr = [...globalThis.bitsDismissableLayers];
- const topMostLayer = getTopMostDismissableLayer(layersArr);
- if (topMostLayer) return strict_equals(topMostLayer[0].opts.ref.current, node);
- const [firstLayerNode] = layersArr[0];
- return strict_equals(firstLayerNode.opts.ref.current, node);
-}
-function isValidEvent(e, node) {
- const target = e.target;
- if (!isElementOrSVGElement(target)) return false;
- const targetIsContextMenuTrigger = Boolean(target.closest(`[${CONTEXT_MENU_TRIGGER_ATTR}]`));
- if ("button" in e && e.button > 0 && !targetIsContextMenuTrigger) return false;
- if ("button" in e && strict_equals(e.button, 0) && targetIsContextMenuTrigger) return true;
- const nodeIsContextMenu = Boolean(node.closest(`[${CONTEXT_MENU_CONTENT_ATTR}]`));
- if (targetIsContextMenuTrigger && nodeIsContextMenu) return false;
- const ownerDocument = getOwnerDocument2(target);
- const isValid = ownerDocument.documentElement.contains(target) && !isOrContainsTarget2(node, target) && isClickTrulyOutside(e, node);
- return isValid;
-}
-function createWrappedEvent(e) {
- const capturedCurrentTarget = e.currentTarget;
- const capturedTarget = e.target;
- let newEvent;
- if (e instanceof PointerEvent) {
- newEvent = new PointerEvent(e.type, e);
- } else {
- newEvent = new PointerEvent("pointerdown", e);
- }
- let isPrevented = false;
- const wrappedEvent = new Proxy(newEvent, {
- get: (target, prop2) => {
- if (strict_equals(prop2, "currentTarget")) {
- return capturedCurrentTarget;
- }
- if (strict_equals(prop2, "target")) {
- return capturedTarget;
- }
- if (strict_equals(prop2, "preventDefault")) {
- return () => {
- isPrevented = true;
- if (strict_equals(typeof target.preventDefault, "function")) {
- target.preventDefault();
- }
- };
- }
- if (strict_equals(prop2, "defaultPrevented")) {
- return isPrevented;
- }
- if (prop2 in target) {
- return target[prop2];
- }
- return e[prop2];
- }
- });
- return wrappedEvent;
-}
-
-// node_modules/bits-ui/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte
-Dismissible_layer[FILENAME] = "node_modules/bits-ui/dist/bits/utilities/dismissible-layer/dismissible-layer.svelte";
-function Dismissible_layer($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Dismissible_layer);
- let interactOutsideBehavior = prop($$props, "interactOutsideBehavior", 3, "close"), onInteractOutside = prop($$props, "onInteractOutside", 3, noop3), onFocusOutside = prop($$props, "onFocusOutside", 3, noop3), isValidEvent2 = prop($$props, "isValidEvent", 3, () => false);
- const dismissibleLayerState = DismissibleLayerState.create({
- id: boxWith(() => $$props.id),
- interactOutsideBehavior: boxWith(() => interactOutsideBehavior()),
- onInteractOutside: boxWith(() => onInteractOutside()),
- enabled: boxWith(() => $$props.enabled),
- onFocusOutside: boxWith(() => onFocusOutside()),
- isValidEvent: boxWith(() => isValidEvent2()),
- ref: $$props.ref
- });
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- add_svelte_meta(() => snippet(node, () => $$props.children ?? noop, () => ({ props: dismissibleLayerState.props })), "render", Dismissible_layer, 29, 0);
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Dismissible_layer = hmr(Dismissible_layer, () => Dismissible_layer[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Dismissible_layer[HMR].source;
- set(Dismissible_layer[HMR].source, module.default[HMR].original);
- });
-}
-var dismissible_layer_default = Dismissible_layer;
-
-// node_modules/bits-ui/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js
-globalThis.bitsEscapeLayers ??= /* @__PURE__ */ new Map();
-var EscapeLayerState = class _EscapeLayerState {
- static create(opts) {
- return new _EscapeLayerState(opts);
- }
- opts;
- domContext;
- constructor(opts) {
- this.opts = opts;
- this.domContext = new DOMContext(this.opts.ref);
- let unsubEvents = noop3;
- watch(() => opts.enabled.current, (enabled) => {
- if (enabled) {
- globalThis.bitsEscapeLayers.set(this, opts.escapeKeydownBehavior);
- unsubEvents = this.#addEventListener();
- }
- return () => {
- unsubEvents();
- globalThis.bitsEscapeLayers.delete(this);
- };
- });
- }
- #addEventListener = () => {
- return on(this.domContext.getDocument(), "keydown", this.#onkeydown, { passive: false });
- };
- #onkeydown = (e) => {
- if (strict_equals(e.key, kbd_constants_exports.ESCAPE, false) || !isResponsibleEscapeLayer(this)) return;
- const clonedEvent = new KeyboardEvent(e.type, e);
- e.preventDefault();
- const behaviorType = this.opts.escapeKeydownBehavior.current;
- if (strict_equals(behaviorType, "close", false) && strict_equals(behaviorType, "defer-otherwise-close", false)) return;
- this.opts.onEscapeKeydown.current(clonedEvent);
- };
-};
-function isResponsibleEscapeLayer(instance) {
- const layersArr = [...globalThis.bitsEscapeLayers];
- const topMostLayer = layersArr.findLast(([_, { current: behaviorType }]) => strict_equals(behaviorType, "close") || strict_equals(behaviorType, "ignore"));
- if (topMostLayer) return strict_equals(topMostLayer[0], instance);
- const [firstLayerNode] = layersArr[0];
- return strict_equals(firstLayerNode, instance);
-}
-
-// node_modules/bits-ui/dist/bits/utilities/escape-layer/escape-layer.svelte
-Escape_layer[FILENAME] = "node_modules/bits-ui/dist/bits/utilities/escape-layer/escape-layer.svelte";
-function Escape_layer($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Escape_layer);
- let escapeKeydownBehavior = prop($$props, "escapeKeydownBehavior", 3, "close"), onEscapeKeydown = prop($$props, "onEscapeKeydown", 3, noop3);
- EscapeLayerState.create({
- escapeKeydownBehavior: boxWith(() => escapeKeydownBehavior()),
- onEscapeKeydown: boxWith(() => onEscapeKeydown()),
- enabled: boxWith(() => $$props.enabled),
- ref: $$props.ref
- });
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- add_svelte_meta(() => snippet(node, () => $$props.children ?? noop), "render", Escape_layer, 23, 0);
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Escape_layer = hmr(Escape_layer, () => Escape_layer[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Escape_layer[HMR].source;
- set(Escape_layer[HMR].source, module.default[HMR].original);
- });
-}
-var escape_layer_default = Escape_layer;
-
-// node_modules/bits-ui/dist/bits/utilities/focus-scope/focus-scope-manager.js
-var FocusScopeManager = class _FocusScopeManager {
- static instance;
- #scopeStack = simpleBox([]);
- #focusHistory = /* @__PURE__ */ new WeakMap();
- #preFocusHistory = /* @__PURE__ */ new WeakMap();
- static getInstance() {
- if (!this.instance) {
- this.instance = new _FocusScopeManager();
- }
- return this.instance;
- }
- register(scope) {
- const current = this.getActive();
- if (current && current !== scope) {
- current.pause();
- }
- const activeElement2 = document.activeElement;
- if (activeElement2 && activeElement2 !== document.body) {
- this.#preFocusHistory.set(scope, activeElement2);
- }
- this.#scopeStack.current = this.#scopeStack.current.filter((s) => s !== scope);
- this.#scopeStack.current.unshift(scope);
- }
- unregister(scope) {
- this.#scopeStack.current = this.#scopeStack.current.filter((s) => s !== scope);
- const next3 = this.getActive();
- if (next3) {
- next3.resume();
- }
- }
- getActive() {
- return this.#scopeStack.current[0];
- }
- setFocusMemory(scope, element2) {
- this.#focusHistory.set(scope, element2);
- }
- getFocusMemory(scope) {
- return this.#focusHistory.get(scope);
- }
- isActiveScope(scope) {
- return this.getActive() === scope;
- }
- setPreFocusMemory(scope, element2) {
- this.#preFocusHistory.set(scope, element2);
- }
- getPreFocusMemory(scope) {
- return this.#preFocusHistory.get(scope);
- }
- clearPreFocusMemory(scope) {
- this.#preFocusHistory.delete(scope);
- }
-};
-
-// node_modules/bits-ui/dist/bits/utilities/focus-scope/focus-scope.svelte.js
-var FocusScope = class _FocusScope {
- #paused = false;
- #container = null;
- #manager = FocusScopeManager.getInstance();
- #cleanupFns = [];
- #opts;
- constructor(opts) {
- this.#opts = opts;
- }
- get paused() {
- return this.#paused;
- }
- pause() {
- this.#paused = true;
- }
- resume() {
- this.#paused = false;
- }
- #cleanup() {
- for (const fn of this.#cleanupFns) {
- fn();
- }
- this.#cleanupFns = [];
- }
- mount(container) {
- if (this.#container) {
- this.unmount();
- }
- this.#container = container;
- this.#manager.register(this);
- this.#setupEventListeners();
- this.#handleOpenAutoFocus();
- }
- unmount() {
- if (!this.#container) return;
- this.#cleanup();
- this.#handleCloseAutoFocus();
- this.#manager.unregister(this);
- this.#manager.clearPreFocusMemory(this);
- this.#container = null;
- }
- #handleOpenAutoFocus() {
- if (!this.#container) return;
- const event = new CustomEvent("focusScope.onOpenAutoFocus", { bubbles: false, cancelable: true });
- this.#opts.onOpenAutoFocus.current(event);
- if (!event.defaultPrevented) {
- requestAnimationFrame(() => {
- if (!this.#container) return;
- const firstTabbable = this.#getFirstTabbable();
- if (firstTabbable) {
- firstTabbable.focus();
- this.#manager.setFocusMemory(this, firstTabbable);
- } else {
- this.#container.focus();
- }
- });
- }
- }
- #handleCloseAutoFocus() {
- const event = new CustomEvent("focusScope.onCloseAutoFocus", { bubbles: false, cancelable: true });
- this.#opts.onCloseAutoFocus.current?.(event);
- if (!event.defaultPrevented) {
- const preFocusedElement = this.#manager.getPreFocusMemory(this);
- if (preFocusedElement && document.contains(preFocusedElement)) {
- try {
- preFocusedElement.focus();
- } catch {
- document.body.focus();
- }
- }
- }
- }
- #setupEventListeners() {
- if (!this.#container || !this.#opts.trap.current) return;
- const container = this.#container;
- const doc = container.ownerDocument;
- const handleFocus = (e) => {
- if (this.#paused || !this.#manager.isActiveScope(this)) return;
- const target = e.target;
- if (!target) return;
- const isInside = container.contains(target);
- if (isInside) {
- this.#manager.setFocusMemory(this, target);
- } else {
- const lastFocused = this.#manager.getFocusMemory(this);
- if (lastFocused && container.contains(lastFocused) && isFocusable(lastFocused)) {
- e.preventDefault();
- lastFocused.focus();
- } else {
- const firstTabbable = this.#getFirstTabbable();
- const firstFocusable = this.#getAllFocusables()[0];
- (firstTabbable || firstFocusable || container).focus();
- }
- }
- };
- const handleKeydown = (e) => {
- if (!this.#opts.loop || this.#paused || strict_equals(e.key, "Tab", false)) return;
- if (!this.#manager.isActiveScope(this)) return;
- const tabbables = this.#getTabbables();
- if (tabbables.length < 2) return;
- const first = tabbables[0];
- const last = tabbables[tabbables.length - 1];
- if (!e.shiftKey && strict_equals(doc.activeElement, last)) {
- e.preventDefault();
- first.focus();
- } else if (e.shiftKey && strict_equals(doc.activeElement, first)) {
- e.preventDefault();
- last.focus();
- }
- };
- this.#cleanupFns.push(on(doc, "focusin", handleFocus, { capture: true }), on(container, "keydown", handleKeydown));
- const observer = new MutationObserver(() => {
- const lastFocused = this.#manager.getFocusMemory(this);
- if (lastFocused && !container.contains(lastFocused)) {
- const firstTabbable = this.#getFirstTabbable();
- const firstFocusable = this.#getAllFocusables()[0];
- const elementToFocus = firstTabbable || firstFocusable;
- if (elementToFocus) {
- elementToFocus.focus();
- this.#manager.setFocusMemory(this, elementToFocus);
- } else {
- container.focus();
- }
- }
- });
- observer.observe(container, { childList: true, subtree: true });
- this.#cleanupFns.push(() => observer.disconnect());
- }
- #getTabbables() {
- if (!this.#container) return [];
- return tabbable(this.#container, { includeContainer: false, getShadowRoot: true });
- }
- #getFirstTabbable() {
- const tabbables = this.#getTabbables();
- return tabbables[0] || null;
- }
- #getAllFocusables() {
- if (!this.#container) return [];
- return focusable(this.#container, { includeContainer: false, getShadowRoot: true });
- }
- static use(opts) {
- let scope = null;
- watch([() => opts.ref.current, () => opts.enabled.current], ([ref, enabled]) => {
- if (ref && enabled) {
- if (!scope) {
- scope = new _FocusScope(opts);
- }
- scope.mount(ref);
- } else if (scope) {
- scope.unmount();
- scope = null;
- }
- });
- onDestroyEffect(() => {
- scope?.unmount();
- });
- return {
- get props() {
- return { tabindex: -1 };
- }
- };
- }
-};
-
-// node_modules/bits-ui/dist/bits/utilities/focus-scope/focus-scope.svelte
-Focus_scope[FILENAME] = "node_modules/bits-ui/dist/bits/utilities/focus-scope/focus-scope.svelte";
-function Focus_scope($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Focus_scope);
- let enabled = prop($$props, "enabled", 3, false), trapFocus = prop($$props, "trapFocus", 3, false), loop = prop($$props, "loop", 3, false), onCloseAutoFocus = prop($$props, "onCloseAutoFocus", 3, noop3), onOpenAutoFocus = prop($$props, "onOpenAutoFocus", 3, noop3);
- const focusScopeState = FocusScope.use({
- enabled: boxWith(() => enabled()),
- trap: boxWith(() => trapFocus()),
- loop: loop(),
- onCloseAutoFocus: boxWith(() => onCloseAutoFocus()),
- onOpenAutoFocus: boxWith(() => onOpenAutoFocus()),
- ref: $$props.ref
- });
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- add_svelte_meta(() => snippet(node, () => $$props.focusScope ?? noop, () => ({ props: focusScopeState.props })), "render", Focus_scope, 27, 0);
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Focus_scope = hmr(Focus_scope, () => Focus_scope[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Focus_scope[HMR].source;
- set(Focus_scope[HMR].source, module.default[HMR].original);
- });
-}
-var focus_scope_default = Focus_scope;
-
-// node_modules/bits-ui/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js
-globalThis.bitsTextSelectionLayers ??= /* @__PURE__ */ new Map();
-var TextSelectionLayerState = class _TextSelectionLayerState {
- static create(opts) {
- return new _TextSelectionLayerState(opts);
- }
- opts;
- domContext;
- #unsubSelectionLock = noop3;
- constructor(opts) {
- this.opts = opts;
- this.domContext = new DOMContext(opts.ref);
- let unsubEvents = noop3;
- watch(() => this.opts.enabled.current, (isEnabled) => {
- if (isEnabled) {
- globalThis.bitsTextSelectionLayers.set(this, this.opts.enabled);
- unsubEvents();
- unsubEvents = this.#addEventListeners();
- }
- return () => {
- unsubEvents();
- this.#resetSelectionLock();
- globalThis.bitsTextSelectionLayers.delete(this);
- };
- });
- }
- #addEventListeners() {
- return executeCallbacks(on(this.domContext.getDocument(), "pointerdown", this.#pointerdown), on(this.domContext.getDocument(), "pointerup", composeHandlers(this.#resetSelectionLock, this.opts.onPointerUp.current)));
- }
- #pointerdown = (e) => {
- const node = this.opts.ref.current;
- const target = e.target;
- if (!isHTMLElement2(node) || !isHTMLElement2(target) || !this.opts.enabled.current) return;
- if (!isHighestLayer(this) || !contains(node, target)) return;
- this.opts.onPointerDown.current(e);
- if (e.defaultPrevented) return;
- this.#unsubSelectionLock = preventTextSelectionOverflow(node, this.domContext.getDocument().body);
- };
- #resetSelectionLock = () => {
- this.#unsubSelectionLock();
- this.#unsubSelectionLock = noop3;
- };
-};
-var getUserSelect = (node) => node.style.userSelect || node.style.webkitUserSelect;
-function preventTextSelectionOverflow(node, body) {
- const originalBodyUserSelect = getUserSelect(body);
- const originalNodeUserSelect = getUserSelect(node);
- setUserSelect(body, "none");
- setUserSelect(node, "text");
- return () => {
- setUserSelect(body, originalBodyUserSelect);
- setUserSelect(node, originalNodeUserSelect);
- };
-}
-function setUserSelect(node, value) {
- node.style.userSelect = value;
- node.style.webkitUserSelect = value;
-}
-function isHighestLayer(instance) {
- const layersArr = [...globalThis.bitsTextSelectionLayers];
- if (!layersArr.length) return false;
- const highestLayer = layersArr.at(-1);
- if (!highestLayer) return false;
- return strict_equals(highestLayer[0], instance);
-}
-
-// node_modules/bits-ui/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte
-Text_selection_layer[FILENAME] = "node_modules/bits-ui/dist/bits/utilities/text-selection-layer/text-selection-layer.svelte";
-function Text_selection_layer($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Text_selection_layer);
- let preventOverflowTextSelection = prop($$props, "preventOverflowTextSelection", 3, true), onPointerDown = prop($$props, "onPointerDown", 3, noop3), onPointerUp = prop($$props, "onPointerUp", 3, noop3);
- TextSelectionLayerState.create({
- id: boxWith(() => $$props.id),
- onPointerDown: boxWith(() => onPointerDown()),
- onPointerUp: boxWith(() => onPointerUp()),
- enabled: boxWith(() => $$props.enabled && preventOverflowTextSelection()),
- ref: $$props.ref
- });
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- add_svelte_meta(() => snippet(node, () => $$props.children ?? noop), "render", Text_selection_layer, 26, 0);
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Text_selection_layer = hmr(Text_selection_layer, () => Text_selection_layer[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Text_selection_layer[HMR].source;
- set(Text_selection_layer[HMR].source, module.default[HMR].original);
- });
-}
-var text_selection_layer_default = Text_selection_layer;
-
-// node_modules/bits-ui/dist/internal/use-id.js
-globalThis.bitsIdCounter ??= { current: 0 };
-function useId(prefix = "bits") {
- globalThis.bitsIdCounter.current++;
- return `${prefix}-${globalThis.bitsIdCounter.current}`;
-}
-
-// node_modules/bits-ui/dist/internal/shared-state.svelte.js
-var SharedState = class {
- #factory;
- #subscribers = 0;
- #state = tag(state(), "SharedState.#state");
- #scope;
- constructor(factory) {
- this.#factory = factory;
- }
- #dispose() {
- this.#subscribers -= 1;
- if (this.#scope && this.#subscribers <= 0) {
- this.#scope();
- set(this.#state, void 0);
- this.#scope = void 0;
- }
- }
- get(...args) {
- this.#subscribers += 1;
- if (strict_equals(get(this.#state), void 0)) {
- this.#scope = effect_root(() => {
- set(this.#state, this.#factory(...args), true);
- });
- }
- user_effect(() => {
- return () => {
- this.#dispose();
- };
- });
- return get(this.#state);
- }
-};
-
-// node_modules/bits-ui/dist/internal/body-scroll-lock.svelte.js
-var lockMap = new SvelteMap();
-var initialBodyStyle = tag(state(null), "initialBodyStyle");
-var stopTouchMoveListener = null;
-var cleanupTimeoutId = null;
-var isInCleanupTransition = false;
-var anyLocked = boxWith(() => {
- for (const value of lockMap.values()) {
- if (value) return true;
- }
- return false;
-});
-var cleanupScheduledAt = null;
-var bodyLockStackCount = new SharedState(() => {
- function resetBodyStyle() {
- if (!true_default) return;
- document.body.setAttribute("style", get(initialBodyStyle) ?? "");
- document.body.style.removeProperty("--scrollbar-width");
- isIOS && stopTouchMoveListener?.();
- set(initialBodyStyle, null);
- }
- function cancelPendingCleanup() {
- if (strict_equals(cleanupTimeoutId, null)) return;
- window.clearTimeout(cleanupTimeoutId);
- cleanupTimeoutId = null;
- }
- function scheduleCleanupIfNoNewLocks(delay, callback) {
- cancelPendingCleanup();
- isInCleanupTransition = true;
- cleanupScheduledAt = Date.now();
- const currentCleanupId = cleanupScheduledAt;
- const cleanupFn = () => {
- cleanupTimeoutId = null;
- if (strict_equals(cleanupScheduledAt, currentCleanupId, false)) return;
- if (!isAnyLocked(lockMap)) {
- isInCleanupTransition = false;
- callback();
- } else {
- isInCleanupTransition = false;
- }
- };
- const actualDelay = strict_equals(delay, null) ? 24 : delay;
- cleanupTimeoutId = window.setTimeout(cleanupFn, actualDelay);
- }
- function ensureInitialStyleCaptured() {
- if (strict_equals(get(initialBodyStyle), null) && strict_equals(lockMap.size, 0) && !isInCleanupTransition) {
- set(initialBodyStyle, document.body.getAttribute("style"), true);
- }
- }
- watch(() => anyLocked.current, () => {
- if (!anyLocked.current) return;
- ensureInitialStyleCaptured();
- isInCleanupTransition = false;
- const bodyStyle = getComputedStyle(document.body);
- const verticalScrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
- const paddingRight = Number.parseInt(bodyStyle.paddingRight ?? "0", 10);
- const config = {
- padding: paddingRight + verticalScrollbarWidth,
- margin: Number.parseInt(bodyStyle.marginRight ?? "0", 10)
- };
- if (verticalScrollbarWidth > 0) {
- document.body.style.paddingRight = `${config.padding}px`;
- document.body.style.marginRight = `${config.margin}px`;
- document.body.style.setProperty("--scrollbar-width", `${verticalScrollbarWidth}px`);
- document.body.style.overflow = "hidden";
- }
- if (isIOS) {
- stopTouchMoveListener = on(
- document,
- "touchmove",
- (e) => {
- if (strict_equals(e.target, document.documentElement, false)) return;
- if (e.touches.length > 1) return;
- e.preventDefault();
- },
- { passive: false }
- );
- }
- afterTick(() => {
- document.body.style.pointerEvents = "none";
- document.body.style.overflow = "hidden";
- });
- });
- onDestroyEffect(() => {
- return () => {
- stopTouchMoveListener?.();
- };
- });
- return {
- get lockMap() {
- return lockMap;
- },
- resetBodyStyle,
- scheduleCleanupIfNoNewLocks,
- cancelPendingCleanup,
- ensureInitialStyleCaptured
- };
-});
-var BodyScrollLock = class {
- #id = useId();
- #initialState;
- #restoreScrollDelay = () => null;
- #countState;
- locked;
- constructor(initialState, restoreScrollDelay = () => null) {
- this.#initialState = initialState;
- this.#restoreScrollDelay = restoreScrollDelay;
- this.#countState = bodyLockStackCount.get();
- if (!this.#countState) return;
- this.#countState.cancelPendingCleanup();
- this.#countState.ensureInitialStyleCaptured();
- this.#countState.lockMap.set(this.#id, this.#initialState ?? false);
- this.locked = boxWith(() => this.#countState.lockMap.get(this.#id) ?? false, (v) => this.#countState.lockMap.set(this.#id, v));
- onDestroyEffect(() => {
- this.#countState.lockMap.delete(this.#id);
- if (isAnyLocked(this.#countState.lockMap)) return;
- const restoreScrollDelay2 = this.#restoreScrollDelay();
- this.#countState.scheduleCleanupIfNoNewLocks(restoreScrollDelay2, () => {
- this.#countState.resetBodyStyle();
- });
- });
- }
-};
-function isAnyLocked(map) {
- for (const [_, value] of map) {
- if (value) return true;
- }
- return false;
-}
-
-// node_modules/bits-ui/dist/bits/utilities/scroll-lock/scroll-lock.svelte
-Scroll_lock[FILENAME] = "node_modules/bits-ui/dist/bits/utilities/scroll-lock/scroll-lock.svelte";
-function Scroll_lock($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Scroll_lock);
- let preventScroll = prop($$props, "preventScroll", 3, true), restoreScrollDelay = prop($$props, "restoreScrollDelay", 3, null);
- if (preventScroll()) {
- new BodyScrollLock(preventScroll(), () => restoreScrollDelay());
- }
- var $$exports = { ...legacy_api() };
- return pop($$exports);
-}
-if (import.meta.hot) {
- Scroll_lock = hmr(Scroll_lock, () => Scroll_lock[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Scroll_lock[HMR].source;
- set(Scroll_lock[HMR].source, module.default[HMR].original);
- });
-}
-var scroll_lock_default = Scroll_lock;
-
-// node_modules/bits-ui/dist/bits/alert-dialog/components/alert-dialog-content.svelte
-Alert_dialog_content[FILENAME] = "node_modules/bits-ui/dist/bits/alert-dialog/components/alert-dialog-content.svelte";
-var root_6 = add_locations(from_html(` `, 1), Alert_dialog_content[FILENAME], []);
-var root_8 = add_locations(from_html(` `, 1), Alert_dialog_content[FILENAME], [[94, 7]]);
-function Alert_dialog_content($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Alert_dialog_content);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), forceMount = prop($$props, "forceMount", 3, false), interactOutsideBehavior = prop($$props, "interactOutsideBehavior", 3, "ignore"), onCloseAutoFocus = prop($$props, "onCloseAutoFocus", 3, noop3), onEscapeKeydown = prop($$props, "onEscapeKeydown", 3, noop3), onOpenAutoFocus = prop($$props, "onOpenAutoFocus", 3, noop3), onInteractOutside = prop($$props, "onInteractOutside", 3, noop3), preventScroll = prop($$props, "preventScroll", 3, true), trapFocus = prop($$props, "trapFocus", 3, true), restoreScrollDelay = prop($$props, "restoreScrollDelay", 3, null), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "id",
- "children",
- "child",
- "ref",
- "forceMount",
- "interactOutsideBehavior",
- "onCloseAutoFocus",
- "onEscapeKeydown",
- "onOpenAutoFocus",
- "onInteractOutside",
- "preventScroll",
- "trapFocus",
- "restoreScrollDelay"
- ],
- "restProps"
- );
- const contentState = DialogContentState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, contentState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent_2 = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- const focusScope = wrap_snippet(Alert_dialog_content, function($$anchor3, $$arg0) {
- validate_snippet_args(...arguments);
- let focusScopeProps = () => $$arg0?.().props;
- focusScopeProps();
- var fragment_2 = comment();
- var node_2 = first_child(fragment_2);
- add_svelte_meta(
- () => escape_layer_default(node_2, spread_props(() => get(mergedProps), {
- get enabled() {
- return contentState.root.opts.open.current;
- },
- get ref() {
- return contentState.opts.ref;
- },
- onEscapeKeydown: (e) => {
- onEscapeKeydown()(e);
- if (e.defaultPrevented) return;
- contentState.root.handleClose();
- },
- children: wrap_snippet(Alert_dialog_content, ($$anchor4, $$slotProps) => {
- var fragment_3 = comment();
- var node_3 = first_child(fragment_3);
- add_svelte_meta(
- () => dismissible_layer_default(node_3, spread_props(() => get(mergedProps), {
- get ref() {
- return contentState.opts.ref;
- },
- get enabled() {
- return contentState.root.opts.open.current;
- },
- get interactOutsideBehavior() {
- return interactOutsideBehavior();
- },
- onInteractOutside: (e) => {
- onInteractOutside()(e);
- if (e.defaultPrevented) return;
- contentState.root.handleClose();
- },
- children: wrap_snippet(Alert_dialog_content, ($$anchor5, $$slotProps2) => {
- var fragment_4 = comment();
- var node_4 = first_child(fragment_4);
- add_svelte_meta(
- () => text_selection_layer_default(node_4, spread_props(() => get(mergedProps), {
- get ref() {
- return contentState.opts.ref;
- },
- get enabled() {
- return contentState.root.opts.open.current;
- },
- children: wrap_snippet(Alert_dialog_content, ($$anchor6, $$slotProps3) => {
- var fragment_5 = comment();
- var node_5 = first_child(fragment_5);
- {
- var consequent_1 = ($$anchor7) => {
- var fragment_6 = root_6();
- var node_6 = first_child(fragment_6);
- {
- var consequent = ($$anchor8) => {
- var fragment_7 = comment();
- var node_7 = first_child(fragment_7);
- add_svelte_meta(
- () => scroll_lock_default(node_7, {
- get preventScroll() {
- return preventScroll();
- },
- get restoreScrollDelay() {
- return restoreScrollDelay();
- }
- }),
- "component",
- Alert_dialog_content,
- 86,
- 8,
- { componentTag: "ScrollLock" }
- );
- append($$anchor8, fragment_7);
- };
- add_svelte_meta(
- () => if_block(node_6, ($$render) => {
- if (contentState.root.opts.open.current) $$render(consequent);
- }),
- "if",
- Alert_dialog_content,
- 85,
- 7
- );
- }
- var node_8 = sibling(node_6, 2);
- {
- let $0 = user_derived(() => ({
- props: mergeProps(get(mergedProps), focusScopeProps()),
- ...contentState.snippetProps
- }));
- add_svelte_meta(() => snippet(node_8, () => $$props.child, () => get($0)), "render", Alert_dialog_content, 88, 7);
- }
- append($$anchor7, fragment_6);
- };
- var alternate = ($$anchor7) => {
- var fragment_8 = root_8();
- var node_9 = first_child(fragment_8);
- add_svelte_meta(
- () => scroll_lock_default(node_9, {
- get preventScroll() {
- return preventScroll();
- }
- }),
- "component",
- Alert_dialog_content,
- 93,
- 7,
- { componentTag: "ScrollLock" }
- );
- var div = sibling(node_9, 2);
- attribute_effect(div, ($0) => ({ ...$0 }), [() => mergeProps(get(mergedProps), focusScopeProps())]);
- var node_10 = child(div);
- add_svelte_meta(() => snippet(node_10, () => $$props.children ?? noop), "render", Alert_dialog_content, 95, 8);
- reset(div);
- append($$anchor7, fragment_8);
- };
- add_svelte_meta(
- () => if_block(node_5, ($$render) => {
- if ($$props.child) $$render(consequent_1);
- else $$render(alternate, false);
- }),
- "if",
- Alert_dialog_content,
- 84,
- 6
- );
- }
- append($$anchor6, fragment_5);
- }),
- $$slots: { default: true }
- })),
- "component",
- Alert_dialog_content,
- 79,
- 5,
- { componentTag: "TextSelectionLayer" }
- );
- append($$anchor5, fragment_4);
- }),
- $$slots: { default: true }
- })),
- "component",
- Alert_dialog_content,
- 68,
- 4,
- { componentTag: "DismissibleLayer" }
- );
- append($$anchor4, fragment_3);
- }),
- $$slots: { default: true }
- })),
- "component",
- Alert_dialog_content,
- 58,
- 3,
- { componentTag: "EscapeLayer" }
- );
- append($$anchor3, fragment_2);
- });
- add_svelte_meta(
- () => focus_scope_default(node_1, {
- get ref() {
- return contentState.opts.ref;
- },
- loop: true,
- get trapFocus() {
- return trapFocus();
- },
- get enabled() {
- return contentState.root.opts.open.current;
- },
- get onCloseAutoFocus() {
- return onCloseAutoFocus();
- },
- onOpenAutoFocus: (e) => {
- onOpenAutoFocus()(e);
- if (e.defaultPrevented) return;
- e.preventDefault();
- afterSleep(0, () => contentState.opts.ref.current?.focus());
- },
- focusScope,
- $$slots: { focusScope: true }
- }),
- "component",
- Alert_dialog_content,
- 44,
- 1,
- { componentTag: "FocusScope" }
- );
- }
- append($$anchor2, fragment_1);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if (contentState.shouldRender || forceMount()) $$render(consequent_2);
- }),
- "if",
- Alert_dialog_content,
- 43,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Alert_dialog_content = hmr(Alert_dialog_content, () => Alert_dialog_content[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Alert_dialog_content[HMR].source;
- set(Alert_dialog_content[HMR].source, module.default[HMR].original);
- });
-}
-var alert_dialog_content_default = Alert_dialog_content;
-
-// node_modules/bits-ui/dist/bits/dialog/components/dialog-overlay.svelte
-Dialog_overlay[FILENAME] = "node_modules/bits-ui/dist/bits/dialog/components/dialog-overlay.svelte";
-var root_3 = add_locations(from_html(``), Dialog_overlay[FILENAME], [[33, 2]]);
-function Dialog_overlay($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Dialog_overlay);
- let id = prop($$props, "id", 19, () => createId(uid)), forceMount = prop($$props, "forceMount", 3, false), ref = prop($$props, "ref", 15, null), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "id",
- "forceMount",
- "child",
- "children",
- "ref"
- ],
- "restProps"
- );
- const overlayState = DialogOverlayState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, overlayState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent_1 = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- var consequent = ($$anchor3) => {
- var fragment_2 = comment();
- var node_2 = first_child(fragment_2);
- {
- let $0 = user_derived(() => ({
- props: mergeProps(get(mergedProps)),
- ...overlayState.snippetProps
- }));
- add_svelte_meta(() => snippet(node_2, () => $$props.child, () => get($0)), "render", Dialog_overlay, 31, 2);
- }
- append($$anchor3, fragment_2);
- };
- var alternate = ($$anchor3) => {
- var div = root_3();
- attribute_effect(div, ($0) => ({ ...$0 }), [() => mergeProps(get(mergedProps))]);
- var node_3 = child(div);
- add_svelte_meta(() => snippet(node_3, () => $$props.children ?? noop, () => overlayState.snippetProps), "render", Dialog_overlay, 34, 3);
- reset(div);
- append($$anchor3, div);
- };
- add_svelte_meta(
- () => if_block(node_1, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Dialog_overlay,
- 30,
- 1
- );
- }
- append($$anchor2, fragment_1);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if (overlayState.shouldRender || forceMount()) $$render(consequent_1);
- }),
- "if",
- Dialog_overlay,
- 29,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Dialog_overlay = hmr(Dialog_overlay, () => Dialog_overlay[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Dialog_overlay[HMR].source;
- set(Dialog_overlay[HMR].source, module.default[HMR].original);
- });
-}
-var dialog_overlay_default = Dialog_overlay;
-
-// node_modules/bits-ui/dist/bits/dialog/components/dialog-trigger.svelte
-Dialog_trigger[FILENAME] = "node_modules/bits-ui/dist/bits/dialog/components/dialog-trigger.svelte";
-var root_29 = add_locations(from_html(``), Dialog_trigger[FILENAME], [[33, 1]]);
-function Dialog_trigger($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Dialog_trigger);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), disabled = prop($$props, "disabled", 3, false), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "id",
- "ref",
- "children",
- "child",
- "disabled"
- ],
- "restProps"
- );
- const triggerState = DialogTriggerState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- disabled: boxWith(() => Boolean(disabled()))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, triggerState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Dialog_trigger, 31, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var button = root_29();
- attribute_effect(button, () => ({ ...get(mergedProps) }));
- var node_2 = child(button);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Dialog_trigger, 34, 2);
- reset(button);
- append($$anchor2, button);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Dialog_trigger,
- 30,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Dialog_trigger = hmr(Dialog_trigger, () => Dialog_trigger[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Dialog_trigger[HMR].source;
- set(Dialog_trigger[HMR].source, module.default[HMR].original);
- });
-}
-var dialog_trigger_default = Dialog_trigger;
-
-// node_modules/bits-ui/dist/bits/dialog/components/dialog-description.svelte
-Dialog_description[FILENAME] = "node_modules/bits-ui/dist/bits/dialog/components/dialog-description.svelte";
-var root_210 = add_locations(from_html(``), Dialog_description[FILENAME], [[31, 1]]);
-function Dialog_description($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Dialog_description);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "id",
- "children",
- "child",
- "ref"
- ],
- "restProps"
- );
- const descriptionState = DialogDescriptionState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, descriptionState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Dialog_description, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_210();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Dialog_description, 32, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Dialog_description,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Dialog_description = hmr(Dialog_description, () => Dialog_description[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Dialog_description[HMR].source;
- set(Dialog_description[HMR].source, module.default[HMR].original);
- });
-}
-var dialog_description_default = Dialog_description;
-
-// node_modules/bits-ui/dist/bits/aspect-ratio/exports.js
-var exports_exports3 = {};
-__export(exports_exports3, {
- Root: () => aspect_ratio_default
-});
-
-// node_modules/bits-ui/dist/bits/aspect-ratio/aspect-ratio.svelte.js
-var aspectRatioAttrs = createBitsAttrs({ component: "aspect-ratio", parts: ["root"] });
-var AspectRatioRootState = class _AspectRatioRootState {
- static create(opts) {
- return new _AspectRatioRootState(opts);
- }
- opts;
- attachment;
- constructor(opts) {
- this.opts = opts;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- style: { position: "absolute", top: 0, right: 0, bottom: 0, left: 0 },
- [aspectRatioAttrs.root]: "",
- ...this.attachment
- })),
- "AspectRatioRootState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-
-// node_modules/bits-ui/dist/bits/aspect-ratio/components/aspect-ratio.svelte
-Aspect_ratio[FILENAME] = "node_modules/bits-ui/dist/bits/aspect-ratio/components/aspect-ratio.svelte";
-var root_211 = add_locations(from_html(``), Aspect_ratio[FILENAME], [[34, 2]]);
-var root = add_locations(from_html(``), Aspect_ratio[FILENAME], [[30, 0]]);
-function Aspect_ratio($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Aspect_ratio);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), ratio = prop($$props, "ratio", 3, 1), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "ref",
- "id",
- "ratio",
- "children",
- "child"
- ],
- "restProps"
- );
- const rootState = AspectRatioRootState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- ratio: boxWith(() => ratio())
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, rootState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var div = root();
- let styles;
- var node = child(div);
- {
- var consequent = ($$anchor2) => {
- var fragment = comment();
- var node_1 = first_child(fragment);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Aspect_ratio, 32, 2);
- append($$anchor2, fragment);
- };
- var alternate = ($$anchor2) => {
- var div_1 = root_211();
- attribute_effect(div_1, () => ({ ...get(mergedProps) }));
- var node_2 = child(div_1);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Aspect_ratio, 35, 3);
- reset(div_1);
- append($$anchor2, div_1);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Aspect_ratio,
- 31,
- 1
- );
- }
- reset(div);
- template_effect(() => styles = set_style(div, "", styles, {
- position: "relative",
- width: "100%",
- "padding-bottom": `${ratio() ? 100 / ratio() : 0}%`
- }));
- append($$anchor, div);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Aspect_ratio = hmr(Aspect_ratio, () => Aspect_ratio[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Aspect_ratio[HMR].source;
- set(Aspect_ratio[HMR].source, module.default[HMR].original);
- });
-}
-var aspect_ratio_default = Aspect_ratio;
-
-// node_modules/bits-ui/dist/bits/avatar/exports.js
-var exports_exports4 = {};
-__export(exports_exports4, {
- Fallback: () => avatar_fallback_default,
- Image: () => avatar_image_default,
- Root: () => avatar_default
-});
-
-// node_modules/bits-ui/dist/bits/avatar/avatar.svelte.js
-var avatarAttrs = createBitsAttrs({ component: "avatar", parts: ["root", "image", "fallback"] });
-var AvatarRootContext = new Context("Avatar.Root");
-var AvatarRootState = class _AvatarRootState {
- static create(opts) {
- return AvatarRootContext.set(new _AvatarRootState(opts));
- }
- opts;
- domContext;
- attachment;
- constructor(opts) {
- this.opts = opts;
- this.domContext = new DOMContext(this.opts.ref);
- this.loadImage = this.loadImage.bind(this);
- this.attachment = attachRef(this.opts.ref);
- }
- loadImage(src, crossorigin, referrerPolicy) {
- if (strict_equals(this.opts.loadingStatus.current, "loaded")) return;
- let imageTimerId;
- const image = new Image();
- image.src = src;
- if (strict_equals(crossorigin, void 0, false)) image.crossOrigin = crossorigin;
- if (referrerPolicy) image.referrerPolicy = referrerPolicy;
- this.opts.loadingStatus.current = "loading";
- image.onload = () => {
- imageTimerId = this.domContext.setTimeout(
- () => {
- this.opts.loadingStatus.current = "loaded";
- },
- this.opts.delayMs.current
- );
- };
- image.onerror = () => {
- this.opts.loadingStatus.current = "error";
- };
- return () => {
- if (!imageTimerId) return;
- this.domContext.clearTimeout(imageTimerId);
- };
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- [avatarAttrs.root]: "",
- "data-status": this.opts.loadingStatus.current,
- ...this.attachment
- })),
- "AvatarRootState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var AvatarImageState = class _AvatarImageState {
- static create(opts) {
- return new _AvatarImageState(opts, AvatarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- watch.pre(
- [
- () => this.opts.src.current,
- () => this.opts.crossOrigin.current
- ],
- ([src, crossOrigin]) => {
- if (!src) {
- this.root.opts.loadingStatus.current = "error";
- return;
- }
- this.root.loadImage(src, crossOrigin, this.opts.referrerPolicy.current);
- }
- );
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- style: {
- display: strict_equals(this.root.opts.loadingStatus.current, "loaded") ? "block" : "none"
- },
- "data-status": this.root.opts.loadingStatus.current,
- [avatarAttrs.image]: "",
- src: this.opts.src.current,
- crossorigin: this.opts.crossOrigin.current,
- referrerpolicy: this.opts.referrerPolicy.current,
- ...this.attachment
- })),
- "AvatarImageState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var AvatarFallbackState = class _AvatarFallbackState {
- static create(opts) {
- return new _AvatarFallbackState(opts, AvatarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #style = tag(user_derived(() => strict_equals(this.root.opts.loadingStatus.current, "loaded") ? { display: "none" } : void 0), "AvatarFallbackState.style");
- get style() {
- return get(this.#style);
- }
- set style(value) {
- set(this.#style, value);
- }
- #props = tag(
- user_derived(() => ({
- style: this.style,
- "data-status": this.root.opts.loadingStatus.current,
- [avatarAttrs.fallback]: "",
- ...this.attachment
- })),
- "AvatarFallbackState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-
-// node_modules/bits-ui/dist/bits/avatar/components/avatar.svelte
-Avatar[FILENAME] = "node_modules/bits-ui/dist/bits/avatar/components/avatar.svelte";
-var root_212 = add_locations(from_html(``), Avatar[FILENAME], [[44, 1]]);
-function Avatar($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Avatar);
- let delayMs = prop($$props, "delayMs", 3, 0), loadingStatus = prop($$props, "loadingStatus", 15, "loading"), id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "delayMs",
- "loadingStatus",
- "onLoadingStatusChange",
- "child",
- "children",
- "id",
- "ref"
- ],
- "restProps"
- );
- const rootState = AvatarRootState.create({
- delayMs: boxWith(() => delayMs()),
- loadingStatus: boxWith(() => loadingStatus(), (v) => {
- if (strict_equals(loadingStatus(), v, false)) {
- loadingStatus(v);
- $$props.onLoadingStatusChange?.(v);
- }
- }),
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, rootState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Avatar, 42, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_212();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Avatar, 45, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Avatar,
- 41,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Avatar = hmr(Avatar, () => Avatar[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Avatar[HMR].source;
- set(Avatar[HMR].source, module.default[HMR].original);
- });
-}
-var avatar_default = Avatar;
-
-// node_modules/bits-ui/dist/bits/avatar/components/avatar-image.svelte
-Avatar_image[FILENAME] = "node_modules/bits-ui/dist/bits/avatar/components/avatar-image.svelte";
-var root_213 = add_locations(from_html(`
`), Avatar_image[FILENAME], [[36, 1]]);
-function Avatar_image($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Avatar_image);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), crossorigin = prop($$props, "crossorigin", 3, void 0), referrerpolicy = prop($$props, "referrerpolicy", 3, void 0), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "src",
- "child",
- "id",
- "ref",
- "crossorigin",
- "referrerpolicy"
- ],
- "restProps"
- );
- const imageState = AvatarImageState.create({
- src: boxWith(() => $$props.src),
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- crossOrigin: boxWith(() => crossorigin()),
- referrerPolicy: boxWith(() => referrerpolicy())
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, imageState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Avatar_image, 34, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var img = root_213();
- attribute_effect(img, () => ({ ...get(mergedProps), src: $$props.src }));
- replay_events(img);
- append($$anchor2, img);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Avatar_image,
- 33,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Avatar_image = hmr(Avatar_image, () => Avatar_image[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Avatar_image[HMR].source;
- set(Avatar_image[HMR].source, module.default[HMR].original);
- });
-}
-var avatar_image_default = Avatar_image;
-
-// node_modules/bits-ui/dist/bits/avatar/components/avatar-fallback.svelte
-Avatar_fallback[FILENAME] = "node_modules/bits-ui/dist/bits/avatar/components/avatar-fallback.svelte";
-var root_214 = add_locations(from_html(``), Avatar_fallback[FILENAME], [[31, 1]]);
-function Avatar_fallback($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Avatar_fallback);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "id",
- "ref"
- ],
- "restProps"
- );
- const fallbackState = AvatarFallbackState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, fallbackState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Avatar_fallback, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var span = root_214();
- attribute_effect(span, () => ({ ...get(mergedProps) }));
- var node_2 = child(span);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Avatar_fallback, 32, 2);
- reset(span);
- append($$anchor2, span);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Avatar_fallback,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Avatar_fallback = hmr(Avatar_fallback, () => Avatar_fallback[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Avatar_fallback[HMR].source;
- set(Avatar_fallback[HMR].source, module.default[HMR].original);
- });
-}
-var avatar_fallback_default = Avatar_fallback;
-
-// node_modules/bits-ui/dist/bits/utilities/config/components/bits-config.svelte
-Bits_config[FILENAME] = "node_modules/bits-ui/dist/bits/utilities/config/components/bits-config.svelte";
-function Bits_config($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Bits_config);
- useBitsConfig({
- defaultPortalTo: boxWith(() => $$props.defaultPortalTo),
- defaultLocale: boxWith(() => $$props.defaultLocale)
- });
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- add_svelte_meta(() => snippet(node, () => $$props.children ?? noop), "render", Bits_config, 14, 0);
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Bits_config = hmr(Bits_config, () => Bits_config[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Bits_config[HMR].source;
- set(Bits_config[HMR].source, module.default[HMR].original);
- });
-}
-var bits_config_default = Bits_config;
-
-// node_modules/bits-ui/dist/bits/button/exports.js
-var exports_exports5 = {};
-__export(exports_exports5, {
- Root: () => button_default
-});
-
-// node_modules/bits-ui/dist/bits/button/components/button.svelte
-Button[FILENAME] = "node_modules/bits-ui/dist/bits/button/components/button.svelte";
-function Button($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Button);
- let disabled = prop($$props, "disabled", 3, false), ref = prop($$props, "ref", 15, null), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "href",
- "type",
- "children",
- "disabled",
- "ref"
- ],
- "restProps"
- );
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- validate_void_dynamic_element(() => $$props.href ? "a" : "button");
- validate_dynamic_element_tag(() => $$props.href ? "a" : "button");
- element(
- node,
- () => $$props.href ? "a" : "button",
- false,
- ($$element, $$anchor2) => {
- bind_this($$element, ($$value) => ref($$value), () => ref());
- attribute_effect($$element, () => ({
- "data-button-root": true,
- type: $$props.href ? void 0 : $$props.type,
- href: $$props.href && !disabled() ? $$props.href : void 0,
- disabled: $$props.href ? void 0 : disabled(),
- "aria-disabled": $$props.href ? disabled() : void 0,
- role: $$props.href && disabled() ? "link" : void 0,
- tabindex: $$props.href && disabled() ? -1 : 0,
- ...restProps
- }));
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.children ?? noop), "render", Button, 26, 1);
- append($$anchor2, fragment_1);
- },
- void 0,
- [14, 0]
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Button = hmr(Button, () => Button[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Button[HMR].source;
- set(Button[HMR].source, module.default[HMR].original);
- });
-}
-var button_default = Button;
-
-// node_modules/bits-ui/dist/bits/calendar/exports.js
-var exports_exports6 = {};
-__export(exports_exports6, {
- Cell: () => calendar_cell_default,
- Day: () => calendar_day_default,
- Grid: () => calendar_grid_default,
- GridBody: () => calendar_grid_body_default,
- GridHead: () => calendar_grid_head_default,
- GridRow: () => calendar_grid_row_default,
- HeadCell: () => calendar_head_cell_default,
- Header: () => calendar_header_default,
- Heading: () => calendar_heading_default,
- MonthSelect: () => calendar_month_select_default,
- NextButton: () => calendar_next_button_default,
- PrevButton: () => calendar_prev_button_default,
- Root: () => calendar_default,
- YearSelect: () => calendar_year_select_default
-});
-
-// node_modules/@internationalized/date/dist/utils.mjs
-function $2b4dce13dd5a17fa$export$842a2cf37af977e1(amount, numerator) {
- return amount - numerator * Math.floor(amount / numerator);
-}
-
-// node_modules/@internationalized/date/dist/GregorianCalendar.mjs
-var $3b62074eb05584b2$var$EPOCH = 1721426;
-function $3b62074eb05584b2$export$f297eb839006d339(era, year, month, day) {
- year = $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year);
- let y1 = year - 1;
- let monthOffset = -2;
- if (month <= 2) monthOffset = 0;
- else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) monthOffset = -1;
- return $3b62074eb05584b2$var$EPOCH - 1 + 365 * y1 + Math.floor(y1 / 4) - Math.floor(y1 / 100) + Math.floor(y1 / 400) + Math.floor((367 * month - 362) / 12 + monthOffset + day);
-}
-function $3b62074eb05584b2$export$553d7fa8e3805fc0(year) {
- return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);
-}
-function $3b62074eb05584b2$export$c36e0ecb2d4fa69d(era, year) {
- return era === "BC" ? 1 - year : year;
-}
-function $3b62074eb05584b2$export$4475b7e617eb123c(year) {
- let era = "AD";
- if (year <= 0) {
- era = "BC";
- year = 1 - year;
- }
- return [
- era,
- year
- ];
-}
-var $3b62074eb05584b2$var$daysInMonth = {
- standard: [
- 31,
- 28,
- 31,
- 30,
- 31,
- 30,
- 31,
- 31,
- 30,
- 31,
- 30,
- 31
- ],
- leapyear: [
- 31,
- 29,
- 31,
- 30,
- 31,
- 30,
- 31,
- 31,
- 30,
- 31,
- 30,
- 31
- ]
-};
-var $3b62074eb05584b2$export$80ee6245ec4f29ec = class {
- fromJulianDay(jd) {
- let jd0 = jd;
- let depoch = jd0 - $3b62074eb05584b2$var$EPOCH;
- let quadricent = Math.floor(depoch / 146097);
- let dqc = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(depoch, 146097);
- let cent = Math.floor(dqc / 36524);
- let dcent = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dqc, 36524);
- let quad = Math.floor(dcent / 1461);
- let dquad = (0, $2b4dce13dd5a17fa$export$842a2cf37af977e1)(dcent, 1461);
- let yindex = Math.floor(dquad / 365);
- let extendedYear = quadricent * 400 + cent * 100 + quad * 4 + yindex + (cent !== 4 && yindex !== 4 ? 1 : 0);
- let [era, year] = $3b62074eb05584b2$export$4475b7e617eb123c(extendedYear);
- let yearDay = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, 1, 1);
- let leapAdj = 2;
- if (jd0 < $3b62074eb05584b2$export$f297eb839006d339(era, year, 3, 1)) leapAdj = 0;
- else if ($3b62074eb05584b2$export$553d7fa8e3805fc0(year)) leapAdj = 1;
- let month = Math.floor(((yearDay + leapAdj) * 12 + 373) / 367);
- let day = jd0 - $3b62074eb05584b2$export$f297eb839006d339(era, year, month, 1) + 1;
- return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(era, year, month, day);
- }
- toJulianDay(date) {
- return $3b62074eb05584b2$export$f297eb839006d339(date.era, date.year, date.month, date.day);
- }
- getDaysInMonth(date) {
- return $3b62074eb05584b2$var$daysInMonth[$3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? "leapyear" : "standard"][date.month - 1];
- }
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- getMonthsInYear(date) {
- return 12;
- }
- getDaysInYear(date) {
- return $3b62074eb05584b2$export$553d7fa8e3805fc0(date.year) ? 366 : 365;
- }
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
- getYearsInEra(date) {
- return 9999;
- }
- getEras() {
- return [
- "BC",
- "AD"
- ];
- }
- isInverseEra(date) {
- return date.era === "BC";
- }
- balanceDate(date) {
- if (date.year <= 0) {
- date.era = date.era === "BC" ? "AD" : "BC";
- date.year = 1 - date.year;
- }
- }
- constructor() {
- this.identifier = "gregory";
- }
-};
-
-// node_modules/@internationalized/date/dist/weekStartData.mjs
-var $2fe286d2fb449abb$export$7a5acbd77d414bd9 = {
- "001": 1,
- AD: 1,
- AE: 6,
- AF: 6,
- AI: 1,
- AL: 1,
- AM: 1,
- AN: 1,
- AR: 1,
- AT: 1,
- AU: 1,
- AX: 1,
- AZ: 1,
- BA: 1,
- BE: 1,
- BG: 1,
- BH: 6,
- BM: 1,
- BN: 1,
- BY: 1,
- CH: 1,
- CL: 1,
- CM: 1,
- CN: 1,
- CR: 1,
- CY: 1,
- CZ: 1,
- DE: 1,
- DJ: 6,
- DK: 1,
- DZ: 6,
- EC: 1,
- EE: 1,
- EG: 6,
- ES: 1,
- FI: 1,
- FJ: 1,
- FO: 1,
- FR: 1,
- GB: 1,
- GE: 1,
- GF: 1,
- GP: 1,
- GR: 1,
- HR: 1,
- HU: 1,
- IE: 1,
- IQ: 6,
- IR: 6,
- IS: 1,
- IT: 1,
- JO: 6,
- KG: 1,
- KW: 6,
- KZ: 1,
- LB: 1,
- LI: 1,
- LK: 1,
- LT: 1,
- LU: 1,
- LV: 1,
- LY: 6,
- MC: 1,
- MD: 1,
- ME: 1,
- MK: 1,
- MN: 1,
- MQ: 1,
- MV: 5,
- MY: 1,
- NL: 1,
- NO: 1,
- NZ: 1,
- OM: 6,
- PL: 1,
- QA: 6,
- RE: 1,
- RO: 1,
- RS: 1,
- RU: 1,
- SD: 6,
- SE: 1,
- SI: 1,
- SK: 1,
- SM: 1,
- SY: 6,
- TJ: 1,
- TM: 1,
- TR: 1,
- UA: 1,
- UY: 1,
- UZ: 1,
- VA: 1,
- VN: 1,
- XK: 1
-};
-
-// node_modules/@internationalized/date/dist/queries.mjs
-function $14e0f24ef4ac5c92$export$ea39ec197993aef0(a2, b) {
- b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a2.calendar);
- return a2.era === b.era && a2.year === b.year && a2.month === b.month && a2.day === b.day;
-}
-function $14e0f24ef4ac5c92$export$a18c89cbd24170ff(a2, b) {
- b = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(b, a2.calendar);
- a2 = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(a2);
- b = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(b);
- return a2.era === b.era && a2.year === b.year && a2.month === b.month;
-}
-function $14e0f24ef4ac5c92$export$dbc69fd56b53d5e(a2, b) {
- var _a_isEqual, _b_isEqual;
- var _a_isEqual1, _ref;
- return (_ref = (_a_isEqual1 = (_a_isEqual = a2.isEqual) === null || _a_isEqual === void 0 ? void 0 : _a_isEqual.call(a2, b)) !== null && _a_isEqual1 !== void 0 ? _a_isEqual1 : (_b_isEqual = b.isEqual) === null || _b_isEqual === void 0 ? void 0 : _b_isEqual.call(b, a2)) !== null && _ref !== void 0 ? _ref : a2.identifier === b.identifier;
-}
-function $14e0f24ef4ac5c92$export$629b0a497aa65267(date, timeZone) {
- return $14e0f24ef4ac5c92$export$ea39ec197993aef0(date, $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone));
-}
-var $14e0f24ef4ac5c92$var$DAY_MAP = {
- sun: 0,
- mon: 1,
- tue: 2,
- wed: 3,
- thu: 4,
- fri: 5,
- sat: 6
-};
-function $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale, firstDayOfWeek) {
- let julian = date.calendar.toJulianDay(date);
- let weekStart = firstDayOfWeek ? $14e0f24ef4ac5c92$var$DAY_MAP[firstDayOfWeek] : $14e0f24ef4ac5c92$var$getWeekStart(locale);
- let dayOfWeek = Math.ceil(julian + 1 - weekStart) % 7;
- if (dayOfWeek < 0) dayOfWeek += 7;
- return dayOfWeek;
-}
-function $14e0f24ef4ac5c92$export$461939dd4422153(timeZone) {
- return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(Date.now(), timeZone);
-}
-function $14e0f24ef4ac5c92$export$d0bdf45af03a6ea3(timeZone) {
- return (0, $11d87f3f76e88657$export$93522d1a439f3617)($14e0f24ef4ac5c92$export$461939dd4422153(timeZone));
-}
-function $14e0f24ef4ac5c92$export$68781ddf31c0090f(a2, b) {
- return a2.calendar.toJulianDay(a2) - b.calendar.toJulianDay(b);
-}
-function $14e0f24ef4ac5c92$export$c19a80a9721b80f6(a2, b) {
- return $14e0f24ef4ac5c92$var$timeToMs(a2) - $14e0f24ef4ac5c92$var$timeToMs(b);
-}
-function $14e0f24ef4ac5c92$var$timeToMs(a2) {
- return a2.hour * 36e5 + a2.minute * 6e4 + a2.second * 1e3 + a2.millisecond;
-}
-var $14e0f24ef4ac5c92$var$localTimeZone = null;
-function $14e0f24ef4ac5c92$export$aa8b41735afcabd2() {
- if ($14e0f24ef4ac5c92$var$localTimeZone == null) $14e0f24ef4ac5c92$var$localTimeZone = new Intl.DateTimeFormat().resolvedOptions().timeZone;
- return $14e0f24ef4ac5c92$var$localTimeZone;
-}
-function $14e0f24ef4ac5c92$export$a5a3b454ada2268e(date) {
- return date.subtract({
- days: date.day - 1
- });
-}
-function $14e0f24ef4ac5c92$export$a2258d9c4118825c(date) {
- return date.add({
- days: date.calendar.getDaysInMonth(date) - date.day
- });
-}
-var $14e0f24ef4ac5c92$var$cachedRegions = /* @__PURE__ */ new Map();
-var $14e0f24ef4ac5c92$var$cachedWeekInfo = /* @__PURE__ */ new Map();
-function $14e0f24ef4ac5c92$var$getRegion(locale) {
- if (Intl.Locale) {
- let region = $14e0f24ef4ac5c92$var$cachedRegions.get(locale);
- if (!region) {
- region = new Intl.Locale(locale).maximize().region;
- if (region) $14e0f24ef4ac5c92$var$cachedRegions.set(locale, region);
- }
- return region;
- }
- let part = locale.split("-")[1];
- return part === "u" ? void 0 : part;
-}
-function $14e0f24ef4ac5c92$var$getWeekStart(locale) {
- let weekInfo = $14e0f24ef4ac5c92$var$cachedWeekInfo.get(locale);
- if (!weekInfo) {
- if (Intl.Locale) {
- let localeInst = new Intl.Locale(locale);
- if ("getWeekInfo" in localeInst) {
- weekInfo = localeInst.getWeekInfo();
- if (weekInfo) {
- $14e0f24ef4ac5c92$var$cachedWeekInfo.set(locale, weekInfo);
- return weekInfo.firstDay;
- }
- }
- }
- let region = $14e0f24ef4ac5c92$var$getRegion(locale);
- if (locale.includes("-fw-")) {
- let day = locale.split("-fw-")[1].split("-")[0];
- if (day === "mon") weekInfo = {
- firstDay: 1
- };
- else if (day === "tue") weekInfo = {
- firstDay: 2
- };
- else if (day === "wed") weekInfo = {
- firstDay: 3
- };
- else if (day === "thu") weekInfo = {
- firstDay: 4
- };
- else if (day === "fri") weekInfo = {
- firstDay: 5
- };
- else if (day === "sat") weekInfo = {
- firstDay: 6
- };
- else weekInfo = {
- firstDay: 0
- };
- } else if (locale.includes("-ca-iso8601")) weekInfo = {
- firstDay: 1
- };
- else weekInfo = {
- firstDay: region ? (0, $2fe286d2fb449abb$export$7a5acbd77d414bd9)[region] || 0 : 0
- };
- $14e0f24ef4ac5c92$var$cachedWeekInfo.set(locale, weekInfo);
- }
- return weekInfo.firstDay;
-}
-
-// node_modules/@internationalized/date/dist/conversion.mjs
-function $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) {
- date = $11d87f3f76e88657$export$b4a036af3fc0b032(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());
- let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(date.era, date.year);
- return $11d87f3f76e88657$var$epochFromParts(year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond);
-}
-function $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, millisecond) {
- let date = /* @__PURE__ */ new Date();
- date.setUTCHours(hour, minute, second, millisecond);
- date.setUTCFullYear(year, month - 1, day);
- return date.getTime();
-}
-function $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone) {
- if (timeZone === "UTC") return 0;
- if (ms > 0 && timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)()) return new Date(ms).getTimezoneOffset() * -6e4;
- let { year, month, day, hour, minute, second } = $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone);
- let utc = $11d87f3f76e88657$var$epochFromParts(year, month, day, hour, minute, second, 0);
- return utc - Math.floor(ms / 1e3) * 1e3;
-}
-var $11d87f3f76e88657$var$formattersByTimeZone = /* @__PURE__ */ new Map();
-function $11d87f3f76e88657$var$getTimeZoneParts(ms, timeZone) {
- let formatter = $11d87f3f76e88657$var$formattersByTimeZone.get(timeZone);
- if (!formatter) {
- formatter = new Intl.DateTimeFormat("en-US", {
- timeZone,
- hour12: false,
- era: "short",
- year: "numeric",
- month: "numeric",
- day: "numeric",
- hour: "numeric",
- minute: "numeric",
- second: "numeric"
- });
- $11d87f3f76e88657$var$formattersByTimeZone.set(timeZone, formatter);
- }
- let parts = formatter.formatToParts(new Date(ms));
- let namedParts = {};
- for (let part of parts) if (part.type !== "literal") namedParts[part.type] = part.value;
- return {
- // Firefox returns B instead of BC... https://bugzilla.mozilla.org/show_bug.cgi?id=1752253
- year: namedParts.era === "BC" || namedParts.era === "B" ? -namedParts.year + 1 : +namedParts.year,
- month: +namedParts.month,
- day: +namedParts.day,
- hour: namedParts.hour === "24" ? 0 : +namedParts.hour,
- minute: +namedParts.minute,
- second: +namedParts.second
- };
-}
-var $11d87f3f76e88657$var$DAYMILLIS = 864e5;
-function $11d87f3f76e88657$export$136f38efe7caf549(date, timeZone) {
- let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date);
- let earlier = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);
- let later = ms - $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);
- return $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later);
-}
-function $11d87f3f76e88657$var$getValidWallTimes(date, timeZone, earlier, later) {
- let found = earlier === later ? [
- earlier
- ] : [
- earlier,
- later
- ];
- return found.filter((absolute) => $11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute));
-}
-function $11d87f3f76e88657$var$isValidWallTime(date, timeZone, absolute) {
- let parts = $11d87f3f76e88657$var$getTimeZoneParts(absolute, timeZone);
- return date.year === parts.year && date.month === parts.month && date.day === parts.day && date.hour === parts.hour && date.minute === parts.minute && date.second === parts.second;
-}
-function $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation = "compatible") {
- let dateTime = $11d87f3f76e88657$export$b21e0b124e224484(date);
- if (timeZone === "UTC") return $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);
- if (timeZone === (0, $14e0f24ef4ac5c92$export$aa8b41735afcabd2)() && disambiguation === "compatible") {
- dateTime = $11d87f3f76e88657$export$b4a036af3fc0b032(dateTime, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());
- let date2 = /* @__PURE__ */ new Date();
- let year = (0, $3b62074eb05584b2$export$c36e0ecb2d4fa69d)(dateTime.era, dateTime.year);
- date2.setFullYear(year, dateTime.month - 1, dateTime.day);
- date2.setHours(dateTime.hour, dateTime.minute, dateTime.second, dateTime.millisecond);
- return date2.getTime();
- }
- let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(dateTime);
- let offsetBefore = $11d87f3f76e88657$export$59c99f3515d3493f(ms - $11d87f3f76e88657$var$DAYMILLIS, timeZone);
- let offsetAfter = $11d87f3f76e88657$export$59c99f3515d3493f(ms + $11d87f3f76e88657$var$DAYMILLIS, timeZone);
- let valid = $11d87f3f76e88657$var$getValidWallTimes(dateTime, timeZone, ms - offsetBefore, ms - offsetAfter);
- if (valid.length === 1) return valid[0];
- if (valid.length > 1) switch (disambiguation) {
- // 'compatible' means 'earlier' for "fall back" transitions
- case "compatible":
- case "earlier":
- return valid[0];
- case "later":
- return valid[valid.length - 1];
- case "reject":
- throw new RangeError("Multiple possible absolute times found");
- }
- switch (disambiguation) {
- case "earlier":
- return Math.min(ms - offsetBefore, ms - offsetAfter);
- // 'compatible' means 'later' for "spring forward" transitions
- case "compatible":
- case "later":
- return Math.max(ms - offsetBefore, ms - offsetAfter);
- case "reject":
- throw new RangeError("No such absolute time found");
- }
-}
-function $11d87f3f76e88657$export$e67a095c620b86fe(dateTime, timeZone, disambiguation = "compatible") {
- return new Date($11d87f3f76e88657$export$5107c82f94518f5c(dateTime, timeZone, disambiguation));
-}
-function $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone) {
- let offset3 = $11d87f3f76e88657$export$59c99f3515d3493f(ms, timeZone);
- let date = new Date(ms + offset3);
- let year = date.getUTCFullYear();
- let month = date.getUTCMonth() + 1;
- let day = date.getUTCDate();
- let hour = date.getUTCHours();
- let minute = date.getUTCMinutes();
- let second = date.getUTCSeconds();
- let millisecond = date.getUTCMilliseconds();
- return new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)(year < 1 ? "BC" : "AD", year < 1 ? -year + 1 : year, month, day, timeZone, offset3, hour, minute, second, millisecond);
-}
-function $11d87f3f76e88657$export$93522d1a439f3617(dateTime) {
- return new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)(dateTime.calendar, dateTime.era, dateTime.year, dateTime.month, dateTime.day);
-}
-function $11d87f3f76e88657$export$b21e0b124e224484(date, time) {
- let hour = 0, minute = 0, second = 0, millisecond = 0;
- if ("timeZone" in date) ({ hour, minute, second, millisecond } = date);
- else if ("hour" in date && !time) return date;
- if (time) ({ hour, minute, second, millisecond } = time);
- return new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(date.calendar, date.era, date.year, date.month, date.day, hour, minute, second, millisecond);
-}
-function $11d87f3f76e88657$export$b4a036af3fc0b032(date, calendar) {
- if ((0, $14e0f24ef4ac5c92$export$dbc69fd56b53d5e)(date.calendar, calendar)) return date;
- let calendarDate = calendar.fromJulianDay(date.calendar.toJulianDay(date));
- let copy = date.copy();
- copy.calendar = calendar;
- copy.era = calendarDate.era;
- copy.year = calendarDate.year;
- copy.month = calendarDate.month;
- copy.day = calendarDate.day;
- (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(copy);
- return copy;
-}
-function $11d87f3f76e88657$export$84c95a83c799e074(date, timeZone, disambiguation) {
- if (date instanceof (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)) {
- if (date.timeZone === timeZone) return date;
- return $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone);
- }
- let ms = $11d87f3f76e88657$export$5107c82f94518f5c(date, timeZone, disambiguation);
- return $11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone);
-}
-function $11d87f3f76e88657$export$83aac07b4c37b25(date) {
- let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;
- return new Date(ms);
-}
-function $11d87f3f76e88657$export$538b00033cc11c75(date, timeZone) {
- let ms = $11d87f3f76e88657$export$bd4fb2bc8bb06fb(date) - date.offset;
- return $11d87f3f76e88657$export$b4a036af3fc0b032($11d87f3f76e88657$export$1b96692a1ba042ac(ms, timeZone), date.calendar);
-}
-
-// node_modules/@internationalized/date/dist/manipulation.mjs
-var $735220c2d4774dd3$var$ONE_HOUR = 36e5;
-function $735220c2d4774dd3$export$e16d8520af44a096(date, duration) {
- let mutableDate = date.copy();
- let days = "hour" in mutableDate ? $735220c2d4774dd3$var$addTimeFields(mutableDate, duration) : 0;
- $735220c2d4774dd3$var$addYears(mutableDate, duration.years || 0);
- if (mutableDate.calendar.balanceYearMonth) mutableDate.calendar.balanceYearMonth(mutableDate, date);
- mutableDate.month += duration.months || 0;
- $735220c2d4774dd3$var$balanceYearMonth(mutableDate);
- $735220c2d4774dd3$var$constrainMonthDay(mutableDate);
- mutableDate.day += (duration.weeks || 0) * 7;
- mutableDate.day += duration.days || 0;
- mutableDate.day += days;
- $735220c2d4774dd3$var$balanceDay(mutableDate);
- if (mutableDate.calendar.balanceDate) mutableDate.calendar.balanceDate(mutableDate);
- if (mutableDate.year < 1) {
- mutableDate.year = 1;
- mutableDate.month = 1;
- mutableDate.day = 1;
- }
- let maxYear = mutableDate.calendar.getYearsInEra(mutableDate);
- if (mutableDate.year > maxYear) {
- var _mutableDate_calendar_isInverseEra, _mutableDate_calendar;
- let isInverseEra = (_mutableDate_calendar_isInverseEra = (_mutableDate_calendar = mutableDate.calendar).isInverseEra) === null || _mutableDate_calendar_isInverseEra === void 0 ? void 0 : _mutableDate_calendar_isInverseEra.call(_mutableDate_calendar, mutableDate);
- mutableDate.year = maxYear;
- mutableDate.month = isInverseEra ? 1 : mutableDate.calendar.getMonthsInYear(mutableDate);
- mutableDate.day = isInverseEra ? 1 : mutableDate.calendar.getDaysInMonth(mutableDate);
- }
- if (mutableDate.month < 1) {
- mutableDate.month = 1;
- mutableDate.day = 1;
- }
- let maxMonth = mutableDate.calendar.getMonthsInYear(mutableDate);
- if (mutableDate.month > maxMonth) {
- mutableDate.month = maxMonth;
- mutableDate.day = mutableDate.calendar.getDaysInMonth(mutableDate);
- }
- mutableDate.day = Math.max(1, Math.min(mutableDate.calendar.getDaysInMonth(mutableDate), mutableDate.day));
- return mutableDate;
-}
-function $735220c2d4774dd3$var$addYears(date, years) {
- var _date_calendar_isInverseEra, _date_calendar;
- if ((_date_calendar_isInverseEra = (_date_calendar = date.calendar).isInverseEra) === null || _date_calendar_isInverseEra === void 0 ? void 0 : _date_calendar_isInverseEra.call(_date_calendar, date)) years = -years;
- date.year += years;
-}
-function $735220c2d4774dd3$var$balanceYearMonth(date) {
- while (date.month < 1) {
- $735220c2d4774dd3$var$addYears(date, -1);
- date.month += date.calendar.getMonthsInYear(date);
- }
- let monthsInYear = 0;
- while (date.month > (monthsInYear = date.calendar.getMonthsInYear(date))) {
- date.month -= monthsInYear;
- $735220c2d4774dd3$var$addYears(date, 1);
- }
-}
-function $735220c2d4774dd3$var$balanceDay(date) {
- while (date.day < 1) {
- date.month--;
- $735220c2d4774dd3$var$balanceYearMonth(date);
- date.day += date.calendar.getDaysInMonth(date);
- }
- while (date.day > date.calendar.getDaysInMonth(date)) {
- date.day -= date.calendar.getDaysInMonth(date);
- date.month++;
- $735220c2d4774dd3$var$balanceYearMonth(date);
- }
-}
-function $735220c2d4774dd3$var$constrainMonthDay(date) {
- date.month = Math.max(1, Math.min(date.calendar.getMonthsInYear(date), date.month));
- date.day = Math.max(1, Math.min(date.calendar.getDaysInMonth(date), date.day));
-}
-function $735220c2d4774dd3$export$c4e2ecac49351ef2(date) {
- if (date.calendar.constrainDate) date.calendar.constrainDate(date);
- date.year = Math.max(1, Math.min(date.calendar.getYearsInEra(date), date.year));
- $735220c2d4774dd3$var$constrainMonthDay(date);
-}
-function $735220c2d4774dd3$export$3e2544e88a25bff8(duration) {
- let inverseDuration = {};
- for (let key2 in duration) if (typeof duration[key2] === "number") inverseDuration[key2] = -duration[key2];
- return inverseDuration;
-}
-function $735220c2d4774dd3$export$4e2d2ead65e5f7e3(date, duration) {
- return $735220c2d4774dd3$export$e16d8520af44a096(date, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));
-}
-function $735220c2d4774dd3$export$adaa4cf7ef1b65be(date, fields) {
- let mutableDate = date.copy();
- if (fields.era != null) mutableDate.era = fields.era;
- if (fields.year != null) mutableDate.year = fields.year;
- if (fields.month != null) mutableDate.month = fields.month;
- if (fields.day != null) mutableDate.day = fields.day;
- $735220c2d4774dd3$export$c4e2ecac49351ef2(mutableDate);
- return mutableDate;
-}
-function $735220c2d4774dd3$export$e5d5e1c1822b6e56(value, fields) {
- let mutableValue = value.copy();
- if (fields.hour != null) mutableValue.hour = fields.hour;
- if (fields.minute != null) mutableValue.minute = fields.minute;
- if (fields.second != null) mutableValue.second = fields.second;
- if (fields.millisecond != null) mutableValue.millisecond = fields.millisecond;
- $735220c2d4774dd3$export$7555de1e070510cb(mutableValue);
- return mutableValue;
-}
-function $735220c2d4774dd3$var$balanceTime(time) {
- time.second += Math.floor(time.millisecond / 1e3);
- time.millisecond = $735220c2d4774dd3$var$nonNegativeMod(time.millisecond, 1e3);
- time.minute += Math.floor(time.second / 60);
- time.second = $735220c2d4774dd3$var$nonNegativeMod(time.second, 60);
- time.hour += Math.floor(time.minute / 60);
- time.minute = $735220c2d4774dd3$var$nonNegativeMod(time.minute, 60);
- let days = Math.floor(time.hour / 24);
- time.hour = $735220c2d4774dd3$var$nonNegativeMod(time.hour, 24);
- return days;
-}
-function $735220c2d4774dd3$export$7555de1e070510cb(time) {
- time.millisecond = Math.max(0, Math.min(time.millisecond, 1e3));
- time.second = Math.max(0, Math.min(time.second, 59));
- time.minute = Math.max(0, Math.min(time.minute, 59));
- time.hour = Math.max(0, Math.min(time.hour, 23));
-}
-function $735220c2d4774dd3$var$nonNegativeMod(a2, b) {
- let result = a2 % b;
- if (result < 0) result += b;
- return result;
-}
-function $735220c2d4774dd3$var$addTimeFields(time, duration) {
- time.hour += duration.hours || 0;
- time.minute += duration.minutes || 0;
- time.second += duration.seconds || 0;
- time.millisecond += duration.milliseconds || 0;
- return $735220c2d4774dd3$var$balanceTime(time);
-}
-function $735220c2d4774dd3$export$7ed87b6bc2506470(time, duration) {
- let res = time.copy();
- $735220c2d4774dd3$var$addTimeFields(res, duration);
- return res;
-}
-function $735220c2d4774dd3$export$fe34d3a381cd7501(time, duration) {
- return $735220c2d4774dd3$export$7ed87b6bc2506470(time, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));
-}
-function $735220c2d4774dd3$export$d52ced6badfb9a4c(value, field, amount, options) {
- let mutable = value.copy();
- switch (field) {
- case "era": {
- let eras = value.calendar.getEras();
- let eraIndex = eras.indexOf(value.era);
- if (eraIndex < 0) throw new Error("Invalid era: " + value.era);
- eraIndex = $735220c2d4774dd3$var$cycleValue(eraIndex, amount, 0, eras.length - 1, options === null || options === void 0 ? void 0 : options.round);
- mutable.era = eras[eraIndex];
- $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);
- break;
- }
- case "year":
- var _mutable_calendar_isInverseEra, _mutable_calendar;
- if ((_mutable_calendar_isInverseEra = (_mutable_calendar = mutable.calendar).isInverseEra) === null || _mutable_calendar_isInverseEra === void 0 ? void 0 : _mutable_calendar_isInverseEra.call(_mutable_calendar, mutable)) amount = -amount;
- mutable.year = $735220c2d4774dd3$var$cycleValue(value.year, amount, -Infinity, 9999, options === null || options === void 0 ? void 0 : options.round);
- if (mutable.year === -Infinity) mutable.year = 1;
- if (mutable.calendar.balanceYearMonth) mutable.calendar.balanceYearMonth(mutable, value);
- break;
- case "month":
- mutable.month = $735220c2d4774dd3$var$cycleValue(value.month, amount, 1, value.calendar.getMonthsInYear(value), options === null || options === void 0 ? void 0 : options.round);
- break;
- case "day":
- mutable.day = $735220c2d4774dd3$var$cycleValue(value.day, amount, 1, value.calendar.getDaysInMonth(value), options === null || options === void 0 ? void 0 : options.round);
- break;
- default:
- throw new Error("Unsupported field " + field);
- }
- if (value.calendar.balanceDate) value.calendar.balanceDate(mutable);
- $735220c2d4774dd3$export$c4e2ecac49351ef2(mutable);
- return mutable;
-}
-function $735220c2d4774dd3$export$dd02b3e0007dfe28(value, field, amount, options) {
- let mutable = value.copy();
- switch (field) {
- case "hour": {
- let hours = value.hour;
- let min2 = 0;
- let max2 = 23;
- if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {
- let isPM = hours >= 12;
- min2 = isPM ? 12 : 0;
- max2 = isPM ? 23 : 11;
- }
- mutable.hour = $735220c2d4774dd3$var$cycleValue(hours, amount, min2, max2, options === null || options === void 0 ? void 0 : options.round);
- break;
- }
- case "minute":
- mutable.minute = $735220c2d4774dd3$var$cycleValue(value.minute, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);
- break;
- case "second":
- mutable.second = $735220c2d4774dd3$var$cycleValue(value.second, amount, 0, 59, options === null || options === void 0 ? void 0 : options.round);
- break;
- case "millisecond":
- mutable.millisecond = $735220c2d4774dd3$var$cycleValue(value.millisecond, amount, 0, 999, options === null || options === void 0 ? void 0 : options.round);
- break;
- default:
- throw new Error("Unsupported field " + field);
- }
- return mutable;
-}
-function $735220c2d4774dd3$var$cycleValue(value, amount, min2, max2, round2 = false) {
- if (round2) {
- value += Math.sign(amount);
- if (value < min2) value = max2;
- let div = Math.abs(amount);
- if (amount > 0) value = Math.ceil(value / div) * div;
- else value = Math.floor(value / div) * div;
- if (value > max2) value = min2;
- } else {
- value += amount;
- if (value < min2) value = max2 - (min2 - value - 1);
- else if (value > max2) value = min2 + (value - max2 - 1);
- }
- return value;
-}
-function $735220c2d4774dd3$export$96b1d28349274637(dateTime, duration) {
- let ms;
- 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) {
- let res2 = $735220c2d4774dd3$export$e16d8520af44a096((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), {
- years: duration.years,
- months: duration.months,
- weeks: duration.weeks,
- days: duration.days
- });
- ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res2, dateTime.timeZone);
- } else
- ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;
- ms += duration.milliseconds || 0;
- ms += (duration.seconds || 0) * 1e3;
- ms += (duration.minutes || 0) * 6e4;
- ms += (duration.hours || 0) * 36e5;
- let res = (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone);
- return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(res, dateTime.calendar);
-}
-function $735220c2d4774dd3$export$6814caac34ca03c7(dateTime, duration) {
- return $735220c2d4774dd3$export$96b1d28349274637(dateTime, $735220c2d4774dd3$export$3e2544e88a25bff8(duration));
-}
-function $735220c2d4774dd3$export$9a297d111fc86b79(dateTime, field, amount, options) {
- switch (field) {
- case "hour": {
- let min2 = 0;
- let max2 = 23;
- if ((options === null || options === void 0 ? void 0 : options.hourCycle) === 12) {
- let isPM = dateTime.hour >= 12;
- min2 = isPM ? 12 : 0;
- max2 = isPM ? 23 : 11;
- }
- let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);
- let minDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {
- hour: min2
- }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());
- let minAbsolute = [
- (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, "earlier"),
- (0, $11d87f3f76e88657$export$5107c82f94518f5c)(minDate, dateTime.timeZone, "later")
- ].filter((ms2) => (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms2, dateTime.timeZone).day === minDate.day)[0];
- let maxDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)($735220c2d4774dd3$export$e5d5e1c1822b6e56(plainDateTime, {
- hour: max2
- }), new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());
- let maxAbsolute = [
- (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, "earlier"),
- (0, $11d87f3f76e88657$export$5107c82f94518f5c)(maxDate, dateTime.timeZone, "later")
- ].filter((ms2) => (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms2, dateTime.timeZone).day === maxDate.day).pop();
- let ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(dateTime) - dateTime.offset;
- let hours = Math.floor(ms / $735220c2d4774dd3$var$ONE_HOUR);
- let remainder = ms % $735220c2d4774dd3$var$ONE_HOUR;
- ms = $735220c2d4774dd3$var$cycleValue(hours, amount, Math.floor(minAbsolute / $735220c2d4774dd3$var$ONE_HOUR), Math.floor(maxAbsolute / $735220c2d4774dd3$var$ONE_HOUR), options === null || options === void 0 ? void 0 : options.round) * $735220c2d4774dd3$var$ONE_HOUR + remainder;
- return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);
- }
- case "minute":
- case "second":
- case "millisecond":
- return $735220c2d4774dd3$export$dd02b3e0007dfe28(dateTime, field, amount, options);
- case "era":
- case "year":
- case "month":
- case "day": {
- let res = $735220c2d4774dd3$export$d52ced6badfb9a4c((0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime), field, amount, options);
- let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone);
- return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);
- }
- default:
- throw new Error("Unsupported field " + field);
- }
-}
-function $735220c2d4774dd3$export$31b5430eb18be4f8(dateTime, fields, disambiguation) {
- let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(dateTime);
- let res = $735220c2d4774dd3$export$e5d5e1c1822b6e56($735220c2d4774dd3$export$adaa4cf7ef1b65be(plainDateTime, fields), fields);
- if (res.compare(plainDateTime) === 0) return dateTime;
- let ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)(res, dateTime.timeZone, disambiguation);
- return (0, $11d87f3f76e88657$export$b4a036af3fc0b032)((0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, dateTime.timeZone), dateTime.calendar);
-}
-
-// node_modules/@internationalized/date/dist/string.mjs
-var $fae977aafc393c5c$var$DATE_RE = /^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})$/;
-var $fae977aafc393c5c$var$DATE_TIME_RE = /^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})(?:T(\d{2}))?(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?$/;
-var $fae977aafc393c5c$var$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}))?)?\[(.*?)\]$/;
-var $fae977aafc393c5c$var$requiredDurationTimeGroups = [
- "hours",
- "minutes",
- "seconds"
-];
-var $fae977aafc393c5c$var$requiredDurationGroups = [
- "years",
- "months",
- "weeks",
- "days",
- ...$fae977aafc393c5c$var$requiredDurationTimeGroups
-];
-function $fae977aafc393c5c$export$6b862160d295c8e(value) {
- let m = value.match($fae977aafc393c5c$var$DATE_RE);
- if (!m) throw new Error("Invalid ISO 8601 date string: " + value);
- let date = new (0, $35ea8db9cb2ccb90$export$99faa760c7908e4f)($fae977aafc393c5c$var$parseNumber(m[1], 0, 9999), $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1);
- date.day = $fae977aafc393c5c$var$parseNumber(m[3], 1, date.calendar.getDaysInMonth(date));
- return date;
-}
-function $fae977aafc393c5c$export$588937bcd60ade55(value) {
- let m = value.match($fae977aafc393c5c$var$DATE_TIME_RE);
- if (!m) throw new Error("Invalid ISO 8601 date time string: " + value);
- let year = $fae977aafc393c5c$var$parseNumber(m[1], -9999, 9999);
- let era = year < 1 ? "BC" : "AD";
- let date = new (0, $35ea8db9cb2ccb90$export$ca871e8dbb80966f)(era, year < 1 ? -year + 1 : year, $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1e3 : 0);
- date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));
- return date;
-}
-function $fae977aafc393c5c$export$fd7893f06e92a6a4(value, disambiguation) {
- let m = value.match($fae977aafc393c5c$var$ZONED_DATE_TIME_RE);
- if (!m) throw new Error("Invalid ISO 8601 date time string: " + value);
- let year = $fae977aafc393c5c$var$parseNumber(m[1], -9999, 9999);
- let era = year < 1 ? "BC" : "AD";
- let date = new (0, $35ea8db9cb2ccb90$export$d3b7288e7994edea)(era, year < 1 ? -year + 1 : year, $fae977aafc393c5c$var$parseNumber(m[2], 1, 12), 1, m[11], 0, m[4] ? $fae977aafc393c5c$var$parseNumber(m[4], 0, 23) : 0, m[5] ? $fae977aafc393c5c$var$parseNumber(m[5], 0, 59) : 0, m[6] ? $fae977aafc393c5c$var$parseNumber(m[6], 0, 59) : 0, m[7] ? $fae977aafc393c5c$var$parseNumber(m[7], 0, Infinity) * 1e3 : 0);
- date.day = $fae977aafc393c5c$var$parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));
- let plainDateTime = (0, $11d87f3f76e88657$export$b21e0b124e224484)(date);
- let ms;
- if (m[8]) {
- let hourOffset = $fae977aafc393c5c$var$parseNumber(m[8], -23, 23);
- var _m_, _m_1;
- date.offset = Math.sign(hourOffset) * (Math.abs(hourOffset) * 36e5 + $fae977aafc393c5c$var$parseNumber((_m_ = m[9]) !== null && _m_ !== void 0 ? _m_ : "0", 0, 59) * 6e4 + $fae977aafc393c5c$var$parseNumber((_m_1 = m[10]) !== null && _m_1 !== void 0 ? _m_1 : "0", 0, 59) * 1e3);
- ms = (0, $11d87f3f76e88657$export$bd4fb2bc8bb06fb)(date) - date.offset;
- let absolutes = (0, $11d87f3f76e88657$export$136f38efe7caf549)(plainDateTime, date.timeZone);
- if (!absolutes.includes(ms)) throw new Error(`Offset ${$fae977aafc393c5c$var$offsetToString(date.offset)} is invalid for ${$fae977aafc393c5c$export$4223de14708adc63(date)} in ${date.timeZone}`);
- } else
- ms = (0, $11d87f3f76e88657$export$5107c82f94518f5c)((0, $11d87f3f76e88657$export$b21e0b124e224484)(plainDateTime), date.timeZone, disambiguation);
- return (0, $11d87f3f76e88657$export$1b96692a1ba042ac)(ms, date.timeZone);
-}
-function $fae977aafc393c5c$var$parseNumber(value, min2, max2) {
- let val = Number(value);
- if (val < min2 || val > max2) throw new RangeError(`Value out of range: ${min2} <= ${val} <= ${max2}`);
- return val;
-}
-function $fae977aafc393c5c$export$f59dee82248f5ad4(time) {
- return `${String(time.hour).padStart(2, "0")}:${String(time.minute).padStart(2, "0")}:${String(time.second).padStart(2, "0")}${time.millisecond ? String(time.millisecond / 1e3).slice(1) : ""}`;
-}
-function $fae977aafc393c5c$export$60dfd74aa96791bd(date) {
- let gregorianDate = (0, $11d87f3f76e88657$export$b4a036af3fc0b032)(date, new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)());
- let year;
- if (gregorianDate.era === "BC") year = gregorianDate.year === 1 ? "0000" : "-" + String(Math.abs(1 - gregorianDate.year)).padStart(6, "00");
- else year = String(gregorianDate.year).padStart(4, "0");
- return `${year}-${String(gregorianDate.month).padStart(2, "0")}-${String(gregorianDate.day).padStart(2, "0")}`;
-}
-function $fae977aafc393c5c$export$4223de14708adc63(date) {
- return `${$fae977aafc393c5c$export$60dfd74aa96791bd(date)}T${$fae977aafc393c5c$export$f59dee82248f5ad4(date)}`;
-}
-function $fae977aafc393c5c$var$offsetToString(offset3) {
- let sign = Math.sign(offset3) < 0 ? "-" : "+";
- offset3 = Math.abs(offset3);
- let offsetHours = Math.floor(offset3 / 36e5);
- let offsetMinutes = Math.floor(offset3 % 36e5 / 6e4);
- let offsetSeconds = Math.floor(offset3 % 36e5 % 6e4 / 1e3);
- let stringOffset = `${sign}${String(offsetHours).padStart(2, "0")}:${String(offsetMinutes).padStart(2, "0")}`;
- if (offsetSeconds !== 0) stringOffset += `:${String(offsetSeconds).padStart(2, "0")}`;
- return stringOffset;
-}
-function $fae977aafc393c5c$export$bf79f1ebf4b18792(date) {
- return `${$fae977aafc393c5c$export$4223de14708adc63(date)}${$fae977aafc393c5c$var$offsetToString(date.offset)}[${date.timeZone}]`;
-}
-
-// node_modules/@swc/helpers/esm/_check_private_redeclaration.js
-function _check_private_redeclaration(obj, privateCollection) {
- if (privateCollection.has(obj)) {
- throw new TypeError("Cannot initialize the same private elements twice on an object");
- }
-}
-
-// node_modules/@swc/helpers/esm/_class_private_field_init.js
-function _class_private_field_init(obj, privateMap, value) {
- _check_private_redeclaration(obj, privateMap);
- privateMap.set(obj, value);
-}
-
-// node_modules/@internationalized/date/dist/CalendarDate.mjs
-function $35ea8db9cb2ccb90$var$shiftArgs(args) {
- let calendar = typeof args[0] === "object" ? args.shift() : new (0, $3b62074eb05584b2$export$80ee6245ec4f29ec)();
- let era;
- if (typeof args[0] === "string") era = args.shift();
- else {
- let eras = calendar.getEras();
- era = eras[eras.length - 1];
- }
- let year = args.shift();
- let month = args.shift();
- let day = args.shift();
- return [
- calendar,
- era,
- year,
- month,
- day
- ];
-}
-var $35ea8db9cb2ccb90$var$_type = /* @__PURE__ */ new WeakMap();
-var $35ea8db9cb2ccb90$export$99faa760c7908e4f = class _$35ea8db9cb2ccb90$export$99faa760c7908e4f {
- /** Returns a copy of this date. */
- copy() {
- if (this.era) return new _$35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.era, this.year, this.month, this.day);
- else return new _$35ea8db9cb2ccb90$export$99faa760c7908e4f(this.calendar, this.year, this.month, this.day);
- }
- /** Returns a new `CalendarDate` with the given duration added to it. */
- add(duration) {
- return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);
- }
- /** Returns a new `CalendarDate` with the given duration subtracted from it. */
- subtract(duration) {
- return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);
- }
- /** Returns a new `CalendarDate` with the given fields set to the provided values. Other fields will be constrained accordingly. */
- set(fields) {
- return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)(this, fields);
- }
- /**
- * Returns a new `CalendarDate` with the given field adjusted by a specified amount.
- * When the resulting value reaches the limits of the field, it wraps around.
- */
- cycle(field, amount, options) {
- return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);
- }
- /** Converts the date to a native JavaScript Date object, with the time set to midnight in the given time zone. */
- toDate(timeZone) {
- return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone);
- }
- /** Converts the date to an ISO 8601 formatted string. */
- toString() {
- return (0, $fae977aafc393c5c$export$60dfd74aa96791bd)(this);
- }
- /** 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. */
- compare(b) {
- return (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);
- }
- constructor(...args) {
- (0, _class_private_field_init)(this, $35ea8db9cb2ccb90$var$_type, {
- writable: true,
- value: void 0
- });
- let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);
- this.calendar = calendar;
- this.era = era;
- this.year = year;
- this.month = month;
- this.day = day;
- (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);
- }
-};
-var $35ea8db9cb2ccb90$var$_type1 = /* @__PURE__ */ new WeakMap();
-var $35ea8db9cb2ccb90$export$680ea196effce5f = class _$35ea8db9cb2ccb90$export$680ea196effce5f {
- /** Returns a copy of this time. */
- copy() {
- return new _$35ea8db9cb2ccb90$export$680ea196effce5f(this.hour, this.minute, this.second, this.millisecond);
- }
- /** Returns a new `Time` with the given duration added to it. */
- add(duration) {
- return (0, $735220c2d4774dd3$export$7ed87b6bc2506470)(this, duration);
- }
- /** Returns a new `Time` with the given duration subtracted from it. */
- subtract(duration) {
- return (0, $735220c2d4774dd3$export$fe34d3a381cd7501)(this, duration);
- }
- /** Returns a new `Time` with the given fields set to the provided values. Other fields will be constrained accordingly. */
- set(fields) {
- return (0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields);
- }
- /**
- * Returns a new `Time` with the given field adjusted by a specified amount.
- * When the resulting value reaches the limits of the field, it wraps around.
- */
- cycle(field, amount, options) {
- return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);
- }
- /** Converts the time to an ISO 8601 formatted string. */
- toString() {
- return (0, $fae977aafc393c5c$export$f59dee82248f5ad4)(this);
- }
- /** 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. */
- compare(b) {
- return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, b);
- }
- constructor(hour = 0, minute = 0, second = 0, millisecond = 0) {
- (0, _class_private_field_init)(this, $35ea8db9cb2ccb90$var$_type1, {
- writable: true,
- value: void 0
- });
- this.hour = hour;
- this.minute = minute;
- this.second = second;
- this.millisecond = millisecond;
- (0, $735220c2d4774dd3$export$7555de1e070510cb)(this);
- }
-};
-var $35ea8db9cb2ccb90$var$_type2 = /* @__PURE__ */ new WeakMap();
-var $35ea8db9cb2ccb90$export$ca871e8dbb80966f = class _$35ea8db9cb2ccb90$export$ca871e8dbb80966f {
- /** Returns a copy of this date. */
- copy() {
- if (this.era) return new _$35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.era, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);
- else return new _$35ea8db9cb2ccb90$export$ca871e8dbb80966f(this.calendar, this.year, this.month, this.day, this.hour, this.minute, this.second, this.millisecond);
- }
- /** Returns a new `CalendarDateTime` with the given duration added to it. */
- add(duration) {
- return (0, $735220c2d4774dd3$export$e16d8520af44a096)(this, duration);
- }
- /** Returns a new `CalendarDateTime` with the given duration subtracted from it. */
- subtract(duration) {
- return (0, $735220c2d4774dd3$export$4e2d2ead65e5f7e3)(this, duration);
- }
- /** Returns a new `CalendarDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */
- set(fields) {
- return (0, $735220c2d4774dd3$export$adaa4cf7ef1b65be)((0, $735220c2d4774dd3$export$e5d5e1c1822b6e56)(this, fields), fields);
- }
- /**
- * Returns a new `CalendarDateTime` with the given field adjusted by a specified amount.
- * When the resulting value reaches the limits of the field, it wraps around.
- */
- cycle(field, amount, options) {
- switch (field) {
- case "era":
- case "year":
- case "month":
- case "day":
- return (0, $735220c2d4774dd3$export$d52ced6badfb9a4c)(this, field, amount, options);
- default:
- return (0, $735220c2d4774dd3$export$dd02b3e0007dfe28)(this, field, amount, options);
- }
- }
- /** Converts the date to a native JavaScript Date object in the given time zone. */
- toDate(timeZone, disambiguation) {
- return (0, $11d87f3f76e88657$export$e67a095c620b86fe)(this, timeZone, disambiguation);
- }
- /** Converts the date to an ISO 8601 formatted string. */
- toString() {
- return (0, $fae977aafc393c5c$export$4223de14708adc63)(this);
- }
- /** 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. */
- compare(b) {
- let res = (0, $14e0f24ef4ac5c92$export$68781ddf31c0090f)(this, b);
- if (res === 0) return (0, $14e0f24ef4ac5c92$export$c19a80a9721b80f6)(this, (0, $11d87f3f76e88657$export$b21e0b124e224484)(b));
- return res;
- }
- constructor(...args) {
- (0, _class_private_field_init)(this, $35ea8db9cb2ccb90$var$_type2, {
- writable: true,
- value: void 0
- });
- let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);
- this.calendar = calendar;
- this.era = era;
- this.year = year;
- this.month = month;
- this.day = day;
- this.hour = args.shift() || 0;
- this.minute = args.shift() || 0;
- this.second = args.shift() || 0;
- this.millisecond = args.shift() || 0;
- (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);
- }
-};
-var $35ea8db9cb2ccb90$var$_type3 = /* @__PURE__ */ new WeakMap();
-var $35ea8db9cb2ccb90$export$d3b7288e7994edea = class _$35ea8db9cb2ccb90$export$d3b7288e7994edea {
- /** Returns a copy of this date. */
- copy() {
- if (this.era) return new _$35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.era, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);
- else return new _$35ea8db9cb2ccb90$export$d3b7288e7994edea(this.calendar, this.year, this.month, this.day, this.timeZone, this.offset, this.hour, this.minute, this.second, this.millisecond);
- }
- /** Returns a new `ZonedDateTime` with the given duration added to it. */
- add(duration) {
- return (0, $735220c2d4774dd3$export$96b1d28349274637)(this, duration);
- }
- /** Returns a new `ZonedDateTime` with the given duration subtracted from it. */
- subtract(duration) {
- return (0, $735220c2d4774dd3$export$6814caac34ca03c7)(this, duration);
- }
- /** Returns a new `ZonedDateTime` with the given fields set to the provided values. Other fields will be constrained accordingly. */
- set(fields, disambiguation) {
- return (0, $735220c2d4774dd3$export$31b5430eb18be4f8)(this, fields, disambiguation);
- }
- /**
- * Returns a new `ZonedDateTime` with the given field adjusted by a specified amount.
- * When the resulting value reaches the limits of the field, it wraps around.
- */
- cycle(field, amount, options) {
- return (0, $735220c2d4774dd3$export$9a297d111fc86b79)(this, field, amount, options);
- }
- /** Converts the date to a native JavaScript Date object. */
- toDate() {
- return (0, $11d87f3f76e88657$export$83aac07b4c37b25)(this);
- }
- /** Converts the date to an ISO 8601 formatted string, including the UTC offset and time zone identifier. */
- toString() {
- return (0, $fae977aafc393c5c$export$bf79f1ebf4b18792)(this);
- }
- /** Converts the date to an ISO 8601 formatted string in UTC. */
- toAbsoluteString() {
- return this.toDate().toISOString();
- }
- /** 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. */
- compare(b) {
- return this.toDate().getTime() - (0, $11d87f3f76e88657$export$84c95a83c799e074)(b, this.timeZone).toDate().getTime();
- }
- constructor(...args) {
- (0, _class_private_field_init)(this, $35ea8db9cb2ccb90$var$_type3, {
- writable: true,
- value: void 0
- });
- let [calendar, era, year, month, day] = $35ea8db9cb2ccb90$var$shiftArgs(args);
- let timeZone = args.shift();
- let offset3 = args.shift();
- this.calendar = calendar;
- this.era = era;
- this.year = year;
- this.month = month;
- this.day = day;
- this.timeZone = timeZone;
- this.offset = offset3;
- this.hour = args.shift() || 0;
- this.minute = args.shift() || 0;
- this.second = args.shift() || 0;
- this.millisecond = args.shift() || 0;
- (0, $735220c2d4774dd3$export$c4e2ecac49351ef2)(this);
- }
-};
-
-// node_modules/@internationalized/date/dist/HebrewCalendar.mjs
-var $7c5f6fbf42389787$var$HOUR_PARTS = 1080;
-var $7c5f6fbf42389787$var$DAY_PARTS = 24 * $7c5f6fbf42389787$var$HOUR_PARTS;
-var $7c5f6fbf42389787$var$MONTH_DAYS = 29;
-var $7c5f6fbf42389787$var$MONTH_FRACT = 12 * $7c5f6fbf42389787$var$HOUR_PARTS + 793;
-var $7c5f6fbf42389787$var$MONTH_PARTS = $7c5f6fbf42389787$var$MONTH_DAYS * $7c5f6fbf42389787$var$DAY_PARTS + $7c5f6fbf42389787$var$MONTH_FRACT;
-
-// node_modules/@internationalized/date/dist/DateFormatter.mjs
-var $fb18d541ea1ad717$var$formatterCache = /* @__PURE__ */ new Map();
-var $fb18d541ea1ad717$export$ad991b66133851cf = class {
- /** Formats a date as a string according to the locale and format options passed to the constructor. */
- format(value) {
- return this.formatter.format(value);
- }
- /** Formats a date to an array of parts such as separators, numbers, punctuation, and more. */
- formatToParts(value) {
- return this.formatter.formatToParts(value);
- }
- /** Formats a date range as a string. */
- formatRange(start, end) {
- if (typeof this.formatter.formatRange === "function")
- return this.formatter.formatRange(start, end);
- if (end < start) throw new RangeError("End date must be >= start date");
- return `${this.formatter.format(start)} – ${this.formatter.format(end)}`;
- }
- /** Formats a date range as an array of parts. */
- formatRangeToParts(start, end) {
- if (typeof this.formatter.formatRangeToParts === "function")
- return this.formatter.formatRangeToParts(start, end);
- if (end < start) throw new RangeError("End date must be >= start date");
- let startParts = this.formatter.formatToParts(start);
- let endParts = this.formatter.formatToParts(end);
- return [
- ...startParts.map((p2) => ({
- ...p2,
- source: "startRange"
- })),
- {
- type: "literal",
- value: " – ",
- source: "shared"
- },
- ...endParts.map((p2) => ({
- ...p2,
- source: "endRange"
- }))
- ];
- }
- /** Returns the resolved formatting options based on the values passed to the constructor. */
- resolvedOptions() {
- let resolvedOptions = this.formatter.resolvedOptions();
- if ($fb18d541ea1ad717$var$hasBuggyResolvedHourCycle()) {
- if (!this.resolvedHourCycle) this.resolvedHourCycle = $fb18d541ea1ad717$var$getResolvedHourCycle(resolvedOptions.locale, this.options);
- resolvedOptions.hourCycle = this.resolvedHourCycle;
- resolvedOptions.hour12 = this.resolvedHourCycle === "h11" || this.resolvedHourCycle === "h12";
- }
- if (resolvedOptions.calendar === "ethiopic-amete-alem") resolvedOptions.calendar = "ethioaa";
- return resolvedOptions;
- }
- constructor(locale, options = {}) {
- this.formatter = $fb18d541ea1ad717$var$getCachedDateFormatter(locale, options);
- this.options = options;
- }
-};
-var $fb18d541ea1ad717$var$hour12Preferences = {
- true: {
- // Only Japanese uses the h11 style for 12 hour time. All others use h12.
- ja: "h11"
- },
- false: {}
-};
-function $fb18d541ea1ad717$var$getCachedDateFormatter(locale, options = {}) {
- if (typeof options.hour12 === "boolean" && $fb18d541ea1ad717$var$hasBuggyHour12Behavior()) {
- options = {
- ...options
- };
- let pref = $fb18d541ea1ad717$var$hour12Preferences[String(options.hour12)][locale.split("-")[0]];
- let defaultHourCycle = options.hour12 ? "h12" : "h23";
- options.hourCycle = pref !== null && pref !== void 0 ? pref : defaultHourCycle;
- delete options.hour12;
- }
- let cacheKey = locale + (options ? Object.entries(options).sort((a2, b) => a2[0] < b[0] ? -1 : 1).join() : "");
- if ($fb18d541ea1ad717$var$formatterCache.has(cacheKey)) return $fb18d541ea1ad717$var$formatterCache.get(cacheKey);
- let numberFormatter = new Intl.DateTimeFormat(locale, options);
- $fb18d541ea1ad717$var$formatterCache.set(cacheKey, numberFormatter);
- return numberFormatter;
-}
-var $fb18d541ea1ad717$var$_hasBuggyHour12Behavior = null;
-function $fb18d541ea1ad717$var$hasBuggyHour12Behavior() {
- if ($fb18d541ea1ad717$var$_hasBuggyHour12Behavior == null) $fb18d541ea1ad717$var$_hasBuggyHour12Behavior = new Intl.DateTimeFormat("en-US", {
- hour: "numeric",
- hour12: false
- }).format(new Date(2020, 2, 3, 0)) === "24";
- return $fb18d541ea1ad717$var$_hasBuggyHour12Behavior;
-}
-var $fb18d541ea1ad717$var$_hasBuggyResolvedHourCycle = null;
-function $fb18d541ea1ad717$var$hasBuggyResolvedHourCycle() {
- if ($fb18d541ea1ad717$var$_hasBuggyResolvedHourCycle == null) $fb18d541ea1ad717$var$_hasBuggyResolvedHourCycle = new Intl.DateTimeFormat("fr", {
- hour: "numeric",
- hour12: false
- }).resolvedOptions().hourCycle === "h12";
- return $fb18d541ea1ad717$var$_hasBuggyResolvedHourCycle;
-}
-function $fb18d541ea1ad717$var$getResolvedHourCycle(locale, options) {
- if (!options.timeStyle && !options.hour) return void 0;
- locale = locale.replace(/(-u-)?-nu-[a-zA-Z0-9]+/, "");
- locale += (locale.includes("-u-") ? "" : "-u") + "-nu-latn";
- let formatter = $fb18d541ea1ad717$var$getCachedDateFormatter(locale, {
- ...options,
- timeZone: void 0
- // use local timezone
- });
- let min2 = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 0)).find((p2) => p2.type === "hour").value, 10);
- let max2 = parseInt(formatter.formatToParts(new Date(2020, 2, 3, 23)).find((p2) => p2.type === "hour").value, 10);
- if (min2 === 0 && max2 === 23) return "h23";
- if (min2 === 24 && max2 === 23) return "h24";
- if (min2 === 0 && max2 === 11) return "h11";
- if (min2 === 12 && max2 === 11) return "h12";
- throw new Error("Unexpected hour cycle result");
-}
-
-// node_modules/bits-ui/dist/internal/date-time/announcer.js
-function initAnnouncer(doc) {
- if (!isBrowser || !doc)
- return null;
- let el = doc.querySelector("[data-bits-announcer]");
- const createLog = (kind) => {
- const log = doc.createElement("div");
- log.role = "log";
- log.ariaLive = kind;
- log.setAttribute("aria-relevant", "additions");
- return log;
- };
- if (!isHTMLElement2(el)) {
- const div = doc.createElement("div");
- div.style.cssText = srOnlyStylesString;
- div.setAttribute("data-bits-announcer", "");
- div.appendChild(createLog("assertive"));
- div.appendChild(createLog("polite"));
- el = div;
- doc.body.insertBefore(el, doc.body.firstChild);
- }
- const getLog = (kind) => {
- if (!isHTMLElement2(el))
- return null;
- const log = el.querySelector(`[aria-live="${kind}"]`);
- if (!isHTMLElement2(log))
- return null;
- return log;
- };
- return {
- getLog
- };
-}
-function getAnnouncer(doc) {
- const announcer = initAnnouncer(doc);
- function announce(value, kind = "assertive", timeout = 7500) {
- if (!announcer || !isBrowser || !doc)
- return;
- const log = announcer.getLog(kind);
- const content = doc.createElement("div");
- if (typeof value === "number") {
- value = value.toString();
- } else if (value === null) {
- value = "Empty";
- } else {
- value = value.trim();
- }
- content.innerText = value;
- if (kind === "assertive") {
- log?.replaceChildren(content);
- } else {
- log?.appendChild(content);
- }
- return setTimeout(() => {
- content.remove();
- }, timeout);
- }
- return {
- announce
- };
-}
-
-// node_modules/bits-ui/dist/internal/date-time/utils.js
-var defaultDateDefaults = {
- defaultValue: void 0,
- granularity: "day"
-};
-var defaultTimeDefaults = {
- defaultValue: void 0,
- granularity: "minute"
-};
-function getDefaultDate(opts) {
- const withDefaults = { ...defaultDateDefaults, ...opts };
- const { defaultValue, granularity, minValue, maxValue } = withDefaults;
- if (Array.isArray(defaultValue) && defaultValue.length) {
- return defaultValue[defaultValue.length - 1];
- }
- if (defaultValue && !Array.isArray(defaultValue)) {
- return defaultValue;
- } else {
- let date = /* @__PURE__ */ new Date();
- if (minValue && date < minValue.toDate($14e0f24ef4ac5c92$export$aa8b41735afcabd2())) {
- date = minValue.toDate($14e0f24ef4ac5c92$export$aa8b41735afcabd2());
- } else if (maxValue && date > maxValue.toDate($14e0f24ef4ac5c92$export$aa8b41735afcabd2())) {
- date = maxValue.toDate($14e0f24ef4ac5c92$export$aa8b41735afcabd2());
- }
- const year = date.getFullYear();
- const month = date.getMonth() + 1;
- const day = date.getDate();
- const calendarDateTimeGranularities = ["hour", "minute", "second"];
- if (calendarDateTimeGranularities.includes(granularity ?? "day")) {
- return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(year, month, day, 0, 0, 0);
- }
- return new $35ea8db9cb2ccb90$export$99faa760c7908e4f(year, month, day);
- }
-}
-function getDefaultTime(opts) {
- const withDefaults = { ...defaultTimeDefaults, ...opts };
- const { defaultValue } = withDefaults;
- if (defaultValue) {
- return defaultValue;
- } else {
- return new $35ea8db9cb2ccb90$export$680ea196effce5f(0, 0, 0);
- }
-}
-function parseStringToDateValue(dateStr, referenceVal) {
- let dateValue;
- if (referenceVal instanceof $35ea8db9cb2ccb90$export$d3b7288e7994edea) {
- dateValue = $fae977aafc393c5c$export$fd7893f06e92a6a4(dateStr);
- } else if (referenceVal instanceof $35ea8db9cb2ccb90$export$ca871e8dbb80966f) {
- dateValue = $fae977aafc393c5c$export$588937bcd60ade55(dateStr);
- } else {
- dateValue = $fae977aafc393c5c$export$6b862160d295c8e(dateStr);
- }
- return dateValue.calendar !== referenceVal.calendar ? $11d87f3f76e88657$export$b4a036af3fc0b032(dateValue, referenceVal.calendar) : dateValue;
-}
-function toDate(dateValue, tz = $14e0f24ef4ac5c92$export$aa8b41735afcabd2()) {
- if (dateValue instanceof $35ea8db9cb2ccb90$export$d3b7288e7994edea) {
- return dateValue.toDate();
- } else {
- return dateValue.toDate(tz);
- }
-}
-function getDateValueType(date) {
- if (date instanceof $35ea8db9cb2ccb90$export$99faa760c7908e4f)
- return "date";
- if (date instanceof $35ea8db9cb2ccb90$export$ca871e8dbb80966f)
- return "datetime";
- if (date instanceof $35ea8db9cb2ccb90$export$d3b7288e7994edea)
- return "zoneddatetime";
- throw new Error("Unknown date type");
-}
-function parseAnyDateValue(value, type) {
- switch (type) {
- case "date":
- return $fae977aafc393c5c$export$6b862160d295c8e(value);
- case "datetime":
- return $fae977aafc393c5c$export$588937bcd60ade55(value);
- case "zoneddatetime":
- return $fae977aafc393c5c$export$fd7893f06e92a6a4(value);
- default:
- throw new Error(`Unknown date type: ${type}`);
- }
-}
-function isCalendarDateTime(dateValue) {
- return dateValue instanceof $35ea8db9cb2ccb90$export$ca871e8dbb80966f;
-}
-function isZonedDateTime(dateValue) {
- return dateValue instanceof $35ea8db9cb2ccb90$export$d3b7288e7994edea;
-}
-function hasTime(dateValue) {
- return isCalendarDateTime(dateValue) || isZonedDateTime(dateValue);
-}
-function getDaysInMonth(date) {
- if (date instanceof Date) {
- const year = date.getFullYear();
- const month = date.getMonth() + 1;
- return new Date(year, month, 0).getDate();
- } else {
- return date.set({ day: 100 }).day;
- }
-}
-function isBefore(dateToCompare, referenceDate) {
- return dateToCompare.compare(referenceDate) < 0;
-}
-function isAfter(dateToCompare, referenceDate) {
- return dateToCompare.compare(referenceDate) > 0;
-}
-function isBeforeOrSame(dateToCompare, referenceDate) {
- return dateToCompare.compare(referenceDate) <= 0;
-}
-function isAfterOrSame(dateToCompare, referenceDate) {
- return dateToCompare.compare(referenceDate) >= 0;
-}
-function isBetweenInclusive(date, start, end) {
- return isAfterOrSame(date, start) && isBeforeOrSame(date, end);
-}
-function getLastFirstDayOfWeek(date, firstDayOfWeek, locale) {
- const day = $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale);
- if (firstDayOfWeek > day) {
- return date.subtract({ days: day + 7 - firstDayOfWeek });
- }
- if (firstDayOfWeek === day) {
- return date;
- }
- return date.subtract({ days: day - firstDayOfWeek });
-}
-function getNextLastDayOfWeek(date, firstDayOfWeek, locale) {
- const day = $14e0f24ef4ac5c92$export$2061056d06d7cdf7(date, locale);
- const lastDayOfWeek = firstDayOfWeek === 0 ? 6 : firstDayOfWeek - 1;
- if (day === lastDayOfWeek) {
- return date;
- }
- if (day > lastDayOfWeek) {
- return date.add({ days: 7 - day + lastDayOfWeek });
- }
- return date.add({ days: lastDayOfWeek - day });
-}
-function areAllDaysBetweenValid(start, end, isUnavailable, isDisabled) {
- if (isUnavailable === void 0 && isDisabled === void 0) {
- return true;
- }
- let dCurrent = start.add({ days: 1 });
- if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent)) {
- return false;
- }
- const dEnd = end;
- while (dCurrent.compare(dEnd) < 0) {
- dCurrent = dCurrent.add({ days: 1 });
- if (isDisabled?.(dCurrent) || isUnavailable?.(dCurrent)) {
- return false;
- }
- }
- return true;
-}
-
-// node_modules/bits-ui/dist/internal/date-time/field/parts.js
-var DATE_SEGMENT_PARTS = ["day", "month", "year"];
-var EDITABLE_TIME_SEGMENT_PARTS = ["hour", "minute", "second", "dayPeriod"];
-var NON_EDITABLE_SEGMENT_PARTS = ["literal", "timeZoneName"];
-var EDITABLE_SEGMENT_PARTS = [
- ...DATE_SEGMENT_PARTS,
- ...EDITABLE_TIME_SEGMENT_PARTS
-];
-var ALL_SEGMENT_PARTS = [
- ...EDITABLE_SEGMENT_PARTS,
- ...NON_EDITABLE_SEGMENT_PARTS
-];
-var ALL_TIME_SEGMENT_PARTS = [
- ...EDITABLE_TIME_SEGMENT_PARTS,
- ...NON_EDITABLE_SEGMENT_PARTS
-];
-var ALL_EXCEPT_LITERAL_PARTS = ALL_SEGMENT_PARTS.filter((part) => part !== "literal");
-var ALL_TIME_EXCEPT_LITERAL_PARTS = ALL_TIME_SEGMENT_PARTS.filter((part) => part !== "literal");
-
-// node_modules/bits-ui/dist/internal/date-time/placeholders.js
-var supportedLocales = [
- "ach",
- "af",
- "am",
- "an",
- "ar",
- "ast",
- "az",
- "be",
- "bg",
- "bn",
- "br",
- "bs",
- "ca",
- "cak",
- "ckb",
- "cs",
- "cy",
- "da",
- "de",
- "dsb",
- "el",
- "en",
- "eo",
- "es",
- "et",
- "eu",
- "fa",
- "ff",
- "fi",
- "fr",
- "fy",
- "ga",
- "gd",
- "gl",
- "he",
- "hr",
- "hsb",
- "hu",
- "ia",
- "id",
- "it",
- "ja",
- "ka",
- "kk",
- "kn",
- "ko",
- "lb",
- "lo",
- "lt",
- "lv",
- "meh",
- "ml",
- "ms",
- "nl",
- "nn",
- "no",
- "oc",
- "pl",
- "pt",
- "rm",
- "ro",
- "ru",
- "sc",
- "scn",
- "sk",
- "sl",
- "sr",
- "sv",
- "szl",
- "tg",
- "th",
- "tr",
- "uk",
- "zh-CN",
- "zh-TW"
-];
-var placeholderFields = ["year", "month", "day"];
-var placeholders = {
- ach: { year: "mwaka", month: "dwe", day: "nino" },
- af: { year: "jjjj", month: "mm", day: "dd" },
- am: { year: "ዓዓዓዓ", month: "ሚሜ", day: "ቀቀ" },
- an: { year: "aaaa", month: "mm", day: "dd" },
- ar: { year: "سنة", month: "شهر", day: "يوم" },
- ast: { year: "aaaa", month: "mm", day: "dd" },
- az: { year: "iiii", month: "aa", day: "gg" },
- be: { year: "гггг", month: "мм", day: "дд" },
- bg: { year: "гггг", month: "мм", day: "дд" },
- bn: { year: "yyyy", month: "মিমি", day: "dd" },
- br: { year: "bbbb", month: "mm", day: "dd" },
- bs: { year: "gggg", month: "mm", day: "dd" },
- ca: { year: "aaaa", month: "mm", day: "dd" },
- cak: { year: "jjjj", month: "ii", day: "q'q'" },
- ckb: { year: "ساڵ", month: "مانگ", day: "ڕۆژ" },
- cs: { year: "rrrr", month: "mm", day: "dd" },
- cy: { year: "bbbb", month: "mm", day: "dd" },
- da: { year: "åååå", month: "mm", day: "dd" },
- de: { year: "jjjj", month: "mm", day: "tt" },
- dsb: { year: "llll", month: "mm", day: "źź" },
- el: { year: "εεεε", month: "μμ", day: "ηη" },
- en: { year: "yyyy", month: "mm", day: "dd" },
- eo: { year: "jjjj", month: "mm", day: "tt" },
- es: { year: "aaaa", month: "mm", day: "dd" },
- et: { year: "aaaa", month: "kk", day: "pp" },
- eu: { year: "uuuu", month: "hh", day: "ee" },
- fa: { year: "سال", month: "ماه", day: "روز" },
- ff: { year: "hhhh", month: "ll", day: "ññ" },
- fi: { year: "vvvv", month: "kk", day: "pp" },
- fr: { year: "aaaa", month: "mm", day: "jj" },
- fy: { year: "jjjj", month: "mm", day: "dd" },
- ga: { year: "bbbb", month: "mm", day: "ll" },
- gd: { year: "bbbb", month: "mm", day: "ll" },
- gl: { year: "aaaa", month: "mm", day: "dd" },
- he: { year: "שנה", month: "חודש", day: "יום" },
- hr: { year: "gggg", month: "mm", day: "dd" },
- hsb: { year: "llll", month: "mm", day: "dd" },
- hu: { year: "éééé", month: "hh", day: "nn" },
- ia: { year: "aaaa", month: "mm", day: "dd" },
- id: { year: "tttt", month: "bb", day: "hh" },
- it: { year: "aaaa", month: "mm", day: "gg" },
- ja: { year: " 年 ", month: "月", day: "日" },
- ka: { year: "წწწწ", month: "თთ", day: "რრ" },
- kk: { year: "жжжж", month: "аа", day: "кк" },
- kn: { year: "ವವವವ", month: "ಮಿಮೀ", day: "ದಿದಿ" },
- ko: { year: "연도", month: "월", day: "일" },
- lb: { year: "jjjj", month: "mm", day: "dd" },
- lo: { year: "ປປປປ", month: "ດດ", day: "ວວ" },
- lt: { year: "mmmm", month: "mm", day: "dd" },
- lv: { year: "gggg", month: "mm", day: "dd" },
- meh: { year: "aaaa", month: "mm", day: "dd" },
- ml: { year: "വർഷം", month: "മാസം", day: "തീയതി" },
- ms: { year: "tttt", month: "mm", day: "hh" },
- nl: { year: "jjjj", month: "mm", day: "dd" },
- nn: { year: "åååå", month: "mm", day: "dd" },
- no: { year: "åååå", month: "mm", day: "dd" },
- oc: { year: "aaaa", month: "mm", day: "jj" },
- pl: { year: "rrrr", month: "mm", day: "dd" },
- pt: { year: "aaaa", month: "mm", day: "dd" },
- rm: { year: "oooo", month: "mm", day: "dd" },
- ro: { year: "aaaa", month: "ll", day: "zz" },
- ru: { year: "гггг", month: "мм", day: "дд" },
- sc: { year: "aaaa", month: "mm", day: "dd" },
- scn: { year: "aaaa", month: "mm", day: "jj" },
- sk: { year: "rrrr", month: "mm", day: "dd" },
- sl: { year: "llll", month: "mm", day: "dd" },
- sr: { year: "гггг", month: "мм", day: "дд" },
- sv: { year: "åååå", month: "mm", day: "dd" },
- szl: { year: "rrrr", month: "mm", day: "dd" },
- tg: { year: "сссс", month: "мм", day: "рр" },
- th: { year: "ปปปป", month: "ดด", day: "วว" },
- tr: { year: "yyyy", month: "aa", day: "gg" },
- uk: { year: "рррр", month: "мм", day: "дд" },
- "zh-CN": { year: "年", month: "月", day: "日" },
- "zh-TW": { year: "年", month: "月", day: "日" }
-};
-function getPlaceholderObj(locale) {
- if (!isSupportedLocale(locale)) {
- const localeLanguage = getLocaleLanguage(locale);
- if (!isSupportedLocale(localeLanguage)) {
- return placeholders.en;
- } else {
- return placeholders[localeLanguage];
- }
- } else {
- return placeholders[locale];
- }
-}
-function getPlaceholder(field, value, locale) {
- if (isPlaceholderField(field))
- return getPlaceholderObj(locale)[field];
- if (isDefaultField(field))
- return value;
- if (isTimeField(field))
- return "––";
- return "";
-}
-function isSupportedLocale(locale) {
- return supportedLocales.includes(locale);
-}
-function isPlaceholderField(field) {
- return placeholderFields.includes(field);
-}
-function isTimeField(field) {
- return field === "hour" || field === "minute" || field === "second";
-}
-function isDefaultField(field) {
- return field === "era" || field === "dayPeriod";
-}
-function getLocaleLanguage(locale) {
- if (Intl.Locale) {
- return new Intl.Locale(locale).language;
- }
- return locale.split("-")[0];
-}
-
-// node_modules/bits-ui/dist/internal/date-time/field/helpers.js
-function initializeSegmentValues(granularity) {
- const calendarDateTimeGranularities = ["hour", "minute", "second"];
- const initialParts = EDITABLE_SEGMENT_PARTS.map((part) => {
- if (part === "dayPeriod") {
- return [part, "AM"];
- }
- return [part, null];
- }).filter(([key2]) => {
- if (key2 === "literal" || key2 === null)
- return false;
- if (granularity === "day") {
- return !calendarDateTimeGranularities.includes(key2);
- } else {
- return true;
- }
- });
- return Object.fromEntries(initialParts);
-}
-function createContentObj(props) {
- const { segmentValues, formatter, locale, dateRef } = props;
- const content = Object.keys(segmentValues).reduce((obj, part) => {
- if (!isSegmentPart(part))
- return obj;
- if ("hour" in segmentValues && part === "dayPeriod") {
- const value = segmentValues[part];
- if (!isNull(value)) {
- obj[part] = value;
- } else {
- obj[part] = getPlaceholder(part, "AM", locale);
- }
- } else {
- obj[part] = getPartContent(part);
- }
- return obj;
- }, {});
- function getPartContent(part) {
- if ("hour" in segmentValues) {
- const value = segmentValues[part];
- const leadingZero = typeof value === "string" && value?.startsWith("0");
- const intValue = value !== null ? Number.parseInt(value) : null;
- if (value === "0" && part !== "year") {
- return "0";
- } else if (!isNull(value) && !isNull(intValue)) {
- const formatted = formatter.part(dateRef.set({ [part]: value }), part, {
- hourCycle: props.hourCycle === 24 ? "h23" : void 0
- });
- const is12HourMode = props.hourCycle === 12 || props.hourCycle === void 0 && getDefaultHourCycle(locale) === 12;
- if (part === "hour" && is12HourMode) {
- if (intValue > 12) {
- const hour = intValue - 12;
- if (hour === 0) {
- return "12";
- } else if (hour < 10) {
- return `0${hour}`;
- } else {
- return `${hour}`;
- }
- }
- if (intValue === 0) {
- return "12";
- }
- if (intValue < 10) {
- return `0${intValue}`;
- }
- return `${intValue}`;
- }
- if (part === "year") {
- return `${value}`;
- }
- if (leadingZero && formatted.length === 1) {
- return `0${formatted}`;
- }
- return formatted;
- } else {
- return getPlaceholder(part, "", locale);
- }
- } else {
- if (isDateSegmentPart(part)) {
- const value = segmentValues[part];
- const leadingZero = typeof value === "string" && value?.startsWith("0");
- if (value === "0") {
- return "0";
- } else if (!isNull(value)) {
- const formatted = formatter.part(dateRef.set({ [part]: value }), part);
- if (part === "year") {
- return `${value}`;
- }
- if (leadingZero && formatted.length === 1) {
- return `0${formatted}`;
- }
- return formatted;
- } else {
- return getPlaceholder(part, "", locale);
- }
- }
- return "";
- }
- }
- return content;
-}
-function createContentArr(props) {
- const { granularity, dateRef, formatter, contentObj, hideTimeZone, hourCycle } = props;
- const parts = formatter.toParts(dateRef, getOptsByGranularity(granularity, hourCycle));
- const segmentContentArr = parts.map((part) => {
- const defaultParts = ["literal", "dayPeriod", "timeZoneName", null];
- if (defaultParts.includes(part.type) || !isSegmentPart(part.type)) {
- return {
- part: part.type,
- value: part.value
- };
- }
- return {
- part: part.type,
- value: contentObj[part.type]
- };
- }).filter((segment) => {
- if (isNull(segment.part) || isNull(segment.value))
- return false;
- if (segment.part === "timeZoneName" && (!isZonedDateTime(dateRef) || hideTimeZone)) {
- return false;
- }
- return true;
- });
- return segmentContentArr;
-}
-function createContent(props) {
- const contentObj = createContentObj(props);
- const contentArr = createContentArr({
- contentObj,
- ...props
- });
- return {
- obj: contentObj,
- arr: contentArr
- };
-}
-function getOptsByGranularity(granularity, hourCycle) {
- const opts = {
- year: "numeric",
- month: "2-digit",
- day: "2-digit",
- hour: "2-digit",
- minute: "2-digit",
- second: "2-digit",
- timeZoneName: "short",
- hourCycle: hourCycle === 24 ? "h23" : void 0,
- hour12: hourCycle === 24 ? false : void 0
- };
- if (granularity === "day") {
- delete opts.second;
- delete opts.hour;
- delete opts.minute;
- delete opts.timeZoneName;
- }
- if (granularity === "hour") {
- delete opts.minute;
- }
- if (granularity === "minute") {
- delete opts.second;
- }
- return opts;
-}
-function initSegmentStates() {
- return EDITABLE_SEGMENT_PARTS.reduce((acc, key2) => {
- acc[key2] = {
- lastKeyZero: false,
- hasLeftFocus: true,
- updating: null
- };
- return acc;
- }, {});
-}
-function isDateSegmentPart(part) {
- return DATE_SEGMENT_PARTS.includes(part);
-}
-function isSegmentPart(part) {
- return EDITABLE_SEGMENT_PARTS.includes(part);
-}
-function isAnySegmentPart(part) {
- return ALL_SEGMENT_PARTS.includes(part);
-}
-function getUsedSegments(fieldNode) {
- if (!isBrowser || !fieldNode)
- return [];
- const usedSegments = getSegments(fieldNode).map((el) => el.dataset.segment).filter((part) => {
- return EDITABLE_SEGMENT_PARTS.includes(part);
- });
- return usedSegments;
-}
-function getValueFromSegments(props) {
- const { segmentObj, fieldNode, dateRef } = props;
- const usedSegments = getUsedSegments(fieldNode);
- let date = dateRef;
- for (const part of usedSegments) {
- if ("hour" in segmentObj) {
- const value = segmentObj[part];
- if (isNull(value))
- continue;
- date = date.set({ [part]: segmentObj[part] });
- } else if (isDateSegmentPart(part)) {
- const value = segmentObj[part];
- if (isNull(value))
- continue;
- date = date.set({ [part]: segmentObj[part] });
- }
- }
- return date;
-}
-function areAllSegmentsFilled(segmentValues, fieldNode) {
- const usedSegments = getUsedSegments(fieldNode);
- for (const part of usedSegments) {
- if ("hour" in segmentValues) {
- if (segmentValues[part] === null) {
- return false;
- }
- } else if (isDateSegmentPart(part)) {
- if (segmentValues[part] === null) {
- return false;
- }
- }
- }
- return true;
-}
-function isDateAndTimeSegmentObj(obj) {
- if (typeof obj !== "object" || obj === null) {
- return false;
- }
- return Object.entries(obj).every(([key2, value]) => {
- const validKey = EDITABLE_TIME_SEGMENT_PARTS.includes(key2) || DATE_SEGMENT_PARTS.includes(key2);
- const validValue = key2 === "dayPeriod" ? value === "AM" || value === "PM" || value === null : typeof value === "string" || typeof value === "number" || value === null;
- return validKey && validValue;
- });
-}
-function inferGranularity(value, granularity) {
- if (granularity)
- return granularity;
- if (hasTime(value))
- return "minute";
- return "day";
-}
-function isAcceptableSegmentKey(key2) {
- const acceptableSegmentKeys = [
- kbd_constants_exports.ENTER,
- kbd_constants_exports.ARROW_UP,
- kbd_constants_exports.ARROW_DOWN,
- kbd_constants_exports.ARROW_LEFT,
- kbd_constants_exports.ARROW_RIGHT,
- kbd_constants_exports.BACKSPACE,
- kbd_constants_exports.SPACE
- ];
- if (acceptableSegmentKeys.includes(key2))
- return true;
- if (isNumberString(key2))
- return true;
- return false;
-}
-function isFirstSegment(id, fieldNode) {
- if (!isBrowser)
- return false;
- const segments = getSegments(fieldNode);
- return segments.length ? segments[0].id === id : false;
-}
-function setDescription(props) {
- const { id, formatter, value, doc } = props;
- if (!isBrowser)
- return;
- const valueString = formatter.selectedDate(value);
- const el = doc.getElementById(id);
- if (!el) {
- const div = doc.createElement("div");
- div.style.cssText = styleToString({
- display: "none"
- });
- div.id = id;
- div.innerText = `Selected Date: ${valueString}`;
- doc.body.appendChild(div);
- } else {
- el.innerText = `Selected Date: ${valueString}`;
- }
-}
-function removeDescriptionElement(id, doc) {
- if (!isBrowser)
- return;
- const el = doc.getElementById(id);
- if (!el)
- return;
- doc.body.removeChild(el);
-}
-function getDefaultHourCycle(locale) {
- const formatter = new Intl.DateTimeFormat(locale, { hour: "numeric" });
- const parts = formatter.formatToParts(/* @__PURE__ */ new Date("2023-01-01T13:00:00"));
- const hourPart = parts.find((part) => part.type === "hour");
- return hourPart?.value === "1" ? 12 : 24;
-}
-
-// node_modules/bits-ui/dist/internal/date-time/field/segments.js
-function handleSegmentNavigation(e, fieldNode) {
- const currentTarget = e.currentTarget;
- if (!isHTMLElement2(currentTarget))
- return;
- const { prev: prev2, next: next3 } = getPrevNextSegments(currentTarget, fieldNode);
- if (e.key === kbd_constants_exports.ARROW_LEFT) {
- if (!prev2)
- return;
- prev2.focus();
- } else if (e.key === kbd_constants_exports.ARROW_RIGHT) {
- if (!next3)
- return;
- next3.focus();
- }
-}
-function handleTimeSegmentNavigation(e, fieldNode) {
- const currentTarget = e.currentTarget;
- if (!isHTMLElement2(currentTarget))
- return;
- const { prev: prev2, next: next3 } = getPrevNextTimeSegments(currentTarget, fieldNode);
- if (e.key === kbd_constants_exports.ARROW_LEFT) {
- if (!prev2)
- return;
- prev2.focus();
- } else if (e.key === kbd_constants_exports.ARROW_RIGHT) {
- if (!next3)
- return;
- next3.focus();
- }
-}
-function getNextSegment(node, segments) {
- const index = segments.indexOf(node);
- if (index === segments.length - 1 || index === -1)
- return null;
- const nextIndex = index + 1;
- const nextSegment = segments[nextIndex];
- return nextSegment;
-}
-function getPrevSegment(node, segments) {
- const index = segments.indexOf(node);
- if (index === 0 || index === -1)
- return null;
- const prevIndex = index - 1;
- const prevSegment = segments[prevIndex];
- return prevSegment;
-}
-function getPrevNextSegments(startingNode, fieldNode) {
- const segments = getSegments(fieldNode);
- if (!segments.length) {
- return {
- next: null,
- prev: null
- };
- }
- return {
- next: getNextSegment(startingNode, segments),
- prev: getPrevSegment(startingNode, segments)
- };
-}
-function getPrevNextTimeSegments(startingNode, fieldNode) {
- const segments = getTimeSegments(fieldNode);
- if (!segments.length) {
- return {
- next: null,
- prev: null
- };
- }
- return {
- next: getNextSegment(startingNode, segments),
- prev: getPrevSegment(startingNode, segments)
- };
-}
-function moveToNextSegment(e, fieldNode) {
- const node = e.currentTarget;
- if (!isHTMLElement2(node))
- return;
- const { next: next3 } = getPrevNextSegments(node, fieldNode);
- if (!next3)
- return;
- next3.focus();
-}
-function moveToNextTimeSegment(e, fieldNode) {
- const node = e.currentTarget;
- if (!isHTMLElement2(node))
- return;
- const { next: next3 } = getPrevNextTimeSegments(node, fieldNode);
- if (!next3)
- return;
- next3.focus();
-}
-function moveToPrevTimeSegment(e, fieldNode) {
- const node = e.currentTarget;
- if (!isHTMLElement2(node))
- return;
- const { prev: prev2 } = getPrevNextTimeSegments(node, fieldNode);
- if (!prev2)
- return;
- prev2.focus();
-}
-function moveToPrevSegment(e, fieldNode) {
- const node = e.currentTarget;
- if (!isHTMLElement2(node))
- return;
- const { prev: prev2 } = getPrevNextSegments(node, fieldNode);
- if (!prev2)
- return;
- prev2.focus();
-}
-function isSegmentNavigationKey(key2) {
- if (key2 === kbd_constants_exports.ARROW_RIGHT || key2 === kbd_constants_exports.ARROW_LEFT)
- return true;
- return false;
-}
-function getSegments(fieldNode) {
- if (!fieldNode)
- return [];
- const segments = Array.from(fieldNode.querySelectorAll("[data-segment]")).filter((el) => {
- if (!isHTMLElement2(el))
- return false;
- const segment = el.dataset.segment;
- if (segment === "trigger")
- return true;
- if (!isAnySegmentPart(segment) || segment === "literal")
- return false;
- return true;
- });
- return segments;
-}
-function getTimeSegments(fieldNode) {
- if (!fieldNode)
- return [];
- const segments = Array.from(fieldNode.querySelectorAll("[data-segment]")).filter((el) => {
- if (!isHTMLElement2(el))
- return false;
- const segment = el.dataset.segment;
- if (segment === "trigger")
- return true;
- if (segment === "literal")
- return false;
- return true;
- });
- return segments;
-}
-function getFirstTimeSegment(fieldNode) {
- return getTimeSegments(fieldNode)[0];
-}
-function getFirstSegment(fieldNode) {
- return getSegments(fieldNode)[0];
-}
-
-// node_modules/bits-ui/dist/internal/date-time/field/time-helpers.js
-function createTimeContentObj(props) {
- const { segmentValues, formatter, locale, timeRef } = props;
- const content = Object.keys(segmentValues).reduce((obj, part) => {
- if (!isEditableTimeSegmentPart(part))
- return obj;
- if (part === "dayPeriod") {
- const value = segmentValues[part];
- if (!isNull(value)) {
- obj[part] = value;
- } else {
- obj[part] = getPlaceholder(part, "AM", locale);
- }
- } else {
- obj[part] = getPartContent(part);
- }
- return obj;
- }, {});
- function getPartContent(part) {
- const value = segmentValues[part];
- const leadingZero = typeof value === "string" && value?.startsWith("0");
- const intValue = value !== null ? Number.parseInt(value) : null;
- if (!isNull(value) && !isNull(intValue)) {
- const formatted = formatter.part(timeRef.set({ [part]: value }), part, {
- hourCycle: props.hourCycle === 24 ? "h23" : void 0
- });
- const is12HourMode = props.hourCycle === 12 || props.hourCycle === void 0 && getDefaultHourCycle(locale) === 12;
- if (part === "hour" && is12HourMode) {
- if (intValue > 12) {
- const hour = intValue - 12;
- if (hour === 0) {
- return "12";
- } else if (hour < 10) {
- return `0${hour}`;
- } else {
- return `${hour}`;
- }
- }
- if (intValue === 0) {
- return "12";
- }
- if (intValue < 10) {
- return `0${intValue}`;
- }
- return `${intValue}`;
- }
- if (leadingZero && formatted.length === 1) {
- return `0${formatted}`;
- }
- return formatted;
- } else {
- return getPlaceholder(part, "", locale);
- }
- }
- return content;
-}
-function createTimeContentArr(props) {
- const { granularity, timeRef, formatter, contentObj, hideTimeZone, hourCycle } = props;
- const parts = formatter.toParts(timeRef, getOptsByGranularity2(granularity, hourCycle));
- const timeSegmentContentArr = parts.map((part) => {
- const defaultParts = ["literal", "timeZoneName", null];
- if (defaultParts.includes(part.type) || !isEditableTimeSegmentPart(part.type)) {
- return {
- part: part.type,
- value: part.value
- };
- }
- return {
- part: part.type,
- value: contentObj[part.type]
- };
- }).filter((segment) => {
- if (isNull(segment.part) || isNull(segment.value))
- return false;
- if (segment.part === "timeZoneName" && (!isZonedDateTime(timeRef) || hideTimeZone)) {
- return false;
- }
- return true;
- });
- return timeSegmentContentArr;
-}
-function createTimeContent(props) {
- const contentObj = createTimeContentObj(props);
- const contentArr = createTimeContentArr({
- contentObj,
- ...props
- });
- return {
- obj: contentObj,
- arr: contentArr
- };
-}
-function getOptsByGranularity2(granularity, hourCycle) {
- const opts = {
- hour: "2-digit",
- minute: "2-digit",
- second: "2-digit",
- timeZoneName: "short",
- hourCycle: hourCycle === 24 ? "h23" : void 0,
- hour12: hourCycle === 24 ? false : void 0
- };
- if (granularity === "hour") {
- delete opts.minute;
- delete opts.second;
- }
- if (granularity === "minute") {
- delete opts.second;
- }
- return opts;
-}
-function initTimeSegmentStates() {
- return EDITABLE_TIME_SEGMENT_PARTS.reduce((acc, key2) => {
- acc[key2] = {
- lastKeyZero: false,
- hasLeftFocus: true,
- updating: null
- };
- return acc;
- }, {});
-}
-function isEditableTimeSegmentPart(part) {
- return EDITABLE_TIME_SEGMENT_PARTS.includes(part);
-}
-function getUsedTimeSegments(fieldNode) {
- if (!isBrowser || !fieldNode)
- return [];
- const usedSegments = getTimeSegments(fieldNode).map((el) => el.dataset.segment).filter((part) => {
- return EDITABLE_TIME_SEGMENT_PARTS.includes(part);
- });
- return usedSegments;
-}
-function getTimeValueFromSegments(props) {
- const usedSegments = getUsedTimeSegments(props.fieldNode);
- for (const part of usedSegments) {
- const value = props.segmentObj[part];
- if (isNull(value))
- continue;
- props.timeRef = props.timeRef.set({ [part]: props.segmentObj[part] });
- }
- return props.timeRef;
-}
-function areAllTimeSegmentsFilled(segmentValues, fieldNode) {
- const usedSegments = getUsedTimeSegments(fieldNode);
- for (const part of usedSegments) {
- if (segmentValues[part] === null)
- return false;
- }
- return true;
-}
-function isFirstTimeSegment(id, fieldNode) {
- if (!isBrowser)
- return false;
- const segments = getTimeSegments(fieldNode);
- return segments.length ? segments[0].id === id : false;
-}
-function setTimeDescription(props) {
- if (!isBrowser)
- return;
- const valueString = props.formatter.selectedTime(props.value);
- const el = props.doc.getElementById(props.id);
- if (!el) {
- const div = props.doc.createElement("div");
- div.style.cssText = styleToString({
- display: "none"
- });
- div.id = props.id;
- div.innerText = `Selected Time: ${valueString}`;
- props.doc.body.appendChild(div);
- } else {
- el.innerText = `Selected Time: ${valueString}`;
- }
-}
-function removeTimeDescriptionElement(id, doc) {
- if (!isBrowser)
- return;
- const el = doc.getElementById(id);
- if (!el)
- return;
- doc.body.removeChild(el);
-}
-function convertTimeValueToDateValue(time) {
- if (time instanceof $35ea8db9cb2ccb90$export$680ea196effce5f) {
- return new $35ea8db9cb2ccb90$export$ca871e8dbb80966f(2020, 1, 1, time.hour, time.minute, time.second, time.millisecond);
- }
- return time;
-}
-function convertTimeValueToTime(time) {
- if (time instanceof $35ea8db9cb2ccb90$export$680ea196effce5f)
- return time;
- return new $35ea8db9cb2ccb90$export$680ea196effce5f(time.hour, time.minute, time.second, time.millisecond);
-}
-function isTimeBefore(timeToCompare, referenceTime) {
- return timeToCompare.compare(referenceTime) < 0;
-}
-function getISOTimeValue(time) {
- return convertTimeValueToTime(time).toString();
-}
-
-// node_modules/bits-ui/dist/internal/date-time/formatter.js
-var defaultPartOptions = {
- year: "numeric",
- month: "numeric",
- day: "numeric",
- hour: "numeric",
- minute: "numeric",
- second: "numeric"
-};
-function createFormatter(opts) {
- let locale = opts.initialLocale;
- function setLocale(newLocale) {
- locale = newLocale;
- }
- function getLocale() {
- return locale;
- }
- function custom(date, options) {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, options).format(date);
- }
- function selectedDate(date, includeTime = true) {
- if (hasTime(date) && includeTime) {
- return custom(toDate(date), {
- dateStyle: "long",
- timeStyle: "long"
- });
- } else {
- return custom(toDate(date), {
- dateStyle: "long"
- });
- }
- }
- function fullMonthAndYear(date) {
- if (typeof opts.monthFormat.current !== "function" && typeof opts.yearFormat.current !== "function") {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, {
- month: opts.monthFormat.current,
- year: opts.yearFormat.current
- }).format(date);
- }
- const formattedMonth = typeof opts.monthFormat.current === "function" ? opts.monthFormat.current(date.getMonth() + 1) : new $fb18d541ea1ad717$export$ad991b66133851cf(locale, { month: opts.monthFormat.current }).format(date);
- const formattedYear = typeof opts.yearFormat.current === "function" ? opts.yearFormat.current(date.getFullYear()) : new $fb18d541ea1ad717$export$ad991b66133851cf(locale, { year: opts.yearFormat.current }).format(date);
- return `${formattedMonth} ${formattedYear}`;
- }
- function fullMonth(date) {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, { month: "long" }).format(date);
- }
- function fullYear(date) {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, { year: "numeric" }).format(date);
- }
- function toParts(date, options) {
- if (isZonedDateTime(date)) {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, {
- ...options,
- timeZone: date.timeZone
- }).formatToParts(toDate(date));
- } else {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, options).formatToParts(toDate(date));
- }
- }
- function dayOfWeek(date, length = "narrow") {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, { weekday: length }).format(date);
- }
- function dayPeriod(date, hourCycle = void 0) {
- const parts = new $fb18d541ea1ad717$export$ad991b66133851cf(locale, {
- hour: "numeric",
- minute: "numeric",
- hourCycle: hourCycle === 24 ? "h23" : void 0
- }).formatToParts(date);
- const value = parts.find((p2) => p2.type === "dayPeriod")?.value;
- if (value === "PM") {
- return "PM";
- }
- return "AM";
- }
- function part(dateObj, type, options = {}) {
- const opts2 = { ...defaultPartOptions, ...options };
- const parts = toParts(dateObj, opts2);
- const part2 = parts.find((p2) => p2.type === type);
- return part2 ? part2.value : "";
- }
- return {
- setLocale,
- getLocale,
- fullMonth,
- fullYear,
- fullMonthAndYear,
- toParts,
- custom,
- part,
- dayPeriod,
- selectedDate,
- dayOfWeek
- };
-}
-function createTimeFormatter(initialLocale) {
- let locale = initialLocale;
- function setLocale(newLocale) {
- locale = newLocale;
- }
- function getLocale() {
- return locale;
- }
- function custom(date, options) {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, options).format(date);
- }
- function selectedTime(date) {
- return custom(toDate(convertTimeValueToDateValue(date)), {
- timeStyle: "long"
- });
- }
- function toParts(timeValue, options) {
- const dateValue = convertTimeValueToDateValue(timeValue);
- if (isZonedDateTime(dateValue)) {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, {
- ...options,
- timeZone: dateValue.timeZone
- }).formatToParts(toDate(dateValue));
- } else {
- return new $fb18d541ea1ad717$export$ad991b66133851cf(locale, options).formatToParts(toDate(dateValue));
- }
- }
- function dayPeriod(date, hourCycle = void 0) {
- const parts = new $fb18d541ea1ad717$export$ad991b66133851cf(locale, {
- hour: "numeric",
- minute: "numeric",
- hourCycle: hourCycle === 24 ? "h23" : void 0
- }).formatToParts(date);
- const value = parts.find((p2) => p2.type === "dayPeriod")?.value;
- if (value === "PM")
- return "PM";
- return "AM";
- }
- function part(dateObj, type, options = {}) {
- const opts = { ...defaultPartOptions, ...options };
- const parts = toParts(dateObj, opts);
- const part2 = parts.find((p2) => p2.type === type);
- return part2 ? part2.value : "";
- }
- return {
- setLocale,
- getLocale,
- toParts,
- custom,
- part,
- dayPeriod,
- selectedTime
- };
-}
-
-// node_modules/bits-ui/dist/internal/date-time/calendar-helpers.svelte.js
-function isCalendarDayNode(node) {
- if (!isHTMLElement2(node)) return false;
- if (!node.hasAttribute("data-bits-day")) return false;
- return true;
-}
-function getDaysBetween(start, end) {
- const days = [];
- let dCurrent = start.add({ days: 1 });
- const dEnd = end;
- while (dCurrent.compare(dEnd) < 0) {
- days.push(dCurrent);
- dCurrent = dCurrent.add({ days: 1 });
- }
- return days;
-}
-function createMonth(props) {
- const { dateObj, weekStartsOn, fixedWeeks, locale } = props;
- const daysInMonth = getDaysInMonth(dateObj);
- const datesArray = Array.from({ length: daysInMonth }, (_, i) => dateObj.set({ day: i + 1 }));
- const firstDayOfMonth = $14e0f24ef4ac5c92$export$a5a3b454ada2268e(dateObj);
- const lastDayOfMonth = $14e0f24ef4ac5c92$export$a2258d9c4118825c(dateObj);
- const lastSunday = strict_equals(weekStartsOn, void 0, false) ? getLastFirstDayOfWeek(firstDayOfMonth, weekStartsOn, "en-US") : getLastFirstDayOfWeek(firstDayOfMonth, 0, locale);
- const nextSaturday = strict_equals(weekStartsOn, void 0, false) ? getNextLastDayOfWeek(lastDayOfMonth, weekStartsOn, "en-US") : getNextLastDayOfWeek(lastDayOfMonth, 0, locale);
- const lastMonthDays = getDaysBetween(lastSunday.subtract({ days: 1 }), firstDayOfMonth);
- const nextMonthDays = getDaysBetween(lastDayOfMonth, nextSaturday.add({ days: 1 }));
- const totalDays = lastMonthDays.length + datesArray.length + nextMonthDays.length;
- if (fixedWeeks && totalDays < 42) {
- const extraDays = 42 - totalDays;
- let startFrom = nextMonthDays[nextMonthDays.length - 1];
- if (!startFrom) {
- startFrom = dateObj.add({ months: 1 }).set({ day: 1 });
- }
- let length = extraDays;
- if (strict_equals(nextMonthDays.length, 0)) {
- length = extraDays - 1;
- nextMonthDays.push(startFrom);
- }
- const extraDaysArray = Array.from({ length }, (_, i) => {
- const incr = i + 1;
- return startFrom.add({ days: incr });
- });
- nextMonthDays.push(...extraDaysArray);
- }
- const allDays = lastMonthDays.concat(datesArray, nextMonthDays);
- const weeks = chunk(allDays, 7);
- return { value: dateObj, dates: allDays, weeks };
-}
-function createMonths(props) {
- const { numberOfMonths, dateObj, ...monthProps } = props;
- const months = [];
- if (!numberOfMonths || strict_equals(numberOfMonths, 1)) {
- months.push(createMonth({ ...monthProps, dateObj }));
- return months;
- }
- months.push(createMonth({ ...monthProps, dateObj }));
- for (let i = 1; i < numberOfMonths; i++) {
- const nextMonth = dateObj.add({ months: i });
- months.push(createMonth({ ...monthProps, dateObj: nextMonth }));
- }
- return months;
-}
-function getSelectableCells(calendarNode) {
- if (!calendarNode) return [];
- const selectableSelector = `[data-bits-day]:not([data-disabled]):not([data-outside-visible-months])`;
- return Array.from(calendarNode.querySelectorAll(selectableSelector)).filter((el) => isHTMLElement2(el));
-}
-function setPlaceholderToNodeValue(node, placeholder) {
- const cellValue = node.getAttribute("data-value");
- if (!cellValue) return;
- placeholder.current = parseStringToDateValue(cellValue, placeholder.current);
-}
-function shiftCalendarFocus({
- node,
- add,
- placeholder,
- calendarNode,
- isPrevButtonDisabled,
- isNextButtonDisabled,
- months,
- numberOfMonths
-}) {
- const candidateCells = getSelectableCells(calendarNode);
- if (!candidateCells.length) return;
- const index = candidateCells.indexOf(node);
- const nextIndex = index + add;
- if (isValidIndex(nextIndex, candidateCells)) {
- const nextCell = candidateCells[nextIndex];
- setPlaceholderToNodeValue(nextCell, placeholder);
- return nextCell.focus();
- }
- if (nextIndex < 0) {
- if (isPrevButtonDisabled) return;
- const firstMonth = months[0]?.value;
- if (!firstMonth) return;
- placeholder.current = firstMonth.subtract({ months: numberOfMonths });
- afterTick(() => {
- const newCandidateCells = getSelectableCells(calendarNode);
- if (!newCandidateCells.length) return;
- const newIndex = newCandidateCells.length - Math.abs(nextIndex);
- if (isValidIndex(newIndex, newCandidateCells)) {
- const newCell = newCandidateCells[newIndex];
- setPlaceholderToNodeValue(newCell, placeholder);
- return newCell.focus();
- }
- });
- }
- if (nextIndex >= candidateCells.length) {
- if (isNextButtonDisabled) return;
- const firstMonth = months[0]?.value;
- if (!firstMonth) return;
- placeholder.current = firstMonth.add({ months: numberOfMonths });
- afterTick(() => {
- const newCandidateCells = getSelectableCells(calendarNode);
- if (!newCandidateCells.length) return;
- const newIndex = nextIndex - candidateCells.length;
- if (isValidIndex(newIndex, newCandidateCells)) {
- const nextCell = newCandidateCells[newIndex];
- return nextCell.focus();
- }
- });
- }
-}
-var ARROW_KEYS = [
- kbd_constants_exports.ARROW_DOWN,
- kbd_constants_exports.ARROW_UP,
- kbd_constants_exports.ARROW_LEFT,
- kbd_constants_exports.ARROW_RIGHT
-];
-var SELECT_KEYS = [kbd_constants_exports.ENTER, kbd_constants_exports.SPACE];
-function handleCalendarKeydown({ event, handleCellClick, shiftFocus, placeholderValue }) {
- const currentCell = event.target;
- if (!isCalendarDayNode(currentCell)) return;
- if (!ARROW_KEYS.includes(event.key) && !SELECT_KEYS.includes(event.key)) return;
- event.preventDefault();
- const kbdFocusMap = {
- [kbd_constants_exports.ARROW_DOWN]: 7,
- [kbd_constants_exports.ARROW_UP]: -7,
- [kbd_constants_exports.ARROW_LEFT]: -1,
- [kbd_constants_exports.ARROW_RIGHT]: 1
- };
- if (ARROW_KEYS.includes(event.key)) {
- const add = kbdFocusMap[event.key];
- if (strict_equals(add, void 0, false)) {
- shiftFocus(currentCell, add);
- }
- }
- if (SELECT_KEYS.includes(event.key)) {
- const cellValue = currentCell.getAttribute("data-value");
- if (!cellValue) return;
- handleCellClick(event, parseStringToDateValue(cellValue, placeholderValue));
- }
-}
-function handleCalendarNextPage({
- months,
- setMonths,
- numberOfMonths,
- pagedNavigation,
- weekStartsOn,
- locale,
- fixedWeeks,
- setPlaceholder
-}) {
- const firstMonth = months[0]?.value;
- if (!firstMonth) return;
- if (pagedNavigation) {
- setPlaceholder(firstMonth.add({ months: numberOfMonths }));
- } else {
- const targetDate = firstMonth.add({ months: 1 });
- const newMonths = createMonths({
- dateObj: targetDate,
- weekStartsOn,
- locale,
- fixedWeeks,
- numberOfMonths
- });
- setPlaceholder(targetDate);
- setMonths(newMonths);
- }
-}
-function handleCalendarPrevPage({
- months,
- setMonths,
- numberOfMonths,
- pagedNavigation,
- weekStartsOn,
- locale,
- fixedWeeks,
- setPlaceholder
-}) {
- const firstMonth = months[0]?.value;
- if (!firstMonth) return;
- if (pagedNavigation) {
- setPlaceholder(firstMonth.subtract({ months: numberOfMonths }));
- } else {
- const targetDate = firstMonth.subtract({ months: 1 });
- const newMonths = createMonths({
- dateObj: targetDate,
- weekStartsOn,
- locale,
- fixedWeeks,
- numberOfMonths
- });
- setPlaceholder(targetDate);
- setMonths(newMonths);
- }
-}
-function getWeekdays({ months, formatter, weekdayFormat }) {
- if (!months.length) return [];
- const firstMonth = months[0];
- const firstWeek = firstMonth.weeks[0];
- if (!firstWeek) return [];
- return firstWeek.map((date) => formatter.dayOfWeek(toDate(date), weekdayFormat));
-}
-function useMonthViewOptionsSync(props) {
- user_effect(() => {
- const weekStartsOn = props.weekStartsOn.current;
- const locale = props.locale.current;
- const fixedWeeks = props.fixedWeeks.current;
- const numberOfMonths = props.numberOfMonths.current;
- untrack(() => {
- const placeholder = props.placeholder.current;
- if (!placeholder) return;
- const defaultMonthProps = { weekStartsOn, locale, fixedWeeks, numberOfMonths };
- props.setMonths(createMonths({ ...defaultMonthProps, dateObj: placeholder }));
- });
- });
-}
-function createAccessibleHeading({ calendarNode, label, accessibleHeadingId }) {
- const doc = getDocument(calendarNode);
- const div = doc.createElement("div");
- div.style.cssText = styleToString({
- border: "0px",
- clip: "rect(0px, 0px, 0px, 0px)",
- clipPath: "inset(50%)",
- height: "1px",
- margin: "-1px",
- overflow: "hidden",
- padding: "0px",
- position: "absolute",
- whiteSpace: "nowrap",
- width: "1px"
- });
- const h2 = doc.createElement("div");
- h2.textContent = label;
- h2.id = accessibleHeadingId;
- h2.role = "heading";
- h2.ariaLevel = "2";
- calendarNode.insertBefore(div, calendarNode.firstChild);
- div.appendChild(h2);
- return () => {
- const h22 = doc.getElementById(accessibleHeadingId);
- if (!h22) return;
- div.parentElement?.removeChild(div);
- h22.remove();
- };
-}
-function useMonthViewPlaceholderSync({
- placeholder,
- getVisibleMonths,
- weekStartsOn,
- locale,
- fixedWeeks,
- numberOfMonths,
- setMonths
-}) {
- user_effect(() => {
- placeholder.current;
- untrack(() => {
- if (getVisibleMonths().some((month) => $14e0f24ef4ac5c92$export$a18c89cbd24170ff(month, placeholder.current))) {
- return;
- }
- const defaultMonthProps = {
- weekStartsOn: weekStartsOn.current,
- locale: locale.current,
- fixedWeeks: fixedWeeks.current,
- numberOfMonths: numberOfMonths.current
- };
- setMonths(createMonths({ ...defaultMonthProps, dateObj: placeholder.current }));
- });
- });
-}
-function getIsNextButtonDisabled({ maxValue, months, disabled }) {
- if (!maxValue || !months.length) return false;
- if (disabled) return true;
- const lastMonthInView = months[months.length - 1]?.value;
- if (!lastMonthInView) return false;
- const firstMonthOfNextPage = lastMonthInView.add({ months: 1 }).set({ day: 1 });
- return isAfter(firstMonthOfNextPage, maxValue);
-}
-function getIsPrevButtonDisabled({ minValue, months, disabled }) {
- if (!minValue || !months.length) return false;
- if (disabled) return true;
- const firstMonthInView = months[0]?.value;
- if (!firstMonthInView) return false;
- const lastMonthOfPrevPage = firstMonthInView.subtract({ months: 1 }).set({ day: 35 });
- return isBefore(lastMonthOfPrevPage, minValue);
-}
-function getCalendarHeadingValue({ months, locale, formatter }) {
- if (!months.length) return "";
- if (strict_equals(locale, formatter.getLocale(), false)) {
- formatter.setLocale(locale);
- }
- if (strict_equals(months.length, 1)) {
- const month = toDate(months[0].value);
- return `${formatter.fullMonthAndYear(month)}`;
- }
- const startMonth = toDate(months[0].value);
- const endMonth = toDate(months[months.length - 1].value);
- const startMonthName = formatter.fullMonth(startMonth);
- const endMonthName = formatter.fullMonth(endMonth);
- const startMonthYear = formatter.fullYear(startMonth);
- const endMonthYear = formatter.fullYear(endMonth);
- const content = strict_equals(startMonthYear, endMonthYear) ? `${startMonthName} - ${endMonthName} ${endMonthYear}` : `${startMonthName} ${startMonthYear} - ${endMonthName} ${endMonthYear}`;
- return content;
-}
-function getCalendarElementProps({ fullCalendarLabel, id, isInvalid, disabled, readonly }) {
- return {
- id,
- role: "application",
- "aria-label": fullCalendarLabel,
- "data-invalid": boolToEmptyStrOrUndef(isInvalid),
- "data-disabled": boolToEmptyStrOrUndef(disabled),
- "data-readonly": boolToEmptyStrOrUndef(readonly)
- };
-}
-function pickerOpenFocus(e) {
- const doc = getDocument(e.target);
- const nodeToFocus = doc.querySelector("[data-bits-day][data-focused]");
- if (nodeToFocus) {
- e.preventDefault();
- nodeToFocus?.focus();
- }
-}
-function getFirstNonDisabledDateInView(calendarRef) {
- if (!isBrowser) return;
- const daysInView = Array.from(calendarRef.querySelectorAll("[data-bits-day]:not([aria-disabled=true])"));
- if (strict_equals(daysInView.length, 0)) return;
- const element2 = daysInView[0];
- const value = element2?.getAttribute("data-value");
- const type = element2?.getAttribute("data-type");
- if (!value || !type) return;
- return parseAnyDateValue(value, type);
-}
-function useEnsureNonDisabledPlaceholder({
- ref,
- placeholder,
- defaultPlaceholder,
- minValue,
- maxValue,
- isDateDisabled
-}) {
- function isDisabled(date) {
- if (isDateDisabled.current(date)) return true;
- if (minValue.current && isBefore(date, minValue.current)) return true;
- if (maxValue.current && isBefore(maxValue.current, date)) return true;
- return false;
- }
- watch(() => ref.current, () => {
- if (!ref.current) return;
- if (placeholder.current && $14e0f24ef4ac5c92$export$ea39ec197993aef0(placeholder.current, defaultPlaceholder) && isDisabled(defaultPlaceholder)) {
- placeholder.current = getFirstNonDisabledDateInView(ref.current) ?? defaultPlaceholder;
- }
- });
-}
-function getDateWithPreviousTime(date, prev2) {
- if (!date || !prev2) return date;
- if (hasTime(date) && hasTime(prev2)) {
- return date.set({
- hour: prev2.hour,
- minute: prev2.minute,
- millisecond: prev2.millisecond,
- second: prev2.second
- });
- }
- return date;
-}
-var calendarAttrs = createBitsAttrs({
- component: "calendar",
- parts: [
- "root",
- "grid",
- "cell",
- "next-button",
- "prev-button",
- "day",
- "grid-body",
- "grid-head",
- "grid-row",
- "head-cell",
- "header",
- "heading",
- "month-select",
- "year-select"
- ]
-});
-function getDefaultYears(opts) {
- const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
- const latestYear = Math.max(opts.placeholderYear, currentYear);
- let minYear;
- let maxYear;
- if (opts.minValue) {
- minYear = opts.minValue.year;
- } else {
- const initialMinYear = latestYear - 100;
- minYear = opts.placeholderYear < initialMinYear ? opts.placeholderYear - 10 : initialMinYear;
- }
- if (opts.maxValue) {
- maxYear = opts.maxValue.year;
- } else {
- maxYear = latestYear + 10;
- }
- if (minYear > maxYear) {
- minYear = maxYear;
- }
- const totalYears = maxYear - minYear + 1;
- return Array.from({ length: totalYears }, (_, i) => minYear + i);
-}
-
-// node_modules/bits-ui/dist/bits/calendar/calendar.svelte.js
-var CalendarRootContext = new Context("Calendar.Root | RangeCalender.Root");
-var CalendarRootState = class _CalendarRootState {
- static create(opts) {
- return CalendarRootContext.set(new _CalendarRootState(opts));
- }
- opts;
- #visibleMonths = tag(user_derived(() => this.months.map((month) => month.value)), "CalendarRootState.visibleMonths");
- get visibleMonths() {
- return get(this.#visibleMonths);
- }
- set visibleMonths(value) {
- set(this.#visibleMonths, value);
- }
- formatter;
- accessibleHeadingId = useId();
- domContext;
- attachment;
- #months = tag(state(proxy([])), "CalendarRootState.months");
- get months() {
- return get(this.#months);
- }
- set months(value) {
- set(this.#months, value, true);
- }
- announcer;
- constructor(opts) {
- this.opts = opts;
- this.attachment = attachRef(this.opts.ref);
- this.domContext = new DOMContext(opts.ref);
- this.announcer = getAnnouncer(null);
- this.formatter = createFormatter({
- initialLocale: this.opts.locale.current,
- monthFormat: this.opts.monthFormat,
- yearFormat: this.opts.yearFormat
- });
- this.setMonths = this.setMonths.bind(this);
- this.nextPage = this.nextPage.bind(this);
- this.prevPage = this.prevPage.bind(this);
- this.prevYear = this.prevYear.bind(this);
- this.nextYear = this.nextYear.bind(this);
- this.setYear = this.setYear.bind(this);
- this.setMonth = this.setMonth.bind(this);
- this.isOutsideVisibleMonths = this.isOutsideVisibleMonths.bind(this);
- this.isDateDisabled = this.isDateDisabled.bind(this);
- this.isDateSelected = this.isDateSelected.bind(this);
- this.shiftFocus = this.shiftFocus.bind(this);
- this.handleCellClick = this.handleCellClick.bind(this);
- this.handleMultipleUpdate = this.handleMultipleUpdate.bind(this);
- this.handleSingleUpdate = this.handleSingleUpdate.bind(this);
- this.onkeydown = this.onkeydown.bind(this);
- this.getBitsAttr = this.getBitsAttr.bind(this);
- onMount(() => {
- this.announcer = getAnnouncer(this.domContext.getDocument());
- });
- this.months = createMonths({
- dateObj: this.opts.placeholder.current,
- weekStartsOn: this.opts.weekStartsOn.current,
- locale: this.opts.locale.current,
- fixedWeeks: this.opts.fixedWeeks.current,
- numberOfMonths: this.opts.numberOfMonths.current
- });
- this.#setupInitialFocusEffect();
- this.#setupAccessibleHeadingEffect();
- this.#setupFormatterEffect();
- useMonthViewPlaceholderSync({
- placeholder: this.opts.placeholder,
- getVisibleMonths: () => this.visibleMonths,
- weekStartsOn: this.opts.weekStartsOn,
- locale: this.opts.locale,
- fixedWeeks: this.opts.fixedWeeks,
- numberOfMonths: this.opts.numberOfMonths,
- setMonths: (months) => this.months = months
- });
- useMonthViewOptionsSync({
- fixedWeeks: this.opts.fixedWeeks,
- locale: this.opts.locale,
- numberOfMonths: this.opts.numberOfMonths,
- placeholder: this.opts.placeholder,
- setMonths: this.setMonths,
- weekStartsOn: this.opts.weekStartsOn
- });
- watch(() => this.fullCalendarLabel, (label) => {
- const node = this.domContext.getElementById(this.accessibleHeadingId);
- if (!node) return;
- node.textContent = label;
- });
- watch(() => this.opts.value.current, () => {
- const value = this.opts.value.current;
- if (Array.isArray(value) && value.length) {
- const lastValue = value[value.length - 1];
- if (lastValue && strict_equals(this.opts.placeholder.current, lastValue, false)) {
- this.opts.placeholder.current = lastValue;
- }
- } else if (!Array.isArray(value) && value && strict_equals(this.opts.placeholder.current, value, false)) {
- this.opts.placeholder.current = value;
- }
- });
- useEnsureNonDisabledPlaceholder({
- placeholder: opts.placeholder,
- defaultPlaceholder: opts.defaultPlaceholder,
- isDateDisabled: opts.isDateDisabled,
- maxValue: opts.maxValue,
- minValue: opts.minValue,
- ref: opts.ref
- });
- }
- setMonths(months) {
- this.months = months;
- }
- #weekdays = tag(
- user_derived(
- /**
- * This derived state holds an array of localized day names for the current
- * locale and calendar view. It dynamically syncs with the 'weekStartsOn' option,
- * updating its content when the option changes. Using this state to render the
- * calendar's days of the week is strongly recommended, as it guarantees that
- * the days are correctly formatted for the current locale and calendar view.
- */
- () => {
- return getWeekdays({
- months: this.months,
- formatter: this.formatter,
- weekdayFormat: this.opts.weekdayFormat.current
- });
- }
- ),
- "CalendarRootState.weekdays"
- );
- get weekdays() {
- return get(this.#weekdays);
- }
- set weekdays(value) {
- set(this.#weekdays, value);
- }
- #initialPlaceholderYear = tag(user_derived(() => untrack(() => this.opts.placeholder.current.year)), "CalendarRootState.initialPlaceholderYear");
- get initialPlaceholderYear() {
- return get(this.#initialPlaceholderYear);
- }
- set initialPlaceholderYear(value) {
- set(this.#initialPlaceholderYear, value);
- }
- #defaultYears = tag(
- user_derived(() => {
- return getDefaultYears({
- minValue: this.opts.minValue.current,
- maxValue: this.opts.maxValue.current,
- placeholderYear: this.initialPlaceholderYear
- });
- }),
- "CalendarRootState.defaultYears"
- );
- get defaultYears() {
- return get(this.#defaultYears);
- }
- set defaultYears(value) {
- set(this.#defaultYears, value);
- }
- #setupInitialFocusEffect() {
- user_effect(() => {
- const initialFocus = untrack(() => this.opts.initialFocus.current);
- if (initialFocus) {
- const firstFocusedDay = this.opts.ref.current?.querySelector(`[data-focused]`);
- if (firstFocusedDay) {
- firstFocusedDay.focus();
- }
- }
- });
- }
- #setupAccessibleHeadingEffect() {
- user_effect(() => {
- if (!this.opts.ref.current) return;
- const removeHeading = createAccessibleHeading({
- calendarNode: this.opts.ref.current,
- label: this.fullCalendarLabel,
- accessibleHeadingId: this.accessibleHeadingId
- });
- return removeHeading;
- });
- }
- #setupFormatterEffect() {
- user_pre_effect(() => {
- if (strict_equals(this.formatter.getLocale(), this.opts.locale.current)) return;
- this.formatter.setLocale(this.opts.locale.current);
- });
- }
- /**
- * Navigates to the next page of the calendar.
- */
- nextPage() {
- handleCalendarNextPage({
- fixedWeeks: this.opts.fixedWeeks.current,
- locale: this.opts.locale.current,
- numberOfMonths: this.opts.numberOfMonths.current,
- pagedNavigation: this.opts.pagedNavigation.current,
- setMonths: this.setMonths,
- setPlaceholder: (date) => this.opts.placeholder.current = date,
- weekStartsOn: this.opts.weekStartsOn.current,
- months: this.months
- });
- }
- /**
- * Navigates to the previous page of the calendar.
- */
- prevPage() {
- handleCalendarPrevPage({
- fixedWeeks: this.opts.fixedWeeks.current,
- locale: this.opts.locale.current,
- numberOfMonths: this.opts.numberOfMonths.current,
- pagedNavigation: this.opts.pagedNavigation.current,
- setMonths: this.setMonths,
- setPlaceholder: (date) => this.opts.placeholder.current = date,
- weekStartsOn: this.opts.weekStartsOn.current,
- months: this.months
- });
- }
- nextYear() {
- this.opts.placeholder.current = this.opts.placeholder.current.add({ years: 1 });
- }
- prevYear() {
- this.opts.placeholder.current = this.opts.placeholder.current.subtract({ years: 1 });
- }
- setYear(year) {
- this.opts.placeholder.current = this.opts.placeholder.current.set({ year });
- }
- setMonth(month) {
- this.opts.placeholder.current = this.opts.placeholder.current.set({ month });
- }
- #isNextButtonDisabled = tag(
- user_derived(() => {
- return getIsNextButtonDisabled({
- maxValue: this.opts.maxValue.current,
- months: this.months,
- disabled: this.opts.disabled.current
- });
- }),
- "CalendarRootState.isNextButtonDisabled"
- );
- get isNextButtonDisabled() {
- return get(this.#isNextButtonDisabled);
- }
- set isNextButtonDisabled(value) {
- set(this.#isNextButtonDisabled, value);
- }
- #isPrevButtonDisabled = tag(
- user_derived(() => {
- return getIsPrevButtonDisabled({
- minValue: this.opts.minValue.current,
- months: this.months,
- disabled: this.opts.disabled.current
- });
- }),
- "CalendarRootState.isPrevButtonDisabled"
- );
- get isPrevButtonDisabled() {
- return get(this.#isPrevButtonDisabled);
- }
- set isPrevButtonDisabled(value) {
- set(this.#isPrevButtonDisabled, value);
- }
- #isInvalid = tag(
- user_derived(() => {
- const value = this.opts.value.current;
- const isDateDisabled = this.opts.isDateDisabled.current;
- const isDateUnavailable = this.opts.isDateUnavailable.current;
- if (Array.isArray(value)) {
- if (!value.length) return false;
- for (const date of value) {
- if (isDateDisabled(date)) return true;
- if (isDateUnavailable(date)) return true;
- }
- } else {
- if (!value) return false;
- if (isDateDisabled(value)) return true;
- if (isDateUnavailable(value)) return true;
- }
- return false;
- }),
- "CalendarRootState.isInvalid"
- );
- get isInvalid() {
- return get(this.#isInvalid);
- }
- set isInvalid(value) {
- set(this.#isInvalid, value);
- }
- #headingValue = tag(
- user_derived(() => {
- this.opts.monthFormat.current;
- this.opts.yearFormat.current;
- return getCalendarHeadingValue({
- months: this.months,
- formatter: this.formatter,
- locale: this.opts.locale.current
- });
- }),
- "CalendarRootState.headingValue"
- );
- get headingValue() {
- return get(this.#headingValue);
- }
- set headingValue(value) {
- set(this.#headingValue, value);
- }
- #fullCalendarLabel = tag(
- user_derived(() => {
- return `${this.opts.calendarLabel.current} ${this.headingValue}`;
- }),
- "CalendarRootState.fullCalendarLabel"
- );
- get fullCalendarLabel() {
- return get(this.#fullCalendarLabel);
- }
- set fullCalendarLabel(value) {
- set(this.#fullCalendarLabel, value);
- }
- isOutsideVisibleMonths(date) {
- return !this.visibleMonths.some((month) => $14e0f24ef4ac5c92$export$a18c89cbd24170ff(date, month));
- }
- isDateDisabled(date) {
- if (this.opts.isDateDisabled.current(date) || this.opts.disabled.current) return true;
- const minValue = this.opts.minValue.current;
- const maxValue = this.opts.maxValue.current;
- if (minValue && isBefore(date, minValue)) return true;
- if (maxValue && isBefore(maxValue, date)) return true;
- return false;
- }
- isDateSelected(date) {
- const value = this.opts.value.current;
- if (Array.isArray(value)) {
- return value.some((d) => $14e0f24ef4ac5c92$export$ea39ec197993aef0(d, date));
- } else if (!value) {
- return false;
- }
- return $14e0f24ef4ac5c92$export$ea39ec197993aef0(value, date);
- }
- shiftFocus(node, add) {
- return shiftCalendarFocus({
- node,
- add,
- placeholder: this.opts.placeholder,
- calendarNode: this.opts.ref.current,
- isPrevButtonDisabled: this.isPrevButtonDisabled,
- isNextButtonDisabled: this.isNextButtonDisabled,
- months: this.months,
- numberOfMonths: this.opts.numberOfMonths.current
- });
- }
- #isMultipleSelectionValid(selectedDates) {
- if (strict_equals(this.opts.type.current, "multiple", false)) return true;
- if (!this.opts.maxDays.current) return true;
- const selectedCount = selectedDates.length;
- if (this.opts.maxDays.current && selectedCount > this.opts.maxDays.current) return false;
- return true;
- }
- handleCellClick(_, date) {
- if (this.opts.readonly.current || this.opts.isDateDisabled.current?.(date) || this.opts.isDateUnavailable.current?.(date)) {
- return;
- }
- const prev2 = this.opts.value.current;
- const multiple = strict_equals(this.opts.type.current, "multiple");
- if (multiple) {
- if (Array.isArray(prev2) || strict_equals(prev2, void 0)) {
- this.opts.value.current = this.handleMultipleUpdate(prev2, date);
- }
- } else if (!Array.isArray(prev2)) {
- const next3 = this.handleSingleUpdate(prev2, date);
- if (!next3) {
- this.announcer.announce("Selected date is now empty.", "polite", 5e3);
- } else {
- this.announcer.announce(`Selected Date: ${this.formatter.selectedDate(next3, false)}`, "polite");
- }
- this.opts.value.current = getDateWithPreviousTime(next3, prev2);
- if (strict_equals(next3, void 0, false)) {
- this.opts.onDateSelect?.current?.();
- }
- }
- }
- handleMultipleUpdate(prev2, date) {
- if (!prev2) {
- const newSelection = [date];
- return this.#isMultipleSelectionValid(newSelection) ? newSelection : [date];
- }
- if (!Array.isArray(prev2)) {
- if (true_default) throw new Error("Invalid value for multiple prop.");
- return;
- }
- const index = prev2.findIndex((d) => $14e0f24ef4ac5c92$export$ea39ec197993aef0(d, date));
- const preventDeselect = this.opts.preventDeselect.current;
- if (strict_equals(index, -1)) {
- const newSelection = [...prev2, date];
- if (this.#isMultipleSelectionValid(newSelection)) {
- return newSelection;
- } else {
- return [date];
- }
- } else if (preventDeselect) {
- return prev2;
- } else {
- const next3 = prev2.filter((d) => !$14e0f24ef4ac5c92$export$ea39ec197993aef0(d, date));
- if (!next3.length) {
- this.opts.placeholder.current = date;
- return void 0;
- }
- return next3;
- }
- }
- handleSingleUpdate(prev2, date) {
- if (Array.isArray(prev2)) {
- if (true_default) throw new Error("Invalid value for single prop.");
- }
- if (!prev2) return date;
- const preventDeselect = this.opts.preventDeselect.current;
- if (!preventDeselect && $14e0f24ef4ac5c92$export$ea39ec197993aef0(prev2, date)) {
- this.opts.placeholder.current = date;
- return void 0;
- }
- return date;
- }
- onkeydown(event) {
- handleCalendarKeydown({
- event,
- handleCellClick: this.handleCellClick,
- shiftFocus: this.shiftFocus,
- placeholderValue: this.opts.placeholder.current
- });
- }
- #snippetProps = tag(user_derived(() => ({ months: this.months, weekdays: this.weekdays })), "CalendarRootState.snippetProps");
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- getBitsAttr = (part) => {
- return calendarAttrs.getAttr(part);
- };
- #props = tag(
- user_derived(() => ({
- ...getCalendarElementProps({
- fullCalendarLabel: this.fullCalendarLabel,
- id: this.opts.id.current,
- isInvalid: this.isInvalid,
- disabled: this.opts.disabled.current,
- readonly: this.opts.readonly.current
- }),
- [this.getBitsAttr("root")]: "",
- //
- onkeydown: this.onkeydown,
- ...this.attachment
- })),
- "CalendarRootState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarHeadingState = class _CalendarHeadingState {
- static create(opts) {
- return new _CalendarHeadingState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "aria-hidden": boolToStrTrueOrUndef(true),
- "data-disabled": boolToEmptyStrOrUndef(this.root.opts.disabled.current),
- "data-readonly": boolToEmptyStrOrUndef(this.root.opts.readonly.current),
- [this.root.getBitsAttr("heading")]: "",
- ...this.attachment
- })),
- "CalendarHeadingState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarCellContext = new Context("Calendar.Cell | RangeCalendar.Cell");
-var CalendarCellState = class _CalendarCellState {
- static create(opts) {
- return CalendarCellContext.set(new _CalendarCellState(opts, CalendarRootContext.get()));
- }
- opts;
- root;
- #cellDate = tag(user_derived(() => toDate(this.opts.date.current)), "CalendarCellState.cellDate");
- get cellDate() {
- return get(this.#cellDate);
- }
- set cellDate(value) {
- set(this.#cellDate, value);
- }
- #isUnavailable = tag(user_derived(() => this.root.opts.isDateUnavailable.current(this.opts.date.current)), "CalendarCellState.isUnavailable");
- get isUnavailable() {
- return get(this.#isUnavailable);
- }
- set isUnavailable(value) {
- set(this.#isUnavailable, value);
- }
- #isDateToday = tag(user_derived(() => $14e0f24ef4ac5c92$export$629b0a497aa65267(this.opts.date.current, $14e0f24ef4ac5c92$export$aa8b41735afcabd2())), "CalendarCellState.isDateToday");
- get isDateToday() {
- return get(this.#isDateToday);
- }
- set isDateToday(value) {
- set(this.#isDateToday, value);
- }
- #isOutsideMonth = tag(user_derived(() => !$14e0f24ef4ac5c92$export$a18c89cbd24170ff(this.opts.date.current, this.opts.month.current)), "CalendarCellState.isOutsideMonth");
- get isOutsideMonth() {
- return get(this.#isOutsideMonth);
- }
- set isOutsideMonth(value) {
- set(this.#isOutsideMonth, value);
- }
- #isOutsideVisibleMonths = tag(user_derived(() => this.root.isOutsideVisibleMonths(this.opts.date.current)), "CalendarCellState.isOutsideVisibleMonths");
- get isOutsideVisibleMonths() {
- return get(this.#isOutsideVisibleMonths);
- }
- set isOutsideVisibleMonths(value) {
- set(this.#isOutsideVisibleMonths, value);
- }
- #isDisabled = tag(user_derived(() => this.root.isDateDisabled(this.opts.date.current) || this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current), "CalendarCellState.isDisabled");
- get isDisabled() {
- return get(this.#isDisabled);
- }
- set isDisabled(value) {
- set(this.#isDisabled, value);
- }
- #isFocusedDate = tag(user_derived(() => $14e0f24ef4ac5c92$export$ea39ec197993aef0(this.opts.date.current, this.root.opts.placeholder.current)), "CalendarCellState.isFocusedDate");
- get isFocusedDate() {
- return get(this.#isFocusedDate);
- }
- set isFocusedDate(value) {
- set(this.#isFocusedDate, value);
- }
- #isSelectedDate = tag(user_derived(() => this.root.isDateSelected(this.opts.date.current)), "CalendarCellState.isSelectedDate");
- get isSelectedDate() {
- return get(this.#isSelectedDate);
- }
- set isSelectedDate(value) {
- set(this.#isSelectedDate, value);
- }
- #labelText = tag(
- user_derived(() => this.root.formatter.custom(this.cellDate, {
- weekday: "long",
- month: "long",
- day: "numeric",
- year: "numeric"
- })),
- "CalendarCellState.labelText"
- );
- get labelText() {
- return get(this.#labelText);
- }
- set labelText(value) {
- set(this.#labelText, value);
- }
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #snippetProps = tag(
- user_derived(() => ({
- disabled: this.isDisabled,
- unavailable: this.isUnavailable,
- selected: this.isSelectedDate,
- day: `${this.opts.date.current.day}`
- })),
- "CalendarCellState.snippetProps"
- );
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- #ariaDisabled = tag(
- user_derived(() => {
- return this.isDisabled || this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current || this.isUnavailable;
- }),
- "CalendarCellState.ariaDisabled"
- );
- get ariaDisabled() {
- return get(this.#ariaDisabled);
- }
- set ariaDisabled(value) {
- set(this.#ariaDisabled, value);
- }
- #sharedDataAttrs = tag(
- user_derived(() => ({
- "data-unavailable": boolToEmptyStrOrUndef(this.isUnavailable),
- "data-today": this.isDateToday ? "" : void 0,
- "data-outside-month": this.isOutsideMonth ? "" : void 0,
- "data-outside-visible-months": this.isOutsideVisibleMonths ? "" : void 0,
- "data-focused": this.isFocusedDate ? "" : void 0,
- "data-selected": boolToEmptyStrOrUndef(this.isSelectedDate),
- "data-value": this.opts.date.current.toString(),
- "data-type": getDateValueType(this.opts.date.current),
- "data-disabled": boolToEmptyStrOrUndef(this.isDisabled || this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current)
- })),
- "CalendarCellState.sharedDataAttrs"
- );
- get sharedDataAttrs() {
- return get(this.#sharedDataAttrs);
- }
- set sharedDataAttrs(value) {
- set(this.#sharedDataAttrs, value);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "gridcell",
- "aria-selected": boolToStr(this.isSelectedDate),
- "aria-disabled": boolToStr(this.ariaDisabled),
- ...this.sharedDataAttrs,
- [this.root.getBitsAttr("cell")]: "",
- ...this.attachment
- })),
- "CalendarCellState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarDayState = class _CalendarDayState {
- static create(opts) {
- return new _CalendarDayState(opts, CalendarCellContext.get());
- }
- opts;
- cell;
- attachment;
- constructor(opts, cell) {
- this.opts = opts;
- this.cell = cell;
- this.onclick = this.onclick.bind(this);
- this.attachment = attachRef(this.opts.ref);
- }
- #tabindex = tag(user_derived(() => this.cell.isOutsideMonth && this.cell.root.opts.disableDaysOutsideMonth.current || this.cell.isDisabled ? void 0 : this.cell.isFocusedDate ? 0 : -1), "CalendarDayState.#tabindex");
- onclick(e) {
- if (this.cell.isDisabled) return;
- this.cell.root.handleCellClick(e, this.cell.opts.date.current);
- }
- #snippetProps = tag(
- user_derived(() => ({
- disabled: this.cell.isDisabled,
- unavailable: this.cell.isUnavailable,
- selected: this.cell.isSelectedDate,
- day: `${this.cell.opts.date.current.day}`
- })),
- "CalendarDayState.snippetProps"
- );
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "button",
- "aria-label": this.cell.labelText,
- "aria-disabled": boolToStr(this.cell.ariaDisabled),
- ...this.cell.sharedDataAttrs,
- tabindex: get(this.#tabindex),
- [this.cell.root.getBitsAttr("day")]: "",
- "data-bits-day": "",
- onclick: this.onclick,
- ...this.attachment
- })),
- "CalendarDayState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarNextButtonState = class _CalendarNextButtonState {
- static create(opts) {
- return new _CalendarNextButtonState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- #isDisabled = tag(user_derived(() => this.root.isNextButtonDisabled), "CalendarNextButtonState.isDisabled");
- get isDisabled() {
- return get(this.#isDisabled);
- }
- set isDisabled(value) {
- set(this.#isDisabled, value);
- }
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.onclick = this.onclick.bind(this);
- this.attachment = attachRef(this.opts.ref);
- }
- onclick(_) {
- if (this.isDisabled) return;
- this.root.nextPage();
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "button",
- type: "button",
- "aria-label": "Next",
- "aria-disabled": boolToStr(this.isDisabled),
- "data-disabled": boolToEmptyStrOrUndef(this.isDisabled),
- disabled: this.isDisabled,
- [this.root.getBitsAttr("next-button")]: "",
- //
- onclick: this.onclick,
- ...this.attachment
- })),
- "CalendarNextButtonState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarPrevButtonState = class _CalendarPrevButtonState {
- static create(opts) {
- return new _CalendarPrevButtonState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- #isDisabled = tag(user_derived(() => this.root.isPrevButtonDisabled), "CalendarPrevButtonState.isDisabled");
- get isDisabled() {
- return get(this.#isDisabled);
- }
- set isDisabled(value) {
- set(this.#isDisabled, value);
- }
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.onclick = this.onclick.bind(this);
- this.attachment = attachRef(this.opts.ref);
- }
- onclick(_) {
- if (this.isDisabled) return;
- this.root.prevPage();
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "button",
- type: "button",
- "aria-label": "Previous",
- "aria-disabled": boolToStr(this.isDisabled),
- "data-disabled": boolToEmptyStrOrUndef(this.isDisabled),
- disabled: this.isDisabled,
- [this.root.getBitsAttr("prev-button")]: "",
- //
- onclick: this.onclick,
- ...this.attachment
- })),
- "CalendarPrevButtonState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarGridState = class _CalendarGridState {
- static create(opts) {
- return new _CalendarGridState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- tabindex: -1,
- role: "grid",
- "aria-readonly": boolToStr(this.root.opts.readonly.current),
- "aria-disabled": boolToStr(this.root.opts.disabled.current),
- "data-readonly": boolToEmptyStrOrUndef(this.root.opts.readonly.current),
- "data-disabled": boolToEmptyStrOrUndef(this.root.opts.disabled.current),
- [this.root.getBitsAttr("grid")]: "",
- ...this.attachment
- })),
- "CalendarGridState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarGridBodyState = class _CalendarGridBodyState {
- static create(opts) {
- return new _CalendarGridBodyState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-disabled": boolToEmptyStrOrUndef(this.root.opts.disabled.current),
- "data-readonly": boolToEmptyStrOrUndef(this.root.opts.readonly.current),
- [this.root.getBitsAttr("grid-body")]: "",
- ...this.attachment
- })),
- "CalendarGridBodyState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarGridHeadState = class _CalendarGridHeadState {
- static create(opts) {
- return new _CalendarGridHeadState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-disabled": boolToEmptyStrOrUndef(this.root.opts.disabled.current),
- "data-readonly": boolToEmptyStrOrUndef(this.root.opts.readonly.current),
- [this.root.getBitsAttr("grid-head")]: "",
- ...this.attachment
- })),
- "CalendarGridHeadState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarGridRowState = class _CalendarGridRowState {
- static create(opts) {
- return new _CalendarGridRowState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-disabled": boolToEmptyStrOrUndef(this.root.opts.disabled.current),
- "data-readonly": boolToEmptyStrOrUndef(this.root.opts.readonly.current),
- [this.root.getBitsAttr("grid-row")]: "",
- ...this.attachment
- })),
- "CalendarGridRowState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarHeadCellState = class _CalendarHeadCellState {
- static create(opts) {
- return new _CalendarHeadCellState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-disabled": boolToEmptyStrOrUndef(this.root.opts.disabled.current),
- "data-readonly": boolToEmptyStrOrUndef(this.root.opts.readonly.current),
- [this.root.getBitsAttr("head-cell")]: "",
- ...this.attachment
- })),
- "CalendarHeadCellState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarHeaderState = class _CalendarHeaderState {
- static create(opts) {
- return new _CalendarHeaderState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-disabled": boolToEmptyStrOrUndef(this.root.opts.disabled.current),
- "data-readonly": boolToEmptyStrOrUndef(this.root.opts.readonly.current),
- [this.root.getBitsAttr("header")]: "",
- ...this.attachment
- })),
- "CalendarHeaderState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarMonthSelectState = class _CalendarMonthSelectState {
- static create(opts) {
- return new _CalendarMonthSelectState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.onchange = this.onchange.bind(this);
- this.attachment = attachRef(this.opts.ref);
- }
- #monthItems = tag(
- user_derived(() => {
- this.root.opts.locale.current;
- const monthNumbers = this.opts.months.current;
- const monthFormat = this.opts.monthFormat.current;
- const months = [];
- for (const month of monthNumbers) {
- const date = this.root.opts.placeholder.current.set({ month });
- let label;
- if (strict_equals(typeof monthFormat, "function")) {
- label = monthFormat(month);
- } else {
- label = this.root.formatter.custom(toDate(date), { month: monthFormat });
- }
- months.push({ value: month, label });
- }
- return months;
- }),
- "CalendarMonthSelectState.monthItems"
- );
- get monthItems() {
- return get(this.#monthItems);
- }
- set monthItems(value) {
- set(this.#monthItems, value);
- }
- #currentMonth = tag(user_derived(() => this.root.opts.placeholder.current.month), "CalendarMonthSelectState.currentMonth");
- get currentMonth() {
- return get(this.#currentMonth);
- }
- set currentMonth(value) {
- set(this.#currentMonth, value);
- }
- #isDisabled = tag(user_derived(() => this.root.opts.disabled.current || this.opts.disabled.current), "CalendarMonthSelectState.isDisabled");
- get isDisabled() {
- return get(this.#isDisabled);
- }
- set isDisabled(value) {
- set(this.#isDisabled, value);
- }
- #snippetProps = tag(
- user_derived(() => {
- return {
- monthItems: this.monthItems,
- selectedMonthItem: this.monthItems.find((month) => strict_equals(month.value, this.currentMonth))
- };
- }),
- "CalendarMonthSelectState.snippetProps"
- );
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- onchange(event) {
- if (this.isDisabled) return;
- const target = event.target;
- const month = parseInt(target.value, 10);
- if (!isNaN(month)) {
- this.root.opts.placeholder.current = this.root.opts.placeholder.current.set({ month });
- }
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- value: this.currentMonth,
- disabled: this.isDisabled,
- "data-disabled": boolToEmptyStrOrUndef(this.isDisabled),
- [this.root.getBitsAttr("month-select")]: "",
- //
- onchange: this.onchange,
- ...this.attachment
- })),
- "CalendarMonthSelectState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CalendarYearSelectState = class _CalendarYearSelectState {
- static create(opts) {
- return new _CalendarYearSelectState(opts, CalendarRootContext.get());
- }
- opts;
- root;
- attachment;
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.onchange = this.onchange.bind(this);
- this.attachment = attachRef(this.opts.ref);
- }
- #years = tag(
- user_derived(() => {
- if (this.opts.years.current && this.opts.years.current.length) return this.opts.years.current;
- return this.root.defaultYears;
- }),
- "CalendarYearSelectState.years"
- );
- get years() {
- return get(this.#years);
- }
- set years(value) {
- set(this.#years, value);
- }
- #yearItems = tag(
- user_derived(() => {
- this.root.opts.locale.current;
- const yearFormat = this.opts.yearFormat.current;
- const localYears = [];
- for (const year of this.years) {
- const date = this.root.opts.placeholder.current.set({ year });
- let label;
- if (strict_equals(typeof yearFormat, "function")) {
- label = yearFormat(year);
- } else {
- label = this.root.formatter.custom(toDate(date), { year: yearFormat });
- }
- localYears.push({ value: year, label });
- }
- return localYears;
- }),
- "CalendarYearSelectState.yearItems"
- );
- get yearItems() {
- return get(this.#yearItems);
- }
- set yearItems(value) {
- set(this.#yearItems, value);
- }
- #currentYear = tag(user_derived(() => this.root.opts.placeholder.current.year), "CalendarYearSelectState.currentYear");
- get currentYear() {
- return get(this.#currentYear);
- }
- set currentYear(value) {
- set(this.#currentYear, value);
- }
- #isDisabled = tag(user_derived(() => this.root.opts.disabled.current || this.opts.disabled.current), "CalendarYearSelectState.isDisabled");
- get isDisabled() {
- return get(this.#isDisabled);
- }
- set isDisabled(value) {
- set(this.#isDisabled, value);
- }
- #snippetProps = tag(
- user_derived(() => {
- return {
- yearItems: this.yearItems,
- selectedYearItem: this.yearItems.find((year) => strict_equals(year.value, this.currentYear))
- };
- }),
- "CalendarYearSelectState.snippetProps"
- );
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- onchange(event) {
- if (this.isDisabled) return;
- const target = event.target;
- const year = parseInt(target.value, 10);
- if (!isNaN(year)) {
- this.root.opts.placeholder.current = this.root.opts.placeholder.current.set({ year });
- }
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- value: this.currentYear,
- disabled: this.isDisabled,
- "data-disabled": boolToEmptyStrOrUndef(this.isDisabled),
- [this.root.getBitsAttr("year-select")]: "",
- //
- onchange: this.onchange,
- ...this.attachment
- })),
- "CalendarYearSelectState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar.svelte
-Calendar[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar.svelte";
-var root_215 = add_locations(from_html(``), Calendar[FILENAME], [[130, 1]]);
-function Calendar($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Calendar);
- let id = prop($$props, "id", 19, useId), ref = prop($$props, "ref", 15, null), value = prop($$props, "value", 15), onValueChange = prop($$props, "onValueChange", 3, noop3), placeholder = prop($$props, "placeholder", 15), onPlaceholderChange = prop($$props, "onPlaceholderChange", 3, noop3), weekdayFormat = prop($$props, "weekdayFormat", 3, "narrow"), pagedNavigation = prop($$props, "pagedNavigation", 3, false), isDateDisabled = prop($$props, "isDateDisabled", 3, () => false), isDateUnavailable = prop($$props, "isDateUnavailable", 3, () => false), fixedWeeks = prop($$props, "fixedWeeks", 3, false), numberOfMonths = prop($$props, "numberOfMonths", 3, 1), calendarLabel = prop($$props, "calendarLabel", 3, "Event"), disabled = prop($$props, "disabled", 3, false), readonly = prop($$props, "readonly", 3, false), minValue = prop($$props, "minValue", 3, void 0), maxValue = prop($$props, "maxValue", 3, void 0), preventDeselect = prop($$props, "preventDeselect", 3, false), disableDaysOutsideMonth = prop($$props, "disableDaysOutsideMonth", 3, true), initialFocus = prop($$props, "initialFocus", 3, false), monthFormat = prop($$props, "monthFormat", 3, "long"), yearFormat = prop($$props, "yearFormat", 3, "numeric"), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "child",
- "children",
- "id",
- "ref",
- "value",
- "onValueChange",
- "placeholder",
- "onPlaceholderChange",
- "weekdayFormat",
- "weekStartsOn",
- "pagedNavigation",
- "isDateDisabled",
- "isDateUnavailable",
- "fixedWeeks",
- "numberOfMonths",
- "locale",
- "calendarLabel",
- "disabled",
- "readonly",
- "minValue",
- "maxValue",
- "preventDeselect",
- "type",
- "disableDaysOutsideMonth",
- "initialFocus",
- "maxDays",
- "monthFormat",
- "yearFormat"
- ],
- "restProps"
- );
- const defaultPlaceholder = getDefaultDate({
- defaultValue: value(),
- minValue: minValue(),
- maxValue: maxValue()
- });
- function handleDefaultPlaceholder() {
- if (strict_equals(placeholder(), void 0, false)) return;
- placeholder(defaultPlaceholder);
- }
- handleDefaultPlaceholder();
- watch.pre(() => placeholder(), () => {
- handleDefaultPlaceholder();
- });
- function handleDefaultValue() {
- if (strict_equals(value(), void 0, false)) return;
- value(strict_equals($$props.type, "single") ? void 0 : []);
- }
- handleDefaultValue();
- watch.pre(() => value(), () => {
- handleDefaultValue();
- });
- const rootState = CalendarRootState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- weekdayFormat: boxWith(() => weekdayFormat()),
- weekStartsOn: boxWith(() => $$props.weekStartsOn),
- pagedNavigation: boxWith(() => pagedNavigation()),
- isDateDisabled: boxWith(() => isDateDisabled()),
- isDateUnavailable: boxWith(() => isDateUnavailable()),
- fixedWeeks: boxWith(() => fixedWeeks()),
- numberOfMonths: boxWith(() => numberOfMonths()),
- locale: resolveLocaleProp(() => $$props.locale),
- calendarLabel: boxWith(() => calendarLabel()),
- readonly: boxWith(() => readonly()),
- disabled: boxWith(() => disabled()),
- minValue: boxWith(() => minValue()),
- maxValue: boxWith(() => maxValue()),
- disableDaysOutsideMonth: boxWith(() => disableDaysOutsideMonth()),
- initialFocus: boxWith(() => initialFocus()),
- maxDays: boxWith(() => $$props.maxDays),
- placeholder: boxWith(() => placeholder(), (v) => {
- placeholder(v);
- onPlaceholderChange()(v);
- }),
- preventDeselect: boxWith(() => preventDeselect()),
- value: boxWith(() => value(), (v) => {
- value(v);
- onValueChange()(v);
- }),
- type: boxWith(() => $$props.type),
- monthFormat: boxWith(() => monthFormat()),
- yearFormat: boxWith(() => yearFormat()),
- defaultPlaceholder
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, rootState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- let $0 = user_derived(() => ({ props: get(mergedProps), ...rootState.snippetProps }));
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => get($0)), "render", Calendar, 128, 1);
- }
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_215();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop, () => rootState.snippetProps), "render", Calendar, 131, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar,
- 127,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar = hmr(Calendar, () => Calendar[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar[HMR].source;
- set(Calendar[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_default = Calendar;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-day.svelte
-Calendar_day[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-day.svelte";
-var root_216 = add_locations(from_html(``), Calendar_day[FILENAME], [[34, 1]]);
-function Calendar_day($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_day);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id"
- ],
- "restProps"
- );
- const dayState = CalendarDayState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, dayState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- let $0 = user_derived(() => ({ props: get(mergedProps), ...dayState.snippetProps }));
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => get($0)), "render", Calendar_day, 29, 1);
- }
- append($$anchor2, fragment_1);
- };
- var alternate_1 = ($$anchor2) => {
- var div = root_216();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- {
- var consequent_1 = ($$anchor3) => {
- var fragment_2 = comment();
- var node_3 = first_child(fragment_2);
- add_svelte_meta(() => snippet(node_3, () => $$props.children ?? noop, () => dayState.snippetProps), "render", Calendar_day, 36, 3);
- append($$anchor3, fragment_2);
- };
- var alternate = ($$anchor3) => {
- var text2 = text();
- template_effect(() => set_text(text2, dayState.cell.opts.date.current.day));
- append($$anchor3, text2);
- };
- add_svelte_meta(
- () => if_block(node_2, ($$render) => {
- if ($$props.children) $$render(consequent_1);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_day,
- 35,
- 2
- );
- }
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate_1, false);
- }),
- "if",
- Calendar_day,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_day = hmr(Calendar_day, () => Calendar_day[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_day[HMR].source;
- set(Calendar_day[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_day_default = Calendar_day;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-grid.svelte
-Calendar_grid[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-grid.svelte";
-var root_217 = add_locations(from_html(``), Calendar_grid[FILENAME], [[31, 1]]);
-function Calendar_grid($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_grid);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id"
- ],
- "restProps"
- );
- const gridState = CalendarGridState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, gridState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Calendar_grid, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var table = root_217();
- attribute_effect(table, () => ({ ...get(mergedProps) }));
- var node_2 = child(table);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Calendar_grid, 32, 2);
- reset(table);
- append($$anchor2, table);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_grid,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_grid = hmr(Calendar_grid, () => Calendar_grid[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_grid[HMR].source;
- set(Calendar_grid[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_grid_default = Calendar_grid;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-grid-body.svelte
-Calendar_grid_body[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-grid-body.svelte";
-var root_218 = add_locations(from_html(``), Calendar_grid_body[FILENAME], [[31, 1]]);
-function Calendar_grid_body($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_grid_body);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id"
- ],
- "restProps"
- );
- const gridBodyState = CalendarGridBodyState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, gridBodyState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Calendar_grid_body, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var tbody = root_218();
- attribute_effect(tbody, () => ({ ...get(mergedProps) }));
- var node_2 = child(tbody);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Calendar_grid_body, 32, 2);
- reset(tbody);
- append($$anchor2, tbody);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_grid_body,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_grid_body = hmr(Calendar_grid_body, () => Calendar_grid_body[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_grid_body[HMR].source;
- set(Calendar_grid_body[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_grid_body_default = Calendar_grid_body;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-cell.svelte
-Calendar_cell[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-cell.svelte";
-var root_219 = add_locations(from_html(` | `), Calendar_cell[FILENAME], [[38, 1]]);
-function Calendar_cell($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_cell);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id",
- "date",
- "month"
- ],
- "restProps"
- );
- const cellState = CalendarCellState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- date: boxWith(() => $$props.date),
- month: boxWith(() => $$props.month)
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, cellState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- let $0 = user_derived(() => ({ props: get(mergedProps), ...cellState.snippetProps }));
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => get($0)), "render", Calendar_cell, 33, 1);
- }
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var td = root_219();
- attribute_effect(td, () => ({ ...get(mergedProps) }));
- var node_2 = child(td);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop, () => cellState.snippetProps), "render", Calendar_cell, 39, 2);
- reset(td);
- append($$anchor2, td);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_cell,
- 32,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_cell = hmr(Calendar_cell, () => Calendar_cell[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_cell[HMR].source;
- set(Calendar_cell[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_cell_default = Calendar_cell;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-grid-head.svelte
-Calendar_grid_head[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-grid-head.svelte";
-var root_220 = add_locations(from_html(``), Calendar_grid_head[FILENAME], [[31, 1]]);
-function Calendar_grid_head($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_grid_head);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id"
- ],
- "restProps"
- );
- const gridHeadState = CalendarGridHeadState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, gridHeadState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Calendar_grid_head, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var thead = root_220();
- attribute_effect(thead, () => ({ ...get(mergedProps) }));
- var node_2 = child(thead);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Calendar_grid_head, 32, 2);
- reset(thead);
- append($$anchor2, thead);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_grid_head,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_grid_head = hmr(Calendar_grid_head, () => Calendar_grid_head[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_grid_head[HMR].source;
- set(Calendar_grid_head[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_grid_head_default = Calendar_grid_head;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-head-cell.svelte
-Calendar_head_cell[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-head-cell.svelte";
-var root_221 = add_locations(from_html(` | `), Calendar_head_cell[FILENAME], [[31, 1]]);
-function Calendar_head_cell($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_head_cell);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id"
- ],
- "restProps"
- );
- const headCellState = CalendarHeadCellState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, headCellState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Calendar_head_cell, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var th = root_221();
- attribute_effect(th, () => ({ ...get(mergedProps) }));
- var node_2 = child(th);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Calendar_head_cell, 32, 2);
- reset(th);
- append($$anchor2, th);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_head_cell,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_head_cell = hmr(Calendar_head_cell, () => Calendar_head_cell[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_head_cell[HMR].source;
- set(Calendar_head_cell[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_head_cell_default = Calendar_head_cell;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-grid-row.svelte
-Calendar_grid_row[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-grid-row.svelte";
-var root_222 = add_locations(from_html(`
`), Calendar_grid_row[FILENAME], [[31, 1]]);
-function Calendar_grid_row($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_grid_row);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id"
- ],
- "restProps"
- );
- const gridRowState = CalendarGridRowState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, gridRowState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Calendar_grid_row, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var tr = root_222();
- attribute_effect(tr, () => ({ ...get(mergedProps) }));
- var node_2 = child(tr);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Calendar_grid_row, 32, 2);
- reset(tr);
- append($$anchor2, tr);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_grid_row,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_grid_row = hmr(Calendar_grid_row, () => Calendar_grid_row[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_grid_row[HMR].source;
- set(Calendar_grid_row[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_grid_row_default = Calendar_grid_row;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-header.svelte
-Calendar_header[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-header.svelte";
-var root_223 = add_locations(from_html(``), Calendar_header[FILENAME], [[31, 1]]);
-function Calendar_header($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_header);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id"
- ],
- "restProps"
- );
- const headerState = CalendarHeaderState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, headerState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Calendar_header, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var header = root_223();
- attribute_effect(header, () => ({ ...get(mergedProps) }));
- var node_2 = child(header);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Calendar_header, 32, 2);
- reset(header);
- append($$anchor2, header);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_header,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_header = hmr(Calendar_header, () => Calendar_header[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_header[HMR].source;
- set(Calendar_header[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_header_default = Calendar_header;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-heading.svelte
-Calendar_heading[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-heading.svelte";
-var root_224 = add_locations(from_html(``), Calendar_heading[FILENAME], [[31, 1]]);
-function Calendar_heading($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_heading);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id"
- ],
- "restProps"
- );
- const headingState = CalendarHeadingState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, headingState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(
- () => snippet(node_1, () => $$props.child, () => ({
- props: get(mergedProps),
- headingValue: headingState.root.headingValue
- })),
- "render",
- Calendar_heading,
- 29,
- 1
- );
- append($$anchor2, fragment_1);
- };
- var alternate_1 = ($$anchor2) => {
- var div = root_224();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- {
- var consequent_1 = ($$anchor3) => {
- var fragment_2 = comment();
- var node_3 = first_child(fragment_2);
- add_svelte_meta(() => snippet(node_3, () => $$props.children ?? noop, () => ({ headingValue: headingState.root.headingValue })), "render", Calendar_heading, 33, 3);
- append($$anchor3, fragment_2);
- };
- var alternate = ($$anchor3) => {
- var text2 = text();
- template_effect(() => set_text(text2, headingState.root.headingValue));
- append($$anchor3, text2);
- };
- add_svelte_meta(
- () => if_block(node_2, ($$render) => {
- if ($$props.children) $$render(consequent_1);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_heading,
- 32,
- 2
- );
- }
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate_1, false);
- }),
- "if",
- Calendar_heading,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_heading = hmr(Calendar_heading, () => Calendar_heading[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_heading[HMR].source;
- set(Calendar_heading[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_heading_default = Calendar_heading;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-month-select.svelte
-Calendar_month_select[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-month-select.svelte";
-var root_5 = add_locations(from_html(``), Calendar_month_select[FILENAME], [[45, 4]]);
-var root_225 = add_locations(from_html(``), Calendar_month_select[FILENAME], [[40, 1]]);
-function Calendar_month_select($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_month_select);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), months = prop($$props, "months", 19, () => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]), monthFormat = prop($$props, "monthFormat", 3, "long"), disabled = prop($$props, "disabled", 3, false), ariaLabel = prop($$props, "aria-label", 3, "Select a month"), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id",
- "months",
- "monthFormat",
- "disabled",
- "aria-label"
- ],
- "restProps"
- );
- const monthSelectState = CalendarMonthSelectState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- months: boxWith(() => months()),
- monthFormat: boxWith(() => monthFormat()),
- disabled: boxWith(() => Boolean(disabled()))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, monthSelectState.props, { "aria-label": ariaLabel() })), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- let $0 = user_derived(() => ({ props: get(mergedProps), ...monthSelectState.snippetProps }));
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => get($0)), "render", Calendar_month_select, 38, 1);
- }
- append($$anchor2, fragment_1);
- };
- var alternate_1 = ($$anchor2) => {
- var select = root_225();
- attribute_effect(select, () => ({ ...get(mergedProps) }));
- var node_2 = child(select);
- {
- var consequent_1 = ($$anchor3) => {
- var fragment_2 = comment();
- var node_3 = first_child(fragment_2);
- add_svelte_meta(() => snippet(node_3, () => $$props.children ?? noop, () => monthSelectState.snippetProps), "render", Calendar_month_select, 42, 3);
- append($$anchor3, fragment_2);
- };
- var alternate = ($$anchor3) => {
- var fragment_3 = comment();
- var node_4 = first_child(fragment_3);
- validate_each_keys(() => monthSelectState.monthItems, (month) => month.value);
- add_svelte_meta(
- () => each(node_4, 17, () => monthSelectState.monthItems, (month) => month.value, ($$anchor4, month) => {
- var option = root_5();
- var text2 = child(option, true);
- reset(option);
- var option_value = {};
- template_effect(() => {
- set_selected(option, strict_equals(get(month).value, monthSelectState.currentMonth));
- set_text(text2, get(month).label);
- if (option_value !== (option_value = get(month).value)) {
- option.value = (option.__value = get(month).value) ?? "";
- }
- });
- append($$anchor4, option);
- }),
- "each",
- Calendar_month_select,
- 44,
- 3
- );
- append($$anchor3, fragment_3);
- };
- add_svelte_meta(
- () => if_block(node_2, ($$render) => {
- if ($$props.children) $$render(consequent_1);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_month_select,
- 41,
- 2
- );
- }
- reset(select);
- append($$anchor2, select);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate_1, false);
- }),
- "if",
- Calendar_month_select,
- 37,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_month_select = hmr(Calendar_month_select, () => Calendar_month_select[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_month_select[HMR].source;
- set(Calendar_month_select[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_month_select_default = Calendar_month_select;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-next-button.svelte
-Calendar_next_button[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-next-button.svelte";
-var root_226 = add_locations(from_html(``), Calendar_next_button[FILENAME], [[33, 1]]);
-function Calendar_next_button($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_next_button);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), tabindex = prop($$props, "tabindex", 3, 0), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "id",
- "ref",
- "tabindex"
- ],
- "restProps"
- );
- const nextButtonState = CalendarNextButtonState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, nextButtonState.props, { tabindex: tabindex() })), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Calendar_next_button, 31, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var button = root_226();
- attribute_effect(button, () => ({ ...get(mergedProps) }));
- var node_2 = child(button);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Calendar_next_button, 34, 2);
- reset(button);
- append($$anchor2, button);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_next_button,
- 30,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_next_button = hmr(Calendar_next_button, () => Calendar_next_button[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_next_button[HMR].source;
- set(Calendar_next_button[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_next_button_default = Calendar_next_button;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-prev-button.svelte
-Calendar_prev_button[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-prev-button.svelte";
-var root_227 = add_locations(from_html(``), Calendar_prev_button[FILENAME], [[33, 1]]);
-function Calendar_prev_button($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_prev_button);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), tabindex = prop($$props, "tabindex", 3, 0), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "id",
- "ref",
- "tabindex"
- ],
- "restProps"
- );
- const prevButtonState = CalendarPrevButtonState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, prevButtonState.props, { tabindex: tabindex() })), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Calendar_prev_button, 31, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var button = root_227();
- attribute_effect(button, () => ({ ...get(mergedProps) }));
- var node_2 = child(button);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Calendar_prev_button, 34, 2);
- reset(button);
- append($$anchor2, button);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_prev_button,
- 30,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_prev_button = hmr(Calendar_prev_button, () => Calendar_prev_button[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_prev_button[HMR].source;
- set(Calendar_prev_button[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_prev_button_default = Calendar_prev_button;
-
-// node_modules/bits-ui/dist/bits/calendar/components/calendar-year-select.svelte
-Calendar_year_select[FILENAME] = "node_modules/bits-ui/dist/bits/calendar/components/calendar-year-select.svelte";
-var root_52 = add_locations(from_html(``), Calendar_year_select[FILENAME], [[45, 4]]);
-var root_228 = add_locations(from_html(``), Calendar_year_select[FILENAME], [[40, 1]]);
-function Calendar_year_select($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Calendar_year_select);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), yearFormat = prop($$props, "yearFormat", 3, "numeric"), disabled = prop($$props, "disabled", 3, false), ariaLabel = prop($$props, "aria-label", 3, "Select a year"), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id",
- "years",
- "yearFormat",
- "disabled",
- "aria-label"
- ],
- "restProps"
- );
- const yearSelectState = CalendarYearSelectState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- years: boxWith(() => $$props.years),
- yearFormat: boxWith(() => yearFormat()),
- disabled: boxWith(() => Boolean(disabled()))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, yearSelectState.props, { "aria-label": ariaLabel() })), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- let $0 = user_derived(() => ({ props: get(mergedProps), ...yearSelectState.snippetProps }));
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => get($0)), "render", Calendar_year_select, 38, 1);
- }
- append($$anchor2, fragment_1);
- };
- var alternate_1 = ($$anchor2) => {
- var select = root_228();
- attribute_effect(select, () => ({ ...get(mergedProps) }));
- var node_2 = child(select);
- {
- var consequent_1 = ($$anchor3) => {
- var fragment_2 = comment();
- var node_3 = first_child(fragment_2);
- add_svelte_meta(() => snippet(node_3, () => $$props.children ?? noop, () => yearSelectState.snippetProps), "render", Calendar_year_select, 42, 3);
- append($$anchor3, fragment_2);
- };
- var alternate = ($$anchor3) => {
- var fragment_3 = comment();
- var node_4 = first_child(fragment_3);
- validate_each_keys(() => yearSelectState.yearItems, (year) => year.value);
- add_svelte_meta(
- () => each(node_4, 17, () => yearSelectState.yearItems, (year) => year.value, ($$anchor4, year) => {
- var option = root_52();
- var text2 = child(option, true);
- reset(option);
- var option_value = {};
- template_effect(() => {
- set_selected(option, strict_equals(get(year).value, yearSelectState.currentYear));
- set_text(text2, get(year).label);
- if (option_value !== (option_value = get(year).value)) {
- option.value = (option.__value = get(year).value) ?? "";
- }
- });
- append($$anchor4, option);
- }),
- "each",
- Calendar_year_select,
- 44,
- 3
- );
- append($$anchor3, fragment_3);
- };
- add_svelte_meta(
- () => if_block(node_2, ($$render) => {
- if ($$props.children) $$render(consequent_1);
- else $$render(alternate, false);
- }),
- "if",
- Calendar_year_select,
- 41,
- 2
- );
- }
- reset(select);
- append($$anchor2, select);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate_1, false);
- }),
- "if",
- Calendar_year_select,
- 37,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Calendar_year_select = hmr(Calendar_year_select, () => Calendar_year_select[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Calendar_year_select[HMR].source;
- set(Calendar_year_select[HMR].source, module.default[HMR].original);
- });
-}
-var calendar_year_select_default = Calendar_year_select;
-
-// node_modules/bits-ui/dist/bits/checkbox/exports.js
-var exports_exports7 = {};
-__export(exports_exports7, {
- Group: () => checkbox_group_default,
- GroupLabel: () => checkbox_group_label_default,
- Root: () => checkbox_default
-});
-
-// node_modules/bits-ui/dist/bits/checkbox/checkbox.svelte.js
-var checkboxAttrs = createBitsAttrs({
- component: "checkbox",
- parts: ["root", "group", "group-label", "input"]
-});
-var CheckboxGroupContext = new Context("Checkbox.Group");
-var CheckboxGroupState = class _CheckboxGroupState {
- static create(opts) {
- return CheckboxGroupContext.set(new _CheckboxGroupState(opts));
- }
- opts;
- attachment;
- #labelId = tag(state(void 0), "CheckboxGroupState.labelId");
- get labelId() {
- return get(this.#labelId);
- }
- set labelId(value) {
- set(this.#labelId, value, true);
- }
- constructor(opts) {
- this.opts = opts;
- this.attachment = attachRef(this.opts.ref);
- }
- addValue(checkboxValue) {
- if (!checkboxValue) return;
- if (!this.opts.value.current.includes(checkboxValue)) {
- const newValue = [...snapshot(this.opts.value.current), checkboxValue];
- this.opts.value.current = newValue;
- if (arraysAreEqual(this.opts.value.current, newValue)) return;
- this.opts.onValueChange.current(newValue);
- }
- }
- removeValue(checkboxValue) {
- if (!checkboxValue) return;
- const index = this.opts.value.current.indexOf(checkboxValue);
- if (strict_equals(index, -1)) return;
- const newValue = this.opts.value.current.filter((v) => strict_equals(v, checkboxValue, false));
- this.opts.value.current = newValue;
- if (arraysAreEqual(this.opts.value.current, newValue)) return;
- this.opts.onValueChange.current(newValue);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "group",
- "aria-labelledby": this.labelId,
- "data-disabled": boolToEmptyStrOrUndef(this.opts.disabled.current),
- [checkboxAttrs.group]: "",
- ...this.attachment
- })),
- "CheckboxGroupState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CheckboxGroupLabelState = class _CheckboxGroupLabelState {
- static create(opts) {
- return new _CheckboxGroupLabelState(opts, CheckboxGroupContext.get());
- }
- opts;
- group;
- attachment;
- constructor(opts, group) {
- this.opts = opts;
- this.group = group;
- this.group.labelId = this.opts.id.current;
- this.attachment = attachRef(this.opts.ref);
- watch.pre(() => this.opts.id.current, (id) => {
- this.group.labelId = id;
- });
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-disabled": boolToEmptyStrOrUndef(this.group.opts.disabled.current),
- [checkboxAttrs["group-label"]]: "",
- ...this.attachment
- })),
- "CheckboxGroupLabelState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CheckboxRootContext = new Context("Checkbox.Root");
-var CheckboxRootState = class _CheckboxRootState {
- static create(opts, group = null) {
- return CheckboxRootContext.set(new _CheckboxRootState(opts, group));
- }
- opts;
- group;
- #trueName = tag(
- user_derived(() => {
- if (this.group && this.group.opts.name.current) return this.group.opts.name.current;
- return this.opts.name.current;
- }),
- "CheckboxRootState.trueName"
- );
- get trueName() {
- return get(this.#trueName);
- }
- set trueName(value) {
- set(this.#trueName, value);
- }
- #trueRequired = tag(
- user_derived(() => {
- if (this.group && this.group.opts.required.current) return true;
- return this.opts.required.current;
- }),
- "CheckboxRootState.trueRequired"
- );
- get trueRequired() {
- return get(this.#trueRequired);
- }
- set trueRequired(value) {
- set(this.#trueRequired, value);
- }
- #trueDisabled = tag(
- user_derived(() => {
- if (this.group && this.group.opts.disabled.current) return true;
- return this.opts.disabled.current;
- }),
- "CheckboxRootState.trueDisabled"
- );
- get trueDisabled() {
- return get(this.#trueDisabled);
- }
- set trueDisabled(value) {
- set(this.#trueDisabled, value);
- }
- #trueReadonly = tag(
- user_derived(() => {
- if (this.group && this.group.opts.readonly.current) return true;
- return this.opts.readonly.current;
- }),
- "CheckboxRootState.trueReadonly"
- );
- get trueReadonly() {
- return get(this.#trueReadonly);
- }
- set trueReadonly(value) {
- set(this.#trueReadonly, value);
- }
- attachment;
- constructor(opts, group) {
- this.opts = opts;
- this.group = group;
- this.attachment = attachRef(this.opts.ref);
- this.onkeydown = this.onkeydown.bind(this);
- this.onclick = this.onclick.bind(this);
- watch.pre(
- [
- () => snapshot(this.group?.opts.value.current),
- () => this.opts.value.current
- ],
- ([groupValue, value]) => {
- if (!groupValue || !value) return;
- this.opts.checked.current = groupValue.includes(value);
- }
- );
- watch.pre(() => this.opts.checked.current, (checked) => {
- if (!this.group) return;
- if (checked) {
- this.group?.addValue(this.opts.value.current);
- } else {
- this.group?.removeValue(this.opts.value.current);
- }
- });
- }
- onkeydown(e) {
- if (this.trueDisabled || this.trueReadonly) return;
- if (strict_equals(e.key, kbd_constants_exports.ENTER)) e.preventDefault();
- if (strict_equals(e.key, kbd_constants_exports.SPACE)) {
- e.preventDefault();
- this.#toggle();
- }
- }
- #toggle() {
- if (this.opts.indeterminate.current) {
- this.opts.indeterminate.current = false;
- this.opts.checked.current = true;
- } else {
- this.opts.checked.current = !this.opts.checked.current;
- }
- }
- onclick(e) {
- if (this.trueDisabled || this.trueReadonly) return;
- if (strict_equals(this.opts.type.current, "submit")) {
- this.#toggle();
- return;
- }
- e.preventDefault();
- this.#toggle();
- }
- #snippetProps = tag(
- user_derived(() => ({
- checked: this.opts.checked.current,
- indeterminate: this.opts.indeterminate.current
- })),
- "CheckboxRootState.snippetProps"
- );
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- role: "checkbox",
- type: this.opts.type.current,
- disabled: this.trueDisabled,
- "aria-checked": getAriaChecked(this.opts.checked.current, this.opts.indeterminate.current),
- "aria-required": boolToStr(this.trueRequired),
- "aria-readonly": boolToStr(this.trueReadonly),
- "data-disabled": boolToEmptyStrOrUndef(this.trueDisabled),
- "data-readonly": boolToEmptyStrOrUndef(this.trueReadonly),
- "data-state": getCheckboxDataState(this.opts.checked.current, this.opts.indeterminate.current),
- [checkboxAttrs.root]: "",
- onclick: this.onclick,
- onkeydown: this.onkeydown,
- ...this.attachment
- })),
- "CheckboxRootState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CheckboxInputState = class _CheckboxInputState {
- static create() {
- return new _CheckboxInputState(CheckboxRootContext.get());
- }
- root;
- #trueChecked = tag(
- user_derived(() => {
- if (!this.root.group) return this.root.opts.checked.current;
- if (strict_equals(this.root.opts.value.current, void 0, false) && this.root.group.opts.value.current.includes(this.root.opts.value.current)) {
- return true;
- }
- return false;
- }),
- "CheckboxInputState.trueChecked"
- );
- get trueChecked() {
- return get(this.#trueChecked);
- }
- set trueChecked(value) {
- set(this.#trueChecked, value);
- }
- #shouldRender = tag(user_derived(() => Boolean(this.root.trueName)), "CheckboxInputState.shouldRender");
- get shouldRender() {
- return get(this.#shouldRender);
- }
- set shouldRender(value) {
- set(this.#shouldRender, value);
- }
- constructor(root18) {
- this.root = root18;
- this.onfocus = this.onfocus.bind(this);
- }
- onfocus(_) {
- if (!isHTMLElement2(this.root.opts.ref.current)) return;
- this.root.opts.ref.current.focus();
- }
- #props = tag(
- user_derived(() => ({
- type: "checkbox",
- checked: strict_equals(this.root.opts.checked.current, true),
- disabled: this.root.trueDisabled,
- required: this.root.trueRequired,
- name: this.root.trueName,
- value: this.root.opts.value.current,
- readonly: this.root.trueReadonly,
- onfocus: this.onfocus
- })),
- "CheckboxInputState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-function getCheckboxDataState(checked, indeterminate) {
- if (indeterminate) return "indeterminate";
- return checked ? "checked" : "unchecked";
-}
-
-// node_modules/bits-ui/dist/bits/utilities/hidden-input.svelte
-Hidden_input[FILENAME] = "node_modules/bits-ui/dist/bits/utilities/hidden-input.svelte";
-var root_1 = add_locations(from_html(``), Hidden_input[FILENAME], [[17, 1]]);
-var root_229 = add_locations(from_html(``), Hidden_input[FILENAME], [[19, 1]]);
-function Hidden_input($$anchor, $$props) {
- check_target(new.target);
- push($$props, true, Hidden_input);
- let value = prop($$props, "value", 15), restProps = rest_props($$props, ["$$slots", "$$events", "$$legacy", "value"], "restProps");
- const mergedProps = tag(
- user_derived(() => mergeProps(restProps, {
- "aria-hidden": "true",
- tabindex: -1,
- style: srOnlyStylesString
- })),
- "mergedProps"
- );
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var input = root_1();
- attribute_effect(input, () => ({ ...get(mergedProps), value: value() }), void 0, void 0, void 0, void 0, true);
- append($$anchor2, input);
- };
- var alternate = ($$anchor2) => {
- var input_1 = root_229();
- attribute_effect(input_1, () => ({ ...get(mergedProps) }), void 0, void 0, void 0, void 0, true);
- bind_value(input_1, value);
- append($$anchor2, input_1);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if (strict_equals(get(mergedProps).type, "checkbox")) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Hidden_input,
- 16,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Hidden_input = hmr(Hidden_input, () => Hidden_input[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Hidden_input[HMR].source;
- set(Hidden_input[HMR].source, module.default[HMR].original);
- });
-}
-var hidden_input_default = Hidden_input;
-
-// node_modules/bits-ui/dist/bits/checkbox/components/checkbox-input.svelte
-Checkbox_input[FILENAME] = "node_modules/bits-ui/dist/bits/checkbox/components/checkbox-input.svelte";
-function Checkbox_input($$anchor, $$props) {
- check_target(new.target);
- push($$props, false, Checkbox_input);
- const inputState = CheckboxInputState.create();
- var $$exports = { ...legacy_api() };
- init();
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => hidden_input_default(node_1, spread_props(() => inputState.props)), "component", Checkbox_input, 9, 1, { componentTag: "HiddenInput" });
- append($$anchor2, fragment_1);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if (inputState.shouldRender) $$render(consequent);
- }),
- "if",
- Checkbox_input,
- 8,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Checkbox_input = hmr(Checkbox_input, () => Checkbox_input[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Checkbox_input[HMR].source;
- set(Checkbox_input[HMR].source, module.default[HMR].original);
- });
-}
-var checkbox_input_default = Checkbox_input;
-
-// node_modules/bits-ui/dist/bits/checkbox/components/checkbox.svelte
-Checkbox[FILENAME] = "node_modules/bits-ui/dist/bits/checkbox/components/checkbox.svelte";
-var root_230 = add_locations(from_html(``), Checkbox[FILENAME], [[92, 1]]);
-var root2 = add_locations(from_html(` `, 1), Checkbox[FILENAME], []);
-function Checkbox($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Checkbox);
- let checked = prop($$props, "checked", 15, false), ref = prop($$props, "ref", 15, null), disabled = prop($$props, "disabled", 3, false), required = prop($$props, "required", 3, false), name = prop($$props, "name", 3, void 0), value = prop($$props, "value", 3, "on"), id = prop($$props, "id", 19, () => createId(uid)), indeterminate = prop($$props, "indeterminate", 15, false), type = prop($$props, "type", 3, "button"), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "checked",
- "ref",
- "onCheckedChange",
- "children",
- "disabled",
- "required",
- "name",
- "value",
- "id",
- "indeterminate",
- "onIndeterminateChange",
- "child",
- "type",
- "readonly"
- ],
- "restProps"
- );
- const group = CheckboxGroupContext.getOr(null);
- if (group && value()) {
- if (group.opts.value.current.includes(value())) {
- checked(true);
- } else {
- checked(false);
- }
- }
- watch.pre(() => value(), () => {
- if (group && value()) {
- if (group.opts.value.current.includes(value())) {
- checked(true);
- } else {
- checked(false);
- }
- }
- });
- const rootState = CheckboxRootState.create(
- {
- checked: boxWith(() => checked(), (v) => {
- checked(v);
- $$props.onCheckedChange?.(v);
- }),
- disabled: boxWith(() => disabled() ?? false),
- required: boxWith(() => required()),
- name: boxWith(() => name()),
- value: boxWith(() => value()),
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- indeterminate: boxWith(() => indeterminate(), (v) => {
- indeterminate(v);
- $$props.onIndeterminateChange?.(v);
- }),
- type: boxWith(() => type()),
- readonly: boxWith(() => Boolean($$props.readonly))
- },
- group
- );
- const mergedProps = tag(user_derived(() => mergeProps({ ...restProps }, rootState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = root2();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- let $0 = user_derived(() => ({ props: get(mergedProps), ...rootState.snippetProps }));
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => get($0)), "render", Checkbox, 87, 1);
- }
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var button = root_230();
- attribute_effect(button, () => ({ ...get(mergedProps) }));
- var node_2 = child(button);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop, () => rootState.snippetProps), "render", Checkbox, 93, 2);
- reset(button);
- append($$anchor2, button);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Checkbox,
- 86,
- 0
- );
- }
- var node_3 = sibling(node, 2);
- add_svelte_meta(() => checkbox_input_default(node_3, {}), "component", Checkbox, 97, 0, { componentTag: "CheckboxInput" });
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Checkbox = hmr(Checkbox, () => Checkbox[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Checkbox[HMR].source;
- set(Checkbox[HMR].source, module.default[HMR].original);
- });
-}
-var checkbox_default = Checkbox;
-
-// node_modules/bits-ui/dist/bits/checkbox/components/checkbox-group.svelte
-Checkbox_group[FILENAME] = "node_modules/bits-ui/dist/bits/checkbox/components/checkbox-group.svelte";
-var root_231 = add_locations(from_html(``), Checkbox_group[FILENAME], [[52, 1]]);
-function Checkbox_group($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Checkbox_group);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), value = prop($$props, "value", 31, () => tag_proxy(proxy([]), "value")), onValueChange = prop($$props, "onValueChange", 3, noop3), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "ref",
- "id",
- "value",
- "onValueChange",
- "name",
- "required",
- "disabled",
- "children",
- "child",
- "readonly"
- ],
- "restProps"
- );
- const groupState = CheckboxGroupState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- disabled: boxWith(() => Boolean($$props.disabled)),
- required: boxWith(() => Boolean($$props.required)),
- readonly: boxWith(() => Boolean($$props.readonly)),
- name: boxWith(() => $$props.name),
- value: boxWith(() => snapshot(value()), (v) => {
- if (arraysAreEqual(value(), v)) return;
- value(snapshot(v));
- onValueChange()(v);
- }),
- onValueChange: boxWith(() => onValueChange())
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, groupState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Checkbox_group, 50, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_231();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Checkbox_group, 53, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Checkbox_group,
- 49,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Checkbox_group = hmr(Checkbox_group, () => Checkbox_group[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Checkbox_group[HMR].source;
- set(Checkbox_group[HMR].source, module.default[HMR].original);
- });
-}
-var checkbox_group_default = Checkbox_group;
-
-// node_modules/bits-ui/dist/bits/checkbox/components/checkbox-group-label.svelte
-Checkbox_group_label[FILENAME] = "node_modules/bits-ui/dist/bits/checkbox/components/checkbox-group-label.svelte";
-var root_232 = add_locations(from_html(``), Checkbox_group_label[FILENAME], [[31, 1]]);
-function Checkbox_group_label($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Checkbox_group_label);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "ref",
- "id",
- "child",
- "children"
- ],
- "restProps"
- );
- const labelState = CheckboxGroupLabelState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, labelState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Checkbox_group_label, 29, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var span = root_232();
- attribute_effect(span, () => ({ ...get(mergedProps) }));
- var node_2 = child(span);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Checkbox_group_label, 32, 2);
- reset(span);
- append($$anchor2, span);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Checkbox_group_label,
- 28,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Checkbox_group_label = hmr(Checkbox_group_label, () => Checkbox_group_label[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Checkbox_group_label[HMR].source;
- set(Checkbox_group_label[HMR].source, module.default[HMR].original);
- });
-}
-var checkbox_group_label_default = Checkbox_group_label;
-
-// node_modules/bits-ui/dist/bits/collapsible/exports.js
-var exports_exports8 = {};
-__export(exports_exports8, {
- Content: () => collapsible_content_default,
- Root: () => collapsible_default,
- Trigger: () => collapsible_trigger_default
-});
-
-// node_modules/bits-ui/dist/bits/collapsible/collapsible.svelte.js
-var collapsibleAttrs = createBitsAttrs({
- component: "collapsible",
- parts: ["root", "content", "trigger"]
-});
-var CollapsibleRootContext = new Context("Collapsible.Root");
-var CollapsibleRootState = class _CollapsibleRootState {
- static create(opts) {
- return CollapsibleRootContext.set(new _CollapsibleRootState(opts));
- }
- opts;
- attachment;
- #contentNode = tag(state(null), "CollapsibleRootState.contentNode");
- get contentNode() {
- return get(this.#contentNode);
- }
- set contentNode(value) {
- set(this.#contentNode, value, true);
- }
- contentPresence;
- #contentId = tag(state(void 0), "CollapsibleRootState.contentId");
- get contentId() {
- return get(this.#contentId);
- }
- set contentId(value) {
- set(this.#contentId, value, true);
- }
- constructor(opts) {
- this.opts = opts;
- this.toggleOpen = this.toggleOpen.bind(this);
- this.attachment = attachRef(this.opts.ref);
- this.contentPresence = new PresenceManager({
- ref: boxWith(() => this.contentNode),
- open: this.opts.open,
- onComplete: () => {
- this.opts.onOpenChangeComplete.current(this.opts.open.current);
- }
- });
- }
- toggleOpen() {
- this.opts.open.current = !this.opts.open.current;
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- "data-state": getDataOpenClosed(this.opts.open.current),
- "data-disabled": boolToEmptyStrOrUndef(this.opts.disabled.current),
- [collapsibleAttrs.root]: "",
- ...this.attachment
- })),
- "CollapsibleRootState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CollapsibleContentState = class _CollapsibleContentState {
- static create(opts) {
- return new _CollapsibleContentState(opts, CollapsibleRootContext.get());
- }
- opts;
- root;
- attachment;
- #present = tag(
- user_derived(() => {
- if (this.opts.hiddenUntilFound.current) return this.root.opts.open.current;
- return this.opts.forceMount.current || this.root.opts.open.current;
- }),
- "CollapsibleContentState.present"
- );
- get present() {
- return get(this.#present);
- }
- set present(value) {
- set(this.#present, value);
- }
- #originalStyles;
- #isMountAnimationPrevented = tag(state(false), "CollapsibleContentState.#isMountAnimationPrevented");
- #width = tag(state(0), "CollapsibleContentState.#width");
- #height = tag(state(0), "CollapsibleContentState.#height");
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- set(this.#isMountAnimationPrevented, root18.opts.open.current, true);
- this.root.contentId = this.opts.id.current;
- this.attachment = attachRef(this.opts.ref, (v) => this.root.contentNode = v);
- watch.pre(() => this.opts.id.current, (id) => {
- this.root.contentId = id;
- });
- user_pre_effect(() => {
- const rAF = requestAnimationFrame(() => {
- set(this.#isMountAnimationPrevented, false);
- });
- return () => {
- cancelAnimationFrame(rAF);
- };
- });
- watch.pre(
- [
- () => this.opts.ref.current,
- () => this.opts.hiddenUntilFound.current
- ],
- ([node, hiddenUntilFound]) => {
- if (!node || !hiddenUntilFound) return;
- const handleBeforeMatch = () => {
- if (this.root.opts.open.current) return;
- requestAnimationFrame(() => {
- this.root.opts.open.current = true;
- });
- };
- return on(node, "beforematch", handleBeforeMatch);
- }
- );
- watch([() => this.opts.ref.current, () => this.present], ([node]) => {
- if (!node) return;
- afterTick(() => {
- if (!this.opts.ref.current) return;
- this.#originalStyles = this.#originalStyles || {
- transitionDuration: node.style.transitionDuration,
- animationName: node.style.animationName
- };
- node.style.transitionDuration = "0s";
- node.style.animationName = "none";
- const rect = node.getBoundingClientRect();
- set(this.#height, rect.height, true);
- set(this.#width, rect.width, true);
- if (!get(this.#isMountAnimationPrevented)) {
- const { animationName, transitionDuration } = this.#originalStyles;
- node.style.transitionDuration = transitionDuration;
- node.style.animationName = animationName;
- }
- });
- });
- }
- get shouldRender() {
- return this.root.contentPresence.shouldRender;
- }
- #snippetProps = tag(user_derived(() => ({ open: this.root.opts.open.current })), "CollapsibleContentState.snippetProps");
- get snippetProps() {
- return get(this.#snippetProps);
- }
- set snippetProps(value) {
- set(this.#snippetProps, value);
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- style: {
- "--bits-collapsible-content-height": get(this.#height) ? `${get(this.#height)}px` : void 0,
- "--bits-collapsible-content-width": get(this.#width) ? `${get(this.#width)}px` : void 0
- },
- hidden: this.opts.hiddenUntilFound.current && !this.root.opts.open.current ? "until-found" : void 0,
- "data-state": getDataOpenClosed(this.root.opts.open.current),
- "data-disabled": boolToEmptyStrOrUndef(this.root.opts.disabled.current),
- [collapsibleAttrs.content]: "",
- ...this.opts.hiddenUntilFound.current && !this.shouldRender ? {} : {
- hidden: this.opts.hiddenUntilFound.current ? !this.shouldRender : this.opts.forceMount.current ? void 0 : !this.shouldRender
- },
- ...this.attachment
- })),
- "CollapsibleContentState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-var CollapsibleTriggerState = class _CollapsibleTriggerState {
- static create(opts) {
- return new _CollapsibleTriggerState(opts, CollapsibleRootContext.get());
- }
- opts;
- root;
- attachment;
- #isDisabled = tag(user_derived(() => this.opts.disabled.current || this.root.opts.disabled.current), "CollapsibleTriggerState.#isDisabled");
- constructor(opts, root18) {
- this.opts = opts;
- this.root = root18;
- this.attachment = attachRef(this.opts.ref);
- this.onclick = this.onclick.bind(this);
- this.onkeydown = this.onkeydown.bind(this);
- }
- onclick(e) {
- if (get(this.#isDisabled)) return;
- if (strict_equals(e.button, 0, false)) return e.preventDefault();
- this.root.toggleOpen();
- }
- onkeydown(e) {
- if (get(this.#isDisabled)) return;
- if (strict_equals(e.key, kbd_constants_exports.SPACE) || strict_equals(e.key, kbd_constants_exports.ENTER)) {
- e.preventDefault();
- this.root.toggleOpen();
- }
- }
- #props = tag(
- user_derived(() => ({
- id: this.opts.id.current,
- type: "button",
- disabled: get(this.#isDisabled),
- "aria-controls": this.root.contentId,
- "aria-expanded": boolToStr(this.root.opts.open.current),
- "data-state": getDataOpenClosed(this.root.opts.open.current),
- "data-disabled": boolToEmptyStrOrUndef(get(this.#isDisabled)),
- [collapsibleAttrs.trigger]: "",
- //
- onclick: this.onclick,
- onkeydown: this.onkeydown,
- ...this.attachment
- })),
- "CollapsibleTriggerState.props"
- );
- get props() {
- return get(this.#props);
- }
- set props(value) {
- set(this.#props, value);
- }
-};
-
-// node_modules/bits-ui/dist/bits/collapsible/components/collapsible.svelte
-Collapsible[FILENAME] = "node_modules/bits-ui/dist/bits/collapsible/components/collapsible.svelte";
-var root_233 = add_locations(from_html(``), Collapsible[FILENAME], [[45, 1]]);
-function Collapsible($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Collapsible);
- let id = prop($$props, "id", 19, () => createId(uid)), ref = prop($$props, "ref", 15, null), open = prop($$props, "open", 15, false), disabled = prop($$props, "disabled", 3, false), onOpenChange = prop($$props, "onOpenChange", 3, noop3), onOpenChangeComplete = prop($$props, "onOpenChangeComplete", 3, noop3), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "id",
- "ref",
- "open",
- "disabled",
- "onOpenChange",
- "onOpenChangeComplete"
- ],
- "restProps"
- );
- const rootState = CollapsibleRootState.create({
- open: boxWith(() => open(), (v) => {
- open(v);
- onOpenChange()(v);
- }),
- disabled: boxWith(() => disabled()),
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- onOpenChangeComplete: boxWith(() => onOpenChangeComplete())
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, rootState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Collapsible, 43, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_233();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Collapsible, 46, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Collapsible,
- 42,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Collapsible = hmr(Collapsible, () => Collapsible[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Collapsible[HMR].source;
- set(Collapsible[HMR].source, module.default[HMR].original);
- });
-}
-var collapsible_default = Collapsible;
-
-// node_modules/bits-ui/dist/bits/collapsible/components/collapsible-content.svelte
-Collapsible_content[FILENAME] = "node_modules/bits-ui/dist/bits/collapsible/components/collapsible-content.svelte";
-var root_234 = add_locations(from_html(``), Collapsible_content[FILENAME], [[38, 1]]);
-function Collapsible_content($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Collapsible_content);
- let ref = prop($$props, "ref", 15, null), forceMount = prop($$props, "forceMount", 3, false), hiddenUntilFound = prop($$props, "hiddenUntilFound", 3, false), id = prop($$props, "id", 19, () => createId(uid)), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "child",
- "ref",
- "forceMount",
- "hiddenUntilFound",
- "children",
- "id"
- ],
- "restProps"
- );
- const contentState = CollapsibleContentState.create({
- id: boxWith(() => id()),
- forceMount: boxWith(() => forceMount()),
- hiddenUntilFound: boxWith(() => hiddenUntilFound()),
- ref: boxWith(() => ref(), (v) => ref(v))
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, contentState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- {
- let $0 = user_derived(() => ({ ...contentState.snippetProps, props: get(mergedProps) }));
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => get($0)), "render", Collapsible_content, 33, 1);
- }
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var div = root_234();
- attribute_effect(div, () => ({ ...get(mergedProps) }));
- var node_2 = child(div);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Collapsible_content, 39, 2);
- reset(div);
- append($$anchor2, div);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Collapsible_content,
- 32,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Collapsible_content = hmr(Collapsible_content, () => Collapsible_content[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Collapsible_content[HMR].source;
- set(Collapsible_content[HMR].source, module.default[HMR].original);
- });
-}
-var collapsible_content_default = Collapsible_content;
-
-// node_modules/bits-ui/dist/bits/collapsible/components/collapsible-trigger.svelte
-Collapsible_trigger[FILENAME] = "node_modules/bits-ui/dist/bits/collapsible/components/collapsible-trigger.svelte";
-var root_235 = add_locations(from_html(``), Collapsible_trigger[FILENAME], [[33, 1]]);
-function Collapsible_trigger($$anchor, $$props) {
- const uid = props_id();
- check_target(new.target);
- push($$props, true, Collapsible_trigger);
- let ref = prop($$props, "ref", 15, null), id = prop($$props, "id", 19, () => createId(uid)), disabled = prop($$props, "disabled", 3, false), restProps = rest_props(
- $$props,
- [
- "$$slots",
- "$$events",
- "$$legacy",
- "children",
- "child",
- "ref",
- "id",
- "disabled"
- ],
- "restProps"
- );
- const triggerState = CollapsibleTriggerState.create({
- id: boxWith(() => id()),
- ref: boxWith(() => ref(), (v) => ref(v)),
- disabled: boxWith(() => disabled())
- });
- const mergedProps = tag(user_derived(() => mergeProps(restProps, triggerState.props)), "mergedProps");
- var $$exports = { ...legacy_api() };
- var fragment = comment();
- var node = first_child(fragment);
- {
- var consequent = ($$anchor2) => {
- var fragment_1 = comment();
- var node_1 = first_child(fragment_1);
- add_svelte_meta(() => snippet(node_1, () => $$props.child, () => ({ props: get(mergedProps) })), "render", Collapsible_trigger, 31, 1);
- append($$anchor2, fragment_1);
- };
- var alternate = ($$anchor2) => {
- var button = root_235();
- attribute_effect(button, () => ({ ...get(mergedProps) }));
- var node_2 = child(button);
- add_svelte_meta(() => snippet(node_2, () => $$props.children ?? noop), "render", Collapsible_trigger, 34, 2);
- reset(button);
- append($$anchor2, button);
- };
- add_svelte_meta(
- () => if_block(node, ($$render) => {
- if ($$props.child) $$render(consequent);
- else $$render(alternate, false);
- }),
- "if",
- Collapsible_trigger,
- 30,
- 0
- );
- }
- append($$anchor, fragment);
- return pop($$exports);
-}
-if (import.meta.hot) {
- Collapsible_trigger = hmr(Collapsible_trigger, () => Collapsible_trigger[HMR].source);
- import.meta.hot.accept((module) => {
- module.default[HMR].source = Collapsible_trigger[HMR].source;
- set(Collapsible_trigger[HMR].source, module.default[HMR].original);
- });
-}
-var collapsible_trigger_default = Collapsible_trigger;
-
-// node_modules/bits-ui/dist/bits/combobox/exports.js
-var exports_exports9 = {};
-__export(exports_exports9, {
- Arrow: () => arrow_default,
- Content: () => select_content_default,
- ContentStatic: () => select_content_static_default,
- Group: () => select_group_default,
- GroupHeading: () => select_group_heading_default,
- Input: () => combobox_input_default,
- Item: () => select_item_default,
- Portal: () => portal_default,
- Root: () => combobox_default,
- ScrollDownButton: () => select_scroll_down_button_default,
- ScrollUpButton: () => select_scroll_up_button_default,
- Separator: () => separator_default,
- Trigger: () => combobox_trigger_default,
- Viewport: () => select_viewport_default
-});
-
-// node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs
-var sides = ["top", "right", "bottom", "left"];
-var alignments = ["start", "end"];
-var placements = sides.reduce((acc, side) => acc.concat(side, side + "-" + alignments[0], side + "-" + alignments[1]), []);
-var min = Math.min;
-var max = Math.max;
-var round = Math.round;
-var floor = Math.floor;
-var createCoords = (v) => ({
- x: v,
- y: v
-});
-var oppositeSideMap = {
- left: "right",
- right: "left",
- bottom: "top",
- top: "bottom"
-};
-var oppositeAlignmentMap = {
- start: "end",
- end: "start"
-};
-function clamp(start, value, end) {
- return max(start, min(value, end));
-}
-function evaluate(value, param) {
- return typeof value === "function" ? value(param) : value;
-}
-function getSide(placement) {
- return placement.split("-")[0];
-}
-function getAlignment(placement) {
- return placement.split("-")[1];
-}
-function getOppositeAxis(axis) {
- return axis === "x" ? "y" : "x";
-}
-function getAxisLength(axis) {
- return axis === "y" ? "height" : "width";
-}
-var yAxisSides = /* @__PURE__ */ new Set(["top", "bottom"]);
-function getSideAxis(placement) {
- return yAxisSides.has(getSide(placement)) ? "y" : "x";
-}
-function getAlignmentAxis(placement) {
- return getOppositeAxis(getSideAxis(placement));
-}
-function getAlignmentSides(placement, rects, rtl) {
- if (rtl === void 0) {
- rtl = false;
- }
- const alignment = getAlignment(placement);
- const alignmentAxis = getAlignmentAxis(placement);
- const length = getAxisLength(alignmentAxis);
- let mainAlignmentSide = alignmentAxis === "x" ? alignment === (rtl ? "end" : "start") ? "right" : "left" : alignment === "start" ? "bottom" : "top";
- if (rects.reference[length] > rects.floating[length]) {
- mainAlignmentSide = getOppositePlacement(mainAlignmentSide);
- }
- return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];
-}
-function getExpandedPlacements(placement) {
- const oppositePlacement = getOppositePlacement(placement);
- return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];
-}
-function getOppositeAlignmentPlacement(placement) {
- return placement.replace(/start|end/g, (alignment) => oppositeAlignmentMap[alignment]);
-}
-var lrPlacement = ["left", "right"];
-var rlPlacement = ["right", "left"];
-var tbPlacement = ["top", "bottom"];
-var btPlacement = ["bottom", "top"];
-function getSideList(side, isStart, rtl) {
- switch (side) {
- case "top":
- case "bottom":
- if (rtl) return isStart ? rlPlacement : lrPlacement;
- return isStart ? lrPlacement : rlPlacement;
- case "left":
- case "right":
- return isStart ? tbPlacement : btPlacement;
- default:
- return [];
- }
-}
-function getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {
- const alignment = getAlignment(placement);
- let list = getSideList(getSide(placement), direction === "start", rtl);
- if (alignment) {
- list = list.map((side) => side + "-" + alignment);
- if (flipAlignment) {
- list = list.concat(list.map(getOppositeAlignmentPlacement));
- }
- }
- return list;
-}
-function getOppositePlacement(placement) {
- return placement.replace(/left|right|bottom|top/g, (side) => oppositeSideMap[side]);
-}
-function expandPaddingObject(padding) {
- return {
- top: 0,
- right: 0,
- bottom: 0,
- left: 0,
- ...padding
- };
-}
-function getPaddingObject(padding) {
- return typeof padding !== "number" ? expandPaddingObject(padding) : {
- top: padding,
- right: padding,
- bottom: padding,
- left: padding
- };
-}
-function rectToClientRect(rect) {
- const {
- x,
- y,
- width,
- height
- } = rect;
- return {
- width,
- height,
- top: y,
- left: x,
- right: x + width,
- bottom: y + height,
- x,
- y
- };
-}
-
-// node_modules/@floating-ui/core/dist/floating-ui.core.mjs
-function computeCoordsFromPlacement(_ref, placement, rtl) {
- let {
- reference,
- floating
- } = _ref;
- const sideAxis = getSideAxis(placement);
- const alignmentAxis = getAlignmentAxis(placement);
- const alignLength = getAxisLength(alignmentAxis);
- const side = getSide(placement);
- const isVertical = sideAxis === "y";
- const commonX = reference.x + reference.width / 2 - floating.width / 2;
- const commonY = reference.y + reference.height / 2 - floating.height / 2;
- const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;
- let coords;
- switch (side) {
- case "top":
- coords = {
- x: commonX,
- y: reference.y - floating.height
- };
- break;
- case "bottom":
- coords = {
- x: commonX,
- y: reference.y + reference.height
- };
- break;
- case "right":
- coords = {
- x: reference.x + reference.width,
- y: commonY
- };
- break;
- case "left":
- coords = {
- x: reference.x - floating.width,
- y: commonY
- };
- break;
- default:
- coords = {
- x: reference.x,
- y: reference.y
- };
- }
- switch (getAlignment(placement)) {
- case "start":
- coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);
- break;
- case "end":
- coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);
- break;
- }
- return coords;
-}
-var computePosition = async (reference, floating, config) => {
- const {
- placement = "bottom",
- strategy = "absolute",
- middleware = [],
- platform: platform2
- } = config;
- const validMiddleware = middleware.filter(Boolean);
- const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(floating));
- let rects = await platform2.getElementRects({
- reference,
- floating,
- strategy
- });
- let {
- x,
- y
- } = computeCoordsFromPlacement(rects, placement, rtl);
- let statefulPlacement = placement;
- let middlewareData = {};
- let resetCount = 0;
- for (let i = 0; i < validMiddleware.length; i++) {
- const {
- name,
- fn
- } = validMiddleware[i];
- const {
- x: nextX,
- y: nextY,
- data,
- reset: reset2
- } = await fn({
- x,
- y,
- initialPlacement: placement,
- placement: statefulPlacement,
- strategy,
- middlewareData,
- rects,
- platform: platform2,
- elements: {
- reference,
- floating
- }
- });
- x = nextX != null ? nextX : x;
- y = nextY != null ? nextY : y;
- middlewareData = {
- ...middlewareData,
- [name]: {
- ...middlewareData[name],
- ...data
- }
- };
- if (reset2 && resetCount <= 50) {
- resetCount++;
- if (typeof reset2 === "object") {
- if (reset2.placement) {
- statefulPlacement = reset2.placement;
- }
- if (reset2.rects) {
- rects = reset2.rects === true ? await platform2.getElementRects({
- reference,
- floating,
- strategy
- }) : reset2.rects;
- }
- ({
- x,
- y
- } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));
- }
- i = -1;
- }
- }
- return {
- x,
- y,
- placement: statefulPlacement,
- strategy,
- middlewareData
- };
-};
-async function detectOverflow(state2, options) {
- var _await$platform$isEle;
- if (options === void 0) {
- options = {};
- }
- const {
- x,
- y,
- platform: platform2,
- rects,
- elements,
- strategy
- } = state2;
- const {
- boundary = "clippingAncestors",
- rootBoundary = "viewport",
- elementContext = "floating",
- altBoundary = false,
- padding = 0
- } = evaluate(options, state2);
- const paddingObject = getPaddingObject(padding);
- const altContext = elementContext === "floating" ? "reference" : "floating";
- const element2 = elements[altBoundary ? altContext : elementContext];
- const clippingClientRect = rectToClientRect(await platform2.getClippingRect({
- element: ((_await$platform$isEle = await (platform2.isElement == null ? void 0 : platform2.isElement(element2))) != null ? _await$platform$isEle : true) ? element2 : element2.contextElement || await (platform2.getDocumentElement == null ? void 0 : platform2.getDocumentElement(elements.floating)),
- boundary,
- rootBoundary,
- strategy
- }));
- const rect = elementContext === "floating" ? {
- x,
- y,
- width: rects.floating.width,
- height: rects.floating.height
- } : rects.reference;
- const offsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(elements.floating));
- const offsetScale = await (platform2.isElement == null ? void 0 : platform2.isElement(offsetParent)) ? await (platform2.getScale == null ? void 0 : platform2.getScale(offsetParent)) || {
- x: 1,
- y: 1
- } : {
- x: 1,
- y: 1
- };
- const elementClientRect = rectToClientRect(platform2.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform2.convertOffsetParentRelativeRectToViewportRelativeRect({
- elements,
- rect,
- offsetParent,
- strategy
- }) : rect);
- return {
- top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,
- bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,
- left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,
- right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x
- };
-}
-var arrow = (options) => ({
- name: "arrow",
- options,
- async fn(state2) {
- const {
- x,
- y,
- placement,
- rects,
- platform: platform2,
- elements,
- middlewareData
- } = state2;
- const {
- element: element2,
- padding = 0
- } = evaluate(options, state2) || {};
- if (element2 == null) {
- return {};
- }
- const paddingObject = getPaddingObject(padding);
- const coords = {
- x,
- y
- };
- const axis = getAlignmentAxis(placement);
- const length = getAxisLength(axis);
- const arrowDimensions = await platform2.getDimensions(element2);
- const isYAxis = axis === "y";
- const minProp = isYAxis ? "top" : "left";
- const maxProp = isYAxis ? "bottom" : "right";
- const clientProp = isYAxis ? "clientHeight" : "clientWidth";
- const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];
- const startDiff = coords[axis] - rects.reference[axis];
- const arrowOffsetParent = await (platform2.getOffsetParent == null ? void 0 : platform2.getOffsetParent(element2));
- let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;
- if (!clientSize || !await (platform2.isElement == null ? void 0 : platform2.isElement(arrowOffsetParent))) {
- clientSize = elements.floating[clientProp] || rects.floating[length];
- }
- const centerToReference = endDiff / 2 - startDiff / 2;
- const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;
- const minPadding = min(paddingObject[minProp], largestPossiblePadding);
- const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);
- const min$1 = minPadding;
- const max2 = clientSize - arrowDimensions[length] - maxPadding;
- const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;
- const offset3 = clamp(min$1, center, max2);
- const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset3 && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;
- const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max2 : 0;
- return {
- [axis]: coords[axis] + alignmentOffset,
- data: {
- [axis]: offset3,
- centerOffset: center - offset3 - alignmentOffset,
- ...shouldAddOffset && {
- alignmentOffset
- }
- },
- reset: shouldAddOffset
- };
- }
-});
-var flip = function(options) {
- if (options === void 0) {
- options = {};
- }
- return {
- name: "flip",
- options,
- async fn(state2) {
- var _middlewareData$arrow, _middlewareData$flip;
- const {
- placement,
- middlewareData,
- rects,
- initialPlacement,
- platform: platform2,
- elements
- } = state2;
- const {
- mainAxis: checkMainAxis = true,
- crossAxis: checkCrossAxis = true,
- fallbackPlacements: specifiedFallbackPlacements,
- fallbackStrategy = "bestFit",
- fallbackAxisSideDirection = "none",
- flipAlignment = true,
- ...detectOverflowOptions
- } = evaluate(options, state2);
- if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
- return {};
- }
- const side = getSide(placement);
- const initialSideAxis = getSideAxis(initialPlacement);
- const isBasePlacement = getSide(initialPlacement) === initialPlacement;
- const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
- const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));
- const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== "none";
- if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {
- fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));
- }
- const placements2 = [initialPlacement, ...fallbackPlacements];
- const overflow = await detectOverflow(state2, detectOverflowOptions);
- const overflows = [];
- let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];
- if (checkMainAxis) {
- overflows.push(overflow[side]);
- }
- if (checkCrossAxis) {
- const sides2 = getAlignmentSides(placement, rects, rtl);
- overflows.push(overflow[sides2[0]], overflow[sides2[1]]);
- }
- overflowsData = [...overflowsData, {
- placement,
- overflows
- }];
- if (!overflows.every((side2) => side2 <= 0)) {
- var _middlewareData$flip2, _overflowsData$filter;
- const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;
- const nextPlacement = placements2[nextIndex];
- if (nextPlacement) {
- const ignoreCrossAxisOverflow = checkCrossAxis === "alignment" ? initialSideAxis !== getSideAxis(nextPlacement) : false;
- if (!ignoreCrossAxisOverflow || // We leave the current main axis only if every placement on that axis
- // overflows the main axis.
- overflowsData.every((d) => getSideAxis(d.placement) === initialSideAxis ? d.overflows[0] > 0 : true)) {
- return {
- data: {
- index: nextIndex,
- overflows: overflowsData
- },
- reset: {
- placement: nextPlacement
- }
- };
- }
- }
- let resetPlacement = (_overflowsData$filter = overflowsData.filter((d) => d.overflows[0] <= 0).sort((a2, b) => a2.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;
- if (!resetPlacement) {
- switch (fallbackStrategy) {
- case "bestFit": {
- var _overflowsData$filter2;
- const placement2 = (_overflowsData$filter2 = overflowsData.filter((d) => {
- if (hasFallbackAxisSideDirection) {
- const currentSideAxis = getSideAxis(d.placement);
- return currentSideAxis === initialSideAxis || // Create a bias to the `y` side axis due to horizontal
- // reading directions favoring greater width.
- currentSideAxis === "y";
- }
- return true;
- }).map((d) => [d.placement, d.overflows.filter((overflow2) => overflow2 > 0).reduce((acc, overflow2) => acc + overflow2, 0)]).sort((a2, b) => a2[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];
- if (placement2) {
- resetPlacement = placement2;
- }
- break;
- }
- case "initialPlacement":
- resetPlacement = initialPlacement;
- break;
- }
- }
- if (placement !== resetPlacement) {
- return {
- reset: {
- placement: resetPlacement
- }
- };
- }
- }
- return {};
- }
- };
-};
-function getSideOffsets(overflow, rect) {
- return {
- top: overflow.top - rect.height,
- right: overflow.right - rect.width,
- bottom: overflow.bottom - rect.height,
- left: overflow.left - rect.width
- };
-}
-function isAnySideFullyClipped(overflow) {
- return sides.some((side) => overflow[side] >= 0);
-}
-var hide = function(options) {
- if (options === void 0) {
- options = {};
- }
- return {
- name: "hide",
- options,
- async fn(state2) {
- const {
- rects
- } = state2;
- const {
- strategy = "referenceHidden",
- ...detectOverflowOptions
- } = evaluate(options, state2);
- switch (strategy) {
- case "referenceHidden": {
- const overflow = await detectOverflow(state2, {
- ...detectOverflowOptions,
- elementContext: "reference"
- });
- const offsets = getSideOffsets(overflow, rects.reference);
- return {
- data: {
- referenceHiddenOffsets: offsets,
- referenceHidden: isAnySideFullyClipped(offsets)
- }
- };
- }
- case "escaped": {
- const overflow = await detectOverflow(state2, {
- ...detectOverflowOptions,
- altBoundary: true
- });
- const offsets = getSideOffsets(overflow, rects.floating);
- return {
- data: {
- escapedOffsets: offsets,
- escaped: isAnySideFullyClipped(offsets)
- }
- };
- }
- default: {
- return {};
- }
- }
- }
- };
-};
-var originSides = /* @__PURE__ */ new Set(["left", "top"]);
-async function convertValueToCoords(state2, options) {
- const {
- placement,
- platform: platform2,
- elements
- } = state2;
- const rtl = await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating));
- const side = getSide(placement);
- const alignment = getAlignment(placement);
- const isVertical = getSideAxis(placement) === "y";
- const mainAxisMulti = originSides.has(side) ? -1 : 1;
- const crossAxisMulti = rtl && isVertical ? -1 : 1;
- const rawValue = evaluate(options, state2);
- let {
- mainAxis,
- crossAxis,
- alignmentAxis
- } = typeof rawValue === "number" ? {
- mainAxis: rawValue,
- crossAxis: 0,
- alignmentAxis: null
- } : {
- mainAxis: rawValue.mainAxis || 0,
- crossAxis: rawValue.crossAxis || 0,
- alignmentAxis: rawValue.alignmentAxis
- };
- if (alignment && typeof alignmentAxis === "number") {
- crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
- }
- return isVertical ? {
- x: crossAxis * crossAxisMulti,
- y: mainAxis * mainAxisMulti
- } : {
- x: mainAxis * mainAxisMulti,
- y: crossAxis * crossAxisMulti
- };
-}
-var offset = function(options) {
- if (options === void 0) {
- options = 0;
- }
- return {
- name: "offset",
- options,
- async fn(state2) {
- var _middlewareData$offse, _middlewareData$arrow;
- const {
- x,
- y,
- placement,
- middlewareData
- } = state2;
- const diffCoords = await convertValueToCoords(state2, options);
- if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {
- return {};
- }
- return {
- x: x + diffCoords.x,
- y: y + diffCoords.y,
- data: {
- ...diffCoords,
- placement
- }
- };
- }
- };
-};
-var shift = function(options) {
- if (options === void 0) {
- options = {};
- }
- return {
- name: "shift",
- options,
- async fn(state2) {
- const {
- x,
- y,
- placement
- } = state2;
- const {
- mainAxis: checkMainAxis = true,
- crossAxis: checkCrossAxis = false,
- limiter = {
- fn: (_ref) => {
- let {
- x: x2,
- y: y2
- } = _ref;
- return {
- x: x2,
- y: y2
- };
- }
- },
- ...detectOverflowOptions
- } = evaluate(options, state2);
- const coords = {
- x,
- y
- };
- const overflow = await detectOverflow(state2, detectOverflowOptions);
- const crossAxis = getSideAxis(getSide(placement));
- const mainAxis = getOppositeAxis(crossAxis);
- let mainAxisCoord = coords[mainAxis];
- let crossAxisCoord = coords[crossAxis];
- if (checkMainAxis) {
- const minSide = mainAxis === "y" ? "top" : "left";
- const maxSide = mainAxis === "y" ? "bottom" : "right";
- const min2 = mainAxisCoord + overflow[minSide];
- const max2 = mainAxisCoord - overflow[maxSide];
- mainAxisCoord = clamp(min2, mainAxisCoord, max2);
- }
- if (checkCrossAxis) {
- const minSide = crossAxis === "y" ? "top" : "left";
- const maxSide = crossAxis === "y" ? "bottom" : "right";
- const min2 = crossAxisCoord + overflow[minSide];
- const max2 = crossAxisCoord - overflow[maxSide];
- crossAxisCoord = clamp(min2, crossAxisCoord, max2);
- }
- const limitedCoords = limiter.fn({
- ...state2,
- [mainAxis]: mainAxisCoord,
- [crossAxis]: crossAxisCoord
- });
- return {
- ...limitedCoords,
- data: {
- x: limitedCoords.x - x,
- y: limitedCoords.y - y,
- enabled: {
- [mainAxis]: checkMainAxis,
- [crossAxis]: checkCrossAxis
- }
- }
- };
- }
- };
-};
-var limitShift = function(options) {
- if (options === void 0) {
- options = {};
- }
- return {
- options,
- fn(state2) {
- const {
- x,
- y,
- placement,
- rects,
- middlewareData
- } = state2;
- const {
- offset: offset3 = 0,
- mainAxis: checkMainAxis = true,
- crossAxis: checkCrossAxis = true
- } = evaluate(options, state2);
- const coords = {
- x,
- y
- };
- const crossAxis = getSideAxis(placement);
- const mainAxis = getOppositeAxis(crossAxis);
- let mainAxisCoord = coords[mainAxis];
- let crossAxisCoord = coords[crossAxis];
- const rawOffset = evaluate(offset3, state2);
- const computedOffset = typeof rawOffset === "number" ? {
- mainAxis: rawOffset,
- crossAxis: 0
- } : {
- mainAxis: 0,
- crossAxis: 0,
- ...rawOffset
- };
- if (checkMainAxis) {
- const len = mainAxis === "y" ? "height" : "width";
- const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;
- const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;
- if (mainAxisCoord < limitMin) {
- mainAxisCoord = limitMin;
- } else if (mainAxisCoord > limitMax) {
- mainAxisCoord = limitMax;
- }
- }
- if (checkCrossAxis) {
- var _middlewareData$offse, _middlewareData$offse2;
- const len = mainAxis === "y" ? "width" : "height";
- const isOriginSide = originSides.has(getSide(placement));
- 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);
- 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);
- if (crossAxisCoord < limitMin) {
- crossAxisCoord = limitMin;
- } else if (crossAxisCoord > limitMax) {
- crossAxisCoord = limitMax;
- }
- }
- return {
- [mainAxis]: mainAxisCoord,
- [crossAxis]: crossAxisCoord
- };
- }
- };
-};
-var size = function(options) {
- if (options === void 0) {
- options = {};
- }
- return {
- name: "size",
- options,
- async fn(state2) {
- var _state$middlewareData, _state$middlewareData2;
- const {
- placement,
- rects,
- platform: platform2,
- elements
- } = state2;
- const {
- apply = () => {
- },
- ...detectOverflowOptions
- } = evaluate(options, state2);
- const overflow = await detectOverflow(state2, detectOverflowOptions);
- const side = getSide(placement);
- const alignment = getAlignment(placement);
- const isYAxis = getSideAxis(placement) === "y";
- const {
- width,
- height
- } = rects.floating;
- let heightSide;
- let widthSide;
- if (side === "top" || side === "bottom") {
- heightSide = side;
- widthSide = alignment === (await (platform2.isRTL == null ? void 0 : platform2.isRTL(elements.floating)) ? "start" : "end") ? "left" : "right";
- } else {
- widthSide = side;
- heightSide = alignment === "end" ? "top" : "bottom";
- }
- const maximumClippingHeight = height - overflow.top - overflow.bottom;
- const maximumClippingWidth = width - overflow.left - overflow.right;
- const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);
- const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);
- const noShift = !state2.middlewareData.shift;
- let availableHeight = overflowAvailableHeight;
- let availableWidth = overflowAvailableWidth;
- if ((_state$middlewareData = state2.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
- availableWidth = maximumClippingWidth;
- }
- if ((_state$middlewareData2 = state2.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
- availableHeight = maximumClippingHeight;
- }
- if (noShift && !alignment) {
- const xMin = max(overflow.left, 0);
- const xMax = max(overflow.right, 0);
- const yMin = max(overflow.top, 0);
- const yMax = max(overflow.bottom, 0);
- if (isYAxis) {
- availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));
- } else {
- availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));
- }
- }
- await apply({
- ...state2,
- availableWidth,
- availableHeight
- });
- const nextDimensions = await platform2.getDimensions(elements.floating);
- if (width !== nextDimensions.width || height !== nextDimensions.height) {
- return {
- reset: {
- rects: true
- }
- };
- }
- return {};
- }
- };
-};
-
-// node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs
-function hasWindow() {
- return typeof window !== "undefined";
-}
-function getNodeName2(node) {
- if (isNode2(node)) {
- return (node.nodeName || "").toLowerCase();
- }
- return "#document";
-}
-function getWindow2(node) {
- var _node$ownerDocument;
- return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;
-}
-function getDocumentElement2(node) {
- var _ref;
- return (_ref = (isNode2(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;
-}
-function isNode2(value) {
- if (!hasWindow()) {
- return false;
- }
- return value instanceof Node || value instanceof getWindow2(value).Node;
-}
-function isElement3(value) {
- if (!hasWindow()) {
- return false;
- }
- return value instanceof Element || value instanceof getWindow2(value).Element;
-}
-function isHTMLElement3(value) {
- if (!hasWindow()) {
- return false;
- }
- return value instanceof HTMLElement || value instanceof getWindow2(value).HTMLElement;
-}
-function isShadowRoot2(value) {
- if (!hasWindow() || typeof ShadowRoot === "undefined") {
- return false;
- }
- return value instanceof ShadowRoot || value instanceof getWindow2(value).ShadowRoot;
-}
-var invalidOverflowDisplayValues = /* @__PURE__ */ new Set(["inline", "contents"]);
-function isOverflowElement(element2) {
- const {
- overflow,
- overflowX,
- overflowY,
- display
- } = getComputedStyle2(element2);
- return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !invalidOverflowDisplayValues.has(display);
-}
-var tableElements = /* @__PURE__ */ new Set(["table", "td", "th"]);
-function isTableElement(element2) {
- return tableElements.has(getNodeName2(element2));
-}
-var topLayerSelectors = [":popover-open", ":modal"];
-function isTopLayer(element2) {
- return topLayerSelectors.some((selector) => {
- try {
- return element2.matches(selector);
- } catch (_e) {
- return false;
- }
- });
-}
-var transformProperties = ["transform", "translate", "scale", "rotate", "perspective"];
-var willChangeValues = ["transform", "translate", "scale", "rotate", "perspective", "filter"];
-var containValues = ["paint", "layout", "strict", "content"];
-function isContainingBlock(elementOrCss) {
- const webkit = isWebKit();
- const css = isElement3(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss;
- 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));
-}
-function getContainingBlock(element2) {
- let currentNode = getParentNode2(element2);
- while (isHTMLElement3(currentNode) && !isLastTraversableNode(currentNode)) {
- if (isContainingBlock(currentNode)) {
- return currentNode;
- } else if (isTopLayer(currentNode)) {
- return null;
- }
- currentNode = getParentNode2(currentNode);
- }
- return null;
-}
-function isWebKit() {
- if (typeof CSS === "undefined" || !CSS.supports) return false;
- return CSS.supports("-webkit-backdrop-filter", "none");
-}
-var lastTraversableNodeNames = /* @__PURE__ */ new Set(["html", "body", "#document"]);
-function isLastTraversableNode(node) {
- return lastTraversableNodeNames.has(getNodeName2(node));
-}
-function getComputedStyle2(element2) {
- return getWindow2(element2).getComputedStyle(element2);
-}
-function getNodeScroll(element2) {
- if (isElement3(element2)) {
- return {
- scrollLeft: element2.scrollLeft,
- scrollTop: element2.scrollTop
- };
- }
- return {
- scrollLeft: element2.scrollX,
- scrollTop: element2.scrollY
- };
-}
-function getParentNode2(node) {
- if (getNodeName2(node) === "html") {
- return node;
- }
- const result = (
- // Step into the shadow DOM of the parent of a slotted node.
- node.assignedSlot || // DOM Element detected.
- node.parentNode || // ShadowRoot detected.
- isShadowRoot2(node) && node.host || // Fallback.
- getDocumentElement2(node)
- );
- return isShadowRoot2(result) ? result.host : result;
-}
-function getNearestOverflowAncestor(node) {
- const parentNode = getParentNode2(node);
- if (isLastTraversableNode(parentNode)) {
- return node.ownerDocument ? node.ownerDocument.body : node.body;
- }
- if (isHTMLElement3(parentNode) && isOverflowElement(parentNode)) {
- return parentNode;
- }
- return getNearestOverflowAncestor(parentNode);
-}
-function getOverflowAncestors(node, list, traverseIframes) {
- var _node$ownerDocument2;
- if (list === void 0) {
- list = [];
- }
- if (traverseIframes === void 0) {
- traverseIframes = true;
- }
- const scrollableAncestor = getNearestOverflowAncestor(node);
- const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);
- const win = getWindow2(scrollableAncestor);
- if (isBody) {
- const frameElement = getFrameElement(win);
- return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);
- }
- return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));
-}
-function getFrameElement(win) {
- return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;
-}
-
-// node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
-function getCssDimensions(element2) {
- const css = getComputedStyle2(element2);
- let width = parseFloat(css.width) || 0;
- let height = parseFloat(css.height) || 0;
- const hasOffset = isHTMLElement3(element2);
- const offsetWidth = hasOffset ? element2.offsetWidth : width;
- const offsetHeight = hasOffset ? element2.offsetHeight : height;
- const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;
- if (shouldFallback) {
- width = offsetWidth;
- height = offsetHeight;
- }
- return {
- width,
- height,
- $: shouldFallback
- };
-}
-function unwrapElement(element2) {
- return !isElement3(element2) ? element2.contextElement : element2;
-}
-function getScale(element2) {
- const domElement = unwrapElement(element2);
- if (!isHTMLElement3(domElement)) {
- return createCoords(1);
- }
- const rect = domElement.getBoundingClientRect();
- const {
- width,
- height,
- $
- } = getCssDimensions(domElement);
- let x = ($ ? round(rect.width) : rect.width) / width;
- let y = ($ ? round(rect.height) : rect.height) / height;
- if (!x || !Number.isFinite(x)) {
- x = 1;
- }
- if (!y || !Number.isFinite(y)) {
- y = 1;
- }
- return {
- x,
- y
- };
-}
-var noOffsets = createCoords(0);
-function getVisualOffsets(element2) {
- const win = getWindow2(element2);
- if (!isWebKit() || !win.visualViewport) {
- return noOffsets;
- }
- return {
- x: win.visualViewport.offsetLeft,
- y: win.visualViewport.offsetTop
- };
-}
-function shouldAddVisualOffsets(element2, isFixed, floatingOffsetParent) {
- if (isFixed === void 0) {
- isFixed = false;
- }
- if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow2(element2)) {
- return false;
- }
- return isFixed;
-}
-function getBoundingClientRect(element2, includeScale, isFixedStrategy, offsetParent) {
- if (includeScale === void 0) {
- includeScale = false;
- }
- if (isFixedStrategy === void 0) {
- isFixedStrategy = false;
- }
- const clientRect = element2.getBoundingClientRect();
- const domElement = unwrapElement(element2);
- let scale = createCoords(1);
- if (includeScale) {
- if (offsetParent) {
- if (isElement3(offsetParent)) {
- scale = getScale(offsetParent);
- }
- } else {
- scale = getScale(element2);
- }
- }
- const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);
- let x = (clientRect.left + visualOffsets.x) / scale.x;
- let y = (clientRect.top + visualOffsets.y) / scale.y;
- let width = clientRect.width / scale.x;
- let height = clientRect.height / scale.y;
- if (domElement) {
- const win = getWindow2(domElement);
- const offsetWin = offsetParent && isElement3(offsetParent) ? getWindow2(offsetParent) : offsetParent;
- let currentWin = win;
- let currentIFrame = getFrameElement(currentWin);
- while (currentIFrame && offsetParent && offsetWin !== currentWin) {
- const iframeScale = getScale(currentIFrame);
- const iframeRect = currentIFrame.getBoundingClientRect();
- const css = getComputedStyle2(currentIFrame);
- const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;
- const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;
- x *= iframeScale.x;
- y *= iframeScale.y;
- width *= iframeScale.x;
- height *= iframeScale.y;
- x += left;
- y += top;
- currentWin = getWindow2(currentIFrame);
- currentIFrame = getFrameElement(currentWin);
- }
- }
- return rectToClientRect({
- width,
- height,
- x,
- y
- });
-}
-function getWindowScrollBarX(element2, rect) {
- const leftScroll = getNodeScroll(element2).scrollLeft;
- if (!rect) {
- return getBoundingClientRect(getDocumentElement2(element2)).left + leftScroll;
- }
- return rect.left + leftScroll;
-}
-function getHTMLOffset(documentElement, scroll) {
- const htmlRect = documentElement.getBoundingClientRect();
- const x = htmlRect.left + scroll.scrollLeft - getWindowScrollBarX(documentElement, htmlRect);
- const y = htmlRect.top + scroll.scrollTop;
- return {
- x,
- y
- };
-}
-function convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {
- let {
- elements,
- rect,
- offsetParent,
- strategy
- } = _ref;
- const isFixed = strategy === "fixed";
- const documentElement = getDocumentElement2(offsetParent);
- const topLayer = elements ? isTopLayer(elements.floating) : false;
- if (offsetParent === documentElement || topLayer && isFixed) {
- return rect;
- }
- let scroll = {
- scrollLeft: 0,
- scrollTop: 0
- };
- let scale = createCoords(1);
- const offsets = createCoords(0);
- const isOffsetParentAnElement = isHTMLElement3(offsetParent);
- if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
- if (getNodeName2(offsetParent) !== "body" || isOverflowElement(documentElement)) {
- scroll = getNodeScroll(offsetParent);
- }
- if (isHTMLElement3(offsetParent)) {
- const offsetRect = getBoundingClientRect(offsetParent);
- scale = getScale(offsetParent);
- offsets.x = offsetRect.x + offsetParent.clientLeft;
- offsets.y = offsetRect.y + offsetParent.clientTop;
- }
- }
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
- return {
- width: rect.width * scale.x,
- height: rect.height * scale.y,
- x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,
- y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y
- };
-}
-function getClientRects(element2) {
- return Array.from(element2.getClientRects());
-}
-function getDocumentRect(element2) {
- const html = getDocumentElement2(element2);
- const scroll = getNodeScroll(element2);
- const body = element2.ownerDocument.body;
- const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);
- const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);
- let x = -scroll.scrollLeft + getWindowScrollBarX(element2);
- const y = -scroll.scrollTop;
- if (getComputedStyle2(body).direction === "rtl") {
- x += max(html.clientWidth, body.clientWidth) - width;
- }
- return {
- width,
- height,
- x,
- y
- };
-}
-var SCROLLBAR_MAX = 25;
-function getViewportRect(element2, strategy) {
- const win = getWindow2(element2);
- const html = getDocumentElement2(element2);
- const visualViewport = win.visualViewport;
- let width = html.clientWidth;
- let height = html.clientHeight;
- let x = 0;
- let y = 0;
- if (visualViewport) {
- width = visualViewport.width;
- height = visualViewport.height;
- const visualViewportBased = isWebKit();
- if (!visualViewportBased || visualViewportBased && strategy === "fixed") {
- x = visualViewport.offsetLeft;
- y = visualViewport.offsetTop;
- }
- }
- const windowScrollbarX = getWindowScrollBarX(html);
- if (windowScrollbarX <= 0) {
- const doc = html.ownerDocument;
- const body = doc.body;
- const bodyStyles = getComputedStyle(body);
- const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
- const clippingStableScrollbarWidth = Math.abs(html.clientWidth - body.clientWidth - bodyMarginInline);
- if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
- width -= clippingStableScrollbarWidth;
- }
- } else if (windowScrollbarX <= SCROLLBAR_MAX) {
- width += windowScrollbarX;
- }
- return {
- width,
- height,
- x,
- y
- };
-}
-var absoluteOrFixed = /* @__PURE__ */ new Set(["absolute", "fixed"]);
-function getInnerBoundingClientRect(element2, strategy) {
- const clientRect = getBoundingClientRect(element2, true, strategy === "fixed");
- const top = clientRect.top + element2.clientTop;
- const left = clientRect.left + element2.clientLeft;
- const scale = isHTMLElement3(element2) ? getScale(element2) : createCoords(1);
- const width = element2.clientWidth * scale.x;
- const height = element2.clientHeight * scale.y;
- const x = left * scale.x;
- const y = top * scale.y;
- return {
- width,
- height,
- x,
- y
- };
-}
-function getClientRectFromClippingAncestor(element2, clippingAncestor, strategy) {
- let rect;
- if (clippingAncestor === "viewport") {
- rect = getViewportRect(element2, strategy);
- } else if (clippingAncestor === "document") {
- rect = getDocumentRect(getDocumentElement2(element2));
- } else if (isElement3(clippingAncestor)) {
- rect = getInnerBoundingClientRect(clippingAncestor, strategy);
- } else {
- const visualOffsets = getVisualOffsets(element2);
- rect = {
- x: clippingAncestor.x - visualOffsets.x,
- y: clippingAncestor.y - visualOffsets.y,
- width: clippingAncestor.width,
- height: clippingAncestor.height
- };
- }
- return rectToClientRect(rect);
-}
-function hasFixedPositionAncestor(element2, stopNode) {
- const parentNode = getParentNode2(element2);
- if (parentNode === stopNode || !isElement3(parentNode) || isLastTraversableNode(parentNode)) {
- return false;
- }
- return getComputedStyle2(parentNode).position === "fixed" || hasFixedPositionAncestor(parentNode, stopNode);
-}
-function getClippingElementAncestors(element2, cache) {
- const cachedResult = cache.get(element2);
- if (cachedResult) {
- return cachedResult;
- }
- let result = getOverflowAncestors(element2, [], false).filter((el) => isElement3(el) && getNodeName2(el) !== "body");
- let currentContainingBlockComputedStyle = null;
- const elementIsFixed = getComputedStyle2(element2).position === "fixed";
- let currentNode = elementIsFixed ? getParentNode2(element2) : element2;
- while (isElement3(currentNode) && !isLastTraversableNode(currentNode)) {
- const computedStyle = getComputedStyle2(currentNode);
- const currentNodeIsContaining = isContainingBlock(currentNode);
- if (!currentNodeIsContaining && computedStyle.position === "fixed") {
- currentContainingBlockComputedStyle = null;
- }
- const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === "static" && !!currentContainingBlockComputedStyle && absoluteOrFixed.has(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element2, currentNode);
- if (shouldDropCurrentNode) {
- result = result.filter((ancestor) => ancestor !== currentNode);
- } else {
- currentContainingBlockComputedStyle = computedStyle;
- }
- currentNode = getParentNode2(currentNode);
- }
- cache.set(element2, result);
- return result;
-}
-function getClippingRect(_ref) {
- let {
- element: element2,
- boundary,
- rootBoundary,
- strategy
- } = _ref;
- const elementClippingAncestors = boundary === "clippingAncestors" ? isTopLayer(element2) ? [] : getClippingElementAncestors(element2, this._c) : [].concat(boundary);
- const clippingAncestors = [...elementClippingAncestors, rootBoundary];
- const firstClippingAncestor = clippingAncestors[0];
- const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {
- const rect = getClientRectFromClippingAncestor(element2, clippingAncestor, strategy);
- accRect.top = max(rect.top, accRect.top);
- accRect.right = min(rect.right, accRect.right);
- accRect.bottom = min(rect.bottom, accRect.bottom);
- accRect.left = max(rect.left, accRect.left);
- return accRect;
- }, getClientRectFromClippingAncestor(element2, firstClippingAncestor, strategy));
- return {
- width: clippingRect.right - clippingRect.left,
- height: clippingRect.bottom - clippingRect.top,
- x: clippingRect.left,
- y: clippingRect.top
- };
-}
-function getDimensions(element2) {
- const {
- width,
- height
- } = getCssDimensions(element2);
- return {
- width,
- height
- };
-}
-function getRectRelativeToOffsetParent(element2, offsetParent, strategy) {
- const isOffsetParentAnElement = isHTMLElement3(offsetParent);
- const documentElement = getDocumentElement2(offsetParent);
- const isFixed = strategy === "fixed";
- const rect = getBoundingClientRect(element2, true, isFixed, offsetParent);
- let scroll = {
- scrollLeft: 0,
- scrollTop: 0
- };
- const offsets = createCoords(0);
- function setLeftRTLScrollbarOffset() {
- offsets.x = getWindowScrollBarX(documentElement);
- }
- if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {
- if (getNodeName2(offsetParent) !== "body" || isOverflowElement(documentElement)) {
- scroll = getNodeScroll(offsetParent);
- }
- if (isOffsetParentAnElement) {
- const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);
- offsets.x = offsetRect.x + offsetParent.clientLeft;
- offsets.y = offsetRect.y + offsetParent.clientTop;
- } else if (documentElement) {
- setLeftRTLScrollbarOffset();
- }
- }
- if (isFixed && !isOffsetParentAnElement && documentElement) {
- setLeftRTLScrollbarOffset();
- }
- const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);
- const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;
- const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;
- return {
- x,
- y,
- width: rect.width,
- height: rect.height
- };
-}
-function isStaticPositioned(element2) {
- return getComputedStyle2(element2).position === "static";
-}
-function getTrueOffsetParent(element2, polyfill) {
- if (!isHTMLElement3(element2) || getComputedStyle2(element2).position === "fixed") {
- return null;
- }
- if (polyfill) {
- return polyfill(element2);
- }
- let rawOffsetParent = element2.offsetParent;
- if (getDocumentElement2(element2) === rawOffsetParent) {
- rawOffsetParent = rawOffsetParent.ownerDocument.body;
- }
- return rawOffsetParent;
-}
-function getOffsetParent(element2, polyfill) {
- const win = getWindow2(element2);
- if (isTopLayer(element2)) {
- return win;
- }
- if (!isHTMLElement3(element2)) {
- let svgOffsetParent = getParentNode2(element2);
- while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {
- if (isElement3(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {
- return svgOffsetParent;
- }
- svgOffsetParent = getParentNode2(svgOffsetParent);
- }
- return win;
- }
- let offsetParent = getTrueOffsetParent(element2, polyfill);
- while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {
- offsetParent = getTrueOffsetParent(offsetParent, polyfill);
- }
- if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {
- return win;
- }
- return offsetParent || getContainingBlock(element2) || win;
-}
-var getElementRects = async function(data) {
- const getOffsetParentFn = this.getOffsetParent || getOffsetParent;
- const getDimensionsFn = this.getDimensions;
- const floatingDimensions = await getDimensionsFn(data.floating);
- return {
- reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),
- floating: {
- x: 0,
- y: 0,
- width: floatingDimensions.width,
- height: floatingDimensions.height
- }
- };
-};
-function isRTL(element2) {
- return getComputedStyle2(element2).direction === "rtl";
-}
-var platform = {
- convertOffsetParentRelativeRectToViewportRelativeRect,
- getDocumentElement: getDocumentElement2,
- getClippingRect,
- getOffsetParent,
- getElementRects,
- getClientRects,
- getDimensions,
- getScale,
- isElement: isElement3,
- isRTL
-};
-function rectsAreEqual(a2, b) {
- return a2.x === b.x && a2.y === b.y && a2.width === b.width && a2.height === b.height;
-}
-function observeMove(element2, onMove) {
- let io = null;
- let timeoutId;
- const root18 = getDocumentElement2(element2);
- function cleanup() {
- var _io;
- clearTimeout(timeoutId);
- (_io = io) == null || _io.disconnect();
- io = null;
- }
- function refresh(skip, threshold) {
- if (skip === void 0) {
- skip = false;
- }
- if (threshold === void 0) {
- threshold = 1;
- }
- cleanup();
- const elementRectForRootMargin = element2.getBoundingClientRect();
- const {
- left,
- top,
- width,
- height
- } = elementRectForRootMargin;
- if (!skip) {
- onMove();
- }
- if (!width || !height) {
- return;
- }
- const insetTop = floor(top);
- const insetRight = floor(root18.clientWidth - (left + width));
- const insetBottom = floor(root18.clientHeight - (top + height));
- const insetLeft = floor(left);
- const rootMargin = -insetTop + "px " + -insetRight + "px " + -insetBottom + "px " + -insetLeft + "px";
- const options = {
- rootMargin,
- threshold: max(0, min(1, threshold)) || 1
- };
- let isFirstUpdate = true;
- function handleObserve(entries) {
- const ratio = entries[0].intersectionRatio;
- if (ratio !== threshold) {
- if (!isFirstUpdate) {
- return refresh();
- }
- if (!ratio) {
- timeoutId = setTimeout(() => {
- refresh(false, 1e-7);
- }, 1e3);
- } else {
- refresh(false, ratio);
- }
- }
- if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element2.getBoundingClientRect())) {
- refresh();
- }
- isFirstUpdate = false;
- }
- try {
- io = new IntersectionObserver(handleObserve, {
- ...options,
- // Handle