import "./chunk-MZVN5SDE.js";
import {
SvelteMap
} from "./chunk-M4JQPTDE.js";
import "./chunk-UK2WOPQG.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,
customizable_select,
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_snippet_args,
validate_void_dynamic_element,
wrap_snippet
} from "./chunk-7KOYS2IY.js";
import {
clsx
} from "./chunk-U7P2NEEE.js";
import {
append,
comment,
from_html,
from_svg,
mount,
props_id,
set_text,
text,
unmount
} from "./chunk-GX2NWHWT.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-5STXR557.js";
import "./chunk-XWATFG4W.js";
import {
true_default
} from "./chunk-HNWPC2PS.js";
import "./chunk-2RHBA6M5.js";
import "./chunk-OHYQYV5R.js";
import {
__export,
__privateAdd,
__privateGet,
__privateMethod,
__privateSet,
__privateWrapper,
__publicField
} from "./chunk-X4VJQ2O3.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) {
var _a;
for (const handler of handlers) {
if (!handler)
continue;
if (e.defaultPrevented)
return;
if (typeof handler === "function") {
handler.call(this, e);
} else {
(_a = handler.current) == null ? void 0 : _a.call(this, e);
}
}
};
}
// node_modules/inline-style-parser/esm/index.mjs
var COMMENT_REGEX = /\/\*[^*]*\*+([^/*][^*]*\*+)*\//g;
var NEWLINE_REGEX = /\n/g;
var WHITESPACE_REGEX = /^\s*/;
var PROPERTY_REGEX = /^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/;
var COLON_REGEX = /^:\s*/;
var VALUE_REGEX = /^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/;
var SEMICOLON_REGEX = /^[;\s]*/;
var TRIM_REGEX = /^\s+|\s+$/g;
var NEWLINE = "\n";
var FORWARD_SLASH = "/";
var ASTERISK = "*";
var EMPTY_STRING = "";
var TYPE_COMMENT = "comment";
var TYPE_DECLARATION = "declaration";
function index(style, options) {
if (typeof style !== "string") {
throw new TypeError("First argument must be a string");
}
if (!style) return [];
options = options || {};
var lineno = 1;
var column = 1;
function updatePosition(str) {
var lines = str.match(NEWLINE_REGEX);
if (lines) lineno += lines.length;
var i = str.lastIndexOf(NEWLINE);
column = ~i ? str.length - i : column + str.length;
}
function position() {
var start = { line: lineno, column };
return function(node) {
node.position = new Position(start);
whitespace();
return node;
};
}
function Position(start) {
this.start = start;
this.end = { line: lineno, column };
this.source = options.source;
}
Position.prototype.content = style;
function error(msg) {
var err = new Error(
options.source + ":" + lineno + ":" + column + ": " + msg
);
err.reason = msg;
err.filename = options.source;
err.line = lineno;
err.column = column;
err.source = style;
if (options.silent) ;
else {
throw err;
}
}
function match(re) {
var m = re.exec(style);
if (!m) return;
var str = m[0];
updatePosition(str);
style = style.slice(str.length);
return m;
}
function whitespace() {
match(WHITESPACE_REGEX);
}
function comments(rules) {
var c;
rules = rules || [];
while (c = comment2()) {
if (c !== false) {
rules.push(c);
}
}
return rules;
}
function comment2() {
var pos = position();
if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;
var i = 2;
while (EMPTY_STRING != style.charAt(i) && (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))) {
++i;
}
i += 2;
if (EMPTY_STRING === style.charAt(i - 1)) {
return error("End of comment missing");
}
var str = style.slice(2, i - 2);
column += 2;
updatePosition(str);
style = style.slice(i);
column += 2;
return pos({
type: TYPE_COMMENT,
comment: str
});
}
function declaration() {
var pos = position();
var prop2 = match(PROPERTY_REGEX);
if (!prop2) return;
comment2();
if (!match(COLON_REGEX)) return error("property missing ':'");
var val = match(VALUE_REGEX);
var ret = pos({
type: TYPE_DECLARATION,
property: trim(prop2[0].replace(COMMENT_REGEX, EMPTY_STRING)),
value: val ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING)) : EMPTY_STRING
});
match(SEMICOLON_REGEX);
return ret;
}
function declarations() {
var decls = [];
comments(decls);
var decl;
while (decl = declaration()) {
if (decl !== false) {
decls.push(decl);
comments(decls);
}
}
return decls;
}
whitespace();
return declarations();
}
function trim(str) {
return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;
}
// node_modules/style-to-object/esm/index.mjs
function StyleToObject(style, iterator) {
let styleObject = null;
if (!style || typeof style !== "string") {
return styleObject;
}
const declarations = index(style);
const hasIterator = typeof iterator === "function";
declarations.forEach((declaration) => {
if (declaration.type !== "declaration") {
return;
}
const { property, value } = declaration;
if (hasIterator) {
iterator(property, value, declaration);
} else if (value) {
styleObject = styleObject || {};
styleObject[property] = value;
}
});
return styleObject;
}
// 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 == null ? void 0 : 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 _document, _subscribe;
var ActiveElement = class {
constructor(options = {}) {
__privateAdd(this, _document);
__privateAdd(this, _subscribe);
const { window: window2 = defaultWindow, document: document2 = window2 == null ? void 0 : window2.document } = options;
if (strict_equals(window2, void 0)) return;
__privateSet(this, _document, document2);
__privateSet(this, _subscribe, createSubscriber((update2) => {
const cleanupFocusIn = on(window2, "focusin", update2);
const cleanupFocusOut = on(window2, "focusout", update2);
return () => {
cleanupFocusIn();
cleanupFocusOut();
};
}));
}
get current() {
var _a;
(_a = __privateGet(this, _subscribe)) == null ? void 0 : _a.call(this);
if (!__privateGet(this, _document)) return null;
return getActiveElement(__privateGet(this, _document));
}
};
_document = new WeakMap();
_subscribe = new WeakMap();
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 _name, _key;
var Context = class {
/**
* @param name The name of the context.
* This is used for generating the context key and error messages.
*/
constructor(name) {
__privateAdd(this, _name);
__privateAdd(this, _key);
__privateSet(this, _name, name);
__privateSet(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 __privateGet(this, _key);
}
/**
* Checks whether this has been set in the context of a parent component.
*
* Must be called during component initialisation.
*/
exists() {
return hasContext(__privateGet(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(__privateGet(this, _key));
if (context === void 0) {
throw new Error(`Context "${__privateGet(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(__privateGet(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(__privateGet(this, _key), context);
}
};
_name = new WeakMap();
_key = new WeakMap();
// 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 () => {
var _a, _b;
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((_b = (_a = get(context)).runner) == null ? void 0 : _b.call(_a)))();
};
Object.defineProperty(debounced, "pending", {
enumerable: true,
get() {
var _a;
return !!((_a = get(context)) == null ? void 0 : _a.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 _size, _observed, _options, _node, _window, _width, _height, _subscribe2;
var ElementSize = class {
constructor(node, options = { box: "border-box" }) {
// no need to use `$state` here since we are using createSubscriber
__privateAdd(this, _size, { width: 0, height: 0 });
__privateAdd(this, _observed, false);
__privateAdd(this, _options);
__privateAdd(this, _node);
__privateAdd(this, _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
__privateAdd(this, _width, tag(
user_derived(() => {
var _a;
(_a = get(__privateGet(this, _subscribe2))) == null ? void 0 : _a();
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
__privateAdd(this, _height, tag(
user_derived(() => {
var _a;
(_a = get(__privateGet(this, _subscribe2))) == null ? void 0 : _a();
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
__privateAdd(this, _subscribe2, tag(
user_derived(() => {
const node$ = get2(__privateGet(this, _node));
if (!node$) return;
return createSubscriber((update2) => {
if (!__privateGet(this, _window)) return;
const observer = new (__privateGet(this, _window)).ResizeObserver((entries) => {
__privateSet(this, _observed, true);
for (const entry of entries) {
const boxSize = strict_equals(__privateGet(this, _options).box, "content-box") ? entry.contentBoxSize : entry.borderBoxSize;
const boxSizeArr = Array.isArray(boxSize) ? boxSize : [boxSize];
__privateGet(this, _size).width = boxSizeArr.reduce((acc, size3) => Math.max(acc, size3.inlineSize), 0);
__privateGet(this, _size).height = boxSizeArr.reduce((acc, size3) => Math.max(acc, size3.blockSize), 0);
}
update2();
});
observer.observe(node$);
return () => {
__privateSet(this, _observed, false);
observer.disconnect();
};
});
}),
"ElementSize.#subscribe"
));
__privateSet(this, _window, options.window ?? defaultWindow);
__privateSet(this, _options, options);
__privateSet(this, _node, node);
__privateSet(this, _size, { width: 0, height: 0 });
}
calculateSize() {
const element2 = get2(__privateGet(this, _node));
if (!element2 || !__privateGet(this, _window)) {
return;
}
const offsetWidth = element2.offsetWidth;
const offsetHeight = element2.offsetHeight;
if (strict_equals(__privateGet(this, _options).box, "border-box")) {
return { width: offsetWidth, height: offsetHeight };
}
const style = __privateGet(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 __privateGet(this, _observed) ? __privateGet(this, _size) : this.calculateSize() ?? __privateGet(this, _size);
}
get current() {
var _a;
(_a = get(__privateGet(this, _subscribe2))) == null ? void 0 : _a();
return this.getSize();
}
get width() {
return get(__privateGet(this, _width));
}
get height() {
return get(__privateGet(this, _height));
}
};
_size = new WeakMap();
_observed = new WeakMap();
_options = new WeakMap();
_node = new WeakMap();
_window = new WeakMap();
_width = new WeakMap();
_height = new WeakMap();
_subscribe2 = new WeakMap();
// node_modules/runed/dist/utilities/is-mounted/is-mounted.svelte.js
var _isMounted;
var IsMounted = class {
constructor() {
__privateAdd(this, _isMounted, tag(state(false), "IsMounted.#isMounted"));
user_effect(() => {
untrack(() => set(__privateGet(this, _isMounted), true));
return () => {
set(__privateGet(this, _isMounted), false);
};
});
}
get current() {
return get(__privateGet(this, _isMounted));
}
};
_isMounted = new WeakMap();
// node_modules/runed/dist/utilities/previous/previous.svelte.js
var _previousCallback, _previous;
var Previous = class {
constructor(getter, initialValue) {
__privateAdd(this, _previousCallback, () => void 0);
__privateAdd(this, _previous, tag(user_derived(() => __privateGet(this, _previousCallback).call(this)), "Previous.#previous"));
let actualPrevious = void 0;
if (strict_equals(initialValue, void 0, false)) actualPrevious = initialValue;
__privateSet(this, _previousCallback, () => {
try {
return actualPrevious;
} finally {
actualPrevious = getter();
}
});
}
get current() {
return get(__privateGet(this, _previous));
}
};
_previousCallback = new WeakMap();
_previous = new WeakMap();
// 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 == null ? void 0 : 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) {
var _a;
return isObject(node) && ((_a = node.constructor) == null ? void 0 : _a.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) {
var _a;
if (!parent || !child2)
return false;
if (!isHTMLElement(parent) || !isHTMLElement(child2))
return false;
const rootNode = (_a = child2.getRootNode) == null ? void 0 : _a.call(child2);
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 == null ? void 0 : node.ownerDocument) ?? document;
}
function getWindow(node) {
var _a;
if (isShadowRoot(node))
return getWindow(node.host);
if (isDocument(node))
return node.defaultView ?? window;
if (isHTMLElement(node))
return ((_a = node.ownerDocument) == null ? void 0 : _a.defaultView) ?? window;
return window;
}
function getActiveElement2(rootNode) {
let activeElement2 = rootNode.activeElement;
while (activeElement2 == null ? void 0 : 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 _root;
var DOMContext = class {
constructor(element2) {
__publicField(this, "element");
__privateAdd(this, _root, tag(
user_derived(() => {
if (!this.element.current) return document;
const rootNode = this.element.current.getRootNode() ?? document;
return rootNode;
}),
"DOMContext.root"
));
__publicField(this, "getDocument", () => {
return getDocument(this.root);
});
__publicField(this, "getWindow", () => {
return this.getDocument().defaultView ?? window;
});
__publicField(this, "getActiveElement", () => {
return getActiveElement2(this.root);
});
__publicField(this, "isActiveElement", (node) => {
return strict_equals(node, this.getActiveElement());
});
__publicField(this, "querySelector", (selector) => {
if (!this.root) return null;
return this.root.querySelector(selector);
});
__publicField(this, "querySelectorAll", (selector) => {
if (!this.root) return [];
return this.root.querySelectorAll(selector);
});
__publicField(this, "setTimeout", (callback, delay) => {
return this.getWindow().setTimeout(callback, delay);
});
__publicField(this, "clearTimeout", (timeoutId) => {
return this.getWindow().clearTimeout(timeoutId);
});
if (strict_equals(typeof element2, "function")) {
this.element = boxWith(element2);
} else {
this.element = element2;
}
}
get root() {
return get(__privateGet(this, _root));
}
set root(value) {
set(__privateGet(this, _root), value);
}
getElementById(id) {
return this.root.getElementById(id);
}
};
_root = new WeakMap();
// node_modules/svelte-toolbelt/dist/utils/attach-ref.js
function attachRef(ref, onChange) {
return {
[createAttachmentKey()]: (node) => {
if (isBox(ref)) {
ref.current = node;
untrack(() => onChange == null ? void 0 : onChange(node));
return () => {
if ("isConnected" in node && node.isConnected)
return;
ref.current = null;
onChange == null ? void 0 : onChange(null);
};
}
ref(node);
untrack(() => onChange == null ? void 0 : onChange(node));
return () => {
if ("isConnected" in node && node.isConnected)
return;
ref(null);
onChange == null ? void 0 : 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 _variant, _prefix;
var BitsAttrs = class {
constructor(config) {
__privateAdd(this, _variant);
__privateAdd(this, _prefix);
__publicField(this, "attrs");
__privateSet(this, _variant, config.getVariant ? config.getVariant() : null);
__privateSet(this, _prefix, __privateGet(this, _variant) ? `data-${__privateGet(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 `${__privateGet(this, _prefix)}${part}`;
}
selector(part, variantOverride) {
return `[${this.getAttr(part, variantOverride)}]`;
}
};
_variant = new WeakMap();
_prefix = new WeakMap();
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: () => ASTERISK2,
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 ASTERISK2 = "*";
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() {
var _a, _b;
return isBrowser && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(ad|hone|od)/.test(window.navigator.userAgent) || // The new iPad Pro Gen3 does not identify itself as iPad, but as Macintosh.
((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : 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 _opts, _currentTabStopId;
var RovingFocusGroup = class {
constructor(opts) {
__privateAdd(this, _opts);
__privateAdd(this, _currentTabStopId, box(null));
__privateSet(this, _opts, opts);
}
getCandidateNodes() {
if (!true_default || !__privateGet(this, _opts).rootNode.current)
return [];
if (__privateGet(this, _opts).candidateSelector) {
const candidates = Array.from(__privateGet(this, _opts).rootNode.current.querySelectorAll(__privateGet(this, _opts).candidateSelector));
return candidates;
} else if (__privateGet(this, _opts).candidateAttr) {
const candidates = Array.from(__privateGet(this, _opts).rootNode.current.querySelectorAll(`[${__privateGet(this, _opts).candidateAttr}]:not([data-disabled])`));
return candidates;
}
return [];
}
focusFirstCandidate() {
var _a;
const items = this.getCandidateNodes();
if (!items.length)
return;
(_a = items[0]) == null ? void 0 : _a.focus();
}
handleKeydown(node, e, both = false) {
var _a, _b;
const rootNode = __privateGet(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, __privateGet(this, _opts).orientation.current);
const loop = __privateGet(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();
__privateGet(this, _currentTabStopId).current = itemToFocus.id;
(_b = (_a = __privateGet(this, _opts)).onCandidateFocus) == null ? void 0 : _b.call(_a, itemToFocus);
return itemToFocus;
}
getTabIndex(node) {
const items = this.getCandidateNodes();
const anyActive = __privateGet(this, _currentTabStopId).current !== null;
if (node && !anyActive && items[0] === node) {
__privateGet(this, _currentTabStopId).current = node.id;
return 0;
} else if ((node == null ? void 0 : node.id) === __privateGet(this, _currentTabStopId).current) {
return 0;
}
return -1;
}
setCurrentTabStopId(id) {
__privateGet(this, _currentTabStopId).current = id;
}
focusCurrentTabStop() {
var _a;
const currentTabStopId = __privateGet(this, _currentTabStopId).current;
if (!currentTabStopId)
return;
const currentTabStop = (_a = __privateGet(this, _opts).rootNode.current) == null ? void 0 : _a.querySelector(`#${currentTabStopId}`);
if (!currentTabStop || !isHTMLElement2(currentTabStop))
return;
currentTabStop.focus();
}
};
_opts = new WeakMap();
_currentTabStopId = new WeakMap();
// node_modules/bits-ui/dist/internal/animations-complete.js
var _opts2, _currentFrame, _AnimationsComplete_instances, cleanup_fn, executeCallback_fn;
var AnimationsComplete = class {
constructor(opts) {
__privateAdd(this, _AnimationsComplete_instances);
__privateAdd(this, _opts2);
__privateAdd(this, _currentFrame, null);
__privateSet(this, _opts2, opts);
onDestroyEffect(() => __privateMethod(this, _AnimationsComplete_instances, cleanup_fn).call(this));
}
run(fn) {
__privateMethod(this, _AnimationsComplete_instances, cleanup_fn).call(this);
const node = __privateGet(this, _opts2).ref.current;
if (!node)
return;
if (typeof node.getAnimations !== "function") {
__privateMethod(this, _AnimationsComplete_instances, executeCallback_fn).call(this, fn);
return;
}
__privateSet(this, _currentFrame, window.requestAnimationFrame(() => {
const animations = node.getAnimations();
if (animations.length === 0) {
__privateMethod(this, _AnimationsComplete_instances, executeCallback_fn).call(this, fn);
return;
}
Promise.allSettled(animations.map((animation) => animation.finished)).then(() => {
__privateMethod(this, _AnimationsComplete_instances, executeCallback_fn).call(this, fn);
});
}));
}
};
_opts2 = new WeakMap();
_currentFrame = new WeakMap();
_AnimationsComplete_instances = new WeakSet();
cleanup_fn = function() {
if (!__privateGet(this, _currentFrame))
return;
window.cancelAnimationFrame(__privateGet(this, _currentFrame));
__privateSet(this, _currentFrame, null);
};
executeCallback_fn = function(fn) {
const execute = () => {
fn();
};
if (__privateGet(this, _opts2).afterTick) {
afterTick(execute);
} else {
execute();
}
};
// node_modules/bits-ui/dist/internal/presence-manager.svelte.js
var _opts3, _enabled, _afterAnimations, _shouldRender;
var PresenceManager = class {
constructor(opts) {
__privateAdd(this, _opts3);
__privateAdd(this, _enabled);
__privateAdd(this, _afterAnimations);
__privateAdd(this, _shouldRender, tag(state(false), "PresenceManager.#shouldRender"));
__privateSet(this, _opts3, opts);
set(__privateGet(this, _shouldRender), opts.open.current, true);
__privateSet(this, _enabled, opts.enabled ?? true);
__privateSet(this, _afterAnimations, new AnimationsComplete({ ref: __privateGet(this, _opts3).ref, afterTick: __privateGet(this, _opts3).open }));
watch(() => __privateGet(this, _opts3).open.current, (isOpen) => {
if (isOpen) set(__privateGet(this, _shouldRender), true);
if (!__privateGet(this, _enabled)) return;
__privateGet(this, _afterAnimations).run(() => {
var _a, _b;
if (strict_equals(isOpen, __privateGet(this, _opts3).open.current)) {
if (!__privateGet(this, _opts3).open.current) {
set(__privateGet(this, _shouldRender), false);
}
(_b = (_a = __privateGet(this, _opts3)).onComplete) == null ? void 0 : _b.call(_a);
}
});
});
}
get shouldRender() {
return get(__privateGet(this, _shouldRender));
}
};
_opts3 = new WeakMap();
_enabled = new WeakMap();
_afterAnimations = new WeakMap();
_shouldRender = new WeakMap();
// 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 _props;
var AccordionBaseState = class {
constructor(opts) {
__publicField(this, "opts");
__publicField(this, "rovingFocusGroup");
__publicField(this, "attachment");
__privateAdd(this, _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"
));
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);
}
get props() {
return get(__privateGet(this, _props));
}
set props(value) {
set(__privateGet(this, _props), value);
}
};
_props = new WeakMap();
var AccordionSingleState = class extends AccordionBaseState {
constructor(opts) {
super(opts);
__publicField(this, "opts");
__publicField(this, "isMulti", false);
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 _value;
var AccordionMultiState = class extends AccordionBaseState {
constructor(props) {
super(props);
__privateAdd(this, _value);
__publicField(this, "isMulti", true);
__privateSet(this, _value, props.value);
this.includesItem = this.includesItem.bind(this);
this.toggleItem = this.toggleItem.bind(this);
}
includesItem(item) {
return __privateGet(this, _value).current.includes(item);
}
toggleItem(item) {
__privateGet(this, _value).current = this.includesItem(item) ? __privateGet(this, _value).current.filter((v) => strict_equals(v, item, false)) : [...__privateGet(this, _value).current, item];
}
};
_value = new WeakMap();
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 _isActive, _isDisabled, _contentNode, _props2;
var _AccordionItemState = class _AccordionItemState {
constructor(opts) {
__publicField(this, "opts");
__publicField(this, "root");
__privateAdd(this, _isActive, tag(user_derived(() => this.root.includesItem(this.opts.value.current)), "AccordionItemState.isActive"));
__privateAdd(this, _isDisabled, tag(user_derived(() => this.opts.disabled.current || this.root.opts.disabled.current), "AccordionItemState.isDisabled"));
__publicField(this, "attachment");
__privateAdd(this, _contentNode, tag(state(null), "AccordionItemState.contentNode"));
__publicField(this, "contentPresence");
__privateAdd(this, _props2, 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"
));
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)
});
}
static create(props) {
return AccordionItemContext.set(new _AccordionItemState({ ...props, rootState: AccordionRootContext.get() }));
}
get isActive() {
return get(__privateGet(this, _isActive));
}
set isActive(value) {
set(__privateGet(this, _isActive), value);
}
get isDisabled() {
return get(__privateGet(this, _isDisabled));
}
set isDisabled(value) {
set(__privateGet(this, _isDisabled), value);
}
get contentNode() {
return get(__privateGet(this, _contentNode));
}
set contentNode(value) {
set(__privateGet(this, _contentNode), value, true);
}
updateValue() {
this.root.toggleItem(this.opts.value.current);
}
get props() {
return get(__privateGet(this, _props2));
}
set props(value) {
set(__privateGet(this, _props2), value);
}
};
_isActive = new WeakMap();
_isDisabled = new WeakMap();
_contentNode = new WeakMap();
_props2 = new WeakMap();
var AccordionItemState = _AccordionItemState;
var _root2, _isDisabled2, _props3;
var _AccordionTriggerState = class _AccordionTriggerState {
constructor(opts, itemState) {
__publicField(this, "opts");
__publicField(this, "itemState");
__privateAdd(this, _root2);
__privateAdd(this, _isDisabled2, tag(user_derived(() => this.opts.disabled.current || this.itemState.opts.disabled.current || __privateGet(this, _root2).opts.disabled.current), "AccordionTriggerState.#isDisabled"));
__publicField(this, "attachment");
__privateAdd(this, _props3, tag(
user_derived(() => ({
id: this.opts.id.current,
disabled: get(__privateGet(this, _isDisabled2)),
"aria-expanded": boolToStr(this.itemState.isActive),
"aria-disabled": boolToStr(get(__privateGet(this, _isDisabled2))),
"data-disabled": boolToEmptyStrOrUndef(get(__privateGet(this, _isDisabled2))),
"data-state": getDataOpenClosed(this.itemState.isActive),
"data-orientation": __privateGet(this, _root2).opts.orientation.current,
[accordionAttrs.trigger]: "",
tabindex: this.opts.tabindex.current,
onclick: this.onclick,
onkeydown: this.onkeydown,
...this.attachment
})),
"AccordionTriggerState.props"
));
this.opts = opts;
this.itemState = itemState;
__privateSet(this, _root2, 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(__privateGet(this, _isDisabled2)) || strict_equals(e.button, 0, false)) {
e.preventDefault();
return;
}
this.itemState.updateValue();
}
onkeydown(e) {
if (get(__privateGet(this, _isDisabled2))) return;
if (strict_equals(e.key, kbd_constants_exports.SPACE) || strict_equals(e.key, kbd_constants_exports.ENTER)) {
e.preventDefault();
this.itemState.updateValue();
return;
}
__privateGet(this, _root2).rovingFocusGroup.handleKeydown(this.opts.ref.current, e);
}
get props() {
return get(__privateGet(this, _props3));
}
set props(value) {
set(__privateGet(this, _props3), value);
}
};
_root2 = new WeakMap();
_isDisabled2 = new WeakMap();
_props3 = new WeakMap();
var AccordionTriggerState = _AccordionTriggerState;
var _originalStyles, _isMountAnimationPrevented, _dimensions, _open, _updateDimensions, _snippetProps, _props4;
var _AccordionContentState = class _AccordionContentState {
constructor(opts, item) {
__publicField(this, "opts");
__publicField(this, "item");
__publicField(this, "attachment");
__privateAdd(this, _originalStyles);
__privateAdd(this, _isMountAnimationPrevented, false);
__privateAdd(this, _dimensions, tag(state(proxy({ width: 0, height: 0 })), "AccordionContentState.#dimensions"));
__privateAdd(this, _open, tag(
user_derived(() => {
if (this.opts.hiddenUntilFound.current) return this.item.isActive;
return this.opts.forceMount.current || this.item.isActive;
}),
"AccordionContentState.open"
));
__privateAdd(this, _updateDimensions, ([_, node]) => {
if (!node) return;
afterTick(() => {
const element2 = this.opts.ref.current;
if (!element2) return;
__privateGet(this, _originalStyles) ?? __privateSet(this, _originalStyles, {
transitionDuration: element2.style.transitionDuration,
animationName: element2.style.animationName
});
element2.style.transitionDuration = "0s";
element2.style.animationName = "none";
const rect = element2.getBoundingClientRect();
set(__privateGet(this, _dimensions), { width: rect.width, height: rect.height }, true);
if (!__privateGet(this, _isMountAnimationPrevented) && __privateGet(this, _originalStyles)) {
element2.style.transitionDuration = __privateGet(this, _originalStyles).transitionDuration;
element2.style.animationName = __privateGet(this, _originalStyles).animationName;
}
});
});
__privateAdd(this, _snippetProps, tag(user_derived(() => ({ open: this.item.isActive })), "AccordionContentState.snippetProps"));
__privateAdd(this, _props4, 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(__privateGet(this, _dimensions)).height}px`,
"--bits-accordion-content-width": `${get(__privateGet(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"
));
this.opts = opts;
this.item = item;
__privateSet(this, _isMountAnimationPrevented, this.item.isActive);
this.attachment = attachRef(this.opts.ref, (v) => this.item.contentNode = v);
user_effect(() => {
const rAF = requestAnimationFrame(() => {
__privateSet(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], __privateGet(this, _updateDimensions));
}
get open() {
return get(__privateGet(this, _open));
}
set open(value) {
set(__privateGet(this, _open), value);
}
static create(props) {
return new _AccordionContentState(props, AccordionItemContext.get());
}
get shouldRender() {
return this.item.contentPresence.shouldRender;
}
get snippetProps() {
return get(__privateGet(this, _snippetProps));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps), value);
}
get props() {
return get(__privateGet(this, _props4));
}
set props(value) {
set(__privateGet(this, _props4), value);
}
};
_originalStyles = new WeakMap();
_isMountAnimationPrevented = new WeakMap();
_dimensions = new WeakMap();
_open = new WeakMap();
_updateDimensions = new WeakMap();
_snippetProps = new WeakMap();
_props4 = new WeakMap();
var AccordionContentState = _AccordionContentState;
var _props5;
var _AccordionHeaderState = class _AccordionHeaderState {
constructor(opts, item) {
__publicField(this, "opts");
__publicField(this, "item");
__publicField(this, "attachment");
__privateAdd(this, _props5, 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"
));
this.opts = opts;
this.item = item;
this.attachment = attachRef(this.opts.ref);
}
static create(props) {
return new _AccordionHeaderState(props, AccordionItemContext.get());
}
get props() {
return get(__privateGet(this, _props5));
}
set props(value) {
set(__privateGet(this, _props5), value);
}
};
_props5 = new WeakMap();
var AccordionHeaderState = _AccordionHeaderState;
// 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);
import.meta.hot.accept((module) => {
Accordion[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Accordion_item[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Accordion_header[HMR].update(module.default);
});
}
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], [[35, 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)), tabindex = prop($$props, "tabindex", 3, 0), restProps = rest_props(
$$props,
[
"$$slots",
"$$events",
"$$legacy",
"disabled",
"ref",
"id",
"tabindex",
"children",
"child"
],
"restProps"
);
const triggerState = AccordionTriggerState.create({
disabled: boxWith(() => disabled()),
id: boxWith(() => id()),
tabindex: boxWith(() => tabindex() ?? 0),
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, 33, 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, 36, 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,
32,
0
);
}
append($$anchor, fragment);
return pop($$exports);
}
if (import.meta.hot) {
Accordion_trigger = hmr(Accordion_trigger);
import.meta.hot.accept((module) => {
Accordion_trigger[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Accordion_content[HMR].update(module.default);
});
}
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 _triggerNode, _contentNode2, _overlayNode, _descriptionNode, _contentId, _titleId, _triggerId, _descriptionId, _cancelNode, _nestedOpenCount, _sharedProps;
var _DialogRootState = class _DialogRootState {
constructor(opts, parent) {
__publicField(this, "opts");
__privateAdd(this, _triggerNode, tag(state(null), "DialogRootState.triggerNode"));
__privateAdd(this, _contentNode2, tag(state(null), "DialogRootState.contentNode"));
__privateAdd(this, _overlayNode, tag(state(null), "DialogRootState.overlayNode"));
__privateAdd(this, _descriptionNode, tag(state(null), "DialogRootState.descriptionNode"));
__privateAdd(this, _contentId, tag(state(void 0), "DialogRootState.contentId"));
__privateAdd(this, _titleId, tag(state(void 0), "DialogRootState.titleId"));
__privateAdd(this, _triggerId, tag(state(void 0), "DialogRootState.triggerId"));
__privateAdd(this, _descriptionId, tag(state(void 0), "DialogRootState.descriptionId"));
__privateAdd(this, _cancelNode, tag(state(null), "DialogRootState.cancelNode"));
__privateAdd(this, _nestedOpenCount, tag(state(0), "DialogRootState.nestedOpenCount"));
__publicField(this, "depth");
__publicField(this, "parent");
__publicField(this, "contentPresence");
__publicField(this, "overlayPresence");
__publicField(this, "getBitsAttr", (part) => {
return dialogAttrs.getAttr(part, this.opts.variant.current);
});
__privateAdd(this, _sharedProps, tag(user_derived(() => ({ "data-state": getDataOpenClosed(this.opts.open.current) })), "DialogRootState.sharedProps"));
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(() => {
var _a;
if (this.opts.open.current) {
(_a = this.parent) == null ? void 0 : _a.decrementNested();
}
});
}
static create(opts) {
const parent = DialogRootContext.getOr(null);
return DialogRootContext.set(new _DialogRootState(opts, parent));
}
get triggerNode() {
return get(__privateGet(this, _triggerNode));
}
set triggerNode(value) {
set(__privateGet(this, _triggerNode), value, true);
}
get contentNode() {
return get(__privateGet(this, _contentNode2));
}
set contentNode(value) {
set(__privateGet(this, _contentNode2), value, true);
}
get overlayNode() {
return get(__privateGet(this, _overlayNode));
}
set overlayNode(value) {
set(__privateGet(this, _overlayNode), value, true);
}
get descriptionNode() {
return get(__privateGet(this, _descriptionNode));
}
set descriptionNode(value) {
set(__privateGet(this, _descriptionNode), value, true);
}
get contentId() {
return get(__privateGet(this, _contentId));
}
set contentId(value) {
set(__privateGet(this, _contentId), value, true);
}
get titleId() {
return get(__privateGet(this, _titleId));
}
set titleId(value) {
set(__privateGet(this, _titleId), value, true);
}
get triggerId() {
return get(__privateGet(this, _triggerId));
}
set triggerId(value) {
set(__privateGet(this, _triggerId), value, true);
}
get descriptionId() {
return get(__privateGet(this, _descriptionId));
}
set descriptionId(value) {
set(__privateGet(this, _descriptionId), value, true);
}
get cancelNode() {
return get(__privateGet(this, _cancelNode));
}
set cancelNode(value) {
set(__privateGet(this, _cancelNode), value, true);
}
get nestedOpenCount() {
return get(__privateGet(this, _nestedOpenCount));
}
set nestedOpenCount(value) {
set(__privateGet(this, _nestedOpenCount), value, true);
}
handleOpen() {
if (this.opts.open.current) return;
this.opts.open.current = true;
}
handleClose() {
if (!this.opts.open.current) return;
this.opts.open.current = false;
}
incrementNested() {
var _a;
this.nestedOpenCount++;
(_a = this.parent) == null ? void 0 : _a.incrementNested();
}
decrementNested() {
var _a;
if (strict_equals(this.nestedOpenCount, 0)) return;
this.nestedOpenCount--;
(_a = this.parent) == null ? void 0 : _a.decrementNested();
}
get sharedProps() {
return get(__privateGet(this, _sharedProps));
}
set sharedProps(value) {
set(__privateGet(this, _sharedProps), value);
}
};
_triggerNode = new WeakMap();
_contentNode2 = new WeakMap();
_overlayNode = new WeakMap();
_descriptionNode = new WeakMap();
_contentId = new WeakMap();
_titleId = new WeakMap();
_triggerId = new WeakMap();
_descriptionId = new WeakMap();
_cancelNode = new WeakMap();
_nestedOpenCount = new WeakMap();
_sharedProps = new WeakMap();
var DialogRootState = _DialogRootState;
var _props6;
var _DialogTriggerState = class _DialogTriggerState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props6, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref, (v) => {
this.root.triggerNode = v;
this.root.triggerId = v == null ? void 0 : v.id;
});
this.onclick = this.onclick.bind(this);
this.onkeydown = this.onkeydown.bind(this);
}
static create(opts) {
return new _DialogTriggerState(opts, DialogRootContext.get());
}
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();
}
}
get props() {
return get(__privateGet(this, _props6));
}
set props(value) {
set(__privateGet(this, _props6), value);
}
};
_props6 = new WeakMap();
var DialogTriggerState = _DialogTriggerState;
var _props7;
var _DialogCloseState = class _DialogCloseState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props7, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
this.onclick = this.onclick.bind(this);
this.onkeydown = this.onkeydown.bind(this);
}
static create(opts) {
return new _DialogCloseState(opts, DialogRootContext.get());
}
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();
}
}
get props() {
return get(__privateGet(this, _props7));
}
set props(value) {
set(__privateGet(this, _props7), value);
}
};
_props7 = new WeakMap();
var DialogCloseState = _DialogCloseState;
var _props8;
var _DialogActionState = class _DialogActionState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props8, tag(
user_derived(() => ({
id: this.opts.id.current,
[this.root.getBitsAttr("action")]: "",
...this.root.sharedProps,
...this.attachment
})),
"DialogActionState.props"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _DialogActionState(opts, DialogRootContext.get());
}
get props() {
return get(__privateGet(this, _props8));
}
set props(value) {
set(__privateGet(this, _props8), value);
}
};
_props8 = new WeakMap();
var DialogActionState = _DialogActionState;
var _props9;
var _DialogTitleState = class _DialogTitleState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props9, 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"
));
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;
});
}
static create(opts) {
return new _DialogTitleState(opts, DialogRootContext.get());
}
get props() {
return get(__privateGet(this, _props9));
}
set props(value) {
set(__privateGet(this, _props9), value);
}
};
_props9 = new WeakMap();
var DialogTitleState = _DialogTitleState;
var _props10;
var _DialogDescriptionState = class _DialogDescriptionState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props10, tag(
user_derived(() => ({
id: this.opts.id.current,
[this.root.getBitsAttr("description")]: "",
...this.root.sharedProps,
...this.attachment
})),
"DialogDescriptionState.props"
));
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;
});
}
static create(opts) {
return new _DialogDescriptionState(opts, DialogRootContext.get());
}
get props() {
return get(__privateGet(this, _props10));
}
set props(value) {
set(__privateGet(this, _props10), value);
}
};
_props10 = new WeakMap();
var DialogDescriptionState = _DialogDescriptionState;
var _snippetProps2, _props11;
var _DialogContentState = class _DialogContentState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _snippetProps2, tag(user_derived(() => ({ open: this.root.opts.open.current })), "DialogContentState.snippetProps"));
__privateAdd(this, _props11, 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,
contain: "layout style"
},
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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref, (v) => {
this.root.contentNode = v;
this.root.contentId = v == null ? void 0 : v.id;
});
}
static create(opts) {
return new _DialogContentState(opts, DialogRootContext.get());
}
get snippetProps() {
return get(__privateGet(this, _snippetProps2));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps2), value);
}
get props() {
return get(__privateGet(this, _props11));
}
set props(value) {
set(__privateGet(this, _props11), value);
}
get shouldRender() {
return this.root.contentPresence.shouldRender;
}
};
_snippetProps2 = new WeakMap();
_props11 = new WeakMap();
var DialogContentState = _DialogContentState;
var _snippetProps3, _props12;
var _DialogOverlayState = class _DialogOverlayState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _snippetProps3, tag(user_derived(() => ({ open: this.root.opts.open.current })), "DialogOverlayState.snippetProps"));
__privateAdd(this, _props12, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref, (v) => this.root.overlayNode = v);
}
static create(opts) {
return new _DialogOverlayState(opts, DialogRootContext.get());
}
get snippetProps() {
return get(__privateGet(this, _snippetProps3));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps3), value);
}
get props() {
return get(__privateGet(this, _props12));
}
set props(value) {
set(__privateGet(this, _props12), value);
}
get shouldRender() {
return this.root.overlayPresence.shouldRender;
}
};
_snippetProps3 = new WeakMap();
_props12 = new WeakMap();
var DialogOverlayState = _DialogOverlayState;
var _props13;
var _AlertDialogCancelState = class _AlertDialogCancelState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props13, 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"
));
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);
}
static create(opts) {
return new _AlertDialogCancelState(opts, DialogRootContext.get());
}
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();
}
}
get props() {
return get(__privateGet(this, _props13));
}
set props(value) {
set(__privateGet(this, _props13), value);
}
};
_props13 = new WeakMap();
var AlertDialogCancelState = _AlertDialogCancelState;
// 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);
import.meta.hot.accept((module) => {
Alert_dialog[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Dialog_title[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Alert_dialog_action[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Alert_dialog_cancel[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Portal_consumer[HMR].update(module.default);
});
}
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 {
constructor(parent, opts) {
__publicField(this, "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(() => {
var _a, _b;
const value = (_a = getter(currentOpts)) == null ? void 0 : _a.current;
if (value !== void 0)
return value;
if (parent === null)
return void 0;
return (_b = getter(parent.opts)) == null ? void 0 : _b.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);
import.meta.hot.accept((module) => {
Portal[HMR].update(module.default);
});
}
var portal_default = Portal;
// node_modules/bits-ui/dist/internal/events.js
var CustomEventDispatcher = class {
constructor(eventName, options = { bubbles: true, cancelable: true }) {
__publicField(this, "eventName");
__publicField(this, "options");
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 == null ? void 0 : 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/bits-ui/dist/bits/utilities/is-using-keyboard/is-using-keyboard.svelte.js
var isUsingKeyboard = tag(state(false), "isUsingKeyboard");
var _IsUsingKeyboard = class _IsUsingKeyboard {
constructor() {
user_effect(() => {
if (strict_equals(_IsUsingKeyboard._refs, 0)) {
_IsUsingKeyboard._cleanup = effect_root(() => {
const callbacksToDispose = [];
const handlePointer = (_) => {
set(isUsingKeyboard, false);
};
const handleKeydown = (_) => {
set(isUsingKeyboard, true);
};
callbacksToDispose.push(on(document, "pointerdown", handlePointer, { capture: true }), on(document, "pointermove", handlePointer, { capture: true }), on(document, "keydown", handleKeydown, { capture: true }));
return executeCallbacks(...callbacksToDispose);
});
}
_IsUsingKeyboard._refs++;
return () => {
var _a;
_IsUsingKeyboard._refs--;
if (strict_equals(_IsUsingKeyboard._refs, 0)) {
set(isUsingKeyboard, false);
(_a = _IsUsingKeyboard._cleanup) == null ? void 0 : _a.call(_IsUsingKeyboard);
}
};
});
}
get current() {
return get(isUsingKeyboard);
}
set current(value) {
set(isUsingKeyboard, value, true);
}
};
__publicField(_IsUsingKeyboard, "_refs", 0);
// Reference counting to avoid multiple listeners.
__publicField(_IsUsingKeyboard, "_cleanup");
var IsUsingKeyboard = _IsUsingKeyboard;
// node_modules/tabbable/dist/index.esm.js
var candidateSelectors = ["input:not([inert]):not([inert] *)", "select:not([inert]):not([inert] *)", "textarea:not([inert]):not([inert] *)", "a[href]:not([inert]):not([inert] *)", "button:not([inert]):not([inert] *)", "[tabindex]:not(slot):not([inert]):not([inert] *)", "audio[controls]:not([inert]):not([inert] *)", "video[controls]:not([inert]):not([inert] *)", '[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)', "details>summary:first-of-type:not([inert]):not([inert] *)", "details:not([inert]):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 && // closest does not exist on shadow roots, so we fall back to a manual
// lookup upward, in case it is not defined.
(typeof node.closest === "function" ? node.closest("[inert]") : _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 || 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:not([inert]):not([inert] *)").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, index2) => isEqual(value, arr2[index2]));
}
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(index2, arr) {
return index2 >= 0 && index2 < arr.length;
}
function next2(array, index2, loop = true) {
if (array.length === 0 || index2 < 0 || index2 >= array.length)
return;
if (array.length === 1 && index2 === 0)
return array[0];
if (index2 === array.length - 1)
return loop ? array[0] : void 0;
return array[index2 + 1];
}
function prev(array, index2, loop = true) {
if (array.length === 0 || index2 < 0 || index2 >= array.length)
return;
if (array.length === 1 && index2 === 0)
return array[0];
if (index2 === 0)
return loop ? array[array.length - 1] : void 0;
return array[index2 - 1];
}
function forward(array, index2, increment, loop = true) {
if (array.length === 0 || index2 < 0 || index2 >= array.length)
return;
let targetIndex = index2 + 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, index2, decrement, loop = true) {
if (array.length === 0 || index2 < 0 || index2 >= array.length)
return;
let targetIndex = index2 - 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 == null ? void 0 : 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 == null ? void 0 : value.toLowerCase().startsWith(normalizedLowerSearch));
return nextMatch !== currentMatch ? nextMatch : void 0;
}
function wrapArray(array, startIndex) {
return array.map((_, index2) => array[(startIndex + index2) % 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 == null ? void 0 : onChange(defaultValue);
},
afterMs
);
}
user_effect(() => {
return () => {
if (timeout) getWindow3().clearTimeout(timeout);
};
});
return boxWith(() => get(value), (v) => {
set(value, v, true);
onChange == null ? void 0 : onChange(v);
if (timeout) getWindow3().clearTimeout(timeout);
timeout = resetAfter();
});
}
// node_modules/bits-ui/dist/internal/dom-typeahead.svelte.js
var _opts4, _search, _onMatch, _getCurrentItem;
var DOMTypeahead = class {
constructor(opts) {
__privateAdd(this, _opts4);
__privateAdd(this, _search);
__privateAdd(this, _onMatch, tag(
user_derived(() => {
if (__privateGet(this, _opts4).onMatch) return __privateGet(this, _opts4).onMatch;
return (node) => node.focus();
}),
"DOMTypeahead.#onMatch"
));
__privateAdd(this, _getCurrentItem, tag(
user_derived(() => {
if (__privateGet(this, _opts4).getCurrentItem) return __privateGet(this, _opts4).getCurrentItem;
return __privateGet(this, _opts4).getActiveElement;
}),
"DOMTypeahead.#getCurrentItem"
));
__privateSet(this, _opts4, opts);
__privateSet(this, _search, boxAutoReset("", { afterMs: 1e3, getWindow: opts.getWindow }));
this.handleTypeaheadSearch = this.handleTypeaheadSearch.bind(this);
this.resetTypeahead = this.resetTypeahead.bind(this);
}
handleTypeaheadSearch(key2, candidates) {
var _a, _b;
if (!candidates.length) return;
__privateGet(this, _search).current = __privateGet(this, _search).current + key2;
const currentItem = get(__privateGet(this, _getCurrentItem))();
const currentMatch = ((_b = (_a = candidates.find((item) => strict_equals(item, currentItem))) == null ? void 0 : _a.textContent) == null ? void 0 : _b.trim()) ?? "";
const values = candidates.map((item) => {
var _a2;
return ((_a2 = item.textContent) == null ? void 0 : _a2.trim()) ?? "";
});
const nextMatch = getNextMatch(values, __privateGet(this, _search).current, currentMatch);
const newItem = candidates.find((item) => {
var _a2;
return strict_equals((_a2 = item.textContent) == null ? void 0 : _a2.trim(), nextMatch);
});
if (newItem) get(__privateGet(this, _onMatch))(newItem);
return newItem;
}
resetTypeahead() {
__privateGet(this, _search).current = "";
}
get search() {
return __privateGet(this, _search).current;
}
};
_opts4 = new WeakMap();
_search = new WeakMap();
_onMatch = new WeakMap();
_getCurrentItem = new WeakMap();
// node_modules/bits-ui/dist/internal/grace-area.svelte.js
var _opts5, _enabled2, _isPointerInTransit, _pointerGraceArea, _GraceArea_instances, removeGraceArea_fn, createGraceArea_fn;
var GraceArea = class {
constructor(opts) {
__privateAdd(this, _GraceArea_instances);
__privateAdd(this, _opts5);
__privateAdd(this, _enabled2);
__privateAdd(this, _isPointerInTransit);
__privateAdd(this, _pointerGraceArea, tag(state(null), "GraceArea.#pointerGraceArea"));
__privateSet(this, _opts5, opts);
__privateSet(this, _enabled2, tag(user_derived(() => __privateGet(this, _opts5).enabled()), "GraceArea.#enabled"));
__privateSet(this, _isPointerInTransit, boxAutoReset(false, {
afterMs: opts.transitTimeout ?? 300,
onChange: (value) => {
var _a, _b;
if (!get(__privateGet(this, _enabled2))) return;
(_b = (_a = __privateGet(this, _opts5)).setIsPointerInTransit) == null ? void 0 : _b.call(_a, value);
},
getWindow: () => getWindow(__privateGet(this, _opts5).triggerNode())
}));
watch([opts.triggerNode, opts.contentNode, opts.enabled], ([triggerNode, contentNode, enabled]) => {
if (!triggerNode || !contentNode || !enabled) return;
const handleTriggerLeave = (e) => {
__privateMethod(this, _GraceArea_instances, createGraceArea_fn).call(this, e, contentNode);
};
const handleContentLeave = (e) => {
__privateMethod(this, _GraceArea_instances, createGraceArea_fn).call(this, e, triggerNode);
};
return executeCallbacks(on(triggerNode, "pointerleave", handleTriggerLeave), on(contentNode, "pointerleave", handleContentLeave));
});
watch(() => get(__privateGet(this, _pointerGraceArea)), () => {
const handleTrackPointerGrace = (e) => {
var _a, _b;
if (!get(__privateGet(this, _pointerGraceArea))) return;
const target = e.target;
if (!isElement2(target)) return;
const pointerPosition = { x: e.clientX, y: e.clientY };
const hasEnteredTarget = ((_a = opts.triggerNode()) == null ? void 0 : _a.contains(target)) || ((_b = opts.contentNode()) == null ? void 0 : _b.contains(target));
const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, get(__privateGet(this, _pointerGraceArea)));
if (hasEnteredTarget) {
__privateMethod(this, _GraceArea_instances, removeGraceArea_fn).call(this);
} else if (isPointerOutsideGraceArea) {
__privateMethod(this, _GraceArea_instances, removeGraceArea_fn).call(this);
opts.onPointerExit();
}
};
const doc = getDocument(opts.triggerNode() ?? opts.contentNode());
if (!doc) return;
return on(doc, "pointermove", handleTrackPointerGrace);
});
}
};
_opts5 = new WeakMap();
_enabled2 = new WeakMap();
_isPointerInTransit = new WeakMap();
_pointerGraceArea = new WeakMap();
_GraceArea_instances = new WeakSet();
removeGraceArea_fn = function() {
set(__privateGet(this, _pointerGraceArea), null);
__privateGet(this, _isPointerInTransit).current = false;
};
createGraceArea_fn = function(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(__privateGet(this, _pointerGraceArea), graceArea, true);
__privateGet(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 _ignoreCloseAutoFocus, _isPointerInTransit2;
var _MenuRootState = class _MenuRootState {
constructor(opts) {
__publicField(this, "opts");
__publicField(this, "isUsingKeyboard", new IsUsingKeyboard());
__privateAdd(this, _ignoreCloseAutoFocus, tag(state(false), "MenuRootState.ignoreCloseAutoFocus"));
__privateAdd(this, _isPointerInTransit2, tag(state(false), "MenuRootState.isPointerInTransit"));
__publicField(this, "getBitsAttr", (part) => {
return menuAttrs.getAttr(part, this.opts.variant.current);
});
this.opts = opts;
}
static create(opts) {
const root18 = new _MenuRootState(opts);
return MenuRootContext.set(root18);
}
get ignoreCloseAutoFocus() {
return get(__privateGet(this, _ignoreCloseAutoFocus));
}
set ignoreCloseAutoFocus(value) {
set(__privateGet(this, _ignoreCloseAutoFocus), value, true);
}
get isPointerInTransit() {
return get(__privateGet(this, _isPointerInTransit2));
}
set isPointerInTransit(value) {
set(__privateGet(this, _isPointerInTransit2), value, true);
}
};
_ignoreCloseAutoFocus = new WeakMap();
_isPointerInTransit2 = new WeakMap();
var MenuRootState = _MenuRootState;
var _contentNode3, _triggerNode2;
var _MenuMenuState = class _MenuMenuState {
constructor(opts, root18, parentMenu) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "parentMenu");
__publicField(this, "contentId", boxWith(() => ""));
__privateAdd(this, _contentNode3, tag(state(null), "MenuMenuState.contentNode"));
__publicField(this, "contentPresence");
__privateAdd(this, _triggerNode2, tag(state(null), "MenuMenuState.triggerNode"));
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;
});
}
}
static create(opts, root18) {
return MenuMenuContext.set(new _MenuMenuState(opts, root18, null));
}
get contentNode() {
return get(__privateGet(this, _contentNode3));
}
set contentNode(value) {
set(__privateGet(this, _contentNode3), value, true);
}
get triggerNode() {
return get(__privateGet(this, _triggerNode2));
}
set triggerNode(value) {
set(__privateGet(this, _triggerNode2), value, true);
}
toggleOpen() {
this.opts.open.current = !this.opts.open.current;
}
onOpen() {
this.opts.open.current = true;
}
onClose() {
this.opts.open.current = false;
}
};
_contentNode3 = new WeakMap();
_triggerNode2 = new WeakMap();
var MenuMenuState = _MenuMenuState;
var _search2, _timer, _handleTypeaheadSearch, _mounted, _isSub, _MenuContentState_instances, getCandidateNodes_fn, isPointerMovingToSubmenu_fn, _snippetProps4, _props14;
var _MenuContentState = class _MenuContentState {
constructor(opts, parentMenu) {
__privateAdd(this, _MenuContentState_instances);
__publicField(this, "opts");
__publicField(this, "parentMenu");
__publicField(this, "rovingFocusGroup");
__publicField(this, "domContext");
__publicField(this, "attachment");
__privateAdd(this, _search2, tag(state(""), "MenuContentState.search"));
__privateAdd(this, _timer, 0);
__privateAdd(this, _handleTypeaheadSearch);
__privateAdd(this, _mounted, tag(state(false), "MenuContentState.mounted"));
__privateAdd(this, _isSub);
__publicField(this, "onCloseAutoFocus", (e) => {
var _a, _b;
(_b = (_a = this.opts.onCloseAutoFocus).current) == null ? void 0 : _b.call(_a, e);
if (e.defaultPrevented || __privateGet(this, _isSub)) return;
if (this.parentMenu.triggerNode && isTabbable(this.parentMenu.triggerNode)) {
e.preventDefault();
this.parentMenu.triggerNode.focus();
}
});
__privateAdd(this, _snippetProps4, tag(user_derived(() => ({ open: this.parentMenu.opts.open.current })), "MenuContentState.snippetProps"));
__privateAdd(this, _props14, 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", contain: "layout style" },
...this.attachment
})),
"MenuContentState.props"
));
__publicField(this, "popperProps", { onCloseAutoFocus: (e) => this.onCloseAutoFocus(e) });
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;
__privateSet(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: () => {
var _a;
return this.parentMenu.opts.open.current && Boolean((_a = this.parentMenu.triggerNode) == null ? void 0 : _a.hasAttribute(this.parentMenu.root.getBitsAttr("sub-trigger")));
},
onPointerExit: () => {
this.parentMenu.opts.open.current = false;
},
setIsPointerInTransit: (value) => {
this.parentMenu.root.isPointerInTransit = value;
}
});
__privateSet(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(__privateGet(this, _timer));
}
});
}
static create(opts) {
return MenuContentContext.set(new _MenuContentState(opts, MenuMenuContext.get()));
}
get search() {
return get(__privateGet(this, _search2));
}
set search(value) {
set(__privateGet(this, _search2), value, true);
}
get mounted() {
return get(__privateGet(this, _mounted));
}
set mounted(value) {
set(__privateGet(this, _mounted), value, true);
}
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) {
var _a, _b;
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((_a = target.closest(`[${this.parentMenu.root.getBitsAttr("content")}]`)) == null ? void 0 : _a.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 = __privateMethod(this, _MenuContentState_instances, getCandidateNodes_fn).call(this);
if (isKeydownInside) {
if (!isModifierKey && isCharacterKey) {
__privateGet(this, _handleTypeaheadSearch).call(this, e.key, candidateNodes);
}
}
if (strict_equals((_b = e.target) == null ? void 0 : _b.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) {
var _a, _b;
if (!isElement2(e.currentTarget)) return;
if (!isElement2(e.target)) return;
if (!((_b = (_a = e.currentTarget).contains) == null ? void 0 : _b.call(_a, e.target))) {
this.domContext.getWindow().clearTimeout(__privateGet(this, _timer));
this.search = "";
}
}
onfocus(_) {
if (!this.parentMenu.root.isUsingKeyboard.current) return;
afterTick(() => this.rovingFocusGroup.focusFirstCandidate());
}
onItemEnter() {
return __privateMethod(this, _MenuContentState_instances, isPointerMovingToSubmenu_fn).call(this);
}
onItemLeave(e) {
if (e.currentTarget.hasAttribute(this.parentMenu.root.getBitsAttr("sub-trigger"))) return;
if (__privateMethod(this, _MenuContentState_instances, isPointerMovingToSubmenu_fn).call(this) || this.parentMenu.root.isUsingKeyboard.current) return;
const contentNode = this.parentMenu.contentNode;
contentNode == null ? void 0 : contentNode.focus();
this.rovingFocusGroup.setCurrentTabStopId("");
}
onTriggerLeave() {
if (__privateMethod(this, _MenuContentState_instances, isPointerMovingToSubmenu_fn).call(this)) return true;
return false;
}
handleInteractOutside(e) {
var _a;
if (!isElementOrSVGElement(e.target)) return;
const triggerId = (_a = this.parentMenu.triggerNode) == null ? void 0 : _a.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;
}
get snippetProps() {
return get(__privateGet(this, _snippetProps4));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps4), value);
}
get props() {
return get(__privateGet(this, _props14));
}
set props(value) {
set(__privateGet(this, _props14), value);
}
};
_search2 = new WeakMap();
_timer = new WeakMap();
_handleTypeaheadSearch = new WeakMap();
_mounted = new WeakMap();
_isSub = new WeakMap();
_MenuContentState_instances = new WeakSet();
getCandidateNodes_fn = function() {
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_fn = function() {
return this.parentMenu.root.isPointerInTransit;
};
_snippetProps4 = new WeakMap();
_props14 = new WeakMap();
var MenuContentState = _MenuContentState;
var _isFocused, _props15;
var MenuItemSharedState = class {
constructor(opts, content) {
__publicField(this, "opts");
__publicField(this, "content");
__publicField(this, "attachment");
__privateAdd(this, _isFocused, tag(state(false), "MenuItemSharedState.#isFocused"));
__privateAdd(this, _props15, 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(__privateGet(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"
));
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(__privateGet(this, _isFocused), true);
});
}
onblur(e) {
afterTick(() => {
if (e.defaultPrevented) return;
set(__privateGet(this, _isFocused), false);
});
}
get props() {
return get(__privateGet(this, _props15));
}
set props(value) {
set(__privateGet(this, _props15), value);
}
};
_isFocused = new WeakMap();
_props15 = new WeakMap();
var _isPointerDown, _MenuItemState_instances, handleSelect_fn, _props16;
var _MenuItemState = class _MenuItemState {
constructor(opts, item) {
__privateAdd(this, _MenuItemState_instances);
__publicField(this, "opts");
__publicField(this, "item");
__publicField(this, "root");
__privateAdd(this, _isPointerDown, false);
__privateAdd(this, _props16, tag(
user_derived(() => mergeProps(this.item.props, {
onclick: this.onclick,
onpointerdown: this.onpointerdown,
onpointerup: this.onpointerup,
onkeydown: this.onkeydown
})),
"MenuItemState.props"
));
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);
}
static create(opts) {
const item = new MenuItemSharedState(opts, MenuContentContext.get());
return new _MenuItemState(opts, item);
}
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;
__privateMethod(this, _MenuItemState_instances, handleSelect_fn).call(this);
}
onpointerup(e) {
var _a;
if (e.defaultPrevented) return;
if (!__privateGet(this, _isPointerDown)) {
if (!isHTMLElement2(e.currentTarget)) return;
(_a = e.currentTarget) == null ? void 0 : _a.click();
}
}
onpointerdown(_) {
__privateSet(this, _isPointerDown, true);
}
get props() {
return get(__privateGet(this, _props16));
}
set props(value) {
set(__privateGet(this, _props16), value);
}
};
_isPointerDown = new WeakMap();
_MenuItemState_instances = new WeakSet();
handleSelect_fn = function() {
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();
}
};
_props16 = new WeakMap();
var MenuItemState = _MenuItemState;
var _openTimer, _MenuSubTriggerState_instances, clearOpenTimer_fn, _props17;
var _MenuSubTriggerState = class _MenuSubTriggerState {
constructor(opts, item, content, submenu) {
__privateAdd(this, _MenuSubTriggerState_instances);
__publicField(this, "opts");
__publicField(this, "item");
__publicField(this, "content");
__publicField(this, "submenu");
__publicField(this, "attachment");
__privateAdd(this, _openTimer, null);
__privateAdd(this, _props17, 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"
));
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(() => {
__privateMethod(this, _MenuSubTriggerState_instances, clearOpenTimer_fn).call(this);
});
}
static create(opts) {
const content = MenuContentContext.get();
const item = new MenuItemSharedState(opts, content);
const submenu = MenuMenuContext.get();
return new _MenuSubTriggerState(opts, item, content, submenu);
}
onpointermove(e) {
if (!isMouseEvent(e)) return;
if (!this.item.opts.disabled.current && !this.submenu.opts.open.current && !__privateGet(this, _openTimer) && !this.content.parentMenu.root.isPointerInTransit) {
__privateSet(this, _openTimer, this.content.domContext.setTimeout(
() => {
this.submenu.onOpen();
__privateMethod(this, _MenuSubTriggerState_instances, clearOpenTimer_fn).call(this);
},
this.opts.openDelay.current
));
}
}
onpointerleave(e) {
if (!isMouseEvent(e)) return;
__privateMethod(this, _MenuSubTriggerState_instances, clearOpenTimer_fn).call(this);
}
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);
});
}
}
get props() {
return get(__privateGet(this, _props17));
}
set props(value) {
set(__privateGet(this, _props17), value);
}
};
_openTimer = new WeakMap();
_MenuSubTriggerState_instances = new WeakSet();
clearOpenTimer_fn = function() {
if (strict_equals(__privateGet(this, _openTimer), null)) return;
this.content.domContext.getWindow().clearTimeout(__privateGet(this, _openTimer));
__privateSet(this, _openTimer, null);
};
_props17 = new WeakMap();
var MenuSubTriggerState = _MenuSubTriggerState;
var _snippetProps5, _props18;
var _MenuCheckboxItemState = class _MenuCheckboxItemState {
constructor(opts, item, group = null) {
__publicField(this, "opts");
__publicField(this, "item");
__publicField(this, "group");
__privateAdd(this, _snippetProps5, tag(
user_derived(() => ({
checked: this.opts.checked.current,
indeterminate: this.opts.indeterminate.current
})),
"MenuCheckboxItemState.snippetProps"
));
__privateAdd(this, _props18, 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"
));
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);
}
});
}
}
static create(opts, checkboxGroup) {
const item = new MenuItemState(opts, new MenuItemSharedState(opts, MenuContentContext.get()));
return new _MenuCheckboxItemState(opts, item, checkboxGroup);
}
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;
}
}
get snippetProps() {
return get(__privateGet(this, _snippetProps5));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps5), value);
}
get props() {
return get(__privateGet(this, _props18));
}
set props(value) {
set(__privateGet(this, _props18), value);
}
};
_snippetProps5 = new WeakMap();
_props18 = new WeakMap();
var MenuCheckboxItemState = _MenuCheckboxItemState;
var _groupHeadingId, _props19;
var _MenuGroupState = class _MenuGroupState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _groupHeadingId, tag(state(void 0), "MenuGroupState.groupHeadingId"));
__privateAdd(this, _props19, tag(
user_derived(() => ({
id: this.opts.id.current,
role: "group",
"aria-labelledby": this.groupHeadingId,
[this.root.getBitsAttr("group")]: "",
...this.attachment
})),
"MenuGroupState.props"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return MenuGroupContext.set(new _MenuGroupState(opts, MenuRootContext.get()));
}
get groupHeadingId() {
return get(__privateGet(this, _groupHeadingId));
}
set groupHeadingId(value) {
set(__privateGet(this, _groupHeadingId), value, true);
}
get props() {
return get(__privateGet(this, _props19));
}
set props(value) {
set(__privateGet(this, _props19), value);
}
};
_groupHeadingId = new WeakMap();
_props19 = new WeakMap();
var MenuGroupState = _MenuGroupState;
var _props20;
var _MenuGroupHeadingState = class _MenuGroupHeadingState {
constructor(opts, group) {
__publicField(this, "opts");
__publicField(this, "group");
__publicField(this, "attachment");
__privateAdd(this, _props20, tag(
user_derived(() => ({
id: this.opts.id.current,
role: "group",
[this.group.root.getBitsAttr("group-heading")]: "",
...this.attachment
})),
"MenuGroupHeadingState.props"
));
this.opts = opts;
this.group = group;
this.attachment = attachRef(this.opts.ref, (v) => this.group.groupHeadingId = v == null ? void 0 : v.id);
}
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());
}
get props() {
return get(__privateGet(this, _props20));
}
set props(value) {
set(__privateGet(this, _props20), value);
}
};
_props20 = new WeakMap();
var MenuGroupHeadingState = _MenuGroupHeadingState;
var _props21;
var _MenuSeparatorState = class _MenuSeparatorState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props21, tag(
user_derived(() => ({
id: this.opts.id.current,
role: "group",
[this.root.getBitsAttr("separator")]: "",
...this.attachment
})),
"MenuSeparatorState.props"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _MenuSeparatorState(opts, MenuRootContext.get());
}
get props() {
return get(__privateGet(this, _props21));
}
set props(value) {
set(__privateGet(this, _props21), value);
}
};
_props21 = new WeakMap();
var MenuSeparatorState = _MenuSeparatorState;
var _props22;
var _MenuArrowState = class _MenuArrowState {
constructor(root18) {
__publicField(this, "root");
__privateAdd(this, _props22, tag(user_derived(() => ({ [this.root.getBitsAttr("arrow")]: "" })), "MenuArrowState.props"));
this.root = root18;
}
static create() {
return new _MenuArrowState(MenuRootContext.get());
}
get props() {
return get(__privateGet(this, _props22));
}
set props(value) {
set(__privateGet(this, _props22), value);
}
};
_props22 = new WeakMap();
var MenuArrowState = _MenuArrowState;
var _groupHeadingId2, _props23;
var _MenuRadioGroupState = class _MenuRadioGroupState {
constructor(opts, content) {
__publicField(this, "opts");
__publicField(this, "content");
__publicField(this, "attachment");
__privateAdd(this, _groupHeadingId2, tag(state(null), "MenuRadioGroupState.groupHeadingId"));
__publicField(this, "root");
__privateAdd(this, _props23, tag(
user_derived(() => ({
id: this.opts.id.current,
[this.root.getBitsAttr("radio-group")]: "",
role: "group",
"aria-labelledby": this.groupHeadingId,
...this.attachment
})),
"MenuRadioGroupState.props"
));
this.opts = opts;
this.content = content;
this.root = content.parentMenu.root;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return MenuGroupContext.set(MenuRadioGroupContext.set(new _MenuRadioGroupState(opts, MenuContentContext.get())));
}
get groupHeadingId() {
return get(__privateGet(this, _groupHeadingId2));
}
set groupHeadingId(value) {
set(__privateGet(this, _groupHeadingId2), value, true);
}
setValue(v) {
this.opts.value.current = v;
}
get props() {
return get(__privateGet(this, _props23));
}
set props(value) {
set(__privateGet(this, _props23), value);
}
};
_groupHeadingId2 = new WeakMap();
_props23 = new WeakMap();
var MenuRadioGroupState = _MenuRadioGroupState;
var _isChecked, _props24;
var _MenuRadioItemState = class _MenuRadioItemState {
constructor(opts, item, group) {
__publicField(this, "opts");
__publicField(this, "item");
__publicField(this, "group");
__publicField(this, "attachment");
__privateAdd(this, _isChecked, tag(user_derived(() => strict_equals(this.group.opts.value.current, this.opts.value.current)), "MenuRadioItemState.isChecked"));
__privateAdd(this, _props24, 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"
));
this.opts = opts;
this.item = item;
this.group = group;
this.attachment = attachRef(this.opts.ref);
}
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);
}
get isChecked() {
return get(__privateGet(this, _isChecked));
}
set isChecked(value) {
set(__privateGet(this, _isChecked), value);
}
selectValue() {
this.group.setValue(this.opts.value.current);
}
get props() {
return get(__privateGet(this, _props24));
}
set props(value) {
set(__privateGet(this, _props24), value);
}
};
_isChecked = new WeakMap();
_props24 = new WeakMap();
var MenuRadioItemState = _MenuRadioItemState;
var _ariaControls, _props25;
var _DropdownMenuTriggerState = class _DropdownMenuTriggerState {
constructor(opts, parentMenu) {
__publicField(this, "opts");
__publicField(this, "parentMenu");
__publicField(this, "attachment");
__publicField(this, "onclick", (e) => {
if (this.opts.disabled.current || strict_equals(e.detail, 0, false)) return;
this.parentMenu.toggleOpen();
e.preventDefault();
});
__publicField(this, "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();
}
});
__publicField(this, "onpointerup", (e) => {
if (this.opts.disabled.current) return;
if (strict_equals(e.pointerType, "touch")) {
e.preventDefault();
this.parentMenu.toggleOpen();
}
});
__publicField(this, "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();
}
});
__privateAdd(this, _ariaControls, tag(
user_derived(() => {
if (this.parentMenu.opts.open.current && this.parentMenu.contentId.current) return this.parentMenu.contentId.current;
return void 0;
}),
"DropdownMenuTriggerState.#ariaControls"
));
__privateAdd(this, _props25, 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(__privateGet(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"
));
this.opts = opts;
this.parentMenu = parentMenu;
this.attachment = attachRef(this.opts.ref, (v) => this.parentMenu.triggerNode = v);
}
static create(opts) {
return new _DropdownMenuTriggerState(opts, MenuMenuContext.get());
}
get props() {
return get(__privateGet(this, _props25));
}
set props(value) {
set(__privateGet(this, _props25), value);
}
};
_ariaControls = new WeakMap();
_props25 = new WeakMap();
var DropdownMenuTriggerState = _DropdownMenuTriggerState;
var _point, _longPressTimer, _ContextMenuTriggerState_instances, clearLongPressTimer_fn, handleOpen_fn, _props26;
var _ContextMenuTriggerState = class _ContextMenuTriggerState {
constructor(opts, parentMenu) {
__privateAdd(this, _ContextMenuTriggerState_instances);
__publicField(this, "opts");
__publicField(this, "parentMenu");
__publicField(this, "attachment");
__privateAdd(this, _point, tag(state(proxy({ x: 0, y: 0 })), "ContextMenuTriggerState.#point"));
__publicField(this, "virtualElement", simpleBox({
getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...get(__privateGet(this, _point)) })
}));
__privateAdd(this, _longPressTimer, null);
__privateAdd(this, _props26, 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"
));
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(__privateGet(this, _point)), (point) => {
this.virtualElement.current = {
getBoundingClientRect: () => DOMRect.fromRect({ width: 0, height: 0, ...point })
};
});
watch(() => this.opts.disabled.current, (isDisabled) => {
if (isDisabled) {
__privateMethod(this, _ContextMenuTriggerState_instances, clearLongPressTimer_fn).call(this);
}
});
onDestroyEffect(() => __privateMethod(this, _ContextMenuTriggerState_instances, clearLongPressTimer_fn).call(this));
}
static create(opts) {
return new _ContextMenuTriggerState(opts, MenuMenuContext.get());
}
oncontextmenu(e) {
var _a;
if (e.defaultPrevented || this.opts.disabled.current) return;
__privateMethod(this, _ContextMenuTriggerState_instances, clearLongPressTimer_fn).call(this);
__privateMethod(this, _ContextMenuTriggerState_instances, handleOpen_fn).call(this, e);
e.preventDefault();
(_a = this.parentMenu.contentNode) == null ? void 0 : _a.focus();
}
onpointerdown(e) {
if (this.opts.disabled.current || isMouseEvent(e)) return;
__privateMethod(this, _ContextMenuTriggerState_instances, clearLongPressTimer_fn).call(this);
__privateSet(this, _longPressTimer, getWindow(this.opts.ref.current).setTimeout(() => __privateMethod(this, _ContextMenuTriggerState_instances, handleOpen_fn).call(this, e), 700));
}
onpointermove(e) {
if (this.opts.disabled.current || isMouseEvent(e)) return;
__privateMethod(this, _ContextMenuTriggerState_instances, clearLongPressTimer_fn).call(this);
}
onpointercancel(e) {
if (this.opts.disabled.current || isMouseEvent(e)) return;
__privateMethod(this, _ContextMenuTriggerState_instances, clearLongPressTimer_fn).call(this);
}
onpointerup(e) {
if (this.opts.disabled.current || isMouseEvent(e)) return;
__privateMethod(this, _ContextMenuTriggerState_instances, clearLongPressTimer_fn).call(this);
}
get props() {
return get(__privateGet(this, _props26));
}
set props(value) {
set(__privateGet(this, _props26), value);
}
};
_point = new WeakMap();
_longPressTimer = new WeakMap();
_ContextMenuTriggerState_instances = new WeakSet();
clearLongPressTimer_fn = function() {
if (strict_equals(__privateGet(this, _longPressTimer), null)) return;
getWindow(this.opts.ref.current).clearTimeout(__privateGet(this, _longPressTimer));
};
handleOpen_fn = function(e) {
set(__privateGet(this, _point), { x: e.clientX, y: e.clientY }, true);
this.parentMenu.onOpen();
};
_props26 = new WeakMap();
var ContextMenuTriggerState = _ContextMenuTriggerState;
var _groupHeadingId3, _props27;
var _MenuCheckboxGroupState = class _MenuCheckboxGroupState {
constructor(opts, content) {
__publicField(this, "opts");
__publicField(this, "content");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _groupHeadingId3, tag(state(null), "MenuCheckboxGroupState.groupHeadingId"));
__privateAdd(this, _props27, tag(
user_derived(() => ({
id: this.opts.id.current,
[this.root.getBitsAttr("checkbox-group")]: "",
role: "group",
"aria-labelledby": this.groupHeadingId,
...this.attachment
})),
"MenuCheckboxGroupState.props"
));
this.opts = opts;
this.content = content;
this.root = content.parentMenu.root;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return MenuCheckboxGroupContext.set(new _MenuCheckboxGroupState(opts, MenuContentContext.get()));
}
get groupHeadingId() {
return get(__privateGet(this, _groupHeadingId3));
}
set groupHeadingId(value) {
set(__privateGet(this, _groupHeadingId3), value, true);
}
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 index2 = this.opts.value.current.indexOf(checkboxValue);
if (strict_equals(index2, -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);
}
get props() {
return get(__privateGet(this, _props27));
}
set props(value) {
set(__privateGet(this, _props27), value);
}
};
_groupHeadingId3 = new WeakMap();
_props27 = new WeakMap();
var MenuCheckboxGroupState = _MenuCheckboxGroupState;
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 ?? (globalThis.bitsDismissableLayers = /* @__PURE__ */ new Map());
var _interactOutsideProp, _behaviorType, _interceptedEvents, _isResponsibleLayer, _isFocusInsideDOMTree, _documentObj, _onFocusOutside, _unsubClickListener, _handleFocus, _DismissibleLayerState_instances, addEventListeners_fn, _handleDismiss, _handleInteractOutside, _markInterceptedEvent, _markNonInterceptedEvent, _markResponsibleLayer, _isTargetWithinLayer, _resetState, isAnyEventIntercepted_fn, _onfocuscapture, _onblurcapture;
var _DismissibleLayerState = class _DismissibleLayerState {
constructor(opts) {
__privateAdd(this, _DismissibleLayerState_instances);
__publicField(this, "opts");
__privateAdd(this, _interactOutsideProp);
__privateAdd(this, _behaviorType);
__privateAdd(this, _interceptedEvents, { pointerdown: false });
__privateAdd(this, _isResponsibleLayer, false);
__privateAdd(this, _isFocusInsideDOMTree, false);
__privateAdd(this, _documentObj);
__privateAdd(this, _onFocusOutside);
__privateAdd(this, _unsubClickListener, noop3);
__privateAdd(this, _handleFocus, (event) => {
if (event.defaultPrevented) return;
if (!this.opts.ref.current) return;
afterTick(() => {
var _a, _b;
if (!this.opts.ref.current || __privateGet(this, _isTargetWithinLayer).call(this, event.target)) return;
if (event.target && !__privateGet(this, _isFocusInsideDOMTree)) {
(_b = (_a = __privateGet(this, _onFocusOutside)).current) == null ? void 0 : _b.call(_a, event);
}
});
});
__privateAdd(this, _handleDismiss, (e) => {
let event = e;
if (event.defaultPrevented) {
event = createWrappedEvent(e);
}
__privateGet(this, _interactOutsideProp).current(e);
});
__privateAdd(this, _handleInteractOutside, debounce2(
(e) => {
if (!this.opts.ref.current) {
__privateGet(this, _unsubClickListener).call(this);
return;
}
const isEventValid = this.opts.isValidEvent.current(e, this.opts.ref.current) || isValidEvent(e, this.opts.ref.current);
if (!__privateGet(this, _isResponsibleLayer) || __privateMethod(this, _DismissibleLayerState_instances, isAnyEventIntercepted_fn).call(this) || !isEventValid) {
__privateGet(this, _unsubClickListener).call(this);
return;
}
let event = e;
if (event.defaultPrevented) {
event = createWrappedEvent(event);
}
if (strict_equals(__privateGet(this, _behaviorType).current, "close", false) && strict_equals(__privateGet(this, _behaviorType).current, "defer-otherwise-close", false)) {
__privateGet(this, _unsubClickListener).call(this);
return;
}
if (strict_equals(e.pointerType, "touch")) {
__privateGet(this, _unsubClickListener).call(this);
__privateSet(this, _unsubClickListener, on(__privateGet(this, _documentObj), "click", __privateGet(this, _handleDismiss), { once: true }));
} else {
__privateGet(this, _interactOutsideProp).current(event);
}
},
10
));
__privateAdd(this, _markInterceptedEvent, (e) => {
__privateGet(this, _interceptedEvents)[e.type] = true;
});
__privateAdd(this, _markNonInterceptedEvent, (e) => {
__privateGet(this, _interceptedEvents)[e.type] = false;
});
__privateAdd(this, _markResponsibleLayer, () => {
if (!this.opts.ref.current) return;
__privateSet(this, _isResponsibleLayer, isResponsibleLayer(this.opts.ref.current));
});
__privateAdd(this, _isTargetWithinLayer, (target) => {
if (!this.opts.ref.current) return false;
return isOrContainsTarget2(this.opts.ref.current, target);
});
__privateAdd(this, _resetState, debounce2(
() => {
for (const eventType in __privateGet(this, _interceptedEvents)) {
__privateGet(this, _interceptedEvents)[eventType] = false;
}
__privateSet(this, _isResponsibleLayer, false);
},
20
));
__privateAdd(this, _onfocuscapture, () => {
__privateSet(this, _isFocusInsideDOMTree, true);
});
__privateAdd(this, _onblurcapture, () => {
__privateSet(this, _isFocusInsideDOMTree, false);
});
__publicField(this, "props", {
onfocuscapture: __privateGet(this, _onfocuscapture),
onblurcapture: __privateGet(this, _onblurcapture)
});
this.opts = opts;
__privateSet(this, _behaviorType, opts.interactOutsideBehavior);
__privateSet(this, _interactOutsideProp, opts.onInteractOutside);
__privateSet(this, _onFocusOutside, opts.onFocusOutside);
user_effect(() => {
__privateSet(this, _documentObj, getOwnerDocument2(this.opts.ref.current));
});
let unsubEvents = noop3;
const cleanup = () => {
__privateGet(this, _resetState).call(this);
globalThis.bitsDismissableLayers.delete(this);
__privateGet(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, __privateGet(this, _behaviorType));
unsubEvents();
unsubEvents = __privateMethod(this, _DismissibleLayerState_instances, addEventListeners_fn).call(this);
});
return cleanup;
});
onDestroyEffect(() => {
__privateGet(this, _resetState).destroy();
globalThis.bitsDismissableLayers.delete(this);
__privateGet(this, _handleInteractOutside).destroy();
__privateGet(this, _unsubClickListener).call(this);
unsubEvents();
});
}
static create(opts) {
return new _DismissibleLayerState(opts);
}
};
_interactOutsideProp = new WeakMap();
_behaviorType = new WeakMap();
_interceptedEvents = new WeakMap();
_isResponsibleLayer = new WeakMap();
_isFocusInsideDOMTree = new WeakMap();
_documentObj = new WeakMap();
_onFocusOutside = new WeakMap();
_unsubClickListener = new WeakMap();
_handleFocus = new WeakMap();
_DismissibleLayerState_instances = new WeakSet();
addEventListeners_fn = function() {
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(__privateGet(this, _documentObj), "pointerdown", executeCallbacks(__privateGet(this, _markInterceptedEvent), __privateGet(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(__privateGet(this, _documentObj), "pointerdown", executeCallbacks(__privateGet(this, _markNonInterceptedEvent), __privateGet(this, _handleInteractOutside))),
/**
* HANDLE FOCUS OUTSIDE
*/
on(__privateGet(this, _documentObj), "focusin", __privateGet(this, _handleFocus))
);
};
_handleDismiss = new WeakMap();
_handleInteractOutside = new WeakMap();
_markInterceptedEvent = new WeakMap();
_markNonInterceptedEvent = new WeakMap();
_markResponsibleLayer = new WeakMap();
_isTargetWithinLayer = new WeakMap();
_resetState = new WeakMap();
isAnyEventIntercepted_fn = function() {
const i = Object.values(__privateGet(this, _interceptedEvents)).some(Boolean);
return i;
};
_onfocuscapture = new WeakMap();
_onblurcapture = new WeakMap();
var DismissibleLayerState = _DismissibleLayerState;
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);
import.meta.hot.accept((module) => {
Dismissible_layer[HMR].update(module.default);
});
}
var dismissible_layer_default = Dismissible_layer;
// node_modules/bits-ui/dist/bits/utilities/escape-layer/use-escape-layer.svelte.js
globalThis.bitsEscapeLayers ?? (globalThis.bitsEscapeLayers = /* @__PURE__ */ new Map());
var _addEventListener, _onkeydown;
var _EscapeLayerState = class _EscapeLayerState {
constructor(opts) {
__publicField(this, "opts");
__publicField(this, "domContext");
__privateAdd(this, _addEventListener, () => {
return on(this.domContext.getDocument(), "keydown", __privateGet(this, _onkeydown), { passive: false });
});
__privateAdd(this, _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);
});
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 = __privateGet(this, _addEventListener).call(this);
}
return () => {
unsubEvents();
globalThis.bitsEscapeLayers.delete(this);
};
});
}
static create(opts) {
return new _EscapeLayerState(opts);
}
};
_addEventListener = new WeakMap();
_onkeydown = new WeakMap();
var EscapeLayerState = _EscapeLayerState;
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);
import.meta.hot.accept((module) => {
Escape_layer[HMR].update(module.default);
});
}
var escape_layer_default = Escape_layer;
// node_modules/bits-ui/dist/bits/utilities/focus-scope/focus-scope-manager.js
var _scopeStack, _focusHistory, _preFocusHistory;
var _FocusScopeManager = class _FocusScopeManager {
constructor() {
__privateAdd(this, _scopeStack, simpleBox([]));
__privateAdd(this, _focusHistory, /* @__PURE__ */ new WeakMap());
__privateAdd(this, _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) {
__privateGet(this, _preFocusHistory).set(scope, activeElement2);
}
__privateGet(this, _scopeStack).current = __privateGet(this, _scopeStack).current.filter((s) => s !== scope);
__privateGet(this, _scopeStack).current.unshift(scope);
}
unregister(scope) {
__privateGet(this, _scopeStack).current = __privateGet(this, _scopeStack).current.filter((s) => s !== scope);
const next3 = this.getActive();
if (next3) {
next3.resume();
}
}
getActive() {
return __privateGet(this, _scopeStack).current[0];
}
setFocusMemory(scope, element2) {
__privateGet(this, _focusHistory).set(scope, element2);
}
getFocusMemory(scope) {
return __privateGet(this, _focusHistory).get(scope);
}
isActiveScope(scope) {
return this.getActive() === scope;
}
setPreFocusMemory(scope, element2) {
__privateGet(this, _preFocusHistory).set(scope, element2);
}
getPreFocusMemory(scope) {
return __privateGet(this, _preFocusHistory).get(scope);
}
clearPreFocusMemory(scope) {
__privateGet(this, _preFocusHistory).delete(scope);
}
};
_scopeStack = new WeakMap();
_focusHistory = new WeakMap();
_preFocusHistory = new WeakMap();
__publicField(_FocusScopeManager, "instance");
var FocusScopeManager = _FocusScopeManager;
// node_modules/bits-ui/dist/bits/utilities/focus-scope/focus-scope.svelte.js
var _paused, _container, _manager, _cleanupFns, _opts6, _FocusScope_instances, cleanup_fn2, handleOpenAutoFocus_fn, handleCloseAutoFocus_fn, setupEventListeners_fn, getTabbables_fn, getFirstTabbable_fn, getAllFocusables_fn;
var _FocusScope = class _FocusScope {
constructor(opts) {
__privateAdd(this, _FocusScope_instances);
__privateAdd(this, _paused, false);
__privateAdd(this, _container, null);
__privateAdd(this, _manager, FocusScopeManager.getInstance());
__privateAdd(this, _cleanupFns, []);
__privateAdd(this, _opts6);
__privateSet(this, _opts6, opts);
}
get paused() {
return __privateGet(this, _paused);
}
pause() {
__privateSet(this, _paused, true);
}
resume() {
__privateSet(this, _paused, false);
}
mount(container) {
if (__privateGet(this, _container)) {
this.unmount();
}
__privateSet(this, _container, container);
__privateGet(this, _manager).register(this);
__privateMethod(this, _FocusScope_instances, setupEventListeners_fn).call(this);
__privateMethod(this, _FocusScope_instances, handleOpenAutoFocus_fn).call(this);
}
unmount() {
if (!__privateGet(this, _container)) return;
__privateMethod(this, _FocusScope_instances, cleanup_fn2).call(this);
__privateMethod(this, _FocusScope_instances, handleCloseAutoFocus_fn).call(this);
__privateGet(this, _manager).unregister(this);
__privateGet(this, _manager).clearPreFocusMemory(this);
__privateSet(this, _container, null);
}
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 == null ? void 0 : scope.unmount();
});
return {
get props() {
return { tabindex: -1 };
}
};
}
};
_paused = new WeakMap();
_container = new WeakMap();
_manager = new WeakMap();
_cleanupFns = new WeakMap();
_opts6 = new WeakMap();
_FocusScope_instances = new WeakSet();
cleanup_fn2 = function() {
for (const fn of __privateGet(this, _cleanupFns)) {
fn();
}
__privateSet(this, _cleanupFns, []);
};
handleOpenAutoFocus_fn = function() {
if (!__privateGet(this, _container)) return;
const event = new CustomEvent("focusScope.onOpenAutoFocus", { bubbles: false, cancelable: true });
__privateGet(this, _opts6).onOpenAutoFocus.current(event);
if (!event.defaultPrevented) {
requestAnimationFrame(() => {
if (!__privateGet(this, _container)) return;
const firstTabbable = __privateMethod(this, _FocusScope_instances, getFirstTabbable_fn).call(this);
if (firstTabbable) {
firstTabbable.focus();
__privateGet(this, _manager).setFocusMemory(this, firstTabbable);
} else {
__privateGet(this, _container).focus();
}
});
}
};
handleCloseAutoFocus_fn = function() {
var _a, _b;
const event = new CustomEvent("focusScope.onCloseAutoFocus", { bubbles: false, cancelable: true });
(_b = (_a = __privateGet(this, _opts6).onCloseAutoFocus).current) == null ? void 0 : _b.call(_a, event);
if (!event.defaultPrevented) {
const preFocusedElement = __privateGet(this, _manager).getPreFocusMemory(this);
if (preFocusedElement && document.contains(preFocusedElement)) {
try {
preFocusedElement.focus();
} catch {
document.body.focus();
}
}
}
};
setupEventListeners_fn = function() {
if (!__privateGet(this, _container) || !__privateGet(this, _opts6).trap.current) return;
const container = __privateGet(this, _container);
const doc = container.ownerDocument;
const handleFocus = (e) => {
if (__privateGet(this, _paused) || !__privateGet(this, _manager).isActiveScope(this)) return;
const target = e.target;
if (!target) return;
const isInside = container.contains(target);
if (isInside) {
__privateGet(this, _manager).setFocusMemory(this, target);
} else {
const lastFocused = __privateGet(this, _manager).getFocusMemory(this);
if (lastFocused && container.contains(lastFocused) && isFocusable(lastFocused)) {
e.preventDefault();
lastFocused.focus();
} else {
const firstTabbable = __privateMethod(this, _FocusScope_instances, getFirstTabbable_fn).call(this);
const firstFocusable = __privateMethod(this, _FocusScope_instances, getAllFocusables_fn).call(this)[0];
(firstTabbable || firstFocusable || container).focus();
}
}
};
const handleKeydown = (e) => {
if (!__privateGet(this, _opts6).loop || __privateGet(this, _paused) || strict_equals(e.key, "Tab", false)) return;
if (!__privateGet(this, _manager).isActiveScope(this)) return;
const tabbables = __privateMethod(this, _FocusScope_instances, getTabbables_fn).call(this);
if (strict_equals(tabbables.length, 0)) 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();
}
};
__privateGet(this, _cleanupFns).push(on(doc, "focusin", handleFocus, { capture: true }), on(container, "keydown", handleKeydown));
const observer = new MutationObserver(() => {
const lastFocused = __privateGet(this, _manager).getFocusMemory(this);
if (lastFocused && !container.contains(lastFocused)) {
const firstTabbable = __privateMethod(this, _FocusScope_instances, getFirstTabbable_fn).call(this);
const firstFocusable = __privateMethod(this, _FocusScope_instances, getAllFocusables_fn).call(this)[0];
const elementToFocus = firstTabbable || firstFocusable;
if (elementToFocus) {
elementToFocus.focus();
__privateGet(this, _manager).setFocusMemory(this, elementToFocus);
} else {
container.focus();
}
}
});
observer.observe(container, { childList: true, subtree: true });
__privateGet(this, _cleanupFns).push(() => observer.disconnect());
};
getTabbables_fn = function() {
if (!__privateGet(this, _container)) return [];
return tabbable(__privateGet(this, _container), { includeContainer: false, getShadowRoot: true });
};
getFirstTabbable_fn = function() {
const tabbables = __privateMethod(this, _FocusScope_instances, getTabbables_fn).call(this);
return tabbables[0] || null;
};
getAllFocusables_fn = function() {
if (!__privateGet(this, _container)) return [];
return focusable(__privateGet(this, _container), { includeContainer: false, getShadowRoot: true });
};
var FocusScope = _FocusScope;
// 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);
import.meta.hot.accept((module) => {
Focus_scope[HMR].update(module.default);
});
}
var focus_scope_default = Focus_scope;
// node_modules/bits-ui/dist/bits/utilities/text-selection-layer/use-text-selection-layer.svelte.js
globalThis.bitsTextSelectionLayers ?? (globalThis.bitsTextSelectionLayers = /* @__PURE__ */ new Map());
var _unsubSelectionLock, _TextSelectionLayerState_instances, addEventListeners_fn2, _pointerdown, _resetSelectionLock;
var _TextSelectionLayerState = class _TextSelectionLayerState {
constructor(opts) {
__privateAdd(this, _TextSelectionLayerState_instances);
__publicField(this, "opts");
__publicField(this, "domContext");
__privateAdd(this, _unsubSelectionLock, noop3);
__privateAdd(this, _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;
__privateSet(this, _unsubSelectionLock, preventTextSelectionOverflow(node, this.domContext.getDocument().body));
});
__privateAdd(this, _resetSelectionLock, () => {
__privateGet(this, _unsubSelectionLock).call(this);
__privateSet(this, _unsubSelectionLock, noop3);
});
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 = __privateMethod(this, _TextSelectionLayerState_instances, addEventListeners_fn2).call(this);
}
return () => {
unsubEvents();
__privateGet(this, _resetSelectionLock).call(this);
globalThis.bitsTextSelectionLayers.delete(this);
};
});
}
static create(opts) {
return new _TextSelectionLayerState(opts);
}
};
_unsubSelectionLock = new WeakMap();
_TextSelectionLayerState_instances = new WeakSet();
addEventListeners_fn2 = function() {
return executeCallbacks(on(this.domContext.getDocument(), "pointerdown", __privateGet(this, _pointerdown)), on(this.domContext.getDocument(), "pointerup", composeHandlers(__privateGet(this, _resetSelectionLock), this.opts.onPointerUp.current)));
};
_pointerdown = new WeakMap();
_resetSelectionLock = new WeakMap();
var TextSelectionLayerState = _TextSelectionLayerState;
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);
import.meta.hot.accept((module) => {
Text_selection_layer[HMR].update(module.default);
});
}
var text_selection_layer_default = Text_selection_layer;
// node_modules/bits-ui/dist/internal/use-id.js
globalThis.bitsIdCounter ?? (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 _factory, _subscribers, _state, _scope, _SharedState_instances, dispose_fn;
var SharedState = class {
constructor(factory) {
__privateAdd(this, _SharedState_instances);
__privateAdd(this, _factory);
__privateAdd(this, _subscribers, 0);
__privateAdd(this, _state, tag(state(), "SharedState.#state"));
__privateAdd(this, _scope);
__privateSet(this, _factory, factory);
}
get(...args) {
__privateSet(this, _subscribers, __privateGet(this, _subscribers) + 1);
if (strict_equals(get(__privateGet(this, _state)), void 0)) {
__privateSet(this, _scope, effect_root(() => {
set(__privateGet(this, _state), __privateGet(this, _factory).call(this, ...args), true);
}));
}
user_effect(() => {
return () => {
__privateMethod(this, _SharedState_instances, dispose_fn).call(this);
};
});
return get(__privateGet(this, _state));
}
};
_factory = new WeakMap();
_subscribers = new WeakMap();
_state = new WeakMap();
_scope = new WeakMap();
_SharedState_instances = new WeakSet();
dispose_fn = function() {
__privateSet(this, _subscribers, __privateGet(this, _subscribers) - 1);
if (__privateGet(this, _scope) && __privateGet(this, _subscribers) <= 0) {
__privateGet(this, _scope).call(this);
set(__privateGet(this, _state), void 0);
__privateSet(this, _scope, void 0);
}
};
// 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 == null ? void 0 : 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, () => {
var _a, _b;
if (!anyLocked.current) return;
ensureInitialStyleCaptured();
isInCleanupTransition = false;
const htmlStyle = getComputedStyle(document.documentElement);
const bodyStyle = getComputedStyle(document.body);
const hasStableGutter = ((_a = htmlStyle.scrollbarGutter) == null ? void 0 : _a.includes("stable")) || ((_b = bodyStyle.scrollbarGutter) == null ? void 0 : _b.includes("stable"));
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 && !hasStableGutter) {
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 == null ? void 0 : stopTouchMoveListener();
};
});
return {
get lockMap() {
return lockMap;
},
resetBodyStyle,
scheduleCleanupIfNoNewLocks,
cancelPendingCleanup,
ensureInitialStyleCaptured
};
});
var _id, _initialState, _restoreScrollDelay, _countState;
var BodyScrollLock = class {
constructor(initialState, restoreScrollDelay = () => null) {
__privateAdd(this, _id, useId());
__privateAdd(this, _initialState);
__privateAdd(this, _restoreScrollDelay, () => null);
__privateAdd(this, _countState);
__publicField(this, "locked");
__privateSet(this, _initialState, initialState);
__privateSet(this, _restoreScrollDelay, restoreScrollDelay);
__privateSet(this, _countState, bodyLockStackCount.get());
if (!__privateGet(this, _countState)) return;
__privateGet(this, _countState).cancelPendingCleanup();
__privateGet(this, _countState).ensureInitialStyleCaptured();
__privateGet(this, _countState).lockMap.set(__privateGet(this, _id), __privateGet(this, _initialState) ?? false);
this.locked = boxWith(() => __privateGet(this, _countState).lockMap.get(__privateGet(this, _id)) ?? false, (v) => __privateGet(this, _countState).lockMap.set(__privateGet(this, _id), v));
onDestroyEffect(() => {
__privateGet(this, _countState).lockMap.delete(__privateGet(this, _id));
if (isAnyLocked(__privateGet(this, _countState).lockMap)) return;
const restoreScrollDelay2 = __privateGet(this, _restoreScrollDelay).call(this);
__privateGet(this, _countState).scheduleCleanupIfNoNewLocks(restoreScrollDelay2, () => {
__privateGet(this, _countState).resetBodyStyle();
});
});
}
};
_id = new WeakMap();
_initialState = new WeakMap();
_restoreScrollDelay = new WeakMap();
_countState = new WeakMap();
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);
import.meta.hot.accept((module) => {
Scroll_lock[HMR].update(module.default);
});
}
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 == null ? void 0 : $$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, () => {
var _a;
return (_a = contentState.opts.ref.current) == null ? void 0 : _a.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);
import.meta.hot.accept((module) => {
Alert_dialog_content[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Dialog_overlay[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Dialog_trigger[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Dialog_description[HMR].update(module.default);
});
}
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 _props28;
var _AspectRatioRootState = class _AspectRatioRootState {
constructor(opts) {
__publicField(this, "opts");
__publicField(this, "attachment");
__privateAdd(this, _props28, 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"
));
this.opts = opts;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _AspectRatioRootState(opts);
}
get props() {
return get(__privateGet(this, _props28));
}
set props(value) {
set(__privateGet(this, _props28), value);
}
};
_props28 = new WeakMap();
var AspectRatioRootState = _AspectRatioRootState;
// 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);
import.meta.hot.accept((module) => {
Aspect_ratio[HMR].update(module.default);
});
}
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 _props29;
var _AvatarRootState = class _AvatarRootState {
constructor(opts) {
__publicField(this, "opts");
__publicField(this, "domContext");
__publicField(this, "attachment");
__privateAdd(this, _props29, tag(
user_derived(() => ({
id: this.opts.id.current,
[avatarAttrs.root]: "",
"data-status": this.opts.loadingStatus.current,
...this.attachment
})),
"AvatarRootState.props"
));
this.opts = opts;
this.domContext = new DOMContext(this.opts.ref);
this.loadImage = this.loadImage.bind(this);
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return AvatarRootContext.set(new _AvatarRootState(opts));
}
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);
};
}
get props() {
return get(__privateGet(this, _props29));
}
set props(value) {
set(__privateGet(this, _props29), value);
}
};
_props29 = new WeakMap();
var AvatarRootState = _AvatarRootState;
var _props30;
var _AvatarImageState = class _AvatarImageState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props30, 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"
));
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);
}
);
}
static create(opts) {
return new _AvatarImageState(opts, AvatarRootContext.get());
}
get props() {
return get(__privateGet(this, _props30));
}
set props(value) {
set(__privateGet(this, _props30), value);
}
};
_props30 = new WeakMap();
var AvatarImageState = _AvatarImageState;
var _style, _props31;
var _AvatarFallbackState = class _AvatarFallbackState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _style, tag(user_derived(() => strict_equals(this.root.opts.loadingStatus.current, "loaded") ? { display: "none" } : void 0), "AvatarFallbackState.style"));
__privateAdd(this, _props31, tag(
user_derived(() => ({
style: this.style,
"data-status": this.root.opts.loadingStatus.current,
[avatarAttrs.fallback]: "",
...this.attachment
})),
"AvatarFallbackState.props"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _AvatarFallbackState(opts, AvatarRootContext.get());
}
get style() {
return get(__privateGet(this, _style));
}
set style(value) {
set(__privateGet(this, _style), value);
}
get props() {
return get(__privateGet(this, _props31));
}
set props(value) {
set(__privateGet(this, _props31), value);
}
};
_style = new WeakMap();
_props31 = new WeakMap();
var AvatarFallbackState = _AvatarFallbackState;
// 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) => {
var _a;
if (strict_equals(loadingStatus(), v, false)) {
loadingStatus(v);
(_a = $$props.onLoadingStatusChange) == null ? void 0 : _a.call($$props, 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);
import.meta.hot.accept((module) => {
Avatar[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Avatar_image[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Avatar_fallback[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Bits_config[HMR].update(module.default);
});
}
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_dynamic_element_tag(() => $$props.href ? "a" : "button");
validate_void_dynamic_element(() => $$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);
import.meta.hot.accept((module) => {
Button[HMR].update(module.default);
});
}
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;
}
getMaximumMonthsInYear() {
return 12;
}
getMaximumDaysInMonth() {
return 31;
}
// 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$ABSOLUTE_RE = /^([+-]\d{6}|\d{4})-(\d{2})-(\d{2})(?:T(\d{2}))?(?::(\d{2}))?(?::(\d{2}))?(\.\d+)?(?:(?:([+-]\d{2})(?::?(\d{2}))?)|Z)$/;
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) {
if ($fae977aafc393c5c$var$ABSOLUTE_RE.test(value)) throw new Error(`Invalid ISO 8601 date string: ${value}. Use parseAbsolute() instead.`);
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) {
if ($fae977aafc393c5c$var$ABSOLUTE_RE.test(value)) throw new Error(`Invalid ISO 8601 date time string: ${value}. Use parseAbsolute() instead.`);
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 == null ? void 0 : log.replaceChildren(content);
} else {
log == null ? void 0 : 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 == null ? void 0 : isDisabled(dCurrent)) || (isUnavailable == null ? void 0 : isUnavailable(dCurrent))) {
return false;
}
const dEnd = end;
while (dCurrent.compare(dEnd) < 0) {
dCurrent = dCurrent.add({ days: 1 });
if ((isDisabled == null ? void 0 : isDisabled(dCurrent)) || (isUnavailable == null ? void 0 : 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 == null ? void 0 : 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 == null ? void 0 : 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 == null ? void 0 : 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 index2 = segments.indexOf(node);
if (index2 === segments.length - 1 || index2 === -1)
return null;
const nextIndex = index2 + 1;
const nextSegment = segments[nextIndex];
return nextSegment;
}
function getPrevSegment(node, segments) {
const index2 = segments.indexOf(node);
if (index2 === 0 || index2 === -1)
return null;
const prevIndex = index2 - 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 == null ? void 0 : 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) {
var _a;
const parts = new $fb18d541ea1ad717$export$ad991b66133851cf(locale, {
hour: "numeric",
minute: "numeric",
hourCycle: hourCycle === 24 ? "h23" : void 0
}).formatToParts(date);
const value = (_a = parts.find((p2) => p2.type === "dayPeriod")) == null ? void 0 : _a.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) {
var _a;
const parts = new $fb18d541ea1ad717$export$ad991b66133851cf(locale, {
hour: "numeric",
minute: "numeric",
hourCycle: hourCycle === 24 ? "h23" : void 0
}).formatToParts(date);
const value = (_a = parts.find((p2) => p2.type === "dayPeriod")) == null ? void 0 : _a.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
}) {
var _a, _b;
const candidateCells = getSelectableCells(calendarNode);
if (!candidateCells.length) return;
const index2 = candidateCells.indexOf(node);
const nextIndex = index2 + add;
if (isValidIndex(nextIndex, candidateCells)) {
const nextCell = candidateCells[nextIndex];
setPlaceholderToNodeValue(nextCell, placeholder);
return nextCell.focus();
}
if (nextIndex < 0) {
if (isPrevButtonDisabled) return;
const firstMonth = (_a = months[0]) == null ? void 0 : _a.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 = (_b = months[0]) == null ? void 0 : _b.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
}) {
var _a;
const firstMonth = (_a = months[0]) == null ? void 0 : _a.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
}) {
var _a;
const firstMonth = (_a = months[0]) == null ? void 0 : _a.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 () => {
var _a;
const h22 = doc.getElementById(accessibleHeadingId);
if (!h22) return;
(_a = div.parentElement) == null ? void 0 : _a.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 }) {
var _a;
if (!maxValue || !months.length) return false;
if (disabled) return true;
const lastMonthInView = (_a = months[months.length - 1]) == null ? void 0 : _a.value;
if (!lastMonthInView) return false;
const firstMonthOfNextPage = lastMonthInView.add({ months: 1 }).set({ day: 1 });
return isAfter(firstMonthOfNextPage, maxValue);
}
function getIsPrevButtonDisabled({ minValue, months, disabled }) {
var _a;
if (!minValue || !months.length) return false;
if (disabled) return true;
const firstMonthInView = (_a = months[0]) == null ? void 0 : _a.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 == null ? void 0 : 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 == null ? void 0 : element2.getAttribute("data-value");
const type = element2 == null ? void 0 : 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 _visibleMonths, _months, _weekdays, _initialPlaceholderYear, _defaultYears, _CalendarRootState_instances, setupInitialFocusEffect_fn, setupAccessibleHeadingEffect_fn, setupFormatterEffect_fn, _isNextButtonDisabled, _isPrevButtonDisabled, _isInvalid, _headingValue, _fullCalendarLabel, isMultipleSelectionValid_fn, _snippetProps6, _props32;
var _CalendarRootState = class _CalendarRootState {
constructor(opts) {
__privateAdd(this, _CalendarRootState_instances);
__publicField(this, "opts");
__privateAdd(this, _visibleMonths, tag(user_derived(() => this.months.map((month) => month.value)), "CalendarRootState.visibleMonths"));
__publicField(this, "formatter");
__publicField(this, "accessibleHeadingId", useId());
__publicField(this, "domContext");
__publicField(this, "attachment");
__privateAdd(this, _months, tag(state(proxy([])), "CalendarRootState.months"));
__publicField(this, "announcer");
__privateAdd(this, _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"
));
__privateAdd(this, _initialPlaceholderYear, tag(user_derived(() => untrack(() => this.opts.placeholder.current.year)), "CalendarRootState.initialPlaceholderYear"));
__privateAdd(this, _defaultYears, tag(
user_derived(() => {
return getDefaultYears({
minValue: this.opts.minValue.current,
maxValue: this.opts.maxValue.current,
placeholderYear: this.initialPlaceholderYear
});
}),
"CalendarRootState.defaultYears"
));
__privateAdd(this, _isNextButtonDisabled, tag(
user_derived(() => {
return getIsNextButtonDisabled({
maxValue: this.opts.maxValue.current,
months: this.months,
disabled: this.opts.disabled.current
});
}),
"CalendarRootState.isNextButtonDisabled"
));
__privateAdd(this, _isPrevButtonDisabled, tag(
user_derived(() => {
return getIsPrevButtonDisabled({
minValue: this.opts.minValue.current,
months: this.months,
disabled: this.opts.disabled.current
});
}),
"CalendarRootState.isPrevButtonDisabled"
));
__privateAdd(this, _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"
));
__privateAdd(this, _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"
));
__privateAdd(this, _fullCalendarLabel, tag(
user_derived(() => {
return `${this.opts.calendarLabel.current} ${this.headingValue}`;
}),
"CalendarRootState.fullCalendarLabel"
));
__privateAdd(this, _snippetProps6, tag(user_derived(() => ({ months: this.months, weekdays: this.weekdays })), "CalendarRootState.snippetProps"));
__publicField(this, "getBitsAttr", (part) => {
return calendarAttrs.getAttr(part);
});
__privateAdd(this, _props32, 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"
));
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
});
__privateMethod(this, _CalendarRootState_instances, setupInitialFocusEffect_fn).call(this);
__privateMethod(this, _CalendarRootState_instances, setupAccessibleHeadingEffect_fn).call(this);
__privateMethod(this, _CalendarRootState_instances, setupFormatterEffect_fn).call(this);
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
});
}
static create(opts) {
return CalendarRootContext.set(new _CalendarRootState(opts));
}
get visibleMonths() {
return get(__privateGet(this, _visibleMonths));
}
set visibleMonths(value) {
set(__privateGet(this, _visibleMonths), value);
}
get months() {
return get(__privateGet(this, _months));
}
set months(value) {
set(__privateGet(this, _months), value, true);
}
setMonths(months) {
this.months = months;
}
get weekdays() {
return get(__privateGet(this, _weekdays));
}
set weekdays(value) {
set(__privateGet(this, _weekdays), value);
}
get initialPlaceholderYear() {
return get(__privateGet(this, _initialPlaceholderYear));
}
set initialPlaceholderYear(value) {
set(__privateGet(this, _initialPlaceholderYear), value);
}
get defaultYears() {
return get(__privateGet(this, _defaultYears));
}
set defaultYears(value) {
set(__privateGet(this, _defaultYears), value);
}
/**
* 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 });
}
get isNextButtonDisabled() {
return get(__privateGet(this, _isNextButtonDisabled));
}
set isNextButtonDisabled(value) {
set(__privateGet(this, _isNextButtonDisabled), value);
}
get isPrevButtonDisabled() {
return get(__privateGet(this, _isPrevButtonDisabled));
}
set isPrevButtonDisabled(value) {
set(__privateGet(this, _isPrevButtonDisabled), value);
}
get isInvalid() {
return get(__privateGet(this, _isInvalid));
}
set isInvalid(value) {
set(__privateGet(this, _isInvalid), value);
}
get headingValue() {
return get(__privateGet(this, _headingValue));
}
set headingValue(value) {
set(__privateGet(this, _headingValue), value);
}
get fullCalendarLabel() {
return get(__privateGet(this, _fullCalendarLabel));
}
set fullCalendarLabel(value) {
set(__privateGet(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
});
}
handleCellClick(_, date) {
var _a, _b, _c, _d, _e, _f;
if (this.opts.readonly.current || ((_b = (_a = this.opts.isDateDisabled).current) == null ? void 0 : _b.call(_a, date)) || ((_d = (_c = this.opts.isDateUnavailable).current) == null ? void 0 : _d.call(_c, 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)) {
(_f = (_e = this.opts.onDateSelect) == null ? void 0 : _e.current) == null ? void 0 : _f.call(_e);
}
}
}
handleMultipleUpdate(prev2, date) {
if (!prev2) {
const newSelection = [date];
return __privateMethod(this, _CalendarRootState_instances, isMultipleSelectionValid_fn).call(this, newSelection) ? newSelection : [date];
}
if (!Array.isArray(prev2)) {
if (true_default) throw new Error("Invalid value for multiple prop.");
return;
}
const index2 = prev2.findIndex((d) => $14e0f24ef4ac5c92$export$ea39ec197993aef0(d, date));
const preventDeselect = this.opts.preventDeselect.current;
if (strict_equals(index2, -1)) {
const newSelection = [...prev2, date];
if (__privateMethod(this, _CalendarRootState_instances, isMultipleSelectionValid_fn).call(this, 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
});
}
get snippetProps() {
return get(__privateGet(this, _snippetProps6));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps6), value);
}
get props() {
return get(__privateGet(this, _props32));
}
set props(value) {
set(__privateGet(this, _props32), value);
}
};
_visibleMonths = new WeakMap();
_months = new WeakMap();
_weekdays = new WeakMap();
_initialPlaceholderYear = new WeakMap();
_defaultYears = new WeakMap();
_CalendarRootState_instances = new WeakSet();
setupInitialFocusEffect_fn = function() {
user_effect(() => {
var _a;
const initialFocus = untrack(() => this.opts.initialFocus.current);
if (initialFocus) {
const firstFocusedDay = (_a = this.opts.ref.current) == null ? void 0 : _a.querySelector(`[data-focused]`);
if (firstFocusedDay) {
firstFocusedDay.focus();
}
}
});
};
setupAccessibleHeadingEffect_fn = function() {
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_fn = function() {
user_pre_effect(() => {
if (strict_equals(this.formatter.getLocale(), this.opts.locale.current)) return;
this.formatter.setLocale(this.opts.locale.current);
});
};
_isNextButtonDisabled = new WeakMap();
_isPrevButtonDisabled = new WeakMap();
_isInvalid = new WeakMap();
_headingValue = new WeakMap();
_fullCalendarLabel = new WeakMap();
isMultipleSelectionValid_fn = function(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;
};
_snippetProps6 = new WeakMap();
_props32 = new WeakMap();
var CalendarRootState = _CalendarRootState;
var _props33;
var _CalendarHeadingState = class _CalendarHeadingState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props33, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarHeadingState(opts, CalendarRootContext.get());
}
get props() {
return get(__privateGet(this, _props33));
}
set props(value) {
set(__privateGet(this, _props33), value);
}
};
_props33 = new WeakMap();
var CalendarHeadingState = _CalendarHeadingState;
var CalendarCellContext = new Context("Calendar.Cell | RangeCalendar.Cell");
var _cellDate, _isUnavailable, _isDateToday, _isOutsideMonth, _isOutsideVisibleMonths, _isDisabled3, _isFocusedDate, _isSelectedDate, _labelText, _snippetProps7, _ariaDisabled, _sharedDataAttrs, _props34;
var _CalendarCellState = class _CalendarCellState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__privateAdd(this, _cellDate, tag(user_derived(() => toDate(this.opts.date.current)), "CalendarCellState.cellDate"));
__privateAdd(this, _isUnavailable, tag(user_derived(() => this.root.opts.isDateUnavailable.current(this.opts.date.current)), "CalendarCellState.isUnavailable"));
__privateAdd(this, _isDateToday, tag(user_derived(() => $14e0f24ef4ac5c92$export$629b0a497aa65267(this.opts.date.current, $14e0f24ef4ac5c92$export$aa8b41735afcabd2())), "CalendarCellState.isDateToday"));
__privateAdd(this, _isOutsideMonth, tag(user_derived(() => !$14e0f24ef4ac5c92$export$a18c89cbd24170ff(this.opts.date.current, this.opts.month.current)), "CalendarCellState.isOutsideMonth"));
__privateAdd(this, _isOutsideVisibleMonths, tag(user_derived(() => this.root.isOutsideVisibleMonths(this.opts.date.current)), "CalendarCellState.isOutsideVisibleMonths"));
__privateAdd(this, _isDisabled3, tag(user_derived(() => this.root.isDateDisabled(this.opts.date.current) || this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current), "CalendarCellState.isDisabled"));
__privateAdd(this, _isFocusedDate, tag(user_derived(() => $14e0f24ef4ac5c92$export$ea39ec197993aef0(this.opts.date.current, this.root.opts.placeholder.current)), "CalendarCellState.isFocusedDate"));
__privateAdd(this, _isSelectedDate, tag(user_derived(() => this.root.isDateSelected(this.opts.date.current)), "CalendarCellState.isSelectedDate"));
__privateAdd(this, _labelText, tag(
user_derived(() => this.root.formatter.custom(this.cellDate, {
weekday: "long",
month: "long",
day: "numeric",
year: "numeric"
})),
"CalendarCellState.labelText"
));
__publicField(this, "attachment");
__privateAdd(this, _snippetProps7, tag(
user_derived(() => ({
disabled: this.isDisabled,
unavailable: this.isUnavailable,
selected: this.isSelectedDate,
day: `${this.opts.date.current.day}`
})),
"CalendarCellState.snippetProps"
));
__privateAdd(this, _ariaDisabled, tag(
user_derived(() => {
return this.isDisabled || this.isOutsideMonth && this.root.opts.disableDaysOutsideMonth.current || this.isUnavailable;
}),
"CalendarCellState.ariaDisabled"
));
__privateAdd(this, _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"
));
__privateAdd(this, _props34, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return CalendarCellContext.set(new _CalendarCellState(opts, CalendarRootContext.get()));
}
get cellDate() {
return get(__privateGet(this, _cellDate));
}
set cellDate(value) {
set(__privateGet(this, _cellDate), value);
}
get isUnavailable() {
return get(__privateGet(this, _isUnavailable));
}
set isUnavailable(value) {
set(__privateGet(this, _isUnavailable), value);
}
get isDateToday() {
return get(__privateGet(this, _isDateToday));
}
set isDateToday(value) {
set(__privateGet(this, _isDateToday), value);
}
get isOutsideMonth() {
return get(__privateGet(this, _isOutsideMonth));
}
set isOutsideMonth(value) {
set(__privateGet(this, _isOutsideMonth), value);
}
get isOutsideVisibleMonths() {
return get(__privateGet(this, _isOutsideVisibleMonths));
}
set isOutsideVisibleMonths(value) {
set(__privateGet(this, _isOutsideVisibleMonths), value);
}
get isDisabled() {
return get(__privateGet(this, _isDisabled3));
}
set isDisabled(value) {
set(__privateGet(this, _isDisabled3), value);
}
get isFocusedDate() {
return get(__privateGet(this, _isFocusedDate));
}
set isFocusedDate(value) {
set(__privateGet(this, _isFocusedDate), value);
}
get isSelectedDate() {
return get(__privateGet(this, _isSelectedDate));
}
set isSelectedDate(value) {
set(__privateGet(this, _isSelectedDate), value);
}
get labelText() {
return get(__privateGet(this, _labelText));
}
set labelText(value) {
set(__privateGet(this, _labelText), value);
}
get snippetProps() {
return get(__privateGet(this, _snippetProps7));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps7), value);
}
get ariaDisabled() {
return get(__privateGet(this, _ariaDisabled));
}
set ariaDisabled(value) {
set(__privateGet(this, _ariaDisabled), value);
}
get sharedDataAttrs() {
return get(__privateGet(this, _sharedDataAttrs));
}
set sharedDataAttrs(value) {
set(__privateGet(this, _sharedDataAttrs), value);
}
get props() {
return get(__privateGet(this, _props34));
}
set props(value) {
set(__privateGet(this, _props34), value);
}
};
_cellDate = new WeakMap();
_isUnavailable = new WeakMap();
_isDateToday = new WeakMap();
_isOutsideMonth = new WeakMap();
_isOutsideVisibleMonths = new WeakMap();
_isDisabled3 = new WeakMap();
_isFocusedDate = new WeakMap();
_isSelectedDate = new WeakMap();
_labelText = new WeakMap();
_snippetProps7 = new WeakMap();
_ariaDisabled = new WeakMap();
_sharedDataAttrs = new WeakMap();
_props34 = new WeakMap();
var CalendarCellState = _CalendarCellState;
var _tabindex, _snippetProps8, _props35;
var _CalendarDayState = class _CalendarDayState {
constructor(opts, cell) {
__publicField(this, "opts");
__publicField(this, "cell");
__publicField(this, "attachment");
__privateAdd(this, _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"));
__privateAdd(this, _snippetProps8, tag(
user_derived(() => ({
disabled: this.cell.isDisabled,
unavailable: this.cell.isUnavailable,
selected: this.cell.isSelectedDate,
day: `${this.cell.opts.date.current.day}`
})),
"CalendarDayState.snippetProps"
));
__privateAdd(this, _props35, 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(__privateGet(this, _tabindex)),
[this.cell.root.getBitsAttr("day")]: "",
"data-bits-day": "",
onclick: this.onclick,
...this.attachment
})),
"CalendarDayState.props"
));
this.opts = opts;
this.cell = cell;
this.onclick = this.onclick.bind(this);
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarDayState(opts, CalendarCellContext.get());
}
onclick(e) {
if (this.cell.isDisabled) return;
this.cell.root.handleCellClick(e, this.cell.opts.date.current);
}
get snippetProps() {
return get(__privateGet(this, _snippetProps8));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps8), value);
}
get props() {
return get(__privateGet(this, _props35));
}
set props(value) {
set(__privateGet(this, _props35), value);
}
};
_tabindex = new WeakMap();
_snippetProps8 = new WeakMap();
_props35 = new WeakMap();
var CalendarDayState = _CalendarDayState;
var _isDisabled4, _props36;
var _CalendarNextButtonState = class _CalendarNextButtonState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__privateAdd(this, _isDisabled4, tag(user_derived(() => this.root.isNextButtonDisabled), "CalendarNextButtonState.isDisabled"));
__publicField(this, "attachment");
__privateAdd(this, _props36, 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"
));
this.opts = opts;
this.root = root18;
this.onclick = this.onclick.bind(this);
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarNextButtonState(opts, CalendarRootContext.get());
}
get isDisabled() {
return get(__privateGet(this, _isDisabled4));
}
set isDisabled(value) {
set(__privateGet(this, _isDisabled4), value);
}
onclick(_) {
if (this.isDisabled) return;
this.root.nextPage();
}
get props() {
return get(__privateGet(this, _props36));
}
set props(value) {
set(__privateGet(this, _props36), value);
}
};
_isDisabled4 = new WeakMap();
_props36 = new WeakMap();
var CalendarNextButtonState = _CalendarNextButtonState;
var _isDisabled5, _props37;
var _CalendarPrevButtonState = class _CalendarPrevButtonState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__privateAdd(this, _isDisabled5, tag(user_derived(() => this.root.isPrevButtonDisabled), "CalendarPrevButtonState.isDisabled"));
__publicField(this, "attachment");
__privateAdd(this, _props37, 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"
));
this.opts = opts;
this.root = root18;
this.onclick = this.onclick.bind(this);
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarPrevButtonState(opts, CalendarRootContext.get());
}
get isDisabled() {
return get(__privateGet(this, _isDisabled5));
}
set isDisabled(value) {
set(__privateGet(this, _isDisabled5), value);
}
onclick(_) {
if (this.isDisabled) return;
this.root.prevPage();
}
get props() {
return get(__privateGet(this, _props37));
}
set props(value) {
set(__privateGet(this, _props37), value);
}
};
_isDisabled5 = new WeakMap();
_props37 = new WeakMap();
var CalendarPrevButtonState = _CalendarPrevButtonState;
var _props38;
var _CalendarGridState = class _CalendarGridState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props38, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarGridState(opts, CalendarRootContext.get());
}
get props() {
return get(__privateGet(this, _props38));
}
set props(value) {
set(__privateGet(this, _props38), value);
}
};
_props38 = new WeakMap();
var CalendarGridState = _CalendarGridState;
var _props39;
var _CalendarGridBodyState = class _CalendarGridBodyState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props39, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarGridBodyState(opts, CalendarRootContext.get());
}
get props() {
return get(__privateGet(this, _props39));
}
set props(value) {
set(__privateGet(this, _props39), value);
}
};
_props39 = new WeakMap();
var CalendarGridBodyState = _CalendarGridBodyState;
var _props40;
var _CalendarGridHeadState = class _CalendarGridHeadState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props40, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarGridHeadState(opts, CalendarRootContext.get());
}
get props() {
return get(__privateGet(this, _props40));
}
set props(value) {
set(__privateGet(this, _props40), value);
}
};
_props40 = new WeakMap();
var CalendarGridHeadState = _CalendarGridHeadState;
var _props41;
var _CalendarGridRowState = class _CalendarGridRowState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props41, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarGridRowState(opts, CalendarRootContext.get());
}
get props() {
return get(__privateGet(this, _props41));
}
set props(value) {
set(__privateGet(this, _props41), value);
}
};
_props41 = new WeakMap();
var CalendarGridRowState = _CalendarGridRowState;
var _props42;
var _CalendarHeadCellState = class _CalendarHeadCellState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props42, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarHeadCellState(opts, CalendarRootContext.get());
}
get props() {
return get(__privateGet(this, _props42));
}
set props(value) {
set(__privateGet(this, _props42), value);
}
};
_props42 = new WeakMap();
var CalendarHeadCellState = _CalendarHeadCellState;
var _props43;
var _CalendarHeaderState = class _CalendarHeaderState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _props43, 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"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarHeaderState(opts, CalendarRootContext.get());
}
get props() {
return get(__privateGet(this, _props43));
}
set props(value) {
set(__privateGet(this, _props43), value);
}
};
_props43 = new WeakMap();
var CalendarHeaderState = _CalendarHeaderState;
var _monthItems, _currentMonth, _isDisabled6, _snippetProps9, _props44;
var _CalendarMonthSelectState = class _CalendarMonthSelectState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _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"
));
__privateAdd(this, _currentMonth, tag(user_derived(() => this.root.opts.placeholder.current.month), "CalendarMonthSelectState.currentMonth"));
__privateAdd(this, _isDisabled6, tag(user_derived(() => this.root.opts.disabled.current || this.opts.disabled.current), "CalendarMonthSelectState.isDisabled"));
__privateAdd(this, _snippetProps9, tag(
user_derived(() => {
return {
monthItems: this.monthItems,
selectedMonthItem: this.monthItems.find((month) => strict_equals(month.value, this.currentMonth))
};
}),
"CalendarMonthSelectState.snippetProps"
));
__privateAdd(this, _props44, 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"
));
this.opts = opts;
this.root = root18;
this.onchange = this.onchange.bind(this);
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarMonthSelectState(opts, CalendarRootContext.get());
}
get monthItems() {
return get(__privateGet(this, _monthItems));
}
set monthItems(value) {
set(__privateGet(this, _monthItems), value);
}
get currentMonth() {
return get(__privateGet(this, _currentMonth));
}
set currentMonth(value) {
set(__privateGet(this, _currentMonth), value);
}
get isDisabled() {
return get(__privateGet(this, _isDisabled6));
}
set isDisabled(value) {
set(__privateGet(this, _isDisabled6), value);
}
get snippetProps() {
return get(__privateGet(this, _snippetProps9));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps9), 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 });
}
}
get props() {
return get(__privateGet(this, _props44));
}
set props(value) {
set(__privateGet(this, _props44), value);
}
};
_monthItems = new WeakMap();
_currentMonth = new WeakMap();
_isDisabled6 = new WeakMap();
_snippetProps9 = new WeakMap();
_props44 = new WeakMap();
var CalendarMonthSelectState = _CalendarMonthSelectState;
var _years, _yearItems, _currentYear, _isDisabled7, _snippetProps10, _props45;
var _CalendarYearSelectState = class _CalendarYearSelectState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _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"
));
__privateAdd(this, _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"
));
__privateAdd(this, _currentYear, tag(user_derived(() => this.root.opts.placeholder.current.year), "CalendarYearSelectState.currentYear"));
__privateAdd(this, _isDisabled7, tag(user_derived(() => this.root.opts.disabled.current || this.opts.disabled.current), "CalendarYearSelectState.isDisabled"));
__privateAdd(this, _snippetProps10, tag(
user_derived(() => {
return {
yearItems: this.yearItems,
selectedYearItem: this.yearItems.find((year) => strict_equals(year.value, this.currentYear))
};
}),
"CalendarYearSelectState.snippetProps"
));
__privateAdd(this, _props45, 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"
));
this.opts = opts;
this.root = root18;
this.onchange = this.onchange.bind(this);
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return new _CalendarYearSelectState(opts, CalendarRootContext.get());
}
get years() {
return get(__privateGet(this, _years));
}
set years(value) {
set(__privateGet(this, _years), value);
}
get yearItems() {
return get(__privateGet(this, _yearItems));
}
set yearItems(value) {
set(__privateGet(this, _yearItems), value);
}
get currentYear() {
return get(__privateGet(this, _currentYear));
}
set currentYear(value) {
set(__privateGet(this, _currentYear), value);
}
get isDisabled() {
return get(__privateGet(this, _isDisabled7));
}
set isDisabled(value) {
set(__privateGet(this, _isDisabled7), value);
}
get snippetProps() {
return get(__privateGet(this, _snippetProps10));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps10), 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 });
}
}
get props() {
return get(__privateGet(this, _props45));
}
set props(value) {
set(__privateGet(this, _props45), value);
}
};
_years = new WeakMap();
_yearItems = new WeakMap();
_currentYear = new WeakMap();
_isDisabled7 = new WeakMap();
_snippetProps10 = new WeakMap();
_props45 = new WeakMap();
var CalendarYearSelectState = _CalendarYearSelectState;
// 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);
import.meta.hot.accept((module) => {
Calendar[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_day[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_grid[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_grid_body[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_cell[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_grid_head[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_head_cell[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_grid_row[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_header[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_heading[HMR].update(module.default);
});
}
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 select_content = add_locations(from_html(``, 1), Calendar_month_select[FILENAME], []);
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) }));
customizable_select(select, () => {
var anchor = child(select);
var fragment_2 = select_content();
var node_2 = first_child(fragment_2);
{
var consequent_1 = ($$anchor3) => {
var fragment_3 = comment();
var node_3 = first_child(fragment_3);
add_svelte_meta(() => snippet(node_3, () => $$props.children ?? noop, () => monthSelectState.snippetProps), "render", Calendar_month_select, 42, 3);
append($$anchor3, fragment_3);
};
var alternate = ($$anchor3) => {
var fragment_4 = comment();
var node_4 = first_child(fragment_4);
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_4);
};
add_svelte_meta(
() => if_block(node_2, ($$render) => {
if ($$props.children) $$render(consequent_1);
else $$render(alternate, false);
}),
"if",
Calendar_month_select,
41,
2
);
}
append(anchor, fragment_2);
});
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);
import.meta.hot.accept((module) => {
Calendar_month_select[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_next_button[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Calendar_prev_button[HMR].update(module.default);
});
}
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 select_content2 = add_locations(from_html(``, 1), Calendar_year_select[FILENAME], []);
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) }));
customizable_select(select, () => {
var anchor = child(select);
var fragment_2 = select_content2();
var node_2 = first_child(fragment_2);
{
var consequent_1 = ($$anchor3) => {
var fragment_3 = comment();
var node_3 = first_child(fragment_3);
add_svelte_meta(() => snippet(node_3, () => $$props.children ?? noop, () => yearSelectState.snippetProps), "render", Calendar_year_select, 42, 3);
append($$anchor3, fragment_3);
};
var alternate = ($$anchor3) => {
var fragment_4 = comment();
var node_4 = first_child(fragment_4);
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_4);
};
add_svelte_meta(
() => if_block(node_2, ($$render) => {
if ($$props.children) $$render(consequent_1);
else $$render(alternate, false);
}),
"if",
Calendar_year_select,
41,
2
);
}
append(anchor, fragment_2);
});
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);
import.meta.hot.accept((module) => {
Calendar_year_select[HMR].update(module.default);
});
}
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 _labelId, _props46;
var _CheckboxGroupState = class _CheckboxGroupState {
constructor(opts) {
__publicField(this, "opts");
__publicField(this, "attachment");
__privateAdd(this, _labelId, tag(state(void 0), "CheckboxGroupState.labelId"));
__privateAdd(this, _props46, 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"
));
this.opts = opts;
this.attachment = attachRef(this.opts.ref);
}
static create(opts) {
return CheckboxGroupContext.set(new _CheckboxGroupState(opts));
}
get labelId() {
return get(__privateGet(this, _labelId));
}
set labelId(value) {
set(__privateGet(this, _labelId), value, true);
}
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 index2 = this.opts.value.current.indexOf(checkboxValue);
if (strict_equals(index2, -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);
}
get props() {
return get(__privateGet(this, _props46));
}
set props(value) {
set(__privateGet(this, _props46), value);
}
};
_labelId = new WeakMap();
_props46 = new WeakMap();
var CheckboxGroupState = _CheckboxGroupState;
var _props47;
var _CheckboxGroupLabelState = class _CheckboxGroupLabelState {
constructor(opts, group) {
__publicField(this, "opts");
__publicField(this, "group");
__publicField(this, "attachment");
__privateAdd(this, _props47, tag(
user_derived(() => ({
id: this.opts.id.current,
"data-disabled": boolToEmptyStrOrUndef(this.group.opts.disabled.current),
[checkboxAttrs["group-label"]]: "",
...this.attachment
})),
"CheckboxGroupLabelState.props"
));
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;
});
}
static create(opts) {
return new _CheckboxGroupLabelState(opts, CheckboxGroupContext.get());
}
get props() {
return get(__privateGet(this, _props47));
}
set props(value) {
set(__privateGet(this, _props47), value);
}
};
_props47 = new WeakMap();
var CheckboxGroupLabelState = _CheckboxGroupLabelState;
var CheckboxRootContext = new Context("Checkbox.Root");
var _trueName, _trueRequired, _trueDisabled, _trueReadonly, _CheckboxRootState_instances, toggle_fn, _snippetProps11, _props48;
var _CheckboxRootState = class _CheckboxRootState {
constructor(opts, group) {
__privateAdd(this, _CheckboxRootState_instances);
__publicField(this, "opts");
__publicField(this, "group");
__privateAdd(this, _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"
));
__privateAdd(this, _trueRequired, tag(
user_derived(() => {
if (this.group && this.group.opts.required.current) return true;
return this.opts.required.current;
}),
"CheckboxRootState.trueRequired"
));
__privateAdd(this, _trueDisabled, tag(
user_derived(() => {
if (this.group && this.group.opts.disabled.current) return true;
return this.opts.disabled.current;
}),
"CheckboxRootState.trueDisabled"
));
__privateAdd(this, _trueReadonly, tag(
user_derived(() => {
if (this.group && this.group.opts.readonly.current) return true;
return this.opts.readonly.current;
}),
"CheckboxRootState.trueReadonly"
));
__publicField(this, "attachment");
__privateAdd(this, _snippetProps11, tag(
user_derived(() => ({
checked: this.opts.checked.current,
indeterminate: this.opts.indeterminate.current
})),
"CheckboxRootState.snippetProps"
));
__privateAdd(this, _props48, 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"
));
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(
[
() => {
var _a;
return snapshot((_a = this.group) == null ? void 0 : _a.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) => {
var _a, _b;
if (!this.group) return;
if (checked) {
(_a = this.group) == null ? void 0 : _a.addValue(this.opts.value.current);
} else {
(_b = this.group) == null ? void 0 : _b.removeValue(this.opts.value.current);
}
});
}
static create(opts, group = null) {
return CheckboxRootContext.set(new _CheckboxRootState(opts, group));
}
get trueName() {
return get(__privateGet(this, _trueName));
}
set trueName(value) {
set(__privateGet(this, _trueName), value);
}
get trueRequired() {
return get(__privateGet(this, _trueRequired));
}
set trueRequired(value) {
set(__privateGet(this, _trueRequired), value);
}
get trueDisabled() {
return get(__privateGet(this, _trueDisabled));
}
set trueDisabled(value) {
set(__privateGet(this, _trueDisabled), value);
}
get trueReadonly() {
return get(__privateGet(this, _trueReadonly));
}
set trueReadonly(value) {
set(__privateGet(this, _trueReadonly), value);
}
onkeydown(e) {
if (this.trueDisabled || this.trueReadonly) return;
if (strict_equals(e.key, kbd_constants_exports.ENTER)) {
e.preventDefault();
if (strict_equals(this.opts.type.current, "submit")) {
const form = e.currentTarget.closest("form");
form == null ? void 0 : form.requestSubmit();
}
return;
}
if (strict_equals(e.key, kbd_constants_exports.SPACE)) {
e.preventDefault();
__privateMethod(this, _CheckboxRootState_instances, toggle_fn).call(this);
}
}
onclick(e) {
if (this.trueDisabled || this.trueReadonly) return;
if (strict_equals(this.opts.type.current, "submit")) {
__privateMethod(this, _CheckboxRootState_instances, toggle_fn).call(this);
return;
}
e.preventDefault();
__privateMethod(this, _CheckboxRootState_instances, toggle_fn).call(this);
}
get snippetProps() {
return get(__privateGet(this, _snippetProps11));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps11), value);
}
get props() {
return get(__privateGet(this, _props48));
}
set props(value) {
set(__privateGet(this, _props48), value);
}
};
_trueName = new WeakMap();
_trueRequired = new WeakMap();
_trueDisabled = new WeakMap();
_trueReadonly = new WeakMap();
_CheckboxRootState_instances = new WeakSet();
toggle_fn = function() {
if (this.opts.indeterminate.current) {
this.opts.indeterminate.current = false;
this.opts.checked.current = true;
} else {
this.opts.checked.current = !this.opts.checked.current;
}
};
_snippetProps11 = new WeakMap();
_props48 = new WeakMap();
var CheckboxRootState = _CheckboxRootState;
var _trueChecked, _shouldRender2, _props49;
var _CheckboxInputState = class _CheckboxInputState {
constructor(root18) {
__publicField(this, "root");
__privateAdd(this, _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"
));
__privateAdd(this, _shouldRender2, tag(user_derived(() => Boolean(this.root.trueName)), "CheckboxInputState.shouldRender"));
__privateAdd(this, _props49, 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"
));
this.root = root18;
this.onfocus = this.onfocus.bind(this);
}
static create() {
return new _CheckboxInputState(CheckboxRootContext.get());
}
get trueChecked() {
return get(__privateGet(this, _trueChecked));
}
set trueChecked(value) {
set(__privateGet(this, _trueChecked), value);
}
get shouldRender() {
return get(__privateGet(this, _shouldRender2));
}
set shouldRender(value) {
set(__privateGet(this, _shouldRender2), value);
}
onfocus(_) {
if (!isHTMLElement2(this.root.opts.ref.current)) return;
this.root.opts.ref.current.focus();
}
get props() {
return get(__privateGet(this, _props49));
}
set props(value) {
set(__privateGet(this, _props49), value);
}
};
_trueChecked = new WeakMap();
_shouldRender2 = new WeakMap();
_props49 = new WeakMap();
var CheckboxInputState = _CheckboxInputState;
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,
function get4() {
return value();
},
function set2($$value) {
value($$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);
import.meta.hot.accept((module) => {
Hidden_input[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Checkbox_input[HMR].update(module.default);
});
}
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) => {
var _a;
checked(v);
(_a = $$props.onCheckedChange) == null ? void 0 : _a.call($$props, 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) => {
var _a;
indeterminate(v);
(_a = $$props.onIndeterminateChange) == null ? void 0 : _a.call($$props, 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);
import.meta.hot.accept((module) => {
Checkbox[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Checkbox_group[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Checkbox_group_label[HMR].update(module.default);
});
}
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 _contentNode4, _contentId2, _props50;
var _CollapsibleRootState = class _CollapsibleRootState {
constructor(opts) {
__publicField(this, "opts");
__publicField(this, "attachment");
__privateAdd(this, _contentNode4, tag(state(null), "CollapsibleRootState.contentNode"));
__publicField(this, "contentPresence");
__privateAdd(this, _contentId2, tag(state(void 0), "CollapsibleRootState.contentId"));
__privateAdd(this, _props50, 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"
));
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);
}
});
}
static create(opts) {
return CollapsibleRootContext.set(new _CollapsibleRootState(opts));
}
get contentNode() {
return get(__privateGet(this, _contentNode4));
}
set contentNode(value) {
set(__privateGet(this, _contentNode4), value, true);
}
get contentId() {
return get(__privateGet(this, _contentId2));
}
set contentId(value) {
set(__privateGet(this, _contentId2), value, true);
}
toggleOpen() {
this.opts.open.current = !this.opts.open.current;
}
get props() {
return get(__privateGet(this, _props50));
}
set props(value) {
set(__privateGet(this, _props50), value);
}
};
_contentNode4 = new WeakMap();
_contentId2 = new WeakMap();
_props50 = new WeakMap();
var CollapsibleRootState = _CollapsibleRootState;
var _present, _originalStyles2, _isMountAnimationPrevented2, _width2, _height2, _snippetProps12, _props51;
var _CollapsibleContentState = class _CollapsibleContentState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _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"
));
__privateAdd(this, _originalStyles2);
__privateAdd(this, _isMountAnimationPrevented2, tag(state(false), "CollapsibleContentState.#isMountAnimationPrevented"));
__privateAdd(this, _width2, tag(state(0), "CollapsibleContentState.#width"));
__privateAdd(this, _height2, tag(state(0), "CollapsibleContentState.#height"));
__privateAdd(this, _snippetProps12, tag(user_derived(() => ({ open: this.root.opts.open.current })), "CollapsibleContentState.snippetProps"));
__privateAdd(this, _props51, tag(
user_derived(() => ({
id: this.opts.id.current,
style: {
"--bits-collapsible-content-height": get(__privateGet(this, _height2)) ? `${get(__privateGet(this, _height2))}px` : void 0,
"--bits-collapsible-content-width": get(__privateGet(this, _width2)) ? `${get(__privateGet(this, _width2))}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"
));
this.opts = opts;
this.root = root18;
set(__privateGet(this, _isMountAnimationPrevented2), 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(__privateGet(this, _isMountAnimationPrevented2), 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;
__privateSet(this, _originalStyles2, __privateGet(this, _originalStyles2) || {
transitionDuration: node.style.transitionDuration,
animationName: node.style.animationName
});
node.style.transitionDuration = "0s";
node.style.animationName = "none";
const rect = node.getBoundingClientRect();
set(__privateGet(this, _height2), rect.height, true);
set(__privateGet(this, _width2), rect.width, true);
if (!get(__privateGet(this, _isMountAnimationPrevented2))) {
const { animationName, transitionDuration } = __privateGet(this, _originalStyles2);
node.style.transitionDuration = transitionDuration;
node.style.animationName = animationName;
}
});
});
}
static create(opts) {
return new _CollapsibleContentState(opts, CollapsibleRootContext.get());
}
get present() {
return get(__privateGet(this, _present));
}
set present(value) {
set(__privateGet(this, _present), value);
}
get shouldRender() {
return this.root.contentPresence.shouldRender;
}
get snippetProps() {
return get(__privateGet(this, _snippetProps12));
}
set snippetProps(value) {
set(__privateGet(this, _snippetProps12), value);
}
get props() {
return get(__privateGet(this, _props51));
}
set props(value) {
set(__privateGet(this, _props51), value);
}
};
_present = new WeakMap();
_originalStyles2 = new WeakMap();
_isMountAnimationPrevented2 = new WeakMap();
_width2 = new WeakMap();
_height2 = new WeakMap();
_snippetProps12 = new WeakMap();
_props51 = new WeakMap();
var CollapsibleContentState = _CollapsibleContentState;
var _isDisabled8, _props52;
var _CollapsibleTriggerState = class _CollapsibleTriggerState {
constructor(opts, root18) {
__publicField(this, "opts");
__publicField(this, "root");
__publicField(this, "attachment");
__privateAdd(this, _isDisabled8, tag(user_derived(() => this.opts.disabled.current || this.root.opts.disabled.current), "CollapsibleTriggerState.#isDisabled"));
__privateAdd(this, _props52, tag(
user_derived(() => ({
id: this.opts.id.current,
type: "button",
disabled: get(__privateGet(this, _isDisabled8)),
"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(__privateGet(this, _isDisabled8))),
[collapsibleAttrs.trigger]: "",
//
onclick: this.onclick,
onkeydown: this.onkeydown,
...this.attachment
})),
"CollapsibleTriggerState.props"
));
this.opts = opts;
this.root = root18;
this.attachment = attachRef(this.opts.ref);
this.onclick = this.onclick.bind(this);
this.onkeydown = this.onkeydown.bind(this);
}
static create(opts) {
return new _CollapsibleTriggerState(opts, CollapsibleRootContext.get());
}
onclick(e) {
if (get(__privateGet(this, _isDisabled8))) return;
if (strict_equals(e.button, 0, false)) return e.preventDefault();
this.root.toggleOpen();
}
onkeydown(e) {
if (get(__privateGet(this, _isDisabled8))) return;
if (strict_equals(e.key, kbd_constants_exports.SPACE) || strict_equals(e.key, kbd_constants_exports.ENTER)) {
e.preventDefault();
this.root.toggleOpen();
}
}
get props() {
return get(__privateGet(this, _props52));
}
set props(value) {
set(__privateGet(this, _props52), value);
}
};
_isDisabled8 = new WeakMap();
_props52 = new WeakMap();
var CollapsibleTriggerState = _CollapsibleTriggerState;
// 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);
import.meta.hot.accept((module) => {
Collapsible[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Collapsible_content[HMR].update(module.default);
});
}
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);
import.meta.hot.accept((module) => {
Collapsible_trigger[HMR].update(module.default);
});
}
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;
}
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 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++) {
var _platform$detectOverf;
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,
detectOverflow: (_platform$detectOverf = platform2.detectOverflow) != null ? _platform$detectOverf : detectOverflow
},
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
};
};
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 platform2.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,
platform: platform2
} = state2;
const {
strategy = "referenceHidden",
...detectOverflowOptions
} = evaluate(options, state2);
switch (strategy) {
case "referenceHidden": {
const overflow = await platform2.detectOverflow(state2, {
...detectOverflowOptions,
elementContext: "reference"
});
const offsets = getSideOffsets(overflow, rects.reference);
return {
data: {
referenceHiddenOffsets: offsets,
referenceHidden: isAnySideFullyClipped(offsets)
}
};
}
case "escaped": {
const overflow = await platform2.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,
platform: platform2
} = 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 platform2.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 platform2.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