import { Fragment, camelize, capitalize, computed, defineComponent, getCurrentInstance, h, inject, provide, reactive, ref, shallowRef, toRef, unref, warn, watchEffect } from "./chunk-FIAHBV72.js"; // node_modules/vuetify/lib/util/globals.js var IN_BROWSER = typeof window !== "undefined"; var SUPPORTS_INTERSECTION = IN_BROWSER && "IntersectionObserver" in window; var SUPPORTS_TOUCH = IN_BROWSER && ("ontouchstart" in window || window.navigator.maxTouchPoints > 0); var SUPPORTS_EYE_DROPPER = IN_BROWSER && "EyeDropper" in window; var SUPPORTS_MATCH_MEDIA = IN_BROWSER && "matchMedia" in window && typeof window.matchMedia === "function"; // node_modules/vuetify/lib/util/helpers.js function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); } function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); } function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; } function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); } function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); } function getNestedValue(obj, path, fallback) { const last = path.length - 1; if (last < 0) return obj === void 0 ? fallback : obj; for (let i = 0; i < last; i++) { if (obj == null) { return fallback; } obj = obj[path[i]]; } if (obj == null) return fallback; return obj[path[last]] === void 0 ? fallback : obj[path[last]]; } function deepEqual(a, b) { if (a === b) return true; if (a instanceof Date && b instanceof Date && a.getTime() !== b.getTime()) { return false; } if (a !== Object(a) || b !== Object(b)) { return false; } const props = Object.keys(a); if (props.length !== Object.keys(b).length) { return false; } return props.every((p) => deepEqual(a[p], b[p])); } function getObjectValueByPath(obj, path, fallback) { if (obj == null || !path || typeof path !== "string") return fallback; if (obj[path] !== void 0) return obj[path]; path = path.replace(/\[(\w+)\]/g, ".$1"); path = path.replace(/^\./, ""); return getNestedValue(obj, path.split("."), fallback); } function createRange(length) { let start = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; return Array.from({ length }, (v, k) => start + k); } function convertToUnit(str) { let unit = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "px"; if (str == null || str === "") { return void 0; } const num = Number(str); if (isNaN(num)) { return String(str); } else if (!isFinite(num)) { return void 0; } else { return `${num}${unit}`; } } function isObject(obj) { return obj !== null && typeof obj === "object" && !Array.isArray(obj); } function isPlainObject(obj) { let proto; return obj !== null && typeof obj === "object" && ((proto = Object.getPrototypeOf(obj)) === Object.prototype || proto === null); } function refElement(obj) { if (obj && "$el" in obj) { const el = obj.$el; if ((el == null ? void 0 : el.nodeType) === Node.TEXT_NODE) { return el.nextElementSibling; } return el; } return obj; } var keyCodes = Object.freeze({ enter: 13, tab: 9, delete: 46, esc: 27, space: 32, up: 38, down: 40, left: 37, right: 39, end: 35, home: 36, del: 46, backspace: 8, insert: 45, pageup: 33, pagedown: 34, shift: 16 }); var keyValues = Object.freeze({ enter: "Enter", tab: "Tab", delete: "Delete", esc: "Escape", space: "Space", up: "ArrowUp", down: "ArrowDown", left: "ArrowLeft", right: "ArrowRight", end: "End", home: "Home", del: "Delete", backspace: "Backspace", insert: "Insert", pageup: "PageUp", pagedown: "PageDown", shift: "Shift" }); function has(obj, key) { return key.every((k) => obj.hasOwnProperty(k)); } function pick(obj, paths) { const found = {}; for (const key of paths) { if (Object.prototype.hasOwnProperty.call(obj, key)) { found[key] = obj[key]; } } return found; } function omit(obj, exclude) { const clone = { ...obj }; exclude.forEach((prop) => delete clone[prop]); return clone; } var onRE = /^on[^a-z]/; var isOn = (key) => onRE.test(key); function wrapInArray(v) { return v == null ? [] : Array.isArray(v) ? v : [v]; } function clamp(value) { let min = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0; let max = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 1; return Math.max(min, Math.min(max, value)); } function padEnd(str, length) { let char = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "0"; return str + char.repeat(Math.max(0, length - str.length)); } function padStart(str, length) { let char = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : "0"; return char.repeat(Math.max(0, length - str.length)) + str; } function chunk(str) { let size = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 1; const chunked = []; let index = 0; while (index < str.length) { chunked.push(str.substr(index, size)); index += size; } return chunked; } function mergeDeep() { let source = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; let target = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}; let arrayFn = arguments.length > 2 ? arguments[2] : void 0; const out = {}; for (const key in source) { out[key] = source[key]; } for (const key in target) { const sourceProperty = source[key]; const targetProperty = target[key]; if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) { out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn); continue; } if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) { out[key] = arrayFn(sourceProperty, targetProperty); continue; } out[key] = targetProperty; } return out; } function flattenFragments(nodes) { return nodes.map((node) => { if (node.type === Fragment) { return flattenFragments(node.children); } else { return node; } }).flat(); } function toKebabCase() { let str = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : ""; if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str); const kebab = str.replace(/[^a-z]/gi, "-").replace(/\B([A-Z])/g, "-$1").toLowerCase(); toKebabCase.cache.set(str, kebab); return kebab; } toKebabCase.cache = /* @__PURE__ */ new Map(); function findChildrenWithProvide(key, vnode) { if (!vnode || typeof vnode !== "object") return []; if (Array.isArray(vnode)) { return vnode.map((child) => findChildrenWithProvide(key, child)).flat(1); } else if (vnode.suspense) { return findChildrenWithProvide(key, vnode.ssContent); } else if (Array.isArray(vnode.children)) { return vnode.children.map((child) => findChildrenWithProvide(key, child)).flat(1); } else if (vnode.component) { if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key)) { return [vnode.component]; } else if (vnode.component.subTree) { return findChildrenWithProvide(key, vnode.component.subTree).flat(1); } } return []; } var _arr = /* @__PURE__ */ new WeakMap(); var _pointer = /* @__PURE__ */ new WeakMap(); var CircularBuffer = class { constructor(size) { _classPrivateFieldInitSpec(this, _arr, []); _classPrivateFieldInitSpec(this, _pointer, 0); this.size = size; } get isFull() { return _classPrivateFieldGet(_arr, this).length === this.size; } push(val) { _classPrivateFieldGet(_arr, this)[_classPrivateFieldGet(_pointer, this)] = val; _classPrivateFieldSet(_pointer, this, (_classPrivateFieldGet(_pointer, this) + 1) % this.size); } values() { return _classPrivateFieldGet(_arr, this).slice(_classPrivateFieldGet(_pointer, this)).concat(_classPrivateFieldGet(_arr, this).slice(0, _classPrivateFieldGet(_pointer, this))); } clear() { _classPrivateFieldGet(_arr, this).length = 0; _classPrivateFieldSet(_pointer, this, 0); } }; function destructComputed(getter) { const refs = reactive({}); watchEffect(() => { const base = getter(); for (const key in base) { refs[key] = base[key]; } }, { flush: "sync" }); const obj = {}; for (const key in refs) { obj[key] = toRef(() => refs[key]); } return obj; } function includes(arr, val) { return arr.includes(val); } function eventName(propName) { return propName[2].toLowerCase() + propName.slice(3); } function hasEvent(props, name) { name = "on" + capitalize(name); return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`]); } function matchesSelector(el, selector) { const supportsSelector = IN_BROWSER && typeof CSS !== "undefined" && typeof CSS.supports !== "undefined" && CSS.supports(`selector(${selector})`); if (!supportsSelector) return null; try { return !!el && el.matches(selector); } catch (err) { return null; } } function defer(timeout, cb) { if (!IN_BROWSER || timeout === 0) { cb(); return () => { }; } const timeoutId = window.setTimeout(cb, timeout); return () => window.clearTimeout(timeoutId); } function templateRef() { const el = shallowRef(); const fn = (target) => { el.value = target; }; Object.defineProperty(fn, "value", { enumerable: true, get: () => el.value, set: (val) => el.value = val }); Object.defineProperty(fn, "el", { enumerable: true, get: () => refElement(el.value) }); return fn; } function onlyDefinedProps(props) { const booleanAttributes = ["checked", "disabled"]; return Object.fromEntries(Object.entries(props).filter((_ref) => { let [key, v] = _ref; return booleanAttributes.includes(key) ? !!v : v !== void 0; })); } // node_modules/vuetify/lib/util/getCurrentInstance.js function getCurrentInstance2(name, message) { const vm = getCurrentInstance(); if (!vm) { throw new Error(`[Vuetify] ${name} ${message || "must be called from inside a setup function"}`); } return vm; } function getCurrentInstanceName() { let name = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : "composables"; const vm = getCurrentInstance2(name).type; return toKebabCase((vm == null ? void 0 : vm.aliasName) || (vm == null ? void 0 : vm.name)); } // node_modules/vuetify/lib/util/injectSelf.js function injectSelf(key) { let vm = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : getCurrentInstance2("injectSelf"); const { provides } = vm; if (provides && key in provides) { return provides[key]; } return void 0; } // node_modules/vuetify/lib/composables/defaults.js var DefaultsSymbol = Symbol.for("vuetify:defaults"); function createDefaults(options) { return ref(options); } function injectDefaults() { const defaults = inject(DefaultsSymbol); if (!defaults) throw new Error("[Vuetify] Could not find defaults instance"); return defaults; } function provideDefaults(defaults, options) { const injectedDefaults = injectDefaults(); const providedDefaults = ref(defaults); const newDefaults = computed(() => { const disabled = unref(options == null ? void 0 : options.disabled); if (disabled) return injectedDefaults.value; const scoped = unref(options == null ? void 0 : options.scoped); const reset = unref(options == null ? void 0 : options.reset); const root = unref(options == null ? void 0 : options.root); if (providedDefaults.value == null && !(scoped || reset || root)) return injectedDefaults.value; let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value }); if (scoped) return properties; if (reset || root) { const len = Number(reset || Infinity); for (let i = 0; i <= len; i++) { if (!properties || !("prev" in properties)) { break; } properties = properties.prev; } if (properties && typeof root === "string" && root in properties) { properties = mergeDeep(mergeDeep(properties, { prev: properties }), properties[root]); } return properties; } return properties.prev ? mergeDeep(properties.prev, properties) : properties; }); provide(DefaultsSymbol, newDefaults); return newDefaults; } function propIsDefined(vnode, prop) { return vnode.props && (typeof vnode.props[prop] !== "undefined" || typeof vnode.props[toKebabCase(prop)] !== "undefined"); } function internalUseDefaults() { let props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; let name = arguments.length > 1 ? arguments[1] : void 0; let defaults = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : injectDefaults(); const vm = getCurrentInstance2("useDefaults"); name = name ?? vm.type.name ?? vm.type.__name; if (!name) { throw new Error("[Vuetify] Could not determine component name"); } const componentDefaults = computed(() => { var _a; return (_a = defaults.value) == null ? void 0 : _a[props._as ?? name]; }); const _props = new Proxy(props, { get(target, prop) { var _a, _b, _c, _d; const propValue = Reflect.get(target, prop); if (prop === "class" || prop === "style") { return [(_a = componentDefaults.value) == null ? void 0 : _a[prop], propValue].filter((v) => v != null); } if (propIsDefined(vm.vnode, prop)) return propValue; const _componentDefault = (_b = componentDefaults.value) == null ? void 0 : _b[prop]; if (_componentDefault !== void 0) return _componentDefault; const _globalDefault = (_d = (_c = defaults.value) == null ? void 0 : _c.global) == null ? void 0 : _d[prop]; if (_globalDefault !== void 0) return _globalDefault; return propValue; } }); const _subcomponentDefaults = shallowRef(); watchEffect(() => { if (componentDefaults.value) { const subComponents = Object.entries(componentDefaults.value).filter((_ref) => { let [key] = _ref; return key.startsWith(key[0].toUpperCase()); }); _subcomponentDefaults.value = subComponents.length ? Object.fromEntries(subComponents) : void 0; } else { _subcomponentDefaults.value = void 0; } }); function provideSubDefaults() { const injected = injectSelf(DefaultsSymbol, vm); provide(DefaultsSymbol, computed(() => { return _subcomponentDefaults.value ? mergeDeep((injected == null ? void 0 : injected.value) ?? {}, _subcomponentDefaults.value) : injected == null ? void 0 : injected.value; })); } return { props: _props, provideSubDefaults }; } function useDefaults() { let props = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {}; let name = arguments.length > 1 ? arguments[1] : void 0; const { props: _props, provideSubDefaults } = internalUseDefaults(props, name); provideSubDefaults(); return _props; } // node_modules/vuetify/lib/util/console.js function consoleWarn(message) { warn(`Vuetify: ${message}`); } function consoleError(message) { warn(`Vuetify error: ${message}`); } function deprecate(original, replacement) { replacement = Array.isArray(replacement) ? replacement.slice(0, -1).map((s) => `'${s}'`).join(", ") + ` or '${replacement.at(-1)}'` : `'${replacement}'`; warn(`[Vuetify UPGRADE] '${original}' is deprecated, use ${replacement} instead.`); } // node_modules/vuetify/lib/util/propsFactory.js function propsFactory(props, source) { return (defaults) => { return Object.keys(props).reduce((obj, prop) => { const isObjectDefinition = typeof props[prop] === "object" && props[prop] != null && !Array.isArray(props[prop]); const definition = isObjectDefinition ? props[prop] : { type: props[prop] }; if (defaults && prop in defaults) { obj[prop] = { ...definition, default: defaults[prop] }; } else { obj[prop] = definition; } if (source && !obj[prop].source) { obj[prop].source = source; } return obj; }, {}); }; } // node_modules/vuetify/lib/util/defineComponent.js function defineComponent2(options) { options._setup = options._setup ?? options.setup; if (!options.name) { consoleWarn("The component is missing an explicit name, unable to generate default prop value"); return options; } if (options._setup) { options.props = propsFactory(options.props ?? {}, options.name)(); const propKeys = Object.keys(options.props).filter((key) => key !== "class" && key !== "style"); options.filterProps = function filterProps(props) { return pick(props, propKeys); }; options.props._as = String; options.setup = function setup(props, ctx) { const defaults = injectDefaults(); if (!defaults.value) return options._setup(props, ctx); const { props: _props, provideSubDefaults } = internalUseDefaults(props, props._as ?? options.name, defaults); const setupBindings = options._setup(_props, ctx); provideSubDefaults(); return setupBindings; }; } return options; } function genericComponent() { let exposeDefaults = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : true; return (options) => (exposeDefaults ? defineComponent2 : defineComponent)(options); } // node_modules/vuetify/lib/util/anchor.js var block = ["top", "bottom"]; var inline = ["start", "end", "left", "right"]; function parseAnchor(anchor, isRtl) { let [side, align] = anchor.split(" "); if (!align) { align = includes(block, side) ? "start" : includes(inline, side) ? "top" : "center"; } return { side: toPhysical(side, isRtl), align: toPhysical(align, isRtl) }; } function toPhysical(str, isRtl) { if (str === "start") return isRtl ? "right" : "left"; if (str === "end") return isRtl ? "left" : "right"; return str; } function flipSide(anchor) { return { side: { center: "center", top: "bottom", bottom: "top", left: "right", right: "left" }[anchor.side], align: anchor.align }; } function flipAlign(anchor) { return { side: anchor.side, align: { center: "center", top: "bottom", bottom: "top", left: "right", right: "left" }[anchor.align] }; } function flipCorner(anchor) { return { side: anchor.align, align: anchor.side }; } function getAxis(anchor) { return includes(block, anchor.side) ? "y" : "x"; } // node_modules/vuetify/lib/util/box.js var Box = class { constructor(_ref) { let { x, y, width, height } = _ref; this.x = x; this.y = y; this.width = width; this.height = height; } get top() { return this.y; } get bottom() { return this.y + this.height; } get left() { return this.x; } get right() { return this.x + this.width; } }; function getOverflow(a, b) { return { x: { before: Math.max(0, b.left - a.left), after: Math.max(0, a.right - b.right) }, y: { before: Math.max(0, b.top - a.top), after: Math.max(0, a.bottom - b.bottom) } }; } function getTargetBox(target) { if (Array.isArray(target)) { return new Box({ x: target[0], y: target[1], width: 0, height: 0 }); } else { return target.getBoundingClientRect(); } } function getElementBox(el) { if (el === document.documentElement) { if (!visualViewport) { return new Box({ x: 0, y: 0, width: document.documentElement.clientWidth, height: document.documentElement.clientHeight }); } else { return new Box({ x: visualViewport.scale > 1 ? 0 : visualViewport.offsetLeft, y: visualViewport.scale > 1 ? 0 : visualViewport.offsetTop, width: visualViewport.width * visualViewport.scale, height: visualViewport.height * visualViewport.scale }); } } else { const rect = el.getBoundingClientRect(); return new Box({ x: rect.x, y: rect.y, width: el.clientWidth, height: el.clientHeight }); } } // node_modules/vuetify/lib/util/animation.js function nullifyTransforms(el) { const rect = el.getBoundingClientRect(); const style = getComputedStyle(el); const tx = style.transform; if (tx) { let ta, sx, sy, dx, dy; if (tx.startsWith("matrix3d(")) { ta = tx.slice(9, -1).split(/, /); sx = Number(ta[0]); sy = Number(ta[5]); dx = Number(ta[12]); dy = Number(ta[13]); } else if (tx.startsWith("matrix(")) { ta = tx.slice(7, -1).split(/, /); sx = Number(ta[0]); sy = Number(ta[3]); dx = Number(ta[4]); dy = Number(ta[5]); } else { return new Box(rect); } const to = style.transformOrigin; const x = rect.x - dx - (1 - sx) * parseFloat(to); const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(" ") + 1)); const w = sx ? rect.width / sx : el.offsetWidth + 1; const h2 = sy ? rect.height / sy : el.offsetHeight + 1; return new Box({ x, y, width: w, height: h2 }); } else { return new Box(rect); } } function animate(el, keyframes, options) { if (typeof el.animate === "undefined") return { finished: Promise.resolve() }; let animation; try { animation = el.animate(keyframes, options); } catch (err) { return { finished: Promise.resolve() }; } if (typeof animation.finished === "undefined") { animation.finished = new Promise((resolve) => { animation.onfinish = () => { resolve(animation); }; }); } return animation; } // node_modules/vuetify/lib/util/bindProps.js var handlers = /* @__PURE__ */ new WeakMap(); function bindProps(el, props) { Object.keys(props).forEach((k) => { var _a; if (isOn(k)) { const name = eventName(k); const handler = handlers.get(el); if (props[k] == null) { handler == null ? void 0 : handler.forEach((v) => { const [n, fn] = v; if (n === name) { el.removeEventListener(name, fn); handler.delete(v); } }); } else if (!handler || !((_a = [...handler]) == null ? void 0 : _a.some((v) => v[0] === name && v[1] === props[k]))) { el.addEventListener(name, props[k]); const _handler = handler || /* @__PURE__ */ new Set(); _handler.add([name, props[k]]); if (!handlers.has(el)) handlers.set(el, _handler); } } else { if (props[k] == null) { el.removeAttribute(k); } else { el.setAttribute(k, props[k]); } } }); } function unbindProps(el, props) { Object.keys(props).forEach((k) => { if (isOn(k)) { const name = eventName(k); const handler = handlers.get(el); handler == null ? void 0 : handler.forEach((v) => { const [n, fn] = v; if (n === name) { el.removeEventListener(name, fn); handler.delete(v); } }); } else { el.removeAttribute(k); } }); } // node_modules/vuetify/lib/util/color/APCA.js var mainTRC = 2.4; var Rco = 0.2126729; var Gco = 0.7151522; var Bco = 0.072175; var normBG = 0.55; var normTXT = 0.58; var revTXT = 0.57; var revBG = 0.62; var blkThrs = 0.03; var blkClmp = 1.45; var deltaYmin = 5e-4; var scaleBoW = 1.25; var scaleWoB = 1.25; var loConThresh = 0.078; var loConFactor = 12.82051282051282; var loConOffset = 0.06; var loClip = 1e-3; function APCAcontrast(text, background) { const Rtxt = (text.r / 255) ** mainTRC; const Gtxt = (text.g / 255) ** mainTRC; const Btxt = (text.b / 255) ** mainTRC; const Rbg = (background.r / 255) ** mainTRC; const Gbg = (background.g / 255) ** mainTRC; const Bbg = (background.b / 255) ** mainTRC; let Ytxt = Rtxt * Rco + Gtxt * Gco + Btxt * Bco; let Ybg = Rbg * Rco + Gbg * Gco + Bbg * Bco; if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp; if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp; if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0; let outputContrast; if (Ybg > Ytxt) { const SAPC = (Ybg ** normBG - Ytxt ** normTXT) * scaleBoW; outputContrast = SAPC < loClip ? 0 : SAPC < loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC - loConOffset; } else { const SAPC = (Ybg ** revBG - Ytxt ** revTXT) * scaleWoB; outputContrast = SAPC > -loClip ? 0 : SAPC > -loConThresh ? SAPC - SAPC * loConFactor * loConOffset : SAPC + loConOffset; } return outputContrast * 100; } // node_modules/vuetify/lib/util/color/transformCIELAB.js var delta = 0.20689655172413793; var cielabForwardTransform = (t) => t > delta ** 3 ? Math.cbrt(t) : t / (3 * delta ** 2) + 4 / 29; var cielabReverseTransform = (t) => t > delta ? t ** 3 : 3 * delta ** 2 * (t - 4 / 29); function fromXYZ(xyz) { const transform = cielabForwardTransform; const transformedY = transform(xyz[1]); return [116 * transformedY - 16, 500 * (transform(xyz[0] / 0.95047) - transformedY), 200 * (transformedY - transform(xyz[2] / 1.08883))]; } function toXYZ(lab) { const transform = cielabReverseTransform; const Ln = (lab[0] + 16) / 116; return [transform(Ln + lab[1] / 500) * 0.95047, transform(Ln), transform(Ln - lab[2] / 200) * 1.08883]; } // node_modules/vuetify/lib/util/color/transformSRGB.js var srgbForwardMatrix = [[3.2406, -1.5372, -0.4986], [-0.9689, 1.8758, 0.0415], [0.0557, -0.204, 1.057]]; var srgbForwardTransform = (C) => C <= 31308e-7 ? C * 12.92 : 1.055 * C ** (1 / 2.4) - 0.055; var srgbReverseMatrix = [[0.4124, 0.3576, 0.1805], [0.2126, 0.7152, 0.0722], [0.0193, 0.1192, 0.9505]]; var srgbReverseTransform = (C) => C <= 0.04045 ? C / 12.92 : ((C + 0.055) / 1.055) ** 2.4; function fromXYZ2(xyz) { const rgb = Array(3); const transform = srgbForwardTransform; const matrix = srgbForwardMatrix; for (let i = 0; i < 3; ++i) { rgb[i] = Math.round(clamp(transform(matrix[i][0] * xyz[0] + matrix[i][1] * xyz[1] + matrix[i][2] * xyz[2])) * 255); } return { r: rgb[0], g: rgb[1], b: rgb[2] }; } function toXYZ2(_ref) { let { r, g, b } = _ref; const xyz = [0, 0, 0]; const transform = srgbReverseTransform; const matrix = srgbReverseMatrix; r = transform(r / 255); g = transform(g / 255); b = transform(b / 255); for (let i = 0; i < 3; ++i) { xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b; } return xyz; } // node_modules/vuetify/lib/util/colorUtils.js function isCssColor(color) { return !!color && /^(#|var\(--|(rgb|hsl)a?\()/.test(color); } function isParsableColor(color) { return isCssColor(color) && !/^((rgb|hsl)a?\()?var\(--/.test(color); } var cssColorRe = /^(?(?:rgb|hsl)a?)\((?.+)\)/; var mappers = { rgb: (r, g, b, a) => ({ r, g, b, a }), rgba: (r, g, b, a) => ({ r, g, b, a }), hsl: (h2, s, l, a) => HSLtoRGB({ h: h2, s, l, a }), hsla: (h2, s, l, a) => HSLtoRGB({ h: h2, s, l, a }), hsv: (h2, s, v, a) => HSVtoRGB({ h: h2, s, v, a }), hsva: (h2, s, v, a) => HSVtoRGB({ h: h2, s, v, a }) }; function parseColor(color) { if (typeof color === "number") { if (isNaN(color) || color < 0 || color > 16777215) { consoleWarn(`'${color}' is not a valid hex color`); } return { r: (color & 16711680) >> 16, g: (color & 65280) >> 8, b: color & 255 }; } else if (typeof color === "string" && cssColorRe.test(color)) { const { groups } = color.match(cssColorRe); const { fn, values } = groups; const realValues = values.split(/,\s*|\s*\/\s*|\s+/).map((v, i) => { if (v.endsWith("%") || // unitless slv are % i > 0 && i < 3 && ["hsl", "hsla", "hsv", "hsva"].includes(fn)) { return parseFloat(v) / 100; } else { return parseFloat(v); } }); return mappers[fn](...realValues); } else if (typeof color === "string") { let hex = color.startsWith("#") ? color.slice(1) : color; if ([3, 4].includes(hex.length)) { hex = hex.split("").map((char) => char + char).join(""); } else if (![6, 8].includes(hex.length)) { consoleWarn(`'${color}' is not a valid hex(a) color`); } const int = parseInt(hex, 16); if (isNaN(int) || int < 0 || int > 4294967295) { consoleWarn(`'${color}' is not a valid hex(a) color`); } return HexToRGB(hex); } else if (typeof color === "object") { if (has(color, ["r", "g", "b"])) { return color; } else if (has(color, ["h", "s", "l"])) { return HSVtoRGB(HSLtoHSV(color)); } else if (has(color, ["h", "s", "v"])) { return HSVtoRGB(color); } } throw new TypeError(`Invalid color: ${color == null ? color : String(color) || color.constructor.name} Expected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`); } function HSVtoRGB(hsva) { const { h: h2, s, v, a } = hsva; const f = (n) => { const k = (n + h2 / 60) % 6; return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0); }; const rgb = [f(5), f(3), f(1)].map((v2) => Math.round(v2 * 255)); return { r: rgb[0], g: rgb[1], b: rgb[2], a }; } function HSLtoRGB(hsla) { return HSVtoRGB(HSLtoHSV(hsla)); } function HSLtoHSV(hsl) { const { h: h2, s, l, a } = hsl; const v = l + s * Math.min(l, 1 - l); const sprime = v === 0 ? 0 : 2 - 2 * l / v; return { h: h2, s: sprime, v, a }; } function toHex(v) { const h2 = Math.round(v).toString(16); return ("00".substr(0, 2 - h2.length) + h2).toUpperCase(); } function RGBtoHex(_ref2) { let { r, g, b, a } = _ref2; return `#${[toHex(r), toHex(g), toHex(b), a !== void 0 ? toHex(Math.round(a * 255)) : ""].join("")}`; } function HexToRGB(hex) { hex = parseHex(hex); let [r, g, b, a] = chunk(hex, 2).map((c) => parseInt(c, 16)); a = a === void 0 ? a : a / 255; return { r, g, b, a }; } function parseHex(hex) { if (hex.startsWith("#")) { hex = hex.slice(1); } hex = hex.replace(/([^0-9a-f])/gi, "F"); if (hex.length === 3 || hex.length === 4) { hex = hex.split("").map((x) => x + x).join(""); } if (hex.length !== 6) { hex = padEnd(padEnd(hex, 6), 8, "F"); } return hex; } function lighten(value, amount) { const lab = fromXYZ(toXYZ2(value)); lab[0] = lab[0] + amount * 10; return fromXYZ2(toXYZ(lab)); } function darken(value, amount) { const lab = fromXYZ(toXYZ2(value)); lab[0] = lab[0] - amount * 10; return fromXYZ2(toXYZ(lab)); } function getLuma(color) { const rgb = parseColor(color); return toXYZ2(rgb)[1]; } function getForeground(color) { const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color))); const whiteContrast = Math.abs(APCAcontrast(parseColor(16777215), parseColor(color))); return whiteContrast > Math.min(blackContrast, 50) ? "#fff" : "#000"; } // node_modules/vuetify/lib/composables/component.js var makeComponentProps = propsFactory({ class: [String, Array, Object], style: { type: [String, Array, Object], default: null } }, "component"); // node_modules/vuetify/lib/util/createSimpleFunctional.js function createSimpleFunctional(klass) { let tag = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "div"; let name = arguments.length > 2 ? arguments[2] : void 0; return genericComponent()({ name: name ?? capitalize(camelize(klass.replace(/__/g, "-"))), props: { tag: { type: String, default: tag }, ...makeComponentProps() }, setup(props, _ref) { let { slots } = _ref; return () => { var _a; return h(props.tag, { class: [klass, props.class], style: props.style }, (_a = slots.default) == null ? void 0 : _a.call(slots)); }; } }); } // node_modules/vuetify/lib/util/dom.js function attachedRoot(node) { if (typeof node.getRootNode !== "function") { while (node.parentNode) node = node.parentNode; if (node !== document) return null; return document; } const root = node.getRootNode(); if (root !== document && root.getRootNode({ composed: true }) !== document) return null; return root; } // node_modules/vuetify/lib/util/easing.js var standardEasing = "cubic-bezier(0.4, 0, 0.2, 1)"; var easingPatterns = { linear: (t) => t, easeInQuad: (t) => t ** 2, easeOutQuad: (t) => t * (2 - t), easeInOutQuad: (t) => t < 0.5 ? 2 * t ** 2 : -1 + (4 - 2 * t) * t, easeInCubic: (t) => t ** 3, easeOutCubic: (t) => --t ** 3 + 1, easeInOutCubic: (t) => t < 0.5 ? 4 * t ** 3 : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1, easeInQuart: (t) => t ** 4, easeOutQuart: (t) => 1 - --t ** 4, easeInOutQuart: (t) => t < 0.5 ? 8 * t ** 4 : 1 - 8 * --t ** 4, easeInQuint: (t) => t ** 5, easeOutQuint: (t) => 1 + --t ** 5, easeInOutQuint: (t) => t < 0.5 ? 16 * t ** 5 : 1 + 16 * --t ** 5 }; // node_modules/vuetify/lib/util/getScrollParent.js function getScrollParent(el) { let includeHidden = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false; while (el) { if (includeHidden ? isPotentiallyScrollable(el) : hasScrollbar(el)) return el; el = el.parentElement; } return document.scrollingElement; } function getScrollParents(el, stopAt) { const elements = []; if (stopAt && el && !stopAt.contains(el)) return elements; while (el) { if (hasScrollbar(el)) elements.push(el); if (el === stopAt) break; el = el.parentElement; } return elements; } function hasScrollbar(el) { if (!el || el.nodeType !== Node.ELEMENT_NODE) return false; const style = window.getComputedStyle(el); return style.overflowY === "scroll" || style.overflowY === "auto" && el.scrollHeight > el.clientHeight; } function isPotentiallyScrollable(el) { if (!el || el.nodeType !== Node.ELEMENT_NODE) return false; const style = window.getComputedStyle(el); return ["scroll", "auto"].includes(style.overflowY); } // node_modules/vuetify/lib/util/isFixedPosition.js function isFixedPosition(el) { while (el) { if (window.getComputedStyle(el).position === "fixed") { return true; } el = el.offsetParent; } return false; } // node_modules/vuetify/lib/util/useRender.js function useRender(render) { const vm = getCurrentInstance2("useRender"); vm.render = render; } export { propsFactory, makeComponentProps, IN_BROWSER, SUPPORTS_INTERSECTION, SUPPORTS_TOUCH, SUPPORTS_MATCH_MEDIA, deepEqual, getObjectValueByPath, createRange, convertToUnit, isObject, refElement, omit, wrapInArray, clamp, padStart, mergeDeep, flattenFragments, toKebabCase, findChildrenWithProvide, CircularBuffer, destructComputed, includes, hasEvent, matchesSelector, defer, templateRef, onlyDefinedProps, parseAnchor, flipSide, flipAlign, flipCorner, getAxis, Box, getOverflow, getTargetBox, getElementBox, nullifyTransforms, animate, bindProps, unbindProps, consoleWarn, consoleError, deprecate, isCssColor, isParsableColor, parseColor, RGBtoHex, lighten, darken, getLuma, getForeground, getCurrentInstance2 as getCurrentInstance, getCurrentInstanceName, DefaultsSymbol, createDefaults, provideDefaults, useDefaults, defineComponent2 as defineComponent, genericComponent, createSimpleFunctional, attachedRoot, standardEasing, easingPatterns, getScrollParent, getScrollParents, hasScrollbar, isFixedPosition, useRender }; //# sourceMappingURL=chunk-ADPJOAU6.js.map