vrembem 4.0.0-next.33 → 4.0.0-next.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dev/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../core/dist/index.js","../../drawer/dist/index.js","../../modal/dist/index.js","../../popover/dist/index.js"],"sourcesContent":["const u = \":not([inert])\", f = ':not([tabindex^=\"-\"])', m = \":not(:disabled)\", C = [\n `a[href]${u}${f}`,\n `area[href]${u}${f}`,\n `input:not([type=\"hidden\"]):not([type=\"radio\"])${u}${f}${m}`,\n `input[type=\"radio\"]${u}${f}${m}`,\n `select${u}${f}${m}`,\n `textarea${u}${f}${m}`,\n `button${u}${f}${m}`,\n `details${u} > summary:first-of-type${f}`,\n `iframe${u}${f}`,\n `audio[controls]${u}${f}`,\n `video[controls]${u}${f}`,\n `[contenteditable]${u}${f}`,\n `[tabindex]${u}${f}`\n];\nfunction k(n, t = \"config\") {\n const s = (n.getAttribute(`data-${t}`) || \"\").replace(/'/g, '\"');\n return s ? JSON.parse(s) : {};\n}\nfunction E(n) {\n if (typeof n == \"string\") {\n const t = document.getElementById(n);\n if (t) return t;\n throw new Error(`Element not found with ID: \"${n}\"`);\n } else if (n instanceof HTMLElement) {\n if (!n.id)\n throw new Error(\"HTMLElement must have an ID\");\n return n;\n } else\n throw new Error(\"Invalid argument: query must be a string or HTMLElement\");\n}\nasync function g(n, t, ...e) {\n t in n && typeof n[t] == \"function\" && await n[t](...e);\n}\nfunction x(n, t, e) {\n if (typeof t == \"string\") {\n const r = document.querySelector(t);\n if (!r)\n throw new Error(`No teleport reference found for selector: ${t}`);\n t = r;\n } else if (!(t instanceof HTMLElement))\n throw new Error(`Not a valid teleport reference: '${t}'`);\n if (typeof t[e] != \"function\")\n throw new Error(`Not a valid teleport method: '${e}'`);\n let s = document.createComment(\n \"teleported #\" + n.id\n );\n return n.before(s), t[e](n), () => {\n s && (s.after(n), s.remove(), s = null);\n };\n}\nfunction v(n) {\n return n.split(\"-\").map(\n (t, e) => e === 0 ? t : t.charAt(0).toUpperCase() + t.slice(1)\n ).join(\"\");\n}\nfunction $(n) {\n return n.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\nfunction S(n) {\n if (typeof n == \"number\")\n return n;\n const t = parseFloat(n);\n if (!Number.isNaN(t)) {\n const e = n.includes(\"ms\");\n return t * (e ? 1 : 1e3);\n }\n throw new Error(`Could not convert value to milliseconds: ${n}`);\n}\nfunction J(n, t, e, s, r = 0) {\n return new Promise((a) => {\n n.classList.remove(t), n.classList.add(e), setTimeout(() => {\n n.classList.add(s), n.classList.remove(e), a(n);\n }, S(r));\n });\n}\nfunction R(n, t = {}) {\n const e = {\n fallback: null,\n element: document.body,\n ...t\n };\n if (!n.startsWith(\"--\")) {\n const r = y();\n r && (n = `${r}${n}`), n = `--${n}`;\n }\n const s = getComputedStyle(e.element).getPropertyValue(n).trim();\n if (s)\n return s;\n if (e.fallback)\n return e.fallback;\n throw new Error(`CSS variable \"${n}\" was not found!`);\n}\nasync function h(n, t, e) {\n await g(t, n, e), e && await g(e, n);\n for (const s of t.plugins)\n await g(s, n, { plugin: s, parent: t, entry: e });\n await t.emit(n, e);\n}\nfunction M(n) {\n const t = getComputedStyle(n.el), e = {}, s = n.getSetting(\"customProps\");\n for (let r = 0; r < s.length; r++) {\n const a = y(), o = n.parent.module.toLowerCase(), i = $(s[r]), c = t.getPropertyValue(`--${a}${o}-${i}`).trim();\n c && (e[i] = c);\n }\n return e;\n}\nfunction y() {\n return getComputedStyle(document.body).getPropertyValue(\"--vb-prefix\").trim();\n}\nfunction P(n, t, e = \"camel\") {\n return t = e === \"camel\" ? v(t) : $(t), n.split(\".\").concat(t).reduce((s, r) => s?.[r], this);\n}\nfunction A(n, t = {}) {\n const {\n fallback: e,\n props: s = [\"dataConfig\", \"customProps\", \"settings\", \"parent.settings\"]\n } = t;\n for (const r of s) {\n const a = r !== \"customProps\" ? \"camel\" : \"kebab\", o = P.call(this, r, n, a);\n if (o !== void 0)\n return o;\n }\n if (e !== void 0)\n return e;\n throw new Error(`${this.parent.module} setting does not exist: ${n}`);\n}\nfunction T(n, t) {\n t && document.querySelectorAll(t).forEach((s) => {\n n ? s.style.overflow = \"hidden\" : s.style.removeProperty(\"overflow\");\n });\n}\nfunction I(n, t) {\n t && document.querySelectorAll(t).forEach((s) => {\n s.inert = n;\n });\n}\nfunction G(n, t, e) {\n I(!!n, t), T(!!n, e);\n}\nconst L = {\n events: {},\n on(n, t, ...e) {\n this.events[n] || (this.events[n] = []), this.events[n].some(\n (r) => r.listener === t\n ) || this.events[n].push({ listener: t, args: e });\n },\n off(n, t) {\n this.events[n] && (this.events[n] = this.events[n].filter(\n (e) => e.listener !== t\n ));\n },\n async emit(n, t) {\n if (n = n.startsWith(\"on\") ? n.slice(2, 3).toLowerCase() + n.slice(3) : n, !!this.events[n])\n for (const { listener: e, args: s } of this.events[n])\n await e(t, ...s);\n }\n};\nclass O extends Array {\n constructor(t = null) {\n super(), this.el = t, this.el && this.set();\n }\n get first() {\n return this[0];\n }\n get last() {\n return this[this.length - 1];\n }\n set(t = this.el) {\n this.length = 0, t && this.push(...t.querySelectorAll(C.join(\",\")));\n }\n clear() {\n this.length = 0;\n }\n}\nclass U {\n constructor(t = null) {\n this.el = t, this.focusable = new O(), this.handleFocusTrap = D.bind(this);\n }\n on(t = this.el) {\n this.focusable.set(t), this.focusable.length ? document.addEventListener(\"keydown\", this.handleFocusTrap) : document.addEventListener(\"keydown\", b);\n }\n off() {\n this.focusable.clear(), document.removeEventListener(\"keydown\", this.handleFocusTrap), document.removeEventListener(\"keydown\", b);\n }\n}\nfunction b(n) {\n (n.key === \"Tab\" || n.keyCode === 9) && n.preventDefault();\n}\nfunction D(n) {\n if (n.key !== \"Tab\" && n.keyCode !== 9) return;\n const { activeElement: t } = document, { el: e, focusable: s } = this, r = n.shiftKey, a = t === s.first || t === e, o = t === s.last || t === e;\n if (r && a || !r && o) {\n n.preventDefault();\n const i = r ? s.last : s.first;\n i && typeof i.focus == \"function\" && i.focus();\n }\n}\nfunction w(n, t = !0) {\n const e = localStorage.getItem(n), s = e ? JSON.parse(e) : {};\n return {\n get(r, a) {\n return r ? r in s ? s[r] : a : s;\n },\n set(r, a) {\n return a ? s[r] = a : delete s[r], t && localStorage.setItem(n, JSON.stringify(s)), s;\n }\n };\n}\nclass H extends Array {\n constructor(t = {}) {\n super(), this.presets = t;\n }\n applySettings(t) {\n const e = t?.defaults || {}, s = this.presets?.[t.name] || {}, r = t?.options || {};\n t.settings = { ...e, ...s, ...r };\n }\n validate(t) {\n return !(\"name\" in t) || typeof t.name != \"string\" ? (console.error(\"Plugin requires a name!\"), !1) : !0;\n }\n get(t) {\n return this.find((e) => e.name === t);\n }\n add(t) {\n if (Array.isArray(t))\n t.forEach((e) => this.add(e));\n else if (this.applySettings(t), this.validate(t)) {\n const e = this.findIndex((s) => s.name === t.name);\n ~e ? this[e] = t : this.push(t);\n }\n }\n remove(t) {\n const e = this.findIndex((s) => s.name === t);\n ~e && this.splice(e, 1);\n }\n}\nclass W extends Array {\n constructor(t = {}) {\n super(), this.settings = t;\n }\n get copy() {\n return [...this];\n }\n get top() {\n const t = this[this.length - 1];\n return t || null;\n }\n updateIndex() {\n this.forEach((t, e) => {\n t.el.style.zIndex = \"\";\n const s = getComputedStyle(t.el)[\"z-index\"];\n t.el.style.zIndex = String(parseInt(s, 10) + e + 1);\n });\n }\n onChange() {\n this.updateIndex(), typeof this.settings.onChange == \"function\" && this.settings.onChange();\n }\n add(t) {\n this.push(t), this.onChange();\n }\n remove(t) {\n const e = this.findIndex((s) => s.id === t.id);\n ~e && (t.el.style.zIndex = \"\", this.splice(e, 1), this.onChange());\n }\n moveToTop(t) {\n const e = this.findIndex((s) => s.id === t.id);\n ~e && (this.splice(e, 1), this.add(t));\n }\n}\nconst N = {\n condition: !0\n}, Q = {\n primary: \"hsl(152deg 60% 50%)\",\n secondary: \"hsl(214deg 50% 50%)\",\n neutral: \"hsl(214deg 20% 50%)\",\n important: \"hsl(0deg 80% 50%)\"\n};\nfunction Z(n = {}) {\n const t = {\n name: \"debug\",\n defaults: N,\n options: n\n };\n function e(o, i = [], c = [\"primary\", \"secondary\"]) {\n const l = c.map((d) => `color: ${Q[d]}`);\n console.log(`%c📡 DEBUG: %c${o}`, ...l, ...i);\n }\n function s(o, ...i) {\n return typeof o == \"function\" ? o(...i) : o;\n }\n const r = {\n beforeMountRef: e.bind(null, \"Event > beforeMount()\"),\n afterMountRef: e.bind(null, \"Event > afterMount()\"),\n beforeUnmountRef: e.bind(\n null,\n \"Event > beforeUnmount()\",\n [],\n [\"important\", \"neutral\"]\n ),\n afterUnmountRef: e.bind(\n null,\n \"Event > afterUnmount()\",\n [],\n [\"important\", \"neutral\"]\n ),\n createEntryRef: (o, { parent: i, plugin: c }) => {\n if (s(c.settings.condition, o)) {\n const l = i.collection.length;\n e(`Event > createEntry() > [${l}] #${o.id}`);\n }\n },\n registerEntryRef: (o, { parent: i, plugin: c }) => {\n if (s(c.settings.condition, o)) {\n const l = i.collection.length;\n e(`Event > registerEntry() > [${l}] #${o.id}`);\n }\n },\n destroyEntryRef: (o, { parent: i, plugin: c }) => {\n if (s(c.settings.condition, o)) {\n const l = i.collection.length;\n e(\n `Event > destroyEntry() > [${l}] #${o.id}`,\n [],\n [\"important\", \"neutral\"]\n );\n }\n },\n deregisterEntryRef: (o, { parent: i, plugin: c }) => {\n if (s(c.settings.condition, o)) {\n const l = i.collection.length;\n e(\n `Event > deregisterEntry() > [${l}]`,\n [],\n [\"important\", \"neutral\"]\n );\n }\n }\n };\n return { ...t, ...{\n // Plugin setup/teardown methods\n setup({ parent: o }) {\n e(\"Plugin > setup()\", Array.from(arguments), [\"secondary\", \"neutral\"]), o.on(\"beforeMount\", r.beforeMountRef), o.on(\"createEntry\", r.createEntryRef, { parent: o, plugin: this }), o.on(\"registerEntry\", r.registerEntryRef, {\n parent: o,\n plugin: this\n }), o.on(\"afterMount\", r.afterMountRef), o.on(\"beforeUnmount\", r.beforeUnmountRef), o.on(\"destroyEntry\", r.destroyEntryRef, { parent: o, plugin: this }), o.on(\"deregisterEntry\", r.deregisterEntryRef, {\n parent: o,\n plugin: this\n }), o.on(\"afterUnmount\", r.afterUnmountRef);\n },\n teardown({ parent: o }) {\n e(\"Plugin > teardown()\", Array.from(arguments), [\n \"secondary\",\n \"neutral\"\n ]), o.off(\"beforeMount\", r.beforeMountRef), o.off(\"createEntry\", r.createEntryRef), o.off(\"registerEntry\", r.registerEntryRef), o.off(\"afterMount\", r.afterMountRef), o.off(\"beforeUnmount\", r.beforeUnmountRef), o.off(\"destroyEntry\", r.destroyEntryRef), o.off(\"deregisterEntry\", r.deregisterEntryRef), o.off(\"afterUnmount\", r.afterUnmountRef);\n },\n // Mount lifecycle hooks\n beforeMount() {\n e(\"Hook > beforeMount()\", Array.from(arguments));\n },\n onCreateEntry({ parent: o, entry: i }) {\n if (s(this.settings.condition, i)) {\n const c = o.collection.length;\n e(\n `Hook > onCreateEntry() > [${c}] #${i.id}`,\n Array.from(arguments)\n );\n }\n },\n onRegisterEntry({ parent: o, entry: i }) {\n if (s(this.settings.condition, i)) {\n const c = o.collection.length - 1;\n e(\n `Hook > onRegisterEntry() > [${c}] #${i.id}`,\n Array.from(arguments)\n );\n }\n },\n afterMount() {\n e(\"Hook > afterMount()\", Array.from(arguments));\n },\n // Unmount lifecycle hooks\n beforeUnmount() {\n e(\"Hook > beforeUnmount()\", Array.from(arguments), [\n \"important\",\n \"neutral\"\n ]);\n },\n onDestroyEntry({ parent: o, entry: i }) {\n if (s(this.settings.condition, i)) {\n const c = o.collection.length - 1;\n e(\n `Hook > onDestroyEntry() > [${c}] #${i.id}`,\n Array.from(arguments),\n [\"important\", \"neutral\"]\n );\n }\n },\n onDeregisterEntry({ parent: o, entry: i }) {\n if (s(this.settings.condition, i)) {\n const c = o.collection.length;\n e(`Hook > onDeregisterEntry() > [${c}]`, Array.from(arguments), [\n \"important\",\n \"neutral\"\n ]);\n }\n },\n afterUnmount() {\n e(\"Hook > afterUnmount()\", Array.from(arguments), [\n \"important\",\n \"neutral\"\n ]);\n }\n } };\n}\nconst q = {\n condition: !0\n};\nfunction _(n = {}) {\n const t = {\n name: \"focusTrap\",\n defaults: q,\n options: n\n }, e = {\n setup({ parent: o }) {\n o.on(\"opened\", r, this), o.on(\"closed\", a, this);\n },\n teardown({ parent: o }) {\n o.off(\"opened\", r), o.off(\"closed\", a);\n },\n onCreateEntry({ entry: o }) {\n o.focusTrap = new U();\n }\n };\n function s(o, ...i) {\n return typeof o == \"function\" ? o(...i) : o;\n }\n function r(o, i) {\n const c = { plugin: i, parent: o.parent, entry: o };\n s(i.settings.condition, c) && o.focusTrap?.on(o.dialog);\n }\n function a(o, i) {\n const c = { plugin: i, parent: o.parent, entry: o };\n s(i.settings.condition, c) && o.focusTrap?.off();\n }\n return { ...t, ...e };\n}\nconst F = {\n // The data attributes to get the breakpoint values from\n dataBreakpoint: \"breakpoint\",\n // The data attributes to get the media query value from\n dataMediaQuery: \"media-query\",\n // The string token to replace in the media query string\n token: \"{{BP}}\",\n // Sets a global breakpoint. Can be overridden by setting a data attribute\n // value. Notice: setting this option will enable a media query breakpoint on\n // all entries.\n breakpoint: null,\n // The default media query string to use. Can be overridden by setting a data\n // attribute value.\n mediaQuery: \"(min-width: {{BP}})\",\n // Maps entry ID or breakpoint key to breakpoint values. This is referenced\n // when getting an entries breakpoint value.\n breakpoints: {},\n // Maps entry ID's to a media query strings. Media query may contain a token.\n // This is referenced when getting an entries media query string.\n mediaQueries: {},\n // The function to run when the MediaQueryList triggers a \"change\" event.\n // This is run once on initial mount.\n onChange: () => {\n }\n};\nfunction X(n = {}) {\n const t = {\n name: \"mediaQuery\",\n defaults: F,\n options: n\n }, e = {\n // Run when an entry is created\n // Sets up the MediaQueryList and event listener\n onCreateEntry({ entry: i }) {\n a.call(this, i);\n },\n // Run when an entry is destroyed\n // Removes the MediaQueryList and event listener\n onDestroyEntry({ entry: i }) {\n o(i);\n }\n };\n function s(i) {\n const c = i.el.getAttribute(`data-${this.settings.dataMediaQuery}`);\n return !c && i.id in this.settings.mediaQueries ? this.settings.mediaQueries[i.id] : c || void 0;\n }\n function r(i) {\n let c = i.el.getAttribute(`data-${this.settings.dataBreakpoint}`);\n return !c && i.id in this.settings.breakpoints && (c = this.settings.breakpoints[i.id]), c && c in this.settings.breakpoints && (c = this.settings.breakpoints[c]), c && (c = getComputedStyle(document.body).getPropertyValue(`--${y()}breakpoint-${c}`).trim() || c), c || this.settings.breakpoint;\n }\n function a(i) {\n let c = s.call(this, i);\n const l = r.call(this, i);\n if (!l && !c) return;\n l && !c && (c = this.settings.mediaQuery);\n const d = c.replace(new RegExp(`${this.settings.token}`, \"g\"), l);\n i.mql = window.matchMedia(d), i.mql.onchange = (p) => {\n this.settings.onChange(p, i);\n }, this.settings.onChange(i.mql, i);\n }\n function o(i) {\n i.mql && (i.mql.onchange = null, i.mql = null);\n }\n return { ...t, ...e };\n}\nconst V = {\n // The property on entry objects to watch\n prop: \"state\",\n // The default value or a function to compute the initial value\n value: null,\n // The local storage key prefix\n keyPrefix: \"VB:\",\n // The local storage key to use. If not provided, module name and prop value\n // will be used e.g., \"VB:ModalState\".\n key: null,\n // Condition to determine whether or not to store the value in local storage\n condition: !1,\n // The function to run whenever the value changes\n onChange() {\n }\n};\nfunction Y(n = {}) {\n const t = {\n name: \"propStore\",\n defaults: V,\n options: n,\n store: null\n }, e = {\n setup({ parent: i }) {\n this.store = w(o.call(this, i.module));\n },\n async onCreateEntry({ entry: i }) {\n await s.call(this, i);\n },\n onDestroyEntry({ entry: i }) {\n a.call(this, i);\n }\n };\n async function s(i) {\n let c = i[this.settings.prop] || null;\n const l = { plugin: this, parent: i.parent, entry: i };\n Object.defineProperty(i, this.settings.prop, {\n configurable: !0,\n get() {\n return c;\n },\n set: async (d) => {\n if (c === d) return;\n const p = c;\n c = d, r(\n this.settings.condition,\n l,\n d,\n p\n ) && this.store.set(i.id, d), await this.settings.onChange(l, d, p);\n }\n }), Object.defineProperty(i, \"store\", {\n configurable: !0,\n get: () => this.store.get(i.id),\n set: (d) => {\n i[this.settings.prop] = d;\n }\n }), i[this.settings.prop] = await r(this.settings.value, l) || i[this.settings.prop];\n }\n function r(i, ...c) {\n return typeof i == \"function\" ? i(...c) : i;\n }\n async function a(i) {\n const c = i[this.settings.prop];\n delete i[this.settings.prop], i[this.settings.prop] = c, this.store.set(i.id, null);\n }\n function o(i) {\n const c = this.settings.prop.charAt(0).toUpperCase() + this.settings.prop.slice(1), l = this.settings.key || i + c;\n return this.settings.keyPrefix + l;\n }\n return { ...t, ...e };\n}\nconst B = {\n where: null,\n how: \"append\"\n};\nfunction tt(n = {}) {\n const t = {\n name: \"teleport\",\n defaults: B,\n options: n\n }, e = {\n onCreateEntry({ plugin: a, entry: o }) {\n s(a, o);\n },\n onDestroyEntry({ plugin: a, entry: o }) {\n r(a, o);\n }\n };\n function s(a, o) {\n o.teleport = () => {\n typeof o.teleportReturn == \"function\" && o.teleportReturn(), o.teleportReturn = x(\n o.el,\n o.getSetting(\"teleport\", { fallback: a.settings.where }),\n o.getSetting(\"teleportMethod\", { fallback: a.settings.how })\n );\n }, o.teleport(), o.parent.emit(\"teleport\", { plugin: a, parent: o.parent, entry: o });\n }\n function r(a, o) {\n typeof o.teleportReturn == \"function\" && o.teleportReturn(), o.parent.emit(\"teleportReturn\", {\n plugin: a,\n parent: o.parent,\n entry: o\n });\n }\n return { ...t, ...e };\n}\nconst j = {\n dataConfig: \"config\",\n customProps: []\n};\nclass z {\n constructor(t, e, s = {}) {\n this.parent = t, this.el = E(e), this.settings = { ...s }, this.dataConfig = {}, this.customProps = {};\n }\n get id() {\n return this.el.id;\n }\n applySettings(t) {\n return Object.assign(this.settings, t);\n }\n getSetting(t, e) {\n return A.call(this, t, e);\n }\n buildDataConfig() {\n return Object.assign(\n this.dataConfig,\n k(this.el, this.getSetting(\"dataConfig\"))\n );\n }\n buildCustomProps() {\n return Object.assign(this.customProps, M(this));\n }\n async init(t = {}) {\n this.applySettings(t), this.buildDataConfig(), this.buildCustomProps();\n }\n async destroy() {\n Object.getOwnPropertyNames(this).forEach((t) => {\n delete this[t];\n });\n }\n}\nclass et {\n constructor(t = {}) {\n this.module = this.constructor.name, this.collection = [], this.entryClass = z, this.settings = { ...j, ...t }, this.plugins = new H(this.settings.presets), this.events = {}, Object.assign(this, L);\n }\n get(t, e = \"id\") {\n return this.collection.find((s) => s[e] === t);\n }\n getOrThrow(t, e = \"id\") {\n const s = this.get(t, e);\n if (s)\n return s;\n throw new Error(\n `${this.module} entry not found in collection with ${e} of \"${t}\"`\n );\n }\n applySettings(t) {\n return Object.assign(this.settings, t);\n }\n async createEntry(t, e) {\n const s = new this.entryClass(this, t, e);\n return await g(s, \"init\"), await h(\"onCreateEntry\", this, s), s;\n }\n async destroyEntry(t) {\n return await h(\"onDestroyEntry\", this, t), await g(t, \"destroy\"), t;\n }\n async register(t, e = {}) {\n const s = E(t), r = this.collection.findIndex((a) => a.id === s.id);\n if (~r) {\n const a = this.collection[r];\n return a.el = s, typeof a.init == \"function\" && await a.init(e), a;\n } else {\n const a = await this.createEntry(s, e);\n return this.collection.push(a), await h(\"onRegisterEntry\", this, a), a;\n }\n }\n async deregister(t) {\n const e = this.collection.findIndex((s) => s.id === t);\n if (~e) {\n const s = await this.destroyEntry(this.collection[e]);\n return await h(\n \"onDeregisterEntry\",\n this,\n this.collection[e]\n ), this.collection.splice(e, 1), s;\n }\n return null;\n }\n async mount(t = {}) {\n this.applySettings(t);\n for (const s of this.settings?.plugins || [])\n this.plugins.add(s);\n for (const s of this.plugins)\n await g(s, \"setup\", { plugin: s, parent: this });\n await h(\"beforeMount\", this);\n const e = document.querySelectorAll(this.settings.selector);\n for (const s of e)\n await this.register(s);\n return await h(\"afterMount\", this), this;\n }\n async unmount() {\n for (await h(\"beforeUnmount\", this); this.collection.length > 0; )\n await this.deregister(this.collection[0].id);\n await h(\"afterUnmount\", this);\n for (const t of this.plugins)\n await g(t, \"teardown\", { plugin: t, parent: this });\n for (const t of [...this.plugins])\n this.plugins.remove(t.name);\n return this;\n }\n}\nfunction nt(n = {}) {\n const t = {\n prefix: R(\"prefix-themes\", { fallback: \"vb-theme-\" }),\n themes: [\"root\", \"light\", \"dark\"],\n storeKey: \"VB:Profile\"\n };\n for (const [a] of Object.entries(t))\n n && n[a] && (t[a] = n[a]);\n const e = {\n onInit() {\n },\n onChange() {\n }\n };\n for (const [a] of Object.entries(e))\n n && n[a] && (e[a] = n[a]);\n const s = w(t.storeKey), r = {\n // Store our settings in the API\n settings: t,\n // Actions\n add(a) {\n t.themes.push(a);\n },\n remove(a) {\n const o = t.themes.indexOf(a);\n ~o && t.themes.splice(o, 1);\n },\n callback(a) {\n e[a].call(this);\n },\n // Getters\n get class() {\n return `${t.prefix}${this.theme}`;\n },\n get classes() {\n return t.themes.map((a) => `${t.prefix}${a}`);\n },\n get themes() {\n return t.themes;\n },\n // Setup the theme get and set methods\n get theme() {\n return s.get(\"theme\") || \"root\";\n },\n set theme(a) {\n t.themes.includes(a) ? this.theme != a && (s.set(\"theme\", a), document.documentElement.classList.remove(...this.classes), document.documentElement.classList.add(`${t.prefix}${a}`), this.callback(\"onChange\")) : console.error(`Not a valid theme value: \"${a}\"`);\n }\n };\n return r.callback(\"onInit\"), r;\n}\nexport {\n et as Collection,\n z as CollectionEntry,\n U as FocusTrap,\n O as FocusableArray,\n H as PluginsArray,\n W as StackArray,\n R as cssVar,\n Z as debug,\n h as dispatchLifecycleHook,\n L as eventEmitter,\n _ as focusTrap,\n C as focusableSelectors,\n M as getCustomProps,\n k as getDataConfig,\n E as getElement,\n y as getPrefix,\n A as getSetting,\n w as localStore,\n g as maybeRunMethod,\n X as mediaQuery,\n Y as propStore,\n G as setGlobalState,\n tt as teleport,\n x as teleportElement,\n nt as themeStore,\n v as toCamel,\n $ as toKebab,\n S as toMilliseconds,\n J as transition\n};\n//# sourceMappingURL=index.js.map\n","function E(t, e = \"config\") {\n const s = (t.getAttribute(`data-${e}`) || \"\").replace(/'/g, '\"');\n return s ? JSON.parse(s) : {};\n}\nfunction f(t) {\n if (typeof t == \"string\") {\n const e = document.getElementById(t);\n if (e) return e;\n throw new Error(`Element not found with ID: \"${t}\"`);\n } else if (t instanceof HTMLElement) {\n if (!t.id)\n throw new Error(\"HTMLElement must have an ID\");\n return t;\n } else\n throw new Error(\"Invalid argument: query must be a string or HTMLElement\");\n}\nasync function r(t, e, ...s) {\n e in t && typeof t[e] == \"function\" && await t[e](...s);\n}\nfunction b(t) {\n return t.split(\"-\").map(\n (e, s) => s === 0 ? e : e.charAt(0).toUpperCase() + e.slice(1)\n ).join(\"\");\n}\nfunction p(t) {\n return t.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\nfunction C(t) {\n if (typeof t == \"number\")\n return t;\n const e = parseFloat(t);\n if (!Number.isNaN(e)) {\n const s = t.includes(\"ms\");\n return e * (s ? 1 : 1e3);\n }\n throw new Error(`Could not convert value to milliseconds: ${t}`);\n}\nfunction m(t, e, s, i, n = 0) {\n return new Promise((o) => {\n t.classList.remove(e), t.classList.add(s), setTimeout(() => {\n t.classList.add(i), t.classList.remove(s), o(t);\n }, C(n));\n });\n}\nasync function a(t, e, s) {\n await r(e, t, s), s && await r(s, t);\n for (const i of e.plugins)\n await r(i, t, { plugin: i, parent: e, entry: s });\n await e.emit(t, s);\n}\nfunction O(t) {\n const e = getComputedStyle(t.el), s = {}, i = t.getSetting(\"customProps\");\n for (let n = 0; n < i.length; n++) {\n const o = L(), l = t.parent.module.toLowerCase(), h = p(i[n]), u = e.getPropertyValue(`--${o}${l}-${h}`).trim();\n u && (s[h] = u);\n }\n return s;\n}\nfunction L() {\n return getComputedStyle(document.body).getPropertyValue(\"--vb-prefix\").trim();\n}\nfunction $(t, e, s = \"camel\") {\n return e = s === \"camel\" ? b(e) : p(e), t.split(\".\").concat(e).reduce((i, n) => i?.[n], this);\n}\nfunction M(t, e = {}) {\n const {\n fallback: s,\n props: i = [\"dataConfig\", \"customProps\", \"settings\", \"parent.settings\"]\n } = e;\n for (const n of i) {\n const o = n !== \"customProps\" ? \"camel\" : \"kebab\", l = $.call(this, n, t, o);\n if (l !== void 0)\n return l;\n }\n if (s !== void 0)\n return s;\n throw new Error(`${this.parent.module} setting does not exist: ${t}`);\n}\nfunction P(t, e) {\n e && document.querySelectorAll(e).forEach((s) => {\n t ? s.style.overflow = \"hidden\" : s.style.removeProperty(\"overflow\");\n });\n}\nfunction T(t, e) {\n e && document.querySelectorAll(e).forEach((s) => {\n s.inert = t;\n });\n}\nfunction c(t, e, s) {\n T(!!t, e), P(!!t, s);\n}\nconst x = {\n events: {},\n on(t, e, ...s) {\n this.events[t] || (this.events[t] = []), this.events[t].some(\n (i) => i.listener === e\n ) || this.events[t].push({ listener: e, args: s });\n },\n off(t, e) {\n this.events[t] && (this.events[t] = this.events[t].filter(\n (s) => s.listener !== e\n ));\n },\n async emit(t, e) {\n if (t = t.startsWith(\"on\") ? t.slice(2, 3).toLowerCase() + t.slice(3) : t, !!this.events[t])\n for (const { listener: s, args: i } of this.events[t])\n await s(e, ...i);\n }\n};\nclass y extends Array {\n constructor(e = {}) {\n super(), this.presets = e;\n }\n applySettings(e) {\n const s = e?.defaults || {}, i = this.presets?.[e.name] || {}, n = e?.options || {};\n e.settings = { ...s, ...i, ...n };\n }\n validate(e) {\n return !(\"name\" in e) || typeof e.name != \"string\" ? (console.error(\"Plugin requires a name!\"), !1) : !0;\n }\n get(e) {\n return this.find((s) => s.name === e);\n }\n add(e) {\n if (Array.isArray(e))\n e.forEach((s) => this.add(s));\n else if (this.applySettings(e), this.validate(e)) {\n const s = this.findIndex((i) => i.name === e.name);\n ~s ? this[s] = e : this.push(e);\n }\n }\n remove(e) {\n const s = this.findIndex((i) => i.name === e);\n ~s && this.splice(s, 1);\n }\n}\nconst A = {\n dataConfig: \"config\",\n customProps: []\n};\nclass w {\n constructor(e, s, i = {}) {\n this.parent = e, this.el = f(s), this.settings = { ...i }, this.dataConfig = {}, this.customProps = {};\n }\n get id() {\n return this.el.id;\n }\n applySettings(e) {\n return Object.assign(this.settings, e);\n }\n getSetting(e, s) {\n return M.call(this, e, s);\n }\n buildDataConfig() {\n return Object.assign(\n this.dataConfig,\n E(this.el, this.getSetting(\"dataConfig\"))\n );\n }\n buildCustomProps() {\n return Object.assign(this.customProps, O(this));\n }\n async init(e = {}) {\n this.applySettings(e), this.buildDataConfig(), this.buildCustomProps();\n }\n async destroy() {\n Object.getOwnPropertyNames(this).forEach((e) => {\n delete this[e];\n });\n }\n}\nclass D {\n constructor(e = {}) {\n this.module = this.constructor.name, this.collection = [], this.entryClass = w, this.settings = { ...A, ...e }, this.plugins = new y(this.settings.presets), this.events = {}, Object.assign(this, x);\n }\n get(e, s = \"id\") {\n return this.collection.find((i) => i[s] === e);\n }\n getOrThrow(e, s = \"id\") {\n const i = this.get(e, s);\n if (i)\n return i;\n throw new Error(\n `${this.module} entry not found in collection with ${s} of \"${e}\"`\n );\n }\n applySettings(e) {\n return Object.assign(this.settings, e);\n }\n async createEntry(e, s) {\n const i = new this.entryClass(this, e, s);\n return await r(i, \"init\"), await a(\"onCreateEntry\", this, i), i;\n }\n async destroyEntry(e) {\n return await a(\"onDestroyEntry\", this, e), await r(e, \"destroy\"), e;\n }\n async register(e, s = {}) {\n const i = f(e), n = this.collection.findIndex((o) => o.id === i.id);\n if (~n) {\n const o = this.collection[n];\n return o.el = i, typeof o.init == \"function\" && await o.init(s), o;\n } else {\n const o = await this.createEntry(i, s);\n return this.collection.push(o), await a(\"onRegisterEntry\", this, o), o;\n }\n }\n async deregister(e) {\n const s = this.collection.findIndex((i) => i.id === e);\n if (~s) {\n const i = await this.destroyEntry(this.collection[s]);\n return await a(\n \"onDeregisterEntry\",\n this,\n this.collection[s]\n ), this.collection.splice(s, 1), i;\n }\n return null;\n }\n async mount(e = {}) {\n this.applySettings(e);\n for (const i of this.settings?.plugins || [])\n this.plugins.add(i);\n for (const i of this.plugins)\n await r(i, \"setup\", { plugin: i, parent: this });\n await a(\"beforeMount\", this);\n const s = document.querySelectorAll(this.settings.selector);\n for (const i of s)\n await this.register(i);\n return await a(\"afterMount\", this), this;\n }\n async unmount() {\n for (await a(\"beforeUnmount\", this); this.collection.length > 0; )\n await this.deregister(this.collection[0].id);\n await a(\"afterUnmount\", this);\n for (const e of this.plugins)\n await r(e, \"teardown\", { plugin: e, parent: this });\n for (const e of [...this.plugins])\n this.plugins.remove(e.name);\n return this;\n }\n}\nconst I = {\n focusTrap: {\n condition: ({ entry: t }) => t.state === \"closed\" || t.state === \"opened\" && t.mode === \"modal\"\n },\n mediaQuery: {\n onChange(t, e) {\n e.mode = t.matches ? \"inline\" : \"modal\";\n }\n },\n propStore: {\n prop: \"inlineState\",\n value: ({ entry: t }) => t.store,\n condition: ({ entry: t }) => [\"opened\", \"closed\", \"indeterminate\"].includes(t.state),\n onChange: ({ entry: t }) => t.applyState()\n }\n}, k = {\n presets: I,\n dataOpen: \"drawer-open\",\n dataClose: \"drawer-close\",\n dataToggle: \"drawer-toggle\",\n selector: \".drawer\",\n selectorDialog: \".drawer__dialog\",\n selectorScreen: \".drawer\",\n selectorFocus: \"[data-focus]\",\n selectorInert: null,\n selectorOverflow: \"body\",\n stateOpened: \"is-opened\",\n stateOpening: \"is-opening\",\n stateClosing: \"is-closing\",\n stateClosed: \"is-closed\",\n classModal: \"drawer_modal\",\n customProps: [\"transition-duration\"],\n breakpoints: null,\n customEventPrefix: \"drawer:\",\n setTabindex: !0,\n transition: !0,\n transitionDuration: 300\n};\nfunction j(t) {\n switch (t.mode) {\n case \"inline\":\n return q(t);\n case \"modal\":\n return H(t);\n default:\n throw new Error(`\"${t.mode}\" is not a valid drawer mode.`);\n }\n}\nasync function q(t) {\n return t.el.classList.remove(t.getSetting(\"classModal\")), t.dialog.removeAttribute(\"aria-modal\"), c(\n !1,\n t.getSetting(\"selectorInert\"),\n t.getSetting(\"selectorOverflow\")\n ), t.applyState(), t.el.dispatchEvent(\n new CustomEvent(t.getSetting(\"customEventPrefix\") + \"switchMode\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"switchMode\", t), t;\n}\nasync function H(t) {\n return t.el.classList.add(t.getSetting(\"classModal\")), t.dialog.setAttribute(\"aria-modal\", \"true\"), await t.close(!1, !1), t.el.dispatchEvent(\n new CustomEvent(t.getSetting(\"customEventPrefix\") + \"switchMode\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"switchMode\", t), t;\n}\nfunction S(t) {\n t.dialog && t.state === \"opened\" ? (t.dialog.querySelector(t.parent.settings.selectorFocus) || t.dialog).focus() : t.trigger && (t.trigger.focus(), t.trigger = null);\n}\nasync function d(t, e, s = !0) {\n return (t.state === \"closed\" || t.state === \"indeterminate\" || t.state === null) && (t.setState(\"opening\"), e ?? t.getSetting(\"transition\") ? await m(\n t.el,\n t.getSetting(\"stateClosed\"),\n t.getSetting(\"stateOpening\"),\n t.getSetting(\"stateOpened\"),\n t.getSetting(\"transitionDuration\")\n ) : (t.el.classList.add(t.getSetting(\"stateOpened\")), t.el.classList.remove(t.getSetting(\"stateClosed\"))), t.setState(\"opened\"), t.mode === \"modal\" && c(\n !0,\n t.getSetting(\"selectorInert\"),\n t.getSetting(\"selectorOverflow\")\n ), s && S(t), t.el.dispatchEvent(\n new CustomEvent(t.getSetting(\"customEventPrefix\") + \"opened\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"opened\", t)), t;\n}\nasync function g(t, e, s = !0) {\n return (t.state === \"opened\" || t.state === \"indeterminate\" || t.state === null) && (t.setState(\"closing\"), document.activeElement && document.activeElement instanceof HTMLElement && document.activeElement.blur(), e ?? t.getSetting(\"transition\") ? await m(\n t.el,\n t.getSetting(\"stateOpened\"),\n t.getSetting(\"stateClosing\"),\n t.getSetting(\"stateClosed\"),\n t.getSetting(\"transitionDuration\")\n ) : (t.el.classList.add(t.getSetting(\"stateClosed\")), t.el.classList.remove(t.getSetting(\"stateOpened\"))), t.setState(\"closed\"), t.mode === \"modal\" && c(\n !1,\n t.getSetting(\"selectorInert\"),\n t.getSetting(\"selectorOverflow\")\n ), s && S(t), t.el.dispatchEvent(\n new CustomEvent(t.getSetting(\"customEventPrefix\") + \"closed\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"closed\", t)), t;\n}\nasync function v(t, e, s) {\n return t.state === \"closed\" ? d(t, e, s) : g(t, e, s);\n}\nclass N extends w {\n #t;\n constructor(e, s, i = {}) {\n super(e, s, i), this.#t = \"indeterminate\", this.dialog = this.el.querySelector(this.getSetting(\"selectorDialog\")) || this.el, this.trigger = null, this.state = null, this.inlineState = null;\n }\n get mode() {\n return this.#t;\n }\n set mode(e) {\n this.#t !== e && (this.#t = e, j(this));\n }\n setState(e) {\n this.state = e;\n const s = [\"opening\", \"closing\"];\n this.mode === \"inline\" && !s.includes(e) && (this.inlineState = e), e === \"indeterminate\" && (this.el.classList.remove(this.getSetting(\"stateOpened\")), this.el.classList.remove(this.getSetting(\"stateOpening\")), this.el.classList.remove(this.getSetting(\"stateClosed\")), this.el.classList.remove(this.getSetting(\"stateClosing\")));\n }\n async applyState() {\n if (this.mode === \"modal\") return this;\n if (this.inlineState === \"opened\")\n return await this.open(!1, !1);\n if (this.inlineState === \"closed\")\n return await this.close(!1, !1);\n if (this.state === null) {\n if (this.el.classList.contains(this.getSetting(\"stateOpened\")))\n return await this.open(!1, !1);\n if (this.el.classList.contains(this.getSetting(\"stateClosed\")))\n return await this.close(!1, !1);\n }\n return this.setState(\"indeterminate\"), this;\n }\n async open(e, s) {\n return d(this, e, s);\n }\n async close(e, s) {\n return g(this, e, s);\n }\n async toggle(e, s) {\n return v(this, e, s);\n }\n async deregister() {\n return this.parent.deregister(this.id);\n }\n async onCreateEntry() {\n this.getSetting(\"setTabindex\") && this.dialog && this.dialog.setAttribute(\"tabindex\", \"-1\"), await this.applyState(), this.inlineState = this.state, this.mode = this.el && this.el.classList.contains(this.getSetting(\"classModal\")) ? \"modal\" : \"inline\";\n }\n async onDestroyEntry() {\n this.mode === \"modal\" && this.state === \"opened\" && await this.close(!1);\n }\n}\nasync function F(t) {\n const e = t.target;\n if (e) {\n const s = e.closest(`\n [data-${this.settings.dataOpen}],\n [data-${this.settings.dataToggle}],\n [data-${this.settings.dataClose}]\n `);\n if (s) {\n t.preventDefault(), s.matches(`[data-${this.settings.dataToggle}]`) && s.getAttribute(`data-${this.settings.dataToggle}`)?.trim().split(\" \")?.forEach((n) => {\n const o = this.getOrThrow(n);\n return o.trigger = s, o.toggle();\n }), s.matches(`[data-${this.settings.dataOpen}]`) && s.getAttribute(`data-${this.settings.dataOpen}`)?.trim().split(\" \")?.forEach((n) => {\n const o = this.getOrThrow(n);\n return o.trigger = s, o.open();\n }), s.matches(`[data-${this.settings.dataClose}]`) && s.getAttribute(`data-${this.settings.dataClose}`)?.trim().split(\" \")?.forEach((n) => {\n if (n) {\n const o = this.getOrThrow(n);\n return o.trigger = s, o.close();\n } else {\n const o = e.closest(this.settings.selector);\n if (o) return this.close(o.id);\n }\n });\n return;\n }\n if (this.activeModal && e.matches(this.settings.selectorScreen))\n return this.close(this.activeModal.id);\n }\n}\nfunction U(t) {\n if (t.key === \"Escape\" && this.activeModal)\n return this.close(this.activeModal.id);\n}\nclass _ extends D {\n #t;\n #e;\n constructor(e) {\n super({ ...k, ...e }), this.module = \"Drawer\", this.entryClass = N, this.#t = F.bind(this), this.#e = U.bind(this);\n }\n get activeModal() {\n return this.collection.find((e) => e.state === \"opened\" && e.mode === \"modal\");\n }\n async open(e, s, i) {\n const n = this.getOrThrow(e);\n return d(n, s, i);\n }\n async close(e, s, i) {\n const n = this.getOrThrow(e);\n return g(n, s, i);\n }\n async toggle(e, s, i) {\n const n = this.getOrThrow(e);\n return v(n, s, i);\n }\n async afterMount() {\n document.addEventListener(\"click\", this.#t, !1), document.addEventListener(\"keydown\", this.#e, !1);\n }\n async afterUnmount() {\n document.removeEventListener(\"click\", this.#t, !1), document.removeEventListener(\"keydown\", this.#e, !1);\n }\n}\nexport {\n _ as default\n};\n//# sourceMappingURL=index.js.map\n","function y(e, t = \"config\") {\n const s = (e.getAttribute(`data-${t}`) || \"\").replace(/'/g, '\"');\n return s ? JSON.parse(s) : {};\n}\nfunction f(e) {\n if (typeof e == \"string\") {\n const t = document.getElementById(e);\n if (t) return t;\n throw new Error(`Element not found with ID: \"${e}\"`);\n } else if (e instanceof HTMLElement) {\n if (!e.id)\n throw new Error(\"HTMLElement must have an ID\");\n return e;\n } else\n throw new Error(\"Invalid argument: query must be a string or HTMLElement\");\n}\nasync function r(e, t, ...s) {\n t in e && typeof e[t] == \"function\" && await e[t](...s);\n}\nfunction C(e) {\n return e.split(\"-\").map(\n (t, s) => s === 0 ? t : t.charAt(0).toUpperCase() + t.slice(1)\n ).join(\"\");\n}\nfunction p(e) {\n return e.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\nfunction S(e) {\n if (typeof e == \"number\")\n return e;\n const t = parseFloat(e);\n if (!Number.isNaN(t)) {\n const s = e.includes(\"ms\");\n return t * (s ? 1 : 1e3);\n }\n throw new Error(`Could not convert value to milliseconds: ${e}`);\n}\nfunction m(e, t, s, i, n = 0) {\n return new Promise((o) => {\n e.classList.remove(t), e.classList.add(s), setTimeout(() => {\n e.classList.add(i), e.classList.remove(s), o(e);\n }, S(n));\n });\n}\nasync function a(e, t, s) {\n await r(t, e, s), s && await r(s, e);\n for (const i of t.plugins)\n await r(i, e, { plugin: i, parent: t, entry: s });\n await t.emit(e, s);\n}\nfunction E(e) {\n const t = getComputedStyle(e.el), s = {}, i = e.getSetting(\"customProps\");\n for (let n = 0; n < i.length; n++) {\n const o = b(), l = e.parent.module.toLowerCase(), u = p(i[n]), g = t.getPropertyValue(`--${o}${l}-${u}`).trim();\n g && (s[u] = g);\n }\n return s;\n}\nfunction b() {\n return getComputedStyle(document.body).getPropertyValue(\"--vb-prefix\").trim();\n}\nfunction O(e, t, s = \"camel\") {\n return t = s === \"camel\" ? C(t) : p(t), e.split(\".\").concat(t).reduce((i, n) => i?.[n], this);\n}\nfunction x(e, t = {}) {\n const {\n fallback: s,\n props: i = [\"dataConfig\", \"customProps\", \"settings\", \"parent.settings\"]\n } = t;\n for (const n of i) {\n const o = n !== \"customProps\" ? \"camel\" : \"kebab\", l = O.call(this, n, e, o);\n if (l !== void 0)\n return l;\n }\n if (s !== void 0)\n return s;\n throw new Error(`${this.parent.module} setting does not exist: ${e}`);\n}\nfunction L(e, t) {\n t && document.querySelectorAll(t).forEach((s) => {\n e ? s.style.overflow = \"hidden\" : s.style.removeProperty(\"overflow\");\n });\n}\nfunction A(e, t) {\n t && document.querySelectorAll(t).forEach((s) => {\n s.inert = e;\n });\n}\nfunction $(e, t, s) {\n A(!!e, t), L(!!e, s);\n}\nconst P = {\n events: {},\n on(e, t, ...s) {\n this.events[e] || (this.events[e] = []), this.events[e].some(\n (i) => i.listener === t\n ) || this.events[e].push({ listener: t, args: s });\n },\n off(e, t) {\n this.events[e] && (this.events[e] = this.events[e].filter(\n (s) => s.listener !== t\n ));\n },\n async emit(e, t) {\n if (e = e.startsWith(\"on\") ? e.slice(2, 3).toLowerCase() + e.slice(3) : e, !!this.events[e])\n for (const { listener: s, args: i } of this.events[e])\n await s(t, ...i);\n }\n};\nclass I extends Array {\n constructor(t = {}) {\n super(), this.presets = t;\n }\n applySettings(t) {\n const s = t?.defaults || {}, i = this.presets?.[t.name] || {}, n = t?.options || {};\n t.settings = { ...s, ...i, ...n };\n }\n validate(t) {\n return !(\"name\" in t) || typeof t.name != \"string\" ? (console.error(\"Plugin requires a name!\"), !1) : !0;\n }\n get(t) {\n return this.find((s) => s.name === t);\n }\n add(t) {\n if (Array.isArray(t))\n t.forEach((s) => this.add(s));\n else if (this.applySettings(t), this.validate(t)) {\n const s = this.findIndex((i) => i.name === t.name);\n ~s ? this[s] = t : this.push(t);\n }\n }\n remove(t) {\n const s = this.findIndex((i) => i.name === t);\n ~s && this.splice(s, 1);\n }\n}\nclass T extends Array {\n constructor(t = {}) {\n super(), this.settings = t;\n }\n get copy() {\n return [...this];\n }\n get top() {\n return this[this.length - 1] || null;\n }\n updateIndex() {\n this.forEach((t, s) => {\n t.el.style.zIndex = \"\";\n const i = getComputedStyle(t.el)[\"z-index\"];\n t.el.style.zIndex = String(parseInt(i, 10) + s + 1);\n });\n }\n onChange() {\n this.updateIndex(), typeof this.settings.onChange == \"function\" && this.settings.onChange();\n }\n add(t) {\n this.push(t), this.onChange();\n }\n remove(t) {\n const s = this.findIndex((i) => i.id === t.id);\n ~s && (t.el.style.zIndex = \"\", this.splice(s, 1), this.onChange());\n }\n moveToTop(t) {\n const s = this.findIndex((i) => i.id === t.id);\n ~s && (this.splice(s, 1), this.add(t));\n }\n}\nconst k = {\n dataConfig: \"config\",\n customProps: []\n};\nclass w {\n constructor(t, s, i = {}) {\n this.parent = t, this.el = f(s), this.settings = { ...i }, this.dataConfig = {}, this.customProps = {};\n }\n get id() {\n return this.el.id;\n }\n applySettings(t) {\n return Object.assign(this.settings, t);\n }\n getSetting(t, s) {\n return x.call(this, t, s);\n }\n buildDataConfig() {\n return Object.assign(\n this.dataConfig,\n y(this.el, this.getSetting(\"dataConfig\"))\n );\n }\n buildCustomProps() {\n return Object.assign(this.customProps, E(this));\n }\n async init(t = {}) {\n this.applySettings(t), this.buildDataConfig(), this.buildCustomProps();\n }\n async destroy() {\n Object.getOwnPropertyNames(this).forEach((t) => {\n delete this[t];\n });\n }\n}\nclass M {\n constructor(t = {}) {\n this.module = this.constructor.name, this.collection = [], this.entryClass = w, this.settings = { ...k, ...t }, this.plugins = new I(this.settings.presets), this.events = {}, Object.assign(this, P);\n }\n get(t, s = \"id\") {\n return this.collection.find((i) => i[s] === t);\n }\n getOrThrow(t, s = \"id\") {\n const i = this.get(t, s);\n if (i)\n return i;\n throw new Error(\n `${this.module} entry not found in collection with ${s} of \"${t}\"`\n );\n }\n applySettings(t) {\n return Object.assign(this.settings, t);\n }\n async createEntry(t, s) {\n const i = new this.entryClass(this, t, s);\n return await r(i, \"init\"), await a(\"onCreateEntry\", this, i), i;\n }\n async destroyEntry(t) {\n return await a(\"onDestroyEntry\", this, t), await r(t, \"destroy\"), t;\n }\n async register(t, s = {}) {\n const i = f(t), n = this.collection.findIndex((o) => o.id === i.id);\n if (~n) {\n const o = this.collection[n];\n return o.el = i, typeof o.init == \"function\" && await o.init(s), o;\n } else {\n const o = await this.createEntry(i, s);\n return this.collection.push(o), await a(\"onRegisterEntry\", this, o), o;\n }\n }\n async deregister(t) {\n const s = this.collection.findIndex((i) => i.id === t);\n if (~s) {\n const i = await this.destroyEntry(this.collection[s]);\n return await a(\n \"onDeregisterEntry\",\n this,\n this.collection[s]\n ), this.collection.splice(s, 1), i;\n }\n return null;\n }\n async mount(t = {}) {\n this.applySettings(t);\n for (const i of this.settings?.plugins || [])\n this.plugins.add(i);\n for (const i of this.plugins)\n await r(i, \"setup\", { plugin: i, parent: this });\n await a(\"beforeMount\", this);\n const s = document.querySelectorAll(this.settings.selector);\n for (const i of s)\n await this.register(i);\n return await a(\"afterMount\", this), this;\n }\n async unmount() {\n for (await a(\"beforeUnmount\", this); this.collection.length > 0; )\n await this.deregister(this.collection[0].id);\n await a(\"afterUnmount\", this);\n for (const t of this.plugins)\n await r(t, \"teardown\", { plugin: t, parent: this });\n for (const t of [...this.plugins])\n this.plugins.remove(t.name);\n return this;\n }\n}\nconst D = {\n // Data attributes\n dataOpen: \"modal-open\",\n dataClose: \"modal-close\",\n dataReplace: \"modal-replace\",\n // Selectors\n selector: \".modal\",\n selectorDialog: \".modal__dialog\",\n selectorScreen: \".modal\",\n selectorRequired: '[role=\"alertdialog\"]',\n selectorFocus: \"[data-focus]\",\n selectorInert: null,\n selectorOverflow: \"body\",\n // State classes\n stateOpened: \"is-opened\",\n stateOpening: \"is-opening\",\n stateClosing: \"is-closing\",\n stateClosed: \"is-closed\",\n // Feature settings\n customProps: [\"transition-duration\"],\n customEventPrefix: \"modal:\",\n setTabindex: !0,\n transition: !0,\n transitionDuration: 300\n};\nfunction c(e) {\n e.active ? (e.active.dialog.querySelector(e.settings.selectorFocus) || e.active.dialog).focus() : e.trigger && (e.trigger.focus(), e.trigger = null);\n}\nasync function h(e, t, s = !0) {\n return e.parent.stack.moveToTop(e), e.state === \"closed\" && (e.state = \"opening\", e.parent.stack.add(e), t ?? e.getSetting(\"transition\") ? await m(\n e.el,\n e.getSetting(\"stateClosed\"),\n e.getSetting(\"stateOpening\"),\n e.getSetting(\"stateOpened\"),\n e.getSetting(\"transitionDuration\")\n ) : (e.el.classList.add(e.getSetting(\"stateOpened\")), e.el.classList.remove(e.getSetting(\"stateClosed\"))), e.state = \"opened\"), s && c(e.parent), e.el.dispatchEvent(\n new CustomEvent(e.getSetting(\"customEventPrefix\") + \"opened\", {\n detail: e.parent,\n bubbles: !0\n })\n ), await e.parent.emit(\"opened\", e), e;\n}\nasync function d(e, t, s = !0) {\n return e && e.state === \"opened\" && (e.state = \"closing\", document.activeElement && document.activeElement instanceof HTMLElement && document.activeElement.blur(), t ?? e.getSetting(\"transition\") ? await m(\n e.el,\n e.getSetting(\"stateOpened\"),\n e.getSetting(\"stateClosing\"),\n e.getSetting(\"stateClosed\"),\n e.getSetting(\"transitionDuration\")\n ) : (e.el.classList.add(e.getSetting(\"stateClosed\")), e.el.classList.remove(e.getSetting(\"stateOpened\"))), e.parent.stack.remove(e), e.state = \"closed\", s && c(e.parent), e.el.dispatchEvent(\n new CustomEvent(e.getSetting(\"customEventPrefix\") + \"closed\", {\n detail: e.parent,\n bubbles: !0\n })\n ), await e.parent.emit(\"closed\", e)), e;\n}\nasync function v(e, t, s = !0) {\n let i, n;\n return e.state === \"opened\" ? (i = e, n = await e.parent.closeAll(e.id, t)) : [n, i] = await Promise.all([\n e.parent.closeAll(\"\", t),\n h(e, t, !1)\n ]), s && c(e.parent), { opened: i, closed: n };\n}\nclass q extends w {\n constructor(t, s, i = {}) {\n super(t, s, i), this.state = \"closed\", this.dialog = this.el.querySelector(this.getSetting(\"selectorDialog\")) || this.el;\n }\n get isRequired() {\n return this.dialog.matches(this.getSetting(\"selectorRequired\"));\n }\n async open(t, s) {\n return h(this, t, s);\n }\n async close(t, s) {\n return d(this, t, s);\n }\n async replace(t, s) {\n return v(this, t, s);\n }\n async deregister() {\n return this.parent.deregister(this.id);\n }\n async onCreateEntry() {\n this.dialog.setAttribute(\"aria-modal\", \"true\"), this.dialog.hasAttribute(\"role\") || this.dialog.setAttribute(\"role\", \"dialog\"), this.getSetting(\"setTabindex\") && this.dialog.setAttribute(\"tabindex\", \"-1\");\n }\n async onRegisterEntry() {\n this.el.classList.contains(this.getSetting(\"stateOpened\")) ? await this.open(!1) : (this.el.classList.remove(this.getSetting(\"stateOpening\")), this.el.classList.remove(this.getSetting(\"stateClosing\")), this.el.classList.add(this.getSetting(\"stateClosed\")));\n }\n async onDestroyEntry() {\n this.state === \"opened\" && await this.close(!1);\n }\n}\nasync function R(e) {\n const t = e.target;\n if (t) {\n const s = t.closest(`\n [data-${this.settings.dataOpen}],\n [data-${this.settings.dataReplace}],\n [data-${this.settings.dataClose}]\n `);\n if (s) {\n if (e.preventDefault(), s.matches(`[data-${this.settings.dataOpen}]`)) {\n const i = s.getAttribute(`data-${this.settings.dataOpen}`)?.trim(), n = this.getOrThrow(i);\n return t.closest(this.settings.selector) || (this.trigger = s), n.open();\n }\n if (s.matches(`[data-${this.settings.dataReplace}]`)) {\n const i = s.getAttribute(`data-${this.settings.dataReplace}`)?.trim(), n = this.getOrThrow(i);\n return t.closest(this.settings.selector) || (this.trigger = s), n.replace();\n }\n if (s.matches(`[data-${this.settings.dataClose}]`)) {\n const i = s.getAttribute(`data-${this.settings.dataClose}`)?.trim();\n return i === \"*\" ? this.closeAll() : this.close(i || \"\");\n }\n }\n if (this.active && t.matches(this.settings.selectorScreen) && !this.active.isRequired)\n return this.close();\n }\n}\nfunction j(e) {\n if (e.key === \"Escape\" && this.active && !this.active.dialog.matches(this.settings.selectorRequired))\n return this.close();\n}\nasync function z(e = \"\", t) {\n const s = [];\n return await Promise.all(\n this.stack.copy.map(async (i) => {\n e && e === i.id || s.push(await d(i, t, !1));\n })\n ), s;\n}\nclass H extends M {\n #t;\n #e;\n constructor(t) {\n super({ ...D, ...t }), this.module = \"Modal\", this.entryClass = q, this.trigger = null, this.#t = R.bind(this), this.#e = j.bind(this), this.stack = new T({\n onChange: () => {\n $(\n !!this.stack.top,\n this.settings.selectorInert,\n this.settings.selectorOverflow\n );\n }\n });\n }\n get active() {\n return this.stack.top;\n }\n async open(t, s, i) {\n const n = this.getOrThrow(t);\n return h(n, s, i);\n }\n async close(t, s, i) {\n const n = t ? this.getOrThrow(t) : this.active;\n return d(n, s, i);\n }\n async replace(t, s, i) {\n const n = this.getOrThrow(t);\n return v(n, s, i);\n }\n async closeAll(t, s, i = !0) {\n const n = await z.call(this, t, s);\n return i && c(this), n;\n }\n async afterMount() {\n document.addEventListener(\"click\", this.#t, !1), document.addEventListener(\"keydown\", this.#e, !1);\n }\n async beforeUnmount() {\n this.trigger = null;\n }\n async afterUnmount() {\n document.removeEventListener(\"click\", this.#t, !1), document.removeEventListener(\"keydown\", this.#e, !1);\n }\n}\nexport {\n H as default\n};\n//# sourceMappingURL=index.js.map\n","function Jt(t, e = \"config\") {\n const n = (t.getAttribute(`data-${e}`) || \"\").replace(/'/g, '\"');\n return n ? JSON.parse(n) : {};\n}\nfunction Rt(t) {\n if (typeof t == \"string\") {\n const e = document.getElementById(t);\n if (e) return e;\n throw new Error(`Element not found with ID: \"${t}\"`);\n } else if (t instanceof HTMLElement) {\n if (!t.id)\n throw new Error(\"HTMLElement must have an ID\");\n return t;\n } else\n throw new Error(\"Invalid argument: query must be a string or HTMLElement\");\n}\nasync function z(t, e, ...n) {\n e in t && typeof t[e] == \"function\" && await t[e](...n);\n}\nfunction Zt(t) {\n return t.split(\"-\").map(\n (e, n) => n === 0 ? e : e.charAt(0).toUpperCase() + e.slice(1)\n ).join(\"\");\n}\nfunction kt(t) {\n return t.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\nasync function H(t, e, n) {\n await z(e, t, n), n && await z(n, t);\n for (const i of e.plugins)\n await z(i, t, { plugin: i, parent: e, entry: n });\n await e.emit(t, n);\n}\nfunction Gt(t) {\n const e = getComputedStyle(t.el), n = {}, i = t.getSetting(\"customProps\");\n for (let s = 0; s < i.length; s++) {\n const o = Qt(), r = t.parent.module.toLowerCase(), c = kt(i[s]), l = e.getPropertyValue(`--${o}${r}-${c}`).trim();\n l && (n[c] = l);\n }\n return n;\n}\nfunction Qt() {\n return getComputedStyle(document.body).getPropertyValue(\"--vb-prefix\").trim();\n}\nfunction te(t, e, n = \"camel\") {\n return e = n === \"camel\" ? Zt(e) : kt(e), t.split(\".\").concat(e).reduce((i, s) => i?.[s], this);\n}\nfunction ee(t, e = {}) {\n const {\n fallback: n,\n props: i = [\"dataConfig\", \"customProps\", \"settings\", \"parent.settings\"]\n } = e;\n for (const s of i) {\n const o = s !== \"customProps\" ? \"camel\" : \"kebab\", r = te.call(this, s, t, o);\n if (r !== void 0)\n return r;\n }\n if (n !== void 0)\n return n;\n throw new Error(`${this.parent.module} setting does not exist: ${t}`);\n}\nconst ne = {\n events: {},\n on(t, e, ...n) {\n this.events[t] || (this.events[t] = []), this.events[t].some(\n (i) => i.listener === e\n ) || this.events[t].push({ listener: e, args: n });\n },\n off(t, e) {\n this.events[t] && (this.events[t] = this.events[t].filter(\n (n) => n.listener !== e\n ));\n },\n async emit(t, e) {\n if (t = t.startsWith(\"on\") ? t.slice(2, 3).toLowerCase() + t.slice(3) : t, !!this.events[t])\n for (const { listener: n, args: i } of this.events[t])\n await n(e, ...i);\n }\n};\nclass ie extends Array {\n constructor(e = {}) {\n super(), this.presets = e;\n }\n applySettings(e) {\n const n = e?.defaults || {}, i = this.presets?.[e.name] || {}, s = e?.options || {};\n e.settings = { ...n, ...i, ...s };\n }\n validate(e) {\n return !(\"name\" in e) || typeof e.name != \"string\" ? (console.error(\"Plugin requires a name!\"), !1) : !0;\n }\n get(e) {\n return this.find((n) => n.name === e);\n }\n add(e) {\n if (Array.isArray(e))\n e.forEach((n) => this.add(n));\n else if (this.applySettings(e), this.validate(e)) {\n const n = this.findIndex((i) => i.name === e.name);\n ~n ? this[n] = e : this.push(e);\n }\n }\n remove(e) {\n const n = this.findIndex((i) => i.name === e);\n ~n && this.splice(n, 1);\n }\n}\nconst se = {\n dataConfig: \"config\",\n customProps: []\n};\nclass Dt {\n constructor(e, n, i = {}) {\n this.parent = e, this.el = Rt(n), this.settings = { ...i }, this.dataConfig = {}, this.customProps = {};\n }\n get id() {\n return this.el.id;\n }\n applySettings(e) {\n return Object.assign(this.settings, e);\n }\n getSetting(e, n) {\n return ee.call(this, e, n);\n }\n buildDataConfig() {\n return Object.assign(\n this.dataConfig,\n Jt(this.el, this.getSetting(\"dataConfig\"))\n );\n }\n buildCustomProps() {\n return Object.assign(this.customProps, Gt(this));\n }\n async init(e = {}) {\n this.applySettings(e), this.buildDataConfig(), this.buildCustomProps();\n }\n async destroy() {\n Object.getOwnPropertyNames(this).forEach((e) => {\n delete this[e];\n });\n }\n}\nclass oe {\n constructor(e = {}) {\n this.module = this.constructor.name, this.collection = [], this.entryClass = Dt, this.settings = { ...se, ...e }, this.plugins = new ie(this.settings.presets), this.events = {}, Object.assign(this, ne);\n }\n get(e, n = \"id\") {\n return this.collection.find((i) => i[n] === e);\n }\n getOrThrow(e, n = \"id\") {\n const i = this.get(e, n);\n if (i)\n return i;\n throw new Error(\n `${this.module} entry not found in collection with ${n} of \"${e}\"`\n );\n }\n applySettings(e) {\n return Object.assign(this.settings, e);\n }\n async createEntry(e, n) {\n const i = new this.entryClass(this, e, n);\n return await z(i, \"init\"), await H(\"onCreateEntry\", this, i), i;\n }\n async destroyEntry(e) {\n return await H(\"onDestroyEntry\", this, e), await z(e, \"destroy\"), e;\n }\n async register(e, n = {}) {\n const i = Rt(e), s = this.collection.findIndex((o) => o.id === i.id);\n if (~s) {\n const o = this.collection[s];\n return o.el = i, typeof o.init == \"function\" && await o.init(n), o;\n } else {\n const o = await this.createEntry(i, n);\n return this.collection.push(o), await H(\"onRegisterEntry\", this, o), o;\n }\n }\n async deregister(e) {\n const n = this.collection.findIndex((i) => i.id === e);\n if (~n) {\n const i = await this.destroyEntry(this.collection[n]);\n return await H(\n \"onDeregisterEntry\",\n this,\n this.collection[n]\n ), this.collection.splice(n, 1), i;\n }\n return null;\n }\n async mount(e = {}) {\n this.applySettings(e);\n for (const i of this.settings?.plugins || [])\n this.plugins.add(i);\n for (const i of this.plugins)\n await z(i, \"setup\", { plugin: i, parent: this });\n await H(\"beforeMount\", this);\n const n = document.querySelectorAll(this.settings.selector);\n for (const i of n)\n await this.register(i);\n return await H(\"afterMount\", this), this;\n }\n async unmount() {\n for (await H(\"beforeUnmount\", this); this.collection.length > 0; )\n await this.deregister(this.collection[0].id);\n await H(\"afterUnmount\", this);\n for (const e of this.plugins)\n await z(e, \"teardown\", { plugin: e, parent: this });\n for (const e of [...this.plugins])\n this.plugins.remove(e.name);\n return this;\n }\n}\nconst re = {\n // Selectors\n selector: \".popover\",\n selectorTooltip: \".popover_tooltip\",\n selectorArrow: \".popover__arrow\",\n // State classes\n stateActive: \"is-active\",\n // Custom properties and their defaults\n customProps: [\n \"placement\",\n \"event\",\n \"offset\",\n \"flip-padding\",\n \"shift-padding\",\n \"arrow-padding\",\n \"toggle-delay\"\n ],\n customEventPrefix: \"popover:\",\n placement: \"bottom\",\n event: \"click\",\n offset: 0,\n flipPadding: 0,\n shiftPadding: 0,\n arrowPadding: 0,\n toggleDelay: 0\n}, Y = Math.min, j = Math.max, st = Math.round, it = Math.floor, R = (t) => ({\n x: t,\n y: t\n}), ce = {\n left: \"right\",\n right: \"left\",\n bottom: \"top\",\n top: \"bottom\"\n}, le = {\n start: \"end\",\n end: \"start\"\n};\nfunction gt(t, e, n) {\n return j(t, Y(e, n));\n}\nfunction q(t, e) {\n return typeof t == \"function\" ? t(e) : t;\n}\nfunction I(t) {\n return t.split(\"-\")[0];\n}\nfunction et(t) {\n return t.split(\"-\")[1];\n}\nfunction pt(t) {\n return t === \"x\" ? \"y\" : \"x\";\n}\nfunction wt(t) {\n return t === \"y\" ? \"height\" : \"width\";\n}\nconst ae = /* @__PURE__ */ new Set([\"top\", \"bottom\"]);\nfunction F(t) {\n return ae.has(I(t)) ? \"y\" : \"x\";\n}\nfunction yt(t) {\n return pt(F(t));\n}\nfunction fe(t, e, n) {\n n === void 0 && (n = !1);\n const i = et(t), s = yt(t), o = wt(s);\n let r = s === \"x\" ? i === (n ? \"end\" : \"start\") ? \"right\" : \"left\" : i === \"start\" ? \"bottom\" : \"top\";\n return e.reference[o] > e.floating[o] && (r = ot(r)), [r, ot(r)];\n}\nfunction ue(t) {\n const e = ot(t);\n return [ht(t), e, ht(e)];\n}\nfunction ht(t) {\n return t.replace(/start|end/g, (e) => le[e]);\n}\nconst At = [\"left\", \"right\"], Et = [\"right\", \"left\"], de = [\"top\", \"bottom\"], ge = [\"bottom\", \"top\"];\nfunction he(t, e, n) {\n switch (t) {\n case \"top\":\n case \"bottom\":\n return n ? e ? Et : At : e ? At : Et;\n case \"left\":\n case \"right\":\n return e ? de : ge;\n default:\n return [];\n }\n}\nfunction me(t, e, n, i) {\n const s = et(t);\n let o = he(I(t), n === \"start\", i);\n return s && (o = o.map((r) => r + \"-\" + s), e && (o = o.concat(o.map(ht)))), o;\n}\nfunction ot(t) {\n return t.replace(/left|right|bottom|top/g, (e) => ce[e]);\n}\nfunction pe(t) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...t\n };\n}\nfunction Mt(t) {\n return typeof t != \"number\" ? pe(t) : {\n top: t,\n right: t,\n bottom: t,\n left: t\n };\n}\nfunction rt(t) {\n const {\n x: e,\n y: n,\n width: i,\n height: s\n } = t;\n return {\n width: i,\n height: s,\n top: n,\n left: e,\n right: e + i,\n bottom: n + s,\n x: e,\n y: n\n };\n}\nfunction Ct(t, e, n) {\n let {\n reference: i,\n floating: s\n } = t;\n const o = F(e), r = yt(e), c = wt(r), l = I(e), a = o === \"y\", d = i.x + i.width / 2 - s.width / 2, u = i.y + i.height / 2 - s.height / 2, g = i[c] / 2 - s[c] / 2;\n let f;\n switch (l) {\n case \"top\":\n f = {\n x: d,\n y: i.y - s.height\n };\n break;\n case \"bottom\":\n f = {\n x: d,\n y: i.y + i.height\n };\n break;\n case \"right\":\n f = {\n x: i.x + i.width,\n y: u\n };\n break;\n case \"left\":\n f = {\n x: i.x - s.width,\n y: u\n };\n break;\n default:\n f = {\n x: i.x,\n y: i.y\n };\n }\n switch (et(e)) {\n case \"start\":\n f[r] -= g * (n && a ? -1 : 1);\n break;\n case \"end\":\n f[r] += g * (n && a ? -1 : 1);\n break;\n }\n return f;\n}\nconst we = async (t, e, n) => {\n const {\n placement: i = \"bottom\",\n strategy: s = \"absolute\",\n middleware: o = [],\n platform: r\n } = n, c = o.filter(Boolean), l = await (r.isRTL == null ? void 0 : r.isRTL(e));\n let a = await r.getElementRects({\n reference: t,\n floating: e,\n strategy: s\n }), {\n x: d,\n y: u\n } = Ct(a, i, l), g = i, f = {}, h = 0;\n for (let m = 0; m < c.length; m++) {\n const {\n name: p,\n fn: w\n } = c[m], {\n x: y,\n y: x,\n data: v,\n reset: b\n } = await w({\n x: d,\n y: u,\n initialPlacement: i,\n placement: g,\n strategy: s,\n middlewareData: f,\n rects: a,\n platform: r,\n elements: {\n reference: t,\n floating: e\n }\n });\n d = y ?? d, u = x ?? u, f = {\n ...f,\n [p]: {\n ...f[p],\n ...v\n }\n }, b && h <= 50 && (h++, typeof b == \"object\" && (b.placement && (g = b.placement), b.rects && (a = b.rects === !0 ? await r.getElementRects({\n reference: t,\n floating: e,\n strategy: s\n }) : b.rects), {\n x: d,\n y: u\n } = Ct(a, g, l)), m = -1);\n }\n return {\n x: d,\n y: u,\n placement: g,\n strategy: s,\n middlewareData: f\n };\n};\nasync function $t(t, e) {\n var n;\n e === void 0 && (e = {});\n const {\n x: i,\n y: s,\n platform: o,\n rects: r,\n elements: c,\n strategy: l\n } = t, {\n boundary: a = \"clippingAncestors\",\n rootBoundary: d = \"viewport\",\n elementContext: u = \"floating\",\n altBoundary: g = !1,\n padding: f = 0\n } = q(e, t), h = Mt(f), p = c[g ? u === \"floating\" ? \"reference\" : \"floating\" : u], w = rt(await o.getClippingRect({\n element: (n = await (o.isElement == null ? void 0 : o.isElement(p))) == null || n ? p : p.contextElement || await (o.getDocumentElement == null ? void 0 : o.getDocumentElement(c.floating)),\n boundary: a,\n rootBoundary: d,\n strategy: l\n })), y = u === \"floating\" ? {\n x: i,\n y: s,\n width: r.floating.width,\n height: r.floating.height\n } : r.reference, x = await (o.getOffsetParent == null ? void 0 : o.getOffsetParent(c.floating)), v = await (o.isElement == null ? void 0 : o.isElement(x)) ? await (o.getScale == null ? void 0 : o.getScale(x)) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n }, b = rt(o.convertOffsetParentRelativeRectToViewportRelativeRect ? await o.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements: c,\n rect: y,\n offsetParent: x,\n strategy: l\n }) : y);\n return {\n top: (w.top - b.top + h.top) / v.y,\n bottom: (b.bottom - w.bottom + h.bottom) / v.y,\n left: (w.left - b.left + h.left) / v.x,\n right: (b.right - w.right + h.right) / v.x\n };\n}\nconst ye = (t) => ({\n name: \"arrow\",\n options: t,\n async fn(e) {\n const {\n x: n,\n y: i,\n placement: s,\n rects: o,\n platform: r,\n elements: c,\n middlewareData: l\n } = e, {\n element: a,\n padding: d = 0\n } = q(t, e) || {};\n if (a == null)\n return {};\n const u = Mt(d), g = {\n x: n,\n y: i\n }, f = yt(s), h = wt(f), m = await r.getDimensions(a), p = f === \"y\", w = p ? \"top\" : \"left\", y = p ? \"bottom\" : \"right\", x = p ? \"clientHeight\" : \"clientWidth\", v = o.reference[h] + o.reference[f] - g[f] - o.floating[h], b = g[f] - o.reference[f], C = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(a));\n let S = C ? C[x] : 0;\n (!S || !await (r.isElement == null ? void 0 : r.isElement(C))) && (S = c.floating[x] || o.floating[h]);\n const Z = v / 2 - b / 2, W = S / 2 - m[h] / 2 - 1, M = Y(u[w], W), G = Y(u[y], W), B = M, Q = S - m[h] - G, A = S / 2 - m[h] / 2 + Z, _ = gt(B, A, Q), $ = !l.arrow && et(s) != null && A !== _ && o.reference[h] / 2 - (A < B ? M : G) - m[h] / 2 < 0, L = $ ? A < B ? A - B : A - Q : 0;\n return {\n [f]: g[f] + L,\n data: {\n [f]: _,\n centerOffset: A - _ - L,\n ...$ && {\n alignmentOffset: L\n }\n },\n reset: $\n };\n }\n}), xe = function(t) {\n return t === void 0 && (t = {}), {\n name: \"flip\",\n options: t,\n async fn(e) {\n var n, i;\n const {\n placement: s,\n middlewareData: o,\n rects: r,\n initialPlacement: c,\n platform: l,\n elements: a\n } = e, {\n mainAxis: d = !0,\n crossAxis: u = !0,\n fallbackPlacements: g,\n fallbackStrategy: f = \"bestFit\",\n fallbackAxisSideDirection: h = \"none\",\n flipAlignment: m = !0,\n ...p\n } = q(t, e);\n if ((n = o.arrow) != null && n.alignmentOffset)\n return {};\n const w = I(s), y = F(c), x = I(c) === c, v = await (l.isRTL == null ? void 0 : l.isRTL(a.floating)), b = g || (x || !m ? [ot(c)] : ue(c)), C = h !== \"none\";\n !g && C && b.push(...me(c, m, h, v));\n const S = [c, ...b], Z = await $t(e, p), W = [];\n let M = ((i = o.flip) == null ? void 0 : i.overflows) || [];\n if (d && W.push(Z[w]), u) {\n const A = fe(s, r, v);\n W.push(Z[A[0]], Z[A[1]]);\n }\n if (M = [...M, {\n placement: s,\n overflows: W\n }], !W.every((A) => A <= 0)) {\n var G, B;\n const A = (((G = o.flip) == null ? void 0 : G.index) || 0) + 1, _ = S[A];\n if (_ && (!(u === \"alignment\" ? y !== F(_) : !1) || // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n M.every((O) => F(O.placement) === y ? O.overflows[0] > 0 : !0)))\n return {\n data: {\n index: A,\n overflows: M\n },\n reset: {\n placement: _\n }\n };\n let $ = (B = M.filter((L) => L.overflows[0] <= 0).sort((L, O) => L.overflows[1] - O.overflows[1])[0]) == null ? void 0 : B.placement;\n if (!$)\n switch (f) {\n case \"bestFit\": {\n var Q;\n const L = (Q = M.filter((O) => {\n if (C) {\n const N = F(O.placement);\n return N === y || // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n N === \"y\";\n }\n return !0;\n }).map((O) => [O.placement, O.overflows.filter((N) => N > 0).reduce((N, Kt) => N + Kt, 0)]).sort((O, N) => O[1] - N[1])[0]) == null ? void 0 : Q[0];\n L && ($ = L);\n break;\n }\n case \"initialPlacement\":\n $ = c;\n break;\n }\n if (s !== $)\n return {\n reset: {\n placement: $\n }\n };\n }\n return {};\n }\n };\n}, Ft = /* @__PURE__ */ new Set([\"left\", \"top\"]);\nasync function be(t, e) {\n const {\n placement: n,\n platform: i,\n elements: s\n } = t, o = await (i.isRTL == null ? void 0 : i.isRTL(s.floating)), r = I(n), c = et(n), l = F(n) === \"y\", a = Ft.has(r) ? -1 : 1, d = o && l ? -1 : 1, u = q(e, t);\n let {\n mainAxis: g,\n crossAxis: f,\n alignmentAxis: h\n } = typeof u == \"number\" ? {\n mainAxis: u,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: u.mainAxis || 0,\n crossAxis: u.crossAxis || 0,\n alignmentAxis: u.alignmentAxis\n };\n return c && typeof h == \"number\" && (f = c === \"end\" ? h * -1 : h), l ? {\n x: f * d,\n y: g * a\n } : {\n x: g * a,\n y: f * d\n };\n}\nconst ve = function(t) {\n return t === void 0 && (t = 0), {\n name: \"offset\",\n options: t,\n async fn(e) {\n var n, i;\n const {\n x: s,\n y: o,\n placement: r,\n middlewareData: c\n } = e, l = await be(e, t);\n return r === ((n = c.offset) == null ? void 0 : n.placement) && (i = c.arrow) != null && i.alignmentOffset ? {} : {\n x: s + l.x,\n y: o + l.y,\n data: {\n ...l,\n placement: r\n }\n };\n }\n };\n}, Ae = function(t) {\n return t === void 0 && (t = {}), {\n name: \"shift\",\n options: t,\n async fn(e) {\n const {\n x: n,\n y: i,\n placement: s\n } = e, {\n mainAxis: o = !0,\n crossAxis: r = !1,\n limiter: c = {\n fn: (p) => {\n let {\n x: w,\n y\n } = p;\n return {\n x: w,\n y\n };\n }\n },\n ...l\n } = q(t, e), a = {\n x: n,\n y: i\n }, d = await $t(e, l), u = F(I(s)), g = pt(u);\n let f = a[g], h = a[u];\n if (o) {\n const p = g === \"y\" ? \"top\" : \"left\", w = g === \"y\" ? \"bottom\" : \"right\", y = f + d[p], x = f - d[w];\n f = gt(y, f, x);\n }\n if (r) {\n const p = u === \"y\" ? \"top\" : \"left\", w = u === \"y\" ? \"bottom\" : \"right\", y = h + d[p], x = h - d[w];\n h = gt(y, h, x);\n }\n const m = c.fn({\n ...e,\n [g]: f,\n [u]: h\n });\n return {\n ...m,\n data: {\n x: m.x - n,\n y: m.y - i,\n enabled: {\n [g]: o,\n [u]: r\n }\n }\n };\n }\n };\n}, Ee = function(t) {\n return t === void 0 && (t = {}), {\n options: t,\n fn(e) {\n const {\n x: n,\n y: i,\n placement: s,\n rects: o,\n middlewareData: r\n } = e, {\n offset: c = 0,\n mainAxis: l = !0,\n crossAxis: a = !0\n } = q(t, e), d = {\n x: n,\n y: i\n }, u = F(s), g = pt(u);\n let f = d[g], h = d[u];\n const m = q(c, e), p = typeof m == \"number\" ? {\n mainAxis: m,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...m\n };\n if (l) {\n const x = g === \"y\" ? \"height\" : \"width\", v = o.reference[g] - o.floating[x] + p.mainAxis, b = o.reference[g] + o.reference[x] - p.mainAxis;\n f < v ? f = v : f > b && (f = b);\n }\n if (a) {\n var w, y;\n const x = g === \"y\" ? \"width\" : \"height\", v = Ft.has(I(s)), b = o.reference[u] - o.floating[x] + (v && ((w = r.offset) == null ? void 0 : w[u]) || 0) + (v ? 0 : p.crossAxis), C = o.reference[u] + o.reference[x] + (v ? 0 : ((y = r.offset) == null ? void 0 : y[u]) || 0) - (v ? p.crossAxis : 0);\n h < b ? h = b : h > C && (h = C);\n }\n return {\n [g]: f,\n [u]: h\n };\n }\n };\n};\nfunction ct() {\n return typeof window < \"u\";\n}\nfunction J(t) {\n return Nt(t) ? (t.nodeName || \"\").toLowerCase() : \"#document\";\n}\nfunction E(t) {\n var e;\n return (t == null || (e = t.ownerDocument) == null ? void 0 : e.defaultView) || window;\n}\nfunction D(t) {\n var e;\n return (e = (Nt(t) ? t.ownerDocument : t.document) || window.document) == null ? void 0 : e.documentElement;\n}\nfunction Nt(t) {\n return ct() ? t instanceof Node || t instanceof E(t).Node : !1;\n}\nfunction T(t) {\n return ct() ? t instanceof Element || t instanceof E(t).Element : !1;\n}\nfunction k(t) {\n return ct() ? t instanceof HTMLElement || t instanceof E(t).HTMLElement : !1;\n}\nfunction St(t) {\n return !ct() || typeof ShadowRoot > \"u\" ? !1 : t instanceof ShadowRoot || t instanceof E(t).ShadowRoot;\n}\nconst Ce = /* @__PURE__ */ new Set([\"inline\", \"contents\"]);\nfunction nt(t) {\n const {\n overflow: e,\n overflowX: n,\n overflowY: i,\n display: s\n } = P(t);\n return /auto|scroll|overlay|hidden|clip/.test(e + i + n) && !Ce.has(s);\n}\nconst Se = /* @__PURE__ */ new Set([\"table\", \"td\", \"th\"]);\nfunction Le(t) {\n return Se.has(J(t));\n}\nconst Oe = [\":popover-open\", \":modal\"];\nfunction lt(t) {\n return Oe.some((e) => {\n try {\n return t.matches(e);\n } catch {\n return !1;\n }\n });\n}\nconst Te = [\"transform\", \"translate\", \"scale\", \"rotate\", \"perspective\"], Pe = [\"transform\", \"translate\", \"scale\", \"rotate\", \"perspective\", \"filter\"], Re = [\"paint\", \"layout\", \"strict\", \"content\"];\nfunction xt(t) {\n const e = bt(), n = T(t) ? P(t) : t;\n return Te.some((i) => n[i] ? n[i] !== \"none\" : !1) || (n.containerType ? n.containerType !== \"normal\" : !1) || !e && (n.backdropFilter ? n.backdropFilter !== \"none\" : !1) || !e && (n.filter ? n.filter !== \"none\" : !1) || Pe.some((i) => (n.willChange || \"\").includes(i)) || Re.some((i) => (n.contain || \"\").includes(i));\n}\nfunction ke(t) {\n let e = V(t);\n for (; k(e) && !K(e); ) {\n if (xt(e))\n return e;\n if (lt(e))\n return null;\n e = V(e);\n }\n return null;\n}\nfunction bt() {\n return typeof CSS > \"u\" || !CSS.supports ? !1 : CSS.supports(\"-webkit-backdrop-filter\", \"none\");\n}\nconst De = /* @__PURE__ */ new Set([\"html\", \"body\", \"#document\"]);\nfunction K(t) {\n return De.has(J(t));\n}\nfunction P(t) {\n return E(t).getComputedStyle(t);\n}\nfunction at(t) {\n return T(t) ? {\n scrollLeft: t.scrollLeft,\n scrollTop: t.scrollTop\n } : {\n scrollLeft: t.scrollX,\n scrollTop: t.scrollY\n };\n}\nfunction V(t) {\n if (J(t) === \"html\")\n return t;\n const e = (\n // Step into the shadow DOM of the parent of a slotted node.\n t.assignedSlot || // DOM Element detected.\n t.parentNode || // ShadowRoot detected.\n St(t) && t.host || // Fallback.\n D(t)\n );\n return St(e) ? e.host : e;\n}\nfunction Ht(t) {\n const e = V(t);\n return K(e) ? t.ownerDocument ? t.ownerDocument.body : t.body : k(e) && nt(e) ? e : Ht(e);\n}\nfunction tt(t, e, n) {\n var i;\n e === void 0 && (e = []), n === void 0 && (n = !0);\n const s = Ht(t), o = s === ((i = t.ownerDocument) == null ? void 0 : i.body), r = E(s);\n if (o) {\n const c = mt(r);\n return e.concat(r, r.visualViewport || [], nt(s) ? s : [], c && n ? tt(c) : []);\n }\n return e.concat(s, tt(s, [], n));\n}\nfunction mt(t) {\n return t.parent && Object.getPrototypeOf(t.parent) ? t.frameElement : null;\n}\nfunction It(t) {\n const e = P(t);\n let n = parseFloat(e.width) || 0, i = parseFloat(e.height) || 0;\n const s = k(t), o = s ? t.offsetWidth : n, r = s ? t.offsetHeight : i, c = st(n) !== o || st(i) !== r;\n return c && (n = o, i = r), {\n width: n,\n height: i,\n $: c\n };\n}\nfunction vt(t) {\n return T(t) ? t : t.contextElement;\n}\nfunction X(t) {\n const e = vt(t);\n if (!k(e))\n return R(1);\n const n = e.getBoundingClientRect(), {\n width: i,\n height: s,\n $: o\n } = It(e);\n let r = (o ? st(n.width) : n.width) / i, c = (o ? st(n.height) : n.height) / s;\n return (!r || !Number.isFinite(r)) && (r = 1), (!c || !Number.isFinite(c)) && (c = 1), {\n x: r,\n y: c\n };\n}\nconst Me = /* @__PURE__ */ R(0);\nfunction Vt(t) {\n const e = E(t);\n return !bt() || !e.visualViewport ? Me : {\n x: e.visualViewport.offsetLeft,\n y: e.visualViewport.offsetTop\n };\n}\nfunction $e(t, e, n) {\n return e === void 0 && (e = !1), !n || e && n !== E(t) ? !1 : e;\n}\nfunction U(t, e, n, i) {\n e === void 0 && (e = !1), n === void 0 && (n = !1);\n const s = t.getBoundingClientRect(), o = vt(t);\n let r = R(1);\n e && (i ? T(i) && (r = X(i)) : r = X(t));\n const c = $e(o, n, i) ? Vt(o) : R(0);\n let l = (s.left + c.x) / r.x, a = (s.top + c.y) / r.y, d = s.width / r.x, u = s.height / r.y;\n if (o) {\n const g = E(o), f = i && T(i) ? E(i) : i;\n let h = g, m = mt(h);\n for (; m && i && f !== h; ) {\n const p = X(m), w = m.getBoundingClientRect(), y = P(m), x = w.left + (m.clientLeft + parseFloat(y.paddingLeft)) * p.x, v = w.top + (m.clientTop + parseFloat(y.paddingTop)) * p.y;\n l *= p.x, a *= p.y, d *= p.x, u *= p.y, l += x, a += v, h = E(m), m = mt(h);\n }\n }\n return rt({\n width: d,\n height: u,\n x: l,\n y: a\n });\n}\nfunction ft(t, e) {\n const n = at(t).scrollLeft;\n return e ? e.left + n : U(D(t)).left + n;\n}\nfunction Wt(t, e) {\n const n = t.getBoundingClientRect(), i = n.left + e.scrollLeft - ft(t, n), s = n.top + e.scrollTop;\n return {\n x: i,\n y: s\n };\n}\nfunction Fe(t) {\n let {\n elements: e,\n rect: n,\n offsetParent: i,\n strategy: s\n } = t;\n const o = s === \"fixed\", r = D(i), c = e ? lt(e.floating) : !1;\n if (i === r || c && o)\n return n;\n let l = {\n scrollLeft: 0,\n scrollTop: 0\n }, a = R(1);\n const d = R(0), u = k(i);\n if ((u || !u && !o) && ((J(i) !== \"body\" || nt(r)) && (l = at(i)), k(i))) {\n const f = U(i);\n a = X(i), d.x = f.x + i.clientLeft, d.y = f.y + i.clientTop;\n }\n const g = r && !u && !o ? Wt(r, l) : R(0);\n return {\n width: n.width * a.x,\n height: n.height * a.y,\n x: n.x * a.x - l.scrollLeft * a.x + d.x + g.x,\n y: n.y * a.y - l.scrollTop * a.y + d.y + g.y\n };\n}\nfunction Ne(t) {\n return Array.from(t.getClientRects());\n}\nfunction He(t) {\n const e = D(t), n = at(t), i = t.ownerDocument.body, s = j(e.scrollWidth, e.clientWidth, i.scrollWidth, i.clientWidth), o = j(e.scrollHeight, e.clientHeight, i.scrollHeight, i.clientHeight);\n let r = -n.scrollLeft + ft(t);\n const c = -n.scrollTop;\n return P(i).direction === \"rtl\" && (r += j(e.clientWidth, i.clientWidth) - s), {\n width: s,\n height: o,\n x: r,\n y: c\n };\n}\nconst Lt = 25;\nfunction Ie(t, e) {\n const n = E(t), i = D(t), s = n.visualViewport;\n let o = i.clientWidth, r = i.clientHeight, c = 0, l = 0;\n if (s) {\n o = s.width, r = s.height;\n const d = bt();\n (!d || d && e === \"fixed\") && (c = s.offsetLeft, l = s.offsetTop);\n }\n const a = ft(i);\n if (a <= 0) {\n const d = i.ownerDocument, u = d.body, g = getComputedStyle(u), f = d.compatMode === \"CSS1Compat\" && parseFloat(g.marginLeft) + parseFloat(g.marginRight) || 0, h = Math.abs(i.clientWidth - u.clientWidth - f);\n h <= Lt && (o -= h);\n } else a <= Lt && (o += a);\n return {\n width: o,\n height: r,\n x: c,\n y: l\n };\n}\nconst Ve = /* @__PURE__ */ new Set([\"absolute\", \"fixed\"]);\nfunction We(t, e) {\n const n = U(t, !0, e === \"fixed\"), i = n.top + t.clientTop, s = n.left + t.clientLeft, o = k(t) ? X(t) : R(1), r = t.clientWidth * o.x, c = t.clientHeight * o.y, l = s * o.x, a = i * o.y;\n return {\n width: r,\n height: c,\n x: l,\n y: a\n };\n}\nfunction Ot(t, e, n) {\n let i;\n if (e === \"viewport\")\n i = Ie(t, n);\n else if (e === \"document\")\n i = He(D(t));\n else if (T(e))\n i = We(e, n);\n else {\n const s = Vt(t);\n i = {\n x: e.x - s.x,\n y: e.y - s.y,\n width: e.width,\n height: e.height\n };\n }\n return rt(i);\n}\nfunction Bt(t, e) {\n const n = V(t);\n return n === e || !T(n) || K(n) ? !1 : P(n).position === \"fixed\" || Bt(n, e);\n}\nfunction Be(t, e) {\n const n = e.get(t);\n if (n)\n return n;\n let i = tt(t, [], !1).filter((c) => T(c) && J(c) !== \"body\"), s = null;\n const o = P(t).position === \"fixed\";\n let r = o ? V(t) : t;\n for (; T(r) && !K(r); ) {\n const c = P(r), l = xt(r);\n !l && c.position === \"fixed\" && (s = null), (o ? !l && !s : !l && c.position === \"static\" && !!s && Ve.has(s.position) || nt(r) && !l && Bt(t, r)) ? i = i.filter((d) => d !== r) : s = c, r = V(r);\n }\n return e.set(t, i), i;\n}\nfunction _e(t) {\n let {\n element: e,\n boundary: n,\n rootBoundary: i,\n strategy: s\n } = t;\n const r = [...n === \"clippingAncestors\" ? lt(e) ? [] : Be(e, this._c) : [].concat(n), i], c = r[0], l = r.reduce((a, d) => {\n const u = Ot(e, d, s);\n return a.top = j(u.top, a.top), a.right = Y(u.right, a.right), a.bottom = Y(u.bottom, a.bottom), a.left = j(u.left, a.left), a;\n }, Ot(e, c, s));\n return {\n width: l.right - l.left,\n height: l.bottom - l.top,\n x: l.left,\n y: l.top\n };\n}\nfunction ze(t) {\n const {\n width: e,\n height: n\n } = It(t);\n return {\n width: e,\n height: n\n };\n}\nfunction je(t, e, n) {\n const i = k(e), s = D(e), o = n === \"fixed\", r = U(t, !0, o, e);\n let c = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const l = R(0);\n function a() {\n l.x = ft(s);\n }\n if (i || !i && !o)\n if ((J(e) !== \"body\" || nt(s)) && (c = at(e)), i) {\n const f = U(e, !0, o, e);\n l.x = f.x + e.clientLeft, l.y = f.y + e.clientTop;\n } else s && a();\n o && !i && s && a();\n const d = s && !i && !o ? Wt(s, c) : R(0), u = r.left + c.scrollLeft - l.x - d.x, g = r.top + c.scrollTop - l.y - d.y;\n return {\n x: u,\n y: g,\n width: r.width,\n height: r.height\n };\n}\nfunction ut(t) {\n return P(t).position === \"static\";\n}\nfunction Tt(t, e) {\n if (!k(t) || P(t).position === \"fixed\")\n return null;\n if (e)\n return e(t);\n let n = t.offsetParent;\n return D(t) === n && (n = n.ownerDocument.body), n;\n}\nfunction _t(t, e) {\n const n = E(t);\n if (lt(t))\n return n;\n if (!k(t)) {\n let s = V(t);\n for (; s && !K(s); ) {\n if (T(s) && !ut(s))\n return s;\n s = V(s);\n }\n return n;\n }\n let i = Tt(t, e);\n for (; i && Le(i) && ut(i); )\n i = Tt(i, e);\n return i && K(i) && ut(i) && !xt(i) ? n : i || ke(t) || n;\n}\nconst qe = async function(t) {\n const e = this.getOffsetParent || _t, n = this.getDimensions, i = await n(t.floating);\n return {\n reference: je(t.reference, await e(t.floating), t.strategy),\n floating: {\n x: 0,\n y: 0,\n width: i.width,\n height: i.height\n }\n };\n};\nfunction Ue(t) {\n return P(t).direction === \"rtl\";\n}\nconst Xe = {\n convertOffsetParentRelativeRectToViewportRelativeRect: Fe,\n getDocumentElement: D,\n getClippingRect: _e,\n getOffsetParent: _t,\n getElementRects: qe,\n getClientRects: Ne,\n getDimensions: ze,\n getScale: X,\n isElement: T,\n isRTL: Ue\n};\nfunction zt(t, e) {\n return t.x === e.x && t.y === e.y && t.width === e.width && t.height === e.height;\n}\nfunction Ye(t, e) {\n let n = null, i;\n const s = D(t);\n function o() {\n var c;\n clearTimeout(i), (c = n) == null || c.disconnect(), n = null;\n }\n function r(c, l) {\n c === void 0 && (c = !1), l === void 0 && (l = 1), o();\n const a = t.getBoundingClientRect(), {\n left: d,\n top: u,\n width: g,\n height: f\n } = a;\n if (c || e(), !g || !f)\n return;\n const h = it(u), m = it(s.clientWidth - (d + g)), p = it(s.clientHeight - (u + f)), w = it(d), x = {\n rootMargin: -h + \"px \" + -m + \"px \" + -p + \"px \" + -w + \"px\",\n threshold: j(0, Y(1, l)) || 1\n };\n let v = !0;\n function b(C) {\n const S = C[0].intersectionRatio;\n if (S !== l) {\n if (!v)\n return r();\n S ? r(!1, S) : i = setTimeout(() => {\n r(!1, 1e-7);\n }, 1e3);\n }\n S === 1 && !zt(a, t.getBoundingClientRect()) && r(), v = !1;\n }\n try {\n n = new IntersectionObserver(b, {\n ...x,\n // Handle <iframe>s\n root: s.ownerDocument\n });\n } catch {\n n = new IntersectionObserver(b, x);\n }\n n.observe(t);\n }\n return r(!0), o;\n}\nfunction Ke(t, e, n, i) {\n i === void 0 && (i = {});\n const {\n ancestorScroll: s = !0,\n ancestorResize: o = !0,\n elementResize: r = typeof ResizeObserver == \"function\",\n layoutShift: c = typeof IntersectionObserver == \"function\",\n animationFrame: l = !1\n } = i, a = vt(t), d = s || o ? [...a ? tt(a) : [], ...tt(e)] : [];\n d.forEach((w) => {\n s && w.addEventListener(\"scroll\", n, {\n passive: !0\n }), o && w.addEventListener(\"resize\", n);\n });\n const u = a && c ? Ye(a, n) : null;\n let g = -1, f = null;\n r && (f = new ResizeObserver((w) => {\n let [y] = w;\n y && y.target === a && f && (f.unobserve(e), cancelAnimationFrame(g), g = requestAnimationFrame(() => {\n var x;\n (x = f) == null || x.observe(e);\n })), n();\n }), a && !l && f.observe(a), f.observe(e));\n let h, m = l ? U(t) : null;\n l && p();\n function p() {\n const w = U(t);\n m && !zt(m, w) && n(), m = w, h = requestAnimationFrame(p);\n }\n return n(), () => {\n var w;\n d.forEach((y) => {\n s && y.removeEventListener(\"scroll\", n), o && y.removeEventListener(\"resize\", n);\n }), u?.(), (w = f) == null || w.disconnect(), f = null, l && cancelAnimationFrame(h);\n };\n}\nconst Je = ve, Ze = Ae, Ge = xe, Qe = ye, tn = Ee, en = (t, e, n) => {\n const i = /* @__PURE__ */ new Map(), s = {\n platform: Xe,\n ...n\n }, o = {\n ...s.platform,\n _c: i\n };\n return we(t, e, {\n ...s,\n platform: o\n });\n};\nfunction Pt(t, e, n) {\n Object.assign(t.style, {\n left: e != null ? `${e}px` : \"\",\n top: n != null ? `${n}px` : \"\"\n });\n}\nfunction jt(t, e) {\n let n = t.getSetting(\"toggle-delay\");\n typeof n == \"string\" && (n.indexOf(\",\") > -1 && (n = n.split(\",\")), n.indexOf(\" \") > -1 && (n = n.split(\" \"))), Array.isArray(n) && (n = n[e]);\n const i = Number(n);\n if (Number.isNaN(i))\n throw new Error(`Provided delay value is not a number: \"${n}\"`);\n return i;\n}\nfunction dt(t) {\n let e;\n const n = typeof t == \"string\" ? t.trim().split(\" \").map((i) => parseFloat(i)).filter((i) => !isNaN(i)) : [t];\n for (let i = 0; i < n.length; i++)\n n[i] = Number(n[i]);\n switch (n.length) {\n case 1:\n e = n[0];\n break;\n case 2:\n e = {\n top: n[0],\n right: n[1],\n bottom: n[0],\n left: n[1]\n };\n break;\n case 3:\n e = {\n top: n[0],\n right: n[1],\n bottom: n[2],\n left: n[1]\n };\n break;\n case 4:\n e = {\n top: n[0],\n right: n[1],\n bottom: n[2],\n left: n[3]\n };\n break;\n default:\n e = void 0;\n break;\n }\n return e;\n}\nfunction nn(t) {\n return {\n offset: Number(t.getSetting(\"offset\")),\n flip: {\n padding: dt(t.getSetting(\"flip-padding\"))\n },\n shift: {\n padding: dt(t.getSetting(\"shift-padding\"))\n },\n arrow: {\n selector: t.getSetting(\"selectorArrow\"),\n element: null,\n padding: dt(t.getSetting(\"arrow-padding\"))\n }\n };\n}\nasync function qt(t) {\n return t && t.state === \"opened\" && (t.el.inert = !0, t.el.classList.remove(t.parent.settings.stateActive), t.isTooltip || t.trigger?.setAttribute(\"aria-expanded\", \"false\"), t.floatingCleanup(), t.state = \"closed\", t.trigger === t.parent.trigger && (t.parent.trigger = null), t.el.dispatchEvent(\n new CustomEvent(t.getSetting(\"customEventPrefix\") + \"closed\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"closed\", t)), t;\n}\nasync function Ut(t) {\n const e = [];\n for (const n of t.collection)\n n.state === \"opened\" && e.push(await n.close());\n return e;\n}\nfunction Xt(t) {\n t.state == \"opened\" && setTimeout(() => (document.activeElement?.closest(\n `#${t.id}, [aria-controls=\"${t.id}\"], [aria-describedby=\"${t.id}\"]`\n ) || t.close(), t), 1);\n}\nfunction sn(t) {\n t.state === \"opened\" ? t.close() : (this.trigger = t.trigger, t.open());\n}\nfunction on(t) {\n t.isTooltip && (t.toggleDelayId && clearTimeout(t.toggleDelayId), t.close());\n}\nfunction rn(t, e) {\n if (t.isHovered = e, e.type == \"focus\" && t.trigger && !t.trigger.matches(\":focus-visible\"))\n return;\n t.toggleDelayId && clearTimeout(t.toggleDelayId);\n const n = t.trigger?.getAttribute(\"aria-expanded\");\n if (n && n == \"true\") return;\n const i = this.activeHover ? 0 : jt(t, 0);\n this.activeHover && this.activeHover.close(), t.toggleDelayId = setTimeout(() => {\n t.id && t.open();\n }, i);\n}\nfunction cn(t, e) {\n setTimeout(() => {\n t.isHovered = e, !t.isHovered && (t.toggleDelayId && clearTimeout(t.toggleDelayId), t.toggleDelayId = setTimeout(\n () => Xt(t),\n jt(t, 1)\n ));\n }, 1);\n}\nfunction ln(t) {\n switch (t.key) {\n case \"Escape\":\n this.trigger && this.trigger.focus(), Ut(this);\n return;\n case \"Tab\":\n this.collection.forEach((e) => {\n Xt(e);\n });\n return;\n default:\n return;\n }\n}\nfunction an(t) {\n const e = this;\n document.addEventListener(\"click\", function n(i) {\n const s = i.target;\n s && (s.closest(\n `#${t.id}, [aria-controls=\"${t.id}\"], [aria-describedby=\"${t.id}\"]`\n ) ? t.el && !t.el.classList.contains(e.settings.stateActive) && this.removeEventListener(\"click\", n) : (t.el && t.el.classList.contains(e.settings.stateActive) && t.close(), this.removeEventListener(\"click\", n)));\n });\n}\nasync function Yt(t) {\n t.el.inert = !1, t.el.classList.add(t.parent.settings.stateActive), t.isTooltip || t.trigger?.setAttribute(\"aria-expanded\", \"true\"), t.buildCustomProps();\n const e = nn(t), n = t.el.querySelector(\n e.arrow.selector\n );\n return e.arrow.element = n || null, t.trigger instanceof HTMLElement && (t.floatingCleanup = Ke(t.trigger, t.el, () => {\n const i = [\n Ge(e.flip),\n Ze({ ...e.shift, limiter: tn() }),\n Je(e.offset)\n ];\n e.arrow.element && i.push(\n Qe({\n ...e.arrow,\n element: e.arrow.element\n })\n ), en(t.trigger, t.el, {\n placement: t.getSetting(\"placement\"),\n middleware: i\n }).then(({ x: s, y: o, placement: r, middlewareData: c }) => {\n if (t.el) {\n if (Pt(t.el, s, o), e.arrow.element && c.arrow) {\n const { x: l, y: a } = c.arrow;\n Pt(e.arrow.element, l, a);\n }\n t.el.setAttribute(\"data-floating-placement\", r);\n }\n });\n })), t.state = \"opened\", t.getSetting(\"event\") === \"click\" && an.call(t.parent, t), t.el.dispatchEvent(\n new CustomEvent(t.getSetting(\"customEventPrefix\") + \"opened\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"opened\", t), t;\n}\nclass fn extends Dt {\n #t;\n #e;\n constructor(e, n, i = {}) {\n super(e, n, i), this.state = \"closed\", this.toggleDelayId = null, this.trigger = null, this.#t = null, this.#e = {\n el: !1,\n trigger: !1\n }, this.floatingCleanup = () => {\n };\n }\n get isTooltip() {\n return !!this.el.closest(this.getSetting(\"selectorTooltip\")) || this.el.getAttribute(\"role\") == \"tooltip\";\n }\n get isHovered() {\n return this.#e.el || this.#e.trigger;\n }\n set isHovered(e) {\n const n = e.type == \"mouseenter\" ? !0 : e.type == \"mouseleave\" ? !1 : void 0;\n if (n != null)\n switch (e.target) {\n case this.el:\n this.#e.el = n;\n break;\n case this.trigger:\n this.#e.trigger = n;\n break;\n }\n }\n async open() {\n return Yt(this);\n }\n async close() {\n return qt(this);\n }\n async deregister() {\n return this.parent.deregister(this.id);\n }\n registerEventListeners() {\n this.#t || (this.getSetting(\"event\") === \"hover\" ? (this.#t = [\n {\n el: [\"el\", \"trigger\"],\n type: [\"mouseenter\", \"focus\"],\n listener: rn.bind(this.parent, this)\n },\n {\n el: [\"el\", \"trigger\"],\n type: [\"mouseleave\", \"focusout\"],\n listener: cn.bind(this.parent, this)\n },\n {\n el: [\"trigger\"],\n type: [\"click\"],\n listener: on.bind(this.parent, this)\n }\n ], this.#t.forEach((n) => {\n n.el.forEach((i) => {\n n.type.forEach((s) => {\n this[i].addEventListener(s, n.listener, !1);\n });\n });\n })) : (this.#t = [\n {\n el: [\"trigger\"],\n type: [\"click\"],\n listener: sn.bind(this.parent, this)\n }\n ], this.#t.forEach((n) => {\n n.el.forEach((i) => {\n n.type.forEach((s) => {\n this[i].addEventListener(s, n.listener, !1);\n });\n });\n })));\n }\n deregisterEventListeners() {\n this.#t && (this.#t.forEach((e) => {\n e.el.forEach((n) => {\n e.type.forEach((i) => {\n this[n].removeEventListener(i, e.listener, !1);\n });\n });\n }), this.#t = null);\n }\n async onCreateEntry() {\n this.trigger = document.querySelector(\n `[aria-controls=\"${this.id}\"], [aria-describedby=\"${this.id}\"]`\n ), this.isTooltip ? (this.settings.event = \"hover\", this.el.setAttribute(\"role\", \"tooltip\")) : this.trigger && this.trigger instanceof HTMLElement && this.trigger.setAttribute(\"aria-expanded\", \"false\"), this.registerEventListeners();\n }\n async onRegisterEntry() {\n this.el.classList.contains(this.getSetting(\"stateActive\")) ? await this.open() : this.el.inert = !0;\n }\n async onDestroyEntry() {\n this.state === \"opened\" && await this.close(), this.floatingCleanup(), this.deregisterEventListeners();\n }\n}\nclass un extends oe {\n #t;\n constructor(e) {\n super({ ...re, ...e }), this.module = \"Popover\", this.entryClass = fn, this.trigger = null, this.#t = ln.bind(this);\n }\n get active() {\n return this.get(\"opened\", \"state\");\n }\n get activeHover() {\n return this.collection.find((e) => e.state == \"opened\" && e.getSetting(\"event\") == \"hover\");\n }\n async open(e) {\n const n = this.getOrThrow(e);\n return Yt(n);\n }\n async close(e) {\n const n = e ? this.getOrThrow(e) : void 0;\n return n ? qt(n) : Ut(this);\n }\n async afterMount() {\n document.addEventListener(\"keydown\", this.#t, !1);\n }\n async beforeUnmount() {\n this.trigger = null;\n }\n async afterUnmount() {\n document.removeEventListener(\"keydown\", this.#t, !1);\n }\n}\nexport {\n un as default\n};\n//# sourceMappingURL=index.js.map\n"],"names":["f","m","C","k","E","g","x","r","v","$","S","J","a","R","y","h","M","c","P","A","T","I","L","O","D","b","w","N","d","q","_","U","F","X","p","V","Y","tt","j","z","H","nt","u","et","Z","W","G","B","Q"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../core/dist/index.js","../../drawer/dist/index.js","../../modal/dist/index.js","../../popover/dist/index.js"],"sourcesContent":["const l = \":not([inert])\", u = ':not([tabindex^=\"-\"])', m = \":not(:disabled)\", C = [\n `a[href]${l}${u}`,\n `area[href]${l}${u}`,\n `input:not([type=\"hidden\"]):not([type=\"radio\"])${l}${u}${m}`,\n `input[type=\"radio\"]${l}${u}${m}`,\n `select${l}${u}${m}`,\n `textarea${l}${u}${m}`,\n `button${l}${u}${m}`,\n `details${l} > summary:first-of-type${u}`,\n `iframe${l}${u}`,\n `audio[controls]${l}${u}`,\n `video[controls]${l}${u}`,\n `[contenteditable]${l}${u}`,\n `[tabindex]${l}${u}`\n];\nfunction x(i, t = \"config\") {\n const o = (i.getAttribute(`data-${t}`) || \"\").replace(/'/g, '\"');\n return o ? JSON.parse(o) : {};\n}\nfunction v(i) {\n if (typeof i == \"string\") {\n const t = document.getElementById(i);\n if (t) return t;\n throw new Error(`Element not found with ID: \"${i}\"`);\n } else if (i instanceof HTMLElement) {\n if (!i.id)\n throw new Error(\"HTMLElement must have an ID\");\n return i;\n } else\n throw new Error(\"Invalid argument: query must be a string or HTMLElement\");\n}\nfunction h(i, ...t) {\n return typeof i == \"function\" ? i(...t) : i;\n}\nasync function g(i, t, ...e) {\n t in i && typeof i[t] == \"function\" && await i[t](...e);\n}\nfunction k(i, t, e) {\n if (typeof t == \"string\") {\n const r = document.querySelector(t);\n if (!r)\n throw new Error(`No teleport reference found for selector: ${t}`);\n t = r;\n } else if (!(t instanceof HTMLElement))\n throw new Error(`Not a valid teleport reference: '${t}'`);\n if (typeof t[e] != \"function\")\n throw new Error(`Not a valid teleport method: '${e}'`);\n let o = document.createComment(\n \"teleported #\" + i.id\n );\n return i.before(o), t[e](i), () => {\n o && (o.after(i), o.remove(), o = null);\n };\n}\nfunction R(i) {\n return i.split(\"-\").map(\n (t, e) => e === 0 ? t : t.charAt(0).toUpperCase() + t.slice(1)\n ).join(\"\");\n}\nfunction M(i) {\n return i.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n}\nfunction A(i) {\n if (typeof i == \"number\")\n return i;\n const t = parseFloat(i);\n if (!Number.isNaN(t)) {\n const e = i.includes(\"ms\");\n return t * (e ? 1 : 1e3);\n }\n throw new Error(`Could not convert value to milliseconds: ${i}`);\n}\nfunction W(i, t, e, o, r = 0) {\n return new Promise((n) => {\n i.classList.remove(t), i.classList.add(e), setTimeout(() => {\n i.classList.add(o), i.classList.remove(e), n(i);\n }, A(r));\n });\n}\nfunction S(i, t = {}) {\n const e = {\n fallback: null,\n element: document.body,\n ...t\n };\n if (!i.startsWith(\"--\")) {\n const r = y();\n r && (i = `${r}${i}`), i = `--${i}`;\n }\n const o = getComputedStyle(e.element).getPropertyValue(i).trim();\n if (o)\n return o;\n if (e.fallback)\n return e.fallback;\n throw new Error(`CSS variable \"${i}\" was not found!`);\n}\nasync function d(i, t, e) {\n await g(t, i, e), e && await g(e, i);\n for (const o of t.plugins)\n await g(o, i, { parent: t, entry: e });\n await t.emit(i, { parent: t, entry: e });\n}\nfunction b(i) {\n const t = getComputedStyle(i.el), e = {}, o = i.config.get(\"customProps\");\n for (let r = 0; r < o.length; r++) {\n const n = y(), s = i.parent.name.toLowerCase(), c = M(o[r]), a = t.getPropertyValue(`--${n}${s}-${c}`).trim();\n a && (e[R(c)] = a);\n }\n return e;\n}\nfunction y() {\n return getComputedStyle(document.body).getPropertyValue(\"--vb-prefix\").trim();\n}\nfunction P(i, t) {\n t && document.querySelectorAll(t).forEach((o) => {\n i ? o.style.overflow = \"hidden\" : o.style.removeProperty(\"overflow\");\n });\n}\nfunction T(i, t) {\n t && document.querySelectorAll(t).forEach((o) => {\n o.inert = i;\n });\n}\nfunction Z(i, t, e) {\n T(!!i, t), P(!!i, e);\n}\nclass I {\n #t;\n #e;\n constructor() {\n this.#t = {}, this.#e = [];\n }\n get(t, e) {\n const { fallback: o, source: r } = e ?? {};\n if (r) {\n const n = this.#t?.[r]?.[t];\n if (n !== void 0)\n return n;\n } else\n for (const n of this.#e) {\n const s = this.#t?.[n]?.[t];\n if (s !== void 0)\n return s;\n }\n if (o !== void 0)\n return o;\n throw new Error(`Config does not exist: ${t}`);\n }\n set(t, e = {}) {\n let o, r;\n return typeof t == \"string\" ? (o = t, r = e) : (o = \"entry\", r = t), this.#t[o] ? Object.assign(this.#t[o], r) : (this.#e.unshift(o), this.#t[o] = r), this.#t[o];\n }\n remove(t) {\n const e = this.#e.indexOf(t);\n e !== -1 && this.#e.splice(e, 1), delete this.#t[t];\n }\n setSourceOrder(t) {\n const e = Object.keys(this.#t).reverse(), o = t.filter((r) => e.includes(r));\n for (const r of e)\n o.includes(r) || o.push(r);\n return this.#e = o;\n }\n}\nclass L {\n constructor() {\n this.events = {};\n }\n on(t, e, ...o) {\n this.events[t] || (this.events[t] = []), this.events[t].some(\n (n) => n.listener === e\n ) || this.events[t].push({ listener: e, args: o });\n }\n off(t, e) {\n this.events[t] && (this.events[t] = this.events[t].filter(\n (o) => o.listener !== e\n ));\n }\n async emit(t, ...e) {\n if (t = t.startsWith(\"on\") ? t.slice(2, 3).toLowerCase() + t.slice(3) : t, !!this.events[t])\n for (const { listener: o, args: r } of this.events[t])\n await o(...e, ...r);\n }\n}\nclass U extends Array {\n constructor(t = null) {\n super(), this.el = t, this.el && this.set();\n }\n get first() {\n return this[0];\n }\n get last() {\n return this[this.length - 1];\n }\n set(t = this.el) {\n this.length = 0, t && this.push(...t.querySelectorAll(C.join(\",\")));\n }\n clear() {\n this.length = 0;\n }\n}\nclass D {\n constructor(t = null) {\n this.el = t, this.focusable = new U(), this.handleFocusTrap = O.bind(this);\n }\n on(t = this.el) {\n this.focusable.set(t), this.focusable.length ? document.addEventListener(\"keydown\", this.handleFocusTrap) : document.addEventListener(\"keydown\", $);\n }\n off() {\n this.focusable.clear(), document.removeEventListener(\"keydown\", this.handleFocusTrap), document.removeEventListener(\"keydown\", $);\n }\n}\nfunction $(i) {\n (i.key === \"Tab\" || i.keyCode === 9) && i.preventDefault();\n}\nfunction O(i) {\n if (i.key !== \"Tab\" && i.keyCode !== 9) return;\n const { activeElement: t } = document, { el: e, focusable: o } = this, r = i.shiftKey, n = t === o.first || t === e, s = t === o.last || t === e;\n if (r && n || !r && s) {\n i.preventDefault();\n const c = r ? o.last : o.first;\n c && typeof c.focus == \"function\" && c.focus();\n }\n}\nfunction w(i, t = !0) {\n const e = localStorage.getItem(i), o = e ? JSON.parse(e) : {};\n return {\n get(r, n) {\n return r ? r in o ? o[r] : n : o;\n },\n set(r, n) {\n return n ? o[r] = n : delete o[r], t && localStorage.setItem(i, JSON.stringify(o)), o;\n }\n };\n}\nclass H extends Array {\n constructor(t = {}) {\n super(), this.presets = t;\n }\n #t(t) {\n const e = this.presets?.[t.name] || {}, o = t?.options || {};\n t.config = { ...t.config, ...e, ...o };\n }\n #e(t) {\n return !(\"name\" in t) || typeof t.name != \"string\" ? (console.error(\"Plugin requires a name!\"), !1) : !0;\n }\n get(t) {\n return this.find((e) => e.name === t) || null;\n }\n add(t) {\n if (Array.isArray(t))\n t.forEach((e) => this.add(e));\n else if (this.#t(t), this.#e(t)) {\n const e = this.findIndex((o) => o.name === t.name);\n ~e ? this[e] = t : this.push(t);\n }\n }\n remove(t) {\n const e = this.findIndex((o) => o.name === t);\n ~e && this.splice(e, 1);\n }\n}\nclass _ extends Array {\n constructor(t = {}) {\n super(), this.config = t;\n }\n get copy() {\n return [...this];\n }\n get top() {\n const t = this[this.length - 1];\n return t || null;\n }\n updateIndex() {\n this.forEach((t, e) => {\n t.el.style.zIndex = \"\";\n const o = getComputedStyle(t.el).getPropertyValue(\"z-index\"), r = parseInt(o, 10), n = String((Number.isNaN(r) ? 0 : r) + e + 1);\n t.el.style.zIndex = n;\n });\n }\n onChange() {\n this.updateIndex(), typeof this.config.onChange == \"function\" && this.config.onChange();\n }\n add(t) {\n this.push(t), this.onChange();\n }\n remove(t) {\n const e = this.findIndex((o) => o.id === t.id);\n ~e && (t.el.style.zIndex = \"\", this.splice(e, 1), this.onChange());\n }\n moveToTop(t) {\n const e = this.findIndex((o) => o.id === t.id);\n ~e && (this.splice(e, 1), this.add(t));\n }\n}\nconst N = {\n attr: \"config\",\n sourceKey: \"attr\"\n};\nfunction X(i = {}) {\n return { ...{\n name: \"attrConfig\",\n config: N,\n options: i\n }, ...{\n onCreateEntry({ entry: o }) {\n const r = x(o.el, this.config.attr);\n o.config.set(this.config.sourceKey, r);\n },\n onDestroyEntry({ entry: o }) {\n o.config.remove(this.config.sourceKey);\n }\n } };\n}\nconst K = {\n sourceKey: \"css\"\n};\nfunction Y(i = {}) {\n const t = {\n name: \"cssConfig\",\n config: K,\n options: i\n }, e = {\n setup(r) {\n r.on(\"updateCustomProps\", o, this);\n },\n teardown(r) {\n r.off(\"updateCustomProps\", o);\n },\n onCreateEntry({ entry: r }) {\n const n = b(r);\n r.config.set(this.config.sourceKey, n);\n },\n onDestroyEntry({ entry: r }) {\n r.config.remove(this.config.sourceKey);\n }\n };\n function o(r, n) {\n const s = b(r);\n r.config.set(n.config.sourceKey, s);\n }\n return { ...t, ...e };\n}\nconst Q = {\n condition: !0\n}, q = {\n primary: \"hsl(152deg 60% 50%)\",\n secondary: \"hsl(214deg 50% 50%)\",\n neutral: \"hsl(214deg 20% 50%)\",\n important: \"hsl(0deg 80% 50%)\"\n};\nfunction tt(i = {}) {\n const t = {\n name: \"debug\",\n config: Q,\n options: i\n };\n function e(n, s = [], c = [\"primary\", \"secondary\"]) {\n const a = c.map((f) => `color: ${q[f]}`);\n console.log(`%c📡 DEBUG: %c${n}`, ...a, ...s);\n }\n const o = {\n beforeMountRef: e.bind(\n null,\n \"Event > beforeMount()\",\n [],\n [\"primary\", \"secondary\"]\n ),\n afterMountRef: e.bind(\n null,\n \"Event > afterMount()\",\n [],\n [\"primary\", \"secondary\"]\n ),\n beforeUnmountRef: e.bind(\n null,\n \"Event > beforeUnmount()\",\n [],\n [\"important\", \"neutral\"]\n ),\n afterUnmountRef: e.bind(\n null,\n \"Event > afterUnmount()\",\n [],\n [\"important\", \"neutral\"]\n ),\n createEntryRef: ({ parent: n, entry: s }, c) => {\n if (h(c.config.condition, s)) {\n const a = n.collection.length;\n e(`Event > createEntry() > [${a}] #${s.id}`);\n }\n },\n registerEntryRef: ({ parent: n, entry: s }, c) => {\n if (h(c.config.condition, s)) {\n const a = n.collection.length;\n e(`Event > registerEntry() > [${a}] #${s.id}`);\n }\n },\n destroyEntryRef: ({ parent: n, entry: s }, c) => {\n if (h(c.config.condition, s)) {\n const a = n.collection.length;\n e(\n `Event > destroyEntry() > [${a}] #${s.id}`,\n [],\n [\"important\", \"neutral\"]\n );\n }\n },\n deregisterEntryRef: ({ parent: n, entry: s }, c) => {\n if (h(c.config.condition, s)) {\n const a = n.collection.length;\n e(\n `Event > deregisterEntry() > [${a}]`,\n [],\n [\"important\", \"neutral\"]\n );\n }\n }\n };\n return { ...t, ...{\n // Plugin setup/teardown methods\n setup(n) {\n e(\"Plugin > setup()\", Array.from(arguments), [\"secondary\", \"neutral\"]), n.on(\"beforeMount\", o.beforeMountRef), n.on(\"createEntry\", o.createEntryRef, this), n.on(\"registerEntry\", o.registerEntryRef, this), n.on(\"afterMount\", o.afterMountRef), n.on(\"beforeUnmount\", o.beforeUnmountRef), n.on(\"destroyEntry\", o.destroyEntryRef, this), n.on(\"deregisterEntry\", o.deregisterEntryRef, this), n.on(\"afterUnmount\", o.afterUnmountRef);\n },\n teardown(n) {\n e(\"Plugin > teardown()\", Array.from(arguments), [\n \"secondary\",\n \"neutral\"\n ]), n.off(\"beforeMount\", o.beforeMountRef), n.off(\"createEntry\", o.createEntryRef), n.off(\"registerEntry\", o.registerEntryRef), n.off(\"afterMount\", o.afterMountRef), n.off(\"beforeUnmount\", o.beforeUnmountRef), n.off(\"destroyEntry\", o.destroyEntryRef), n.off(\"deregisterEntry\", o.deregisterEntryRef), n.off(\"afterUnmount\", o.afterUnmountRef);\n },\n // Mount lifecycle hooks\n beforeMount() {\n e(\"Hook > beforeMount()\", Array.from(arguments));\n },\n onCreateEntry({ parent: n, entry: s }) {\n if (h(this.config.condition, s)) {\n const c = n.collection.length;\n e(\n `Hook > onCreateEntry() > [${c}] #${s.id}`,\n Array.from(arguments)\n );\n }\n },\n onRegisterEntry({ parent: n, entry: s }) {\n if (h(this.config.condition, s)) {\n const c = n.collection.length - 1;\n e(\n `Hook > onRegisterEntry() > [${c}] #${s.id}`,\n Array.from(arguments)\n );\n }\n },\n afterMount() {\n e(\"Hook > afterMount()\", Array.from(arguments));\n },\n // Unmount lifecycle hooks\n beforeUnmount() {\n e(\"Hook > beforeUnmount()\", Array.from(arguments), [\n \"important\",\n \"neutral\"\n ]);\n },\n onDestroyEntry({ parent: n, entry: s }) {\n if (h(this.config.condition, s)) {\n const c = n.collection.length - 1;\n e(\n `Hook > onDestroyEntry() > [${c}] #${s.id}`,\n Array.from(arguments),\n [\"important\", \"neutral\"]\n );\n }\n },\n onDeregisterEntry({ parent: n, entry: s }) {\n if (h(this.config.condition, s)) {\n const c = n.collection.length;\n e(`Hook > onDeregisterEntry() > [${c}]`, Array.from(arguments), [\n \"important\",\n \"neutral\"\n ]);\n }\n },\n afterUnmount() {\n e(\"Hook > afterUnmount()\", Array.from(arguments), [\n \"important\",\n \"neutral\"\n ]);\n }\n } };\n}\nconst F = {\n condition: !0\n};\nfunction et(i = {}) {\n const t = {\n name: \"focusTrap\",\n config: F,\n options: i\n }, e = {\n setup(n) {\n n.on(\"opened\", o, this), n.on(\"closed\", r, this);\n },\n teardown(n) {\n n.off(\"opened\", o), n.off(\"closed\", r);\n },\n onCreateEntry({ entry: n }) {\n n.focusTrap = new D();\n }\n };\n function o(n, s) {\n const c = { plugin: s, parent: n.parent, entry: n };\n n.focusTrap && h(s.config.condition, c) && n.focusTrap.on(n.dialog);\n }\n function r(n, s) {\n const c = { plugin: s, parent: n.parent, entry: n };\n n.focusTrap && h(s.config.condition, c) && n.focusTrap.off();\n }\n return { ...t, ...e };\n}\nconst V = {\n // The data attributes to get the breakpoint values from\n attrBreakpoint: \"breakpoint\",\n // The data attributes to get the media query value from\n attrMediaQuery: \"media-query\",\n // The string token to replace in the media query string\n token: \"{{BP}}\",\n // Sets a global breakpoint. Can be overridden by setting a data attribute\n // value. Notice: setting this option will enable a media query breakpoint on\n // all entries.\n breakpoint: null,\n // The default media query string to use. Can be overridden by setting a data\n // attribute value.\n mediaQuery: \"(min-width: {{BP}})\",\n // Maps entry ID or breakpoint key to breakpoint values. This is referenced\n // when getting an entries breakpoint value.\n breakpoints: {},\n // Maps entry ID's to a media query strings. Media query may contain a token.\n // This is referenced when getting an entries media query string.\n mediaQueries: {},\n // The function to run when the MediaQueryList triggers a \"change\" event.\n // This is run once on initial mount.\n onChange: () => {\n }\n};\nfunction ot(i = {}) {\n const t = {\n name: \"mediaQuery\",\n config: V,\n options: i\n }, e = {\n // Run when an entry is created\n // Sets up the MediaQueryList and event listener\n onCreateEntry({ entry: c }) {\n n.call(this, c);\n },\n // Run when an entry is destroyed\n // Removes the MediaQueryList and event listener\n onDestroyEntry({ entry: c }) {\n s(c);\n }\n };\n function o(c) {\n const a = c.el.getAttribute(`data-${this.config.attrMediaQuery}`);\n return !a && c.id in this.config.mediaQueries ? this.config.mediaQueries[c.id] : a || void 0;\n }\n function r(c) {\n let a = c.el.getAttribute(`data-${this.config.attrBreakpoint}`);\n return !a && c.id in this.config.breakpoints && (a = this.config.breakpoints[c.id]), a && a in this.config.breakpoints && (a = this.config.breakpoints[a]), a && (a = getComputedStyle(document.body).getPropertyValue(`--${y()}breakpoint-${a}`).trim() || a), a || this.config.breakpoint;\n }\n function n(c) {\n const a = r.call(this, c);\n if (!a) return;\n let f = o.call(this, c) || this.config.mediaQuery;\n if (!f) return;\n const p = f.replace(new RegExp(`${this.config.token}`, \"g\"), a);\n c.mql = window.matchMedia(p), c.mql.onchange = (E) => {\n this.config.onChange(E, c);\n }, this.config.onChange(c.mql, c);\n }\n function s(c) {\n c.mql && (c.mql.onchange = null, c.mql = null);\n }\n return { ...t, ...e };\n}\nconst B = {\n // The property on entry objects to watch\n prop: \"state\",\n // The default value or a function to compute the initial value\n value: null,\n // The local storage key prefix\n keyPrefix: \"VB:\",\n // The local storage key to use. If not provided, module name and prop value\n // will be used e.g., \"VB:ModalState\".\n key: null,\n // Condition to determine whether or not to store the value in local storage\n condition: !1,\n // The function to run whenever the value changes\n onChange() {\n }\n};\nfunction nt(i = {}) {\n const t = {\n name: \"propStore\",\n config: B,\n options: i,\n store: null\n }, e = {\n setup(s) {\n this.store = w(n.call(this, s.name));\n },\n async onCreateEntry({ entry: s }) {\n await o.call(this, s);\n },\n onDestroyEntry({ entry: s }) {\n r.call(this, s);\n }\n };\n async function o(s) {\n let c = s[this.config.prop] || null;\n const a = { plugin: this, parent: s.parent, entry: s };\n Object.defineProperty(s, this.config.prop, {\n configurable: !0,\n get() {\n return c;\n },\n set: async (f) => {\n if (c === f) return;\n const p = c;\n c = f, h(\n this.config.condition,\n a,\n f,\n p\n ) && this.store?.set(s.id, f), await this.config.onChange(a, f, p);\n }\n }), Object.defineProperty(s, \"store\", {\n configurable: !0,\n get: () => this.store?.get(s.id),\n set: (f) => {\n s[this.config.prop] = f;\n }\n }), s[this.config.prop] = await h(this.config.value, a) || s[this.config.prop];\n }\n async function r(s) {\n const c = s[this.config.prop];\n delete s[this.config.prop], s[this.config.prop] = c, this.store?.set(s.id, null);\n }\n function n(s) {\n const c = this.config.prop.charAt(0).toUpperCase() + this.config.prop.slice(1), a = this.config.key || s + c;\n return this.config.keyPrefix + a;\n }\n return { ...t, ...e };\n}\nconst j = {\n where: null,\n how: \"append\"\n};\nfunction it(i = {}) {\n const t = {\n name: \"teleport\",\n config: j,\n options: i\n }, e = {\n onCreateEntry({ entry: n }) {\n o(this, n);\n },\n onDestroyEntry({ entry: n }) {\n r(this, n);\n }\n };\n function o(n, s) {\n s.teleport = () => {\n typeof s.teleportReturn == \"function\" && s.teleportReturn(), s.teleportReturn = k(\n s.el,\n s.config.get(\"teleport\", { fallback: n.config.where }),\n s.config.get(\"teleportMethod\", { fallback: n.config.how })\n );\n }, s.teleport(), s.parent.emit(\"teleport\", { plugin: n, parent: s.parent, entry: s });\n }\n function r(n, s) {\n typeof s.teleportReturn == \"function\" && s.teleportReturn(), s.parent.emit(\"teleportReturn\", {\n plugin: n,\n parent: s.parent,\n entry: s\n });\n }\n return { ...t, ...e };\n}\nclass z {\n constructor(t, e) {\n this.config = new I(), this.parent = t, this.el = v(e), this.id = this.el.id, this.config.set(\"parent\", this.parent.config), this.config.set(\"entry\", {});\n }\n}\nconst J = {\n selector: \"\",\n plugins: [],\n presets: {}\n};\nclass st {\n constructor(t = {}) {\n this.#t = new L(), this.events = this.#t.events, this.on = this.#t.on.bind(this.#t), this.off = this.#t.off.bind(this.#t), this.emit = this.#t.emit.bind(this.#t), this.collection = [], this.entryClass = z, this.name = this.constructor.name, this.config = { ...J, ...t }, this.plugins = new H(this.config.presets);\n }\n #t;\n get(t, e = \"id\") {\n return this.collection.find((o) => o[e] === t);\n }\n getOrThrow(t, e = \"id\") {\n const o = this.get(t, e);\n if (o)\n return o;\n throw new Error(\n `${this.name} entry not found in collection with ${String(e)} of \"${t}\"`\n );\n }\n updateConfig(t = {}) {\n return Object.assign(this.config, t);\n }\n async createEntry(t) {\n const e = new this.entryClass(this, t);\n return await g(e, \"init\"), await d(\"onCreateEntry\", this, e), e;\n }\n async destroyEntry(t) {\n return await d(\"onDestroyEntry\", this, t), await g(t, \"destroy\"), t;\n }\n async register(t) {\n const e = this.collection.findIndex((o) => o.id === t.id);\n return ~e ? this.collection[e] = t : this.collection.push(t), await d(\"onRegisterEntry\", this, t), t;\n }\n async deregister(t) {\n const e = this.collection.findIndex((o) => o.id === t.id);\n if (~e) {\n await d(\n \"onDeregisterEntry\",\n this,\n this.collection[e]\n );\n const [o] = this.collection.splice(e, 1);\n }\n return t;\n }\n async mount(t = (e) => e) {\n for (const e of this.config?.plugins || [])\n this.plugins.add(e);\n for (const e of this.plugins)\n await g(e, \"setup\", this);\n if (await d(\"beforeMount\", this), this.config.selector) {\n const e = document.querySelectorAll(this.config.selector);\n for (const o of e)\n await this.createEntry(o).then((r) => t(r)).then((r) => this.register(r));\n }\n return await d(\"afterMount\", this), this;\n }\n async unmount(t = (e) => e) {\n for (await d(\"beforeUnmount\", this); this.collection.length > 0; )\n await this.destroyEntry(this.collection[0]).then((e) => t(e)).then((e) => this.deregister(e));\n await d(\"afterUnmount\", this);\n for (const e of this.plugins)\n await g(e, \"teardown\", this);\n for (const e of [...this.plugins])\n this.plugins.remove(e.name);\n return this;\n }\n}\nconst G = {\n prefix: S(\"theme-prefix\", { fallback: \"vb-theme-\" }),\n storeKey: \"VB:Profile\",\n fallback: \"root\",\n themes: [\"root\", \"light\", \"dark\"],\n onInit() {\n },\n onChange() {\n }\n};\nfunction rt(i = {}) {\n const t = { ...G, ...i };\n function e(n) {\n t[n].call(r);\n }\n const o = w(t.storeKey), r = {\n // Store our config in the API\n config: t,\n // Actions\n add(n) {\n t.themes.push(n);\n },\n remove(n) {\n const s = t.themes.indexOf(n);\n ~s && t.themes.splice(s, 1);\n },\n // Getters\n get class() {\n return `${t.prefix}${this.theme}`;\n },\n get classes() {\n return t.themes.map((n) => `${t.prefix}${n}`);\n },\n get themes() {\n return t.themes;\n },\n // Setup the theme get and set methods\n get theme() {\n return o.get(\"theme\") || t.fallback;\n },\n set theme(n) {\n t.themes.includes(n) ? this.theme != n && (o.set(\"theme\", n), document.documentElement.classList.remove(...this.classes), document.documentElement.classList.add(`${t.prefix}${n}`), e(\"onChange\")) : console.error(`Not a valid theme value: \"${n}\"`);\n }\n };\n return e(\"onInit\"), r;\n}\nexport {\n st as Collection,\n z as CollectionEntry,\n I as ConfigManager,\n L as EventEmitter,\n D as FocusTrap,\n U as FocusableArray,\n H as PluginArray,\n _ as StackArray,\n X as attrConfig,\n Y as cssConfig,\n S as cssVar,\n tt as debug,\n d as dispatchLifecycleHook,\n et as focusTrap,\n C as focusableSelectors,\n x as getAttrData,\n b as getCustomProps,\n v as getElement,\n y as getPrefix,\n h as getValue,\n w as localStore,\n g as maybeRunMethod,\n ot as mediaQuery,\n nt as propStore,\n Z as setGlobalState,\n it as teleport,\n k as teleportElement,\n rt as themeStore,\n R as toCamel,\n M as toKebab,\n A as toMilliseconds,\n W as transition\n};\n//# sourceMappingURL=index.js.map\n","function p(t) {\n if (typeof t == \"string\") {\n const e = document.getElementById(t);\n if (e) return e;\n throw new Error(`Element not found with ID: \"${t}\"`);\n } else if (t instanceof HTMLElement) {\n if (!t.id)\n throw new Error(\"HTMLElement must have an ID\");\n return t;\n } else\n throw new Error(\"Invalid argument: query must be a string or HTMLElement\");\n}\nasync function r(t, e, ...s) {\n e in t && typeof t[e] == \"function\" && await t[e](...s);\n}\nfunction w(t) {\n if (typeof t == \"number\")\n return t;\n const e = parseFloat(t);\n if (!Number.isNaN(e)) {\n const s = t.includes(\"ms\");\n return e * (s ? 1 : 1e3);\n }\n throw new Error(`Could not convert value to milliseconds: ${t}`);\n}\nfunction f(t, e, s, i, o = 0) {\n return new Promise((n) => {\n t.classList.remove(e), t.classList.add(s), setTimeout(() => {\n t.classList.add(i), t.classList.remove(s), n(t);\n }, w(o));\n });\n}\nfunction v(t, e = {}) {\n const s = {\n fallback: null,\n element: document.body,\n ...e\n };\n if (!t.startsWith(\"--\")) {\n const o = E();\n o && (t = `${o}${t}`), t = `--${t}`;\n }\n const i = getComputedStyle(s.element).getPropertyValue(t).trim();\n if (i)\n return i;\n if (s.fallback)\n return s.fallback;\n throw new Error(`CSS variable \"${t}\" was not found!`);\n}\nasync function a(t, e, s) {\n await r(e, t, s), s && await r(s, t);\n for (const i of e.plugins)\n await r(i, t, { parent: e, entry: s });\n await e.emit(t, { parent: e, entry: s });\n}\nfunction E() {\n return getComputedStyle(document.body).getPropertyValue(\"--vb-prefix\").trim();\n}\nfunction b(t, e) {\n e && document.querySelectorAll(e).forEach((s) => {\n t ? s.style.overflow = \"hidden\" : s.style.removeProperty(\"overflow\");\n });\n}\nfunction C(t, e) {\n e && document.querySelectorAll(e).forEach((s) => {\n s.inert = t;\n });\n}\nfunction c(t, e, s) {\n C(!!t, e), b(!!t, s);\n}\nclass S {\n #t;\n #e;\n constructor() {\n this.#t = {}, this.#e = [];\n }\n get(e, s) {\n const { fallback: i, source: o } = s ?? {};\n if (o) {\n const n = this.#t?.[o]?.[e];\n if (n !== void 0)\n return n;\n } else\n for (const n of this.#e) {\n const d = this.#t?.[n]?.[e];\n if (d !== void 0)\n return d;\n }\n if (i !== void 0)\n return i;\n throw new Error(`Config does not exist: ${e}`);\n }\n set(e, s = {}) {\n let i, o;\n return typeof e == \"string\" ? (i = e, o = s) : (i = \"entry\", o = e), this.#t[i] ? Object.assign(this.#t[i], o) : (this.#e.unshift(i), this.#t[i] = o), this.#t[i];\n }\n remove(e) {\n const s = this.#e.indexOf(e);\n s !== -1 && this.#e.splice(s, 1), delete this.#t[e];\n }\n setSourceOrder(e) {\n const s = Object.keys(this.#t).reverse(), i = e.filter((o) => s.includes(o));\n for (const o of s)\n i.includes(o) || i.push(o);\n return this.#e = i;\n }\n}\nclass O {\n constructor() {\n this.events = {};\n }\n on(e, s, ...i) {\n this.events[e] || (this.events[e] = []), this.events[e].some(\n (o) => o.listener === s\n ) || this.events[e].push({ listener: s, args: i });\n }\n off(e, s) {\n this.events[e] && (this.events[e] = this.events[e].filter(\n (i) => i.listener !== s\n ));\n }\n async emit(e, ...s) {\n if (e = e.startsWith(\"on\") ? e.slice(2, 3).toLowerCase() + e.slice(3) : e, !!this.events[e])\n for (const { listener: i, args: o } of this.events[e])\n await i(...s, ...o);\n }\n}\nclass L extends Array {\n constructor(e = {}) {\n super(), this.presets = e;\n }\n #t(e) {\n const s = this.presets?.[e.name] || {}, i = e?.options || {};\n e.config = { ...e.config, ...s, ...i };\n }\n #e(e) {\n return !(\"name\" in e) || typeof e.name != \"string\" ? (console.error(\"Plugin requires a name!\"), !1) : !0;\n }\n get(e) {\n return this.find((s) => s.name === e) || null;\n }\n add(e) {\n if (Array.isArray(e))\n e.forEach((s) => this.add(s));\n else if (this.#t(e), this.#e(e)) {\n const s = this.findIndex((i) => i.name === e.name);\n ~s ? this[s] = e : this.push(e);\n }\n }\n remove(e) {\n const s = this.findIndex((i) => i.name === e);\n ~s && this.splice(s, 1);\n }\n}\nclass g {\n constructor(e, s) {\n this.config = new S(), this.parent = e, this.el = p(s), this.id = this.el.id, this.config.set(\"parent\", this.parent.config), this.config.set(\"entry\", {});\n }\n}\nconst M = {\n selector: \"\",\n plugins: [],\n presets: {}\n};\nclass x {\n constructor(e = {}) {\n this.#t = new O(), this.events = this.#t.events, this.on = this.#t.on.bind(this.#t), this.off = this.#t.off.bind(this.#t), this.emit = this.#t.emit.bind(this.#t), this.collection = [], this.entryClass = g, this.name = this.constructor.name, this.config = { ...M, ...e }, this.plugins = new L(this.config.presets);\n }\n #t;\n get(e, s = \"id\") {\n return this.collection.find((i) => i[s] === e);\n }\n getOrThrow(e, s = \"id\") {\n const i = this.get(e, s);\n if (i)\n return i;\n throw new Error(\n `${this.name} entry not found in collection with ${String(s)} of \"${e}\"`\n );\n }\n updateConfig(e = {}) {\n return Object.assign(this.config, e);\n }\n async createEntry(e) {\n const s = new this.entryClass(this, e);\n return await r(s, \"init\"), await a(\"onCreateEntry\", this, s), s;\n }\n async destroyEntry(e) {\n return await a(\"onDestroyEntry\", this, e), await r(e, \"destroy\"), e;\n }\n async register(e) {\n const s = this.collection.findIndex((i) => i.id === e.id);\n return ~s ? this.collection[s] = e : this.collection.push(e), await a(\"onRegisterEntry\", this, e), e;\n }\n async deregister(e) {\n const s = this.collection.findIndex((i) => i.id === e.id);\n if (~s) {\n await a(\n \"onDeregisterEntry\",\n this,\n this.collection[s]\n );\n const [i] = this.collection.splice(s, 1);\n }\n return e;\n }\n async mount(e = (s) => s) {\n for (const s of this.config?.plugins || [])\n this.plugins.add(s);\n for (const s of this.plugins)\n await r(s, \"setup\", this);\n if (await a(\"beforeMount\", this), this.config.selector) {\n const s = document.querySelectorAll(this.config.selector);\n for (const i of s)\n await this.createEntry(i).then((o) => e(o)).then((o) => this.register(o));\n }\n return await a(\"afterMount\", this), this;\n }\n async unmount(e = (s) => s) {\n for (await a(\"beforeUnmount\", this); this.collection.length > 0; )\n await this.destroyEntry(this.collection[0]).then((s) => e(s)).then((s) => this.deregister(s));\n await a(\"afterUnmount\", this);\n for (const s of this.plugins)\n await r(s, \"teardown\", this);\n for (const s of [...this.plugins])\n this.plugins.remove(s.name);\n return this;\n }\n}\nv(\"theme-prefix\", { fallback: \"vb-theme-\" });\nconst T = {\n focusTrap: {\n condition: ({ entry: t }) => t.state === \"closed\" || t.state === \"opened\" && t.mode === \"modal\"\n },\n mediaQuery: {\n onChange(t, e) {\n e.mode = t.matches ? \"inline\" : \"modal\";\n }\n },\n propStore: {\n prop: \"inlineState\",\n value: ({ entry: t }) => t.store,\n condition: ({ entry: t }) => [\"opened\", \"closed\", \"indeterminate\"].includes(t.state),\n onChange: ({ entry: t }) => t.applyState()\n }\n}, $ = {\n presets: T,\n attrOpen: \"drawer-open\",\n attrClose: \"drawer-close\",\n attrToggle: \"drawer-toggle\",\n selector: \".drawer\",\n selectorDialog: \".drawer__dialog\",\n selectorScreen: \".drawer\",\n selectorFocus: \"[data-focus]\",\n selectorInert: null,\n selectorOverflow: \"body\",\n stateOpened: \"is-opened\",\n stateOpening: \"is-opening\",\n stateClosing: \"is-closing\",\n stateClosed: \"is-closed\",\n classModal: \"drawer_modal\",\n customProps: [\"transition-duration\"],\n breakpoints: null,\n customEventPrefix: \"drawer:\",\n setTabindex: !0,\n transition: !0,\n transitionDuration: 300\n};\nfunction k(t) {\n switch (t.mode) {\n case \"inline\":\n return D(t);\n case \"modal\":\n return I(t);\n default:\n throw new Error(`\"${t.mode}\" is not a valid drawer mode.`);\n }\n}\nasync function D(t) {\n return t.el.classList.remove(t.config.get(\"classModal\")), t.dialog.removeAttribute(\"aria-modal\"), c(\n !1,\n t.config.get(\"selectorInert\"),\n t.config.get(\"selectorOverflow\")\n ), t.applyState(), t.el.dispatchEvent(\n new CustomEvent(t.config.get(\"customEventPrefix\") + \"switchMode\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"switchMode\", t), t;\n}\nasync function I(t) {\n return t.el.classList.add(t.config.get(\"classModal\")), t.dialog.setAttribute(\"aria-modal\", \"true\"), await t.close(!1, !1), t.el.dispatchEvent(\n new CustomEvent(t.config.get(\"customEventPrefix\") + \"switchMode\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"switchMode\", t), t;\n}\nfunction u(t) {\n t.dialog && t.state === \"opened\" ? (t.dialog.querySelector(t.config.get(\"selectorFocus\")) || t.dialog).focus() : t.trigger && (t.trigger.focus(), t.trigger = null);\n}\nasync function l(t, e, s = !0) {\n return (t.state === \"closed\" || t.state === \"indeterminate\" || t.state === null) && (t.setState(\"opening\"), e ?? t.config.get(\"transition\") ? await f(\n t.el,\n t.config.get(\"stateClosed\"),\n t.config.get(\"stateOpening\"),\n t.config.get(\"stateOpened\"),\n t.config.get(\"transitionDuration\")\n ) : (t.el.classList.add(t.config.get(\"stateOpened\")), t.el.classList.remove(t.config.get(\"stateClosed\"))), t.setState(\"opened\"), t.mode === \"modal\" && c(\n !0,\n t.config.get(\"selectorInert\"),\n t.config.get(\"selectorOverflow\")\n ), s && u(t), t.el.dispatchEvent(\n new CustomEvent(t.config.get(\"customEventPrefix\") + \"opened\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"opened\", t)), t;\n}\nasync function h(t, e, s = !0) {\n return (t.state === \"opened\" || t.state === \"indeterminate\" || t.state === null) && (t.setState(\"closing\"), document.activeElement && document.activeElement instanceof HTMLElement && document.activeElement.blur(), e ?? t.config.get(\"transition\") ? await f(\n t.el,\n t.config.get(\"stateOpened\"),\n t.config.get(\"stateClosing\"),\n t.config.get(\"stateClosed\"),\n t.config.get(\"transitionDuration\")\n ) : (t.el.classList.add(t.config.get(\"stateClosed\")), t.el.classList.remove(t.config.get(\"stateOpened\"))), t.setState(\"closed\"), t.mode === \"modal\" && c(\n !1,\n t.config.get(\"selectorInert\"),\n t.config.get(\"selectorOverflow\")\n ), s && u(t), t.el.dispatchEvent(\n new CustomEvent(t.config.get(\"customEventPrefix\") + \"closed\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"closed\", t)), t;\n}\nasync function m(t, e, s) {\n return t.state === \"closed\" ? l(t, e, s) : h(t, e, s);\n}\nclass A extends g {\n #t;\n constructor(e, s) {\n super(e, s), this.#t = \"indeterminate\", this.dialog = this.el.querySelector(this.config.get(\"selectorDialog\")) || this.el, this.trigger = null, this.state = null, this.inlineState = null;\n }\n get mode() {\n return this.#t;\n }\n set mode(e) {\n this.#t !== e && (this.#t = e, k(this));\n }\n setState(e) {\n this.state = e;\n const s = [\"opening\", \"closing\"];\n this.mode === \"inline\" && !s.includes(e) && (this.inlineState = e), e === \"indeterminate\" && (this.el.classList.remove(this.config.get(\"stateOpened\")), this.el.classList.remove(this.config.get(\"stateOpening\")), this.el.classList.remove(this.config.get(\"stateClosed\")), this.el.classList.remove(this.config.get(\"stateClosing\")));\n }\n async applyState() {\n if (this.mode === \"modal\") return this;\n if (this.inlineState === \"opened\")\n return await this.open(!1, !1);\n if (this.inlineState === \"closed\")\n return await this.close(!1, !1);\n if (this.state === null) {\n if (this.el.classList.contains(this.config.get(\"stateOpened\")))\n return await this.open(!1, !1);\n if (this.el.classList.contains(this.config.get(\"stateClosed\")))\n return await this.close(!1, !1);\n }\n return this.setState(\"indeterminate\"), this;\n }\n async open(e, s) {\n return l(this, e, s);\n }\n async close(e, s) {\n return h(this, e, s);\n }\n async toggle(e, s) {\n return m(this, e, s);\n }\n async deregister() {\n return this.parent.deregister(this);\n }\n async onCreateEntry() {\n this.config.get(\"setTabindex\") && this.dialog && this.dialog.setAttribute(\"tabindex\", \"-1\"), await this.applyState(), this.inlineState = this.state, this.mode = this.el && this.el.classList.contains(this.config.get(\"classModal\")) ? \"modal\" : \"inline\";\n }\n async onDestroyEntry() {\n this.mode === \"modal\" && this.state === \"opened\" && await this.close(!1);\n }\n}\nasync function P(t) {\n const e = t.target;\n if (e) {\n const s = e.closest(`\n [data-${this.config.attrOpen}],\n [data-${this.config.attrToggle}],\n [data-${this.config.attrClose}]\n `);\n if (s) {\n t.preventDefault(), s.matches(`[data-${this.config.attrToggle}]`) && s.getAttribute(`data-${this.config.attrToggle}`)?.trim().split(\" \")?.forEach((o) => {\n const n = this.getOrThrow(o);\n return n.trigger = s, n.toggle();\n }), s.matches(`[data-${this.config.attrOpen}]`) && s.getAttribute(`data-${this.config.attrOpen}`)?.trim().split(\" \")?.forEach((o) => {\n const n = this.getOrThrow(o);\n return n.trigger = s, n.open();\n }), s.matches(`[data-${this.config.attrClose}]`) && s.getAttribute(`data-${this.config.attrClose}`)?.trim().split(\" \")?.forEach((o) => {\n if (o) {\n const n = this.getOrThrow(o);\n return n.trigger = s, n.close();\n } else {\n const n = e.closest(this.config.selector);\n if (n) return this.close(n.id);\n }\n });\n return;\n }\n if (this.activeModal && e.matches(this.config.selectorScreen))\n return this.close(this.activeModal.id);\n }\n}\nfunction y(t) {\n if (t.key === \"Escape\" && this.activeModal)\n return this.close(this.activeModal.id);\n}\nclass q extends x {\n constructor(e) {\n super({ ...$, ...e }), this.entryClass = A, this.name = \"Drawer\", this.#t = P.bind(this), this.#e = y.bind(this);\n }\n #t;\n #e;\n get activeModal() {\n return this.collection.find((e) => e.state === \"opened\" && e.mode === \"modal\");\n }\n async open(e, s, i) {\n const o = this.getOrThrow(e);\n return l(o, s, i);\n }\n async close(e, s, i) {\n const o = this.getOrThrow(e);\n return h(o, s, i);\n }\n async toggle(e, s, i) {\n const o = this.getOrThrow(e);\n return m(o, s, i);\n }\n async afterMount() {\n document.addEventListener(\"click\", this.#t, !1), document.addEventListener(\"keydown\", this.#e, !1);\n }\n async afterUnmount() {\n document.removeEventListener(\"click\", this.#t, !1), document.removeEventListener(\"keydown\", this.#e, !1);\n }\n}\nexport {\n q as default\n};\n//# sourceMappingURL=index.js.map\n","function p(s) {\n if (typeof s == \"string\") {\n const t = document.getElementById(s);\n if (t) return t;\n throw new Error(`Element not found with ID: \"${s}\"`);\n } else if (s instanceof HTMLElement) {\n if (!s.id)\n throw new Error(\"HTMLElement must have an ID\");\n return s;\n } else\n throw new Error(\"Invalid argument: query must be a string or HTMLElement\");\n}\nasync function a(s, t, ...e) {\n t in s && typeof s[t] == \"function\" && await s[t](...e);\n}\nfunction m(s) {\n if (typeof s == \"number\")\n return s;\n const t = parseFloat(s);\n if (!Number.isNaN(t)) {\n const e = s.includes(\"ms\");\n return t * (e ? 1 : 1e3);\n }\n throw new Error(`Could not convert value to milliseconds: ${s}`);\n}\nfunction u(s, t, e, i, n = 0) {\n return new Promise((o) => {\n s.classList.remove(t), s.classList.add(e), setTimeout(() => {\n s.classList.add(i), s.classList.remove(e), o(s);\n }, m(n));\n });\n}\nfunction w(s, t = {}) {\n const e = {\n fallback: null,\n element: document.body,\n ...t\n };\n if (!s.startsWith(\"--\")) {\n const n = v();\n n && (s = `${n}${s}`), s = `--${s}`;\n }\n const i = getComputedStyle(e.element).getPropertyValue(s).trim();\n if (i)\n return i;\n if (e.fallback)\n return e.fallback;\n throw new Error(`CSS variable \"${s}\" was not found!`);\n}\nasync function r(s, t, e) {\n await a(t, s, e), e && await a(e, s);\n for (const i of t.plugins)\n await a(i, s, { parent: t, entry: e });\n await t.emit(s, { parent: t, entry: e });\n}\nfunction v() {\n return getComputedStyle(document.body).getPropertyValue(\"--vb-prefix\").trim();\n}\nfunction y(s, t) {\n t && document.querySelectorAll(t).forEach((e) => {\n s ? e.style.overflow = \"hidden\" : e.style.removeProperty(\"overflow\");\n });\n}\nfunction E(s, t) {\n t && document.querySelectorAll(t).forEach((e) => {\n e.inert = s;\n });\n}\nfunction b(s, t, e) {\n E(!!s, t), y(!!s, e);\n}\nclass C {\n #t;\n #e;\n constructor() {\n this.#t = {}, this.#e = [];\n }\n get(t, e) {\n const { fallback: i, source: n } = e ?? {};\n if (n) {\n const o = this.#t?.[n]?.[t];\n if (o !== void 0)\n return o;\n } else\n for (const o of this.#e) {\n const f = this.#t?.[o]?.[t];\n if (f !== void 0)\n return f;\n }\n if (i !== void 0)\n return i;\n throw new Error(`Config does not exist: ${t}`);\n }\n set(t, e = {}) {\n let i, n;\n return typeof t == \"string\" ? (i = t, n = e) : (i = \"entry\", n = t), this.#t[i] ? Object.assign(this.#t[i], n) : (this.#e.unshift(i), this.#t[i] = n), this.#t[i];\n }\n remove(t) {\n const e = this.#e.indexOf(t);\n e !== -1 && this.#e.splice(e, 1), delete this.#t[t];\n }\n setSourceOrder(t) {\n const e = Object.keys(this.#t).reverse(), i = t.filter((n) => e.includes(n));\n for (const n of e)\n i.includes(n) || i.push(n);\n return this.#e = i;\n }\n}\nclass x {\n constructor() {\n this.events = {};\n }\n on(t, e, ...i) {\n this.events[t] || (this.events[t] = []), this.events[t].some(\n (n) => n.listener === e\n ) || this.events[t].push({ listener: e, args: i });\n }\n off(t, e) {\n this.events[t] && (this.events[t] = this.events[t].filter(\n (i) => i.listener !== e\n ));\n }\n async emit(t, ...e) {\n if (t = t.startsWith(\"on\") ? t.slice(2, 3).toLowerCase() + t.slice(3) : t, !!this.events[t])\n for (const { listener: i, args: n } of this.events[t])\n await i(...e, ...n);\n }\n}\nclass O extends Array {\n constructor(t = {}) {\n super(), this.presets = t;\n }\n #t(t) {\n const e = this.presets?.[t.name] || {}, i = t?.options || {};\n t.config = { ...t.config, ...e, ...i };\n }\n #e(t) {\n return !(\"name\" in t) || typeof t.name != \"string\" ? (console.error(\"Plugin requires a name!\"), !1) : !0;\n }\n get(t) {\n return this.find((e) => e.name === t) || null;\n }\n add(t) {\n if (Array.isArray(t))\n t.forEach((e) => this.add(e));\n else if (this.#t(t), this.#e(t)) {\n const e = this.findIndex((i) => i.name === t.name);\n ~e ? this[e] = t : this.push(t);\n }\n }\n remove(t) {\n const e = this.findIndex((i) => i.name === t);\n ~e && this.splice(e, 1);\n }\n}\nclass L extends Array {\n constructor(t = {}) {\n super(), this.config = t;\n }\n get copy() {\n return [...this];\n }\n get top() {\n return this[this.length - 1] || null;\n }\n updateIndex() {\n this.forEach((t, e) => {\n t.el.style.zIndex = \"\";\n const i = getComputedStyle(t.el).getPropertyValue(\"z-index\"), n = parseInt(i, 10), o = String((Number.isNaN(n) ? 0 : n) + e + 1);\n t.el.style.zIndex = o;\n });\n }\n onChange() {\n this.updateIndex(), typeof this.config.onChange == \"function\" && this.config.onChange();\n }\n add(t) {\n this.push(t), this.onChange();\n }\n remove(t) {\n const e = this.findIndex((i) => i.id === t.id);\n ~e && (t.el.style.zIndex = \"\", this.splice(e, 1), this.onChange());\n }\n moveToTop(t) {\n const e = this.findIndex((i) => i.id === t.id);\n ~e && (this.splice(e, 1), this.add(t));\n }\n}\nclass d {\n constructor(t, e) {\n this.config = new C(), this.parent = t, this.el = p(e), this.id = this.el.id, this.config.set(\"parent\", this.parent.config), this.config.set(\"entry\", {});\n }\n}\nconst k = {\n selector: \"\",\n plugins: [],\n presets: {}\n};\nclass A {\n constructor(t = {}) {\n this.#t = new x(), this.events = this.#t.events, this.on = this.#t.on.bind(this.#t), this.off = this.#t.off.bind(this.#t), this.emit = this.#t.emit.bind(this.#t), this.collection = [], this.entryClass = d, this.name = this.constructor.name, this.config = { ...k, ...t }, this.plugins = new O(this.config.presets);\n }\n #t;\n get(t, e = \"id\") {\n return this.collection.find((i) => i[e] === t);\n }\n getOrThrow(t, e = \"id\") {\n const i = this.get(t, e);\n if (i)\n return i;\n throw new Error(\n `${this.name} entry not found in collection with ${String(e)} of \"${t}\"`\n );\n }\n updateConfig(t = {}) {\n return Object.assign(this.config, t);\n }\n async createEntry(t) {\n const e = new this.entryClass(this, t);\n return await a(e, \"init\"), await r(\"onCreateEntry\", this, e), e;\n }\n async destroyEntry(t) {\n return await r(\"onDestroyEntry\", this, t), await a(t, \"destroy\"), t;\n }\n async register(t) {\n const e = this.collection.findIndex((i) => i.id === t.id);\n return ~e ? this.collection[e] = t : this.collection.push(t), await r(\"onRegisterEntry\", this, t), t;\n }\n async deregister(t) {\n const e = this.collection.findIndex((i) => i.id === t.id);\n if (~e) {\n await r(\n \"onDeregisterEntry\",\n this,\n this.collection[e]\n );\n const [i] = this.collection.splice(e, 1);\n }\n return t;\n }\n async mount(t = (e) => e) {\n for (const e of this.config?.plugins || [])\n this.plugins.add(e);\n for (const e of this.plugins)\n await a(e, \"setup\", this);\n if (await r(\"beforeMount\", this), this.config.selector) {\n const e = document.querySelectorAll(this.config.selector);\n for (const i of e)\n await this.createEntry(i).then((n) => t(n)).then((n) => this.register(n));\n }\n return await r(\"afterMount\", this), this;\n }\n async unmount(t = (e) => e) {\n for (await r(\"beforeUnmount\", this); this.collection.length > 0; )\n await this.destroyEntry(this.collection[0]).then((e) => t(e)).then((e) => this.deregister(e));\n await r(\"afterUnmount\", this);\n for (const e of this.plugins)\n await a(e, \"teardown\", this);\n for (const e of [...this.plugins])\n this.plugins.remove(e.name);\n return this;\n }\n}\nw(\"theme-prefix\", { fallback: \"vb-theme-\" });\nconst I = {\n // Data attributes\n attrOpen: \"modal-open\",\n attrClose: \"modal-close\",\n attrReplace: \"modal-replace\",\n // Selectors\n selector: \".modal\",\n selectorDialog: \".modal__dialog\",\n selectorScreen: \".modal\",\n selectorRequired: '[role=\"alertdialog\"]',\n selectorFocus: \"[data-focus]\",\n selectorInert: null,\n selectorOverflow: \"body\",\n // State classes\n stateOpened: \"is-opened\",\n stateOpening: \"is-opening\",\n stateClosing: \"is-closing\",\n stateClosed: \"is-closed\",\n // Feature configurations\n customProps: [\"transition-duration\"],\n customEventPrefix: \"modal:\",\n setTabindex: !0,\n transition: !0,\n transitionDuration: 300\n};\nfunction c(s) {\n if (s.active) {\n const t = s.active.dialog.querySelector(s.config.selectorFocus) || s.active.dialog;\n \"focus\" in t && typeof t.focus == \"function\" && t.focus();\n } else\n s.trigger && (s.trigger.focus(), s.trigger = null);\n}\nasync function l(s, t, e = !0) {\n return s.parent.stack.moveToTop(s), s.state === \"closed\" && (s.state = \"opening\", s.parent.stack.add(s), t ?? s.config.get(\"transition\") ? await u(\n s.el,\n s.config.get(\"stateClosed\"),\n s.config.get(\"stateOpening\"),\n s.config.get(\"stateOpened\"),\n s.config.get(\"transitionDuration\")\n ) : (s.el.classList.add(s.config.get(\"stateOpened\")), s.el.classList.remove(s.config.get(\"stateClosed\"))), s.state = \"opened\"), e && c(s.parent), s.el.dispatchEvent(\n new CustomEvent(s.config.get(\"customEventPrefix\") + \"opened\", {\n detail: s.parent,\n bubbles: !0\n })\n ), await s.parent.emit(\"opened\", s), s;\n}\nasync function h(s, t, e = !0) {\n return s && s.state === \"opened\" && (s.state = \"closing\", document.activeElement && document.activeElement instanceof HTMLElement && document.activeElement.blur(), t ?? s.config.get(\"transition\") ? await u(\n s.el,\n s.config.get(\"stateOpened\"),\n s.config.get(\"stateClosing\"),\n s.config.get(\"stateClosed\"),\n s.config.get(\"transitionDuration\")\n ) : (s.el.classList.add(s.config.get(\"stateClosed\")), s.el.classList.remove(s.config.get(\"stateOpened\"))), s.parent.stack.remove(s), s.state = \"closed\", e && c(s.parent), s.el.dispatchEvent(\n new CustomEvent(s.config.get(\"customEventPrefix\") + \"closed\", {\n detail: s.parent,\n bubbles: !0\n })\n ), await s.parent.emit(\"closed\", s)), s;\n}\nasync function g(s, t, e = !0) {\n let i, n;\n return s.state === \"opened\" ? (i = s, n = await s.parent.closeAll(s.id, t)) : [n, i] = await Promise.all([\n s.parent.closeAll(\"\", t),\n l(s, t, !1)\n ]), e && c(s.parent), { opened: i, closed: n };\n}\nclass $ extends d {\n constructor(t, e) {\n super(t, e), this.state = \"closed\", this.dialog = this.el.querySelector(this.config.get(\"selectorDialog\")) || this.el;\n }\n get isRequired() {\n return this.dialog.matches(this.config.get(\"selectorRequired\"));\n }\n async open(t, e) {\n return l(this, t, e);\n }\n async close(t, e) {\n return h(this, t, e);\n }\n async replace(t, e) {\n return g(this, t, e);\n }\n async deregister() {\n return this.parent.deregister(this);\n }\n async onCreateEntry() {\n this.dialog.setAttribute(\"aria-modal\", \"true\"), this.dialog.hasAttribute(\"role\") || this.dialog.setAttribute(\"role\", \"dialog\"), this.config.get(\"setTabindex\") && this.dialog.setAttribute(\"tabindex\", \"-1\");\n }\n async onRegisterEntry() {\n this.el.classList.contains(this.config.get(\"stateOpened\")) ? await this.open(!1) : (this.el.classList.remove(this.config.get(\"stateOpening\")), this.el.classList.remove(this.config.get(\"stateClosing\")), this.el.classList.add(this.config.get(\"stateClosed\")));\n }\n async onDestroyEntry() {\n this.state === \"opened\" && await this.close(!1);\n }\n}\nasync function T(s) {\n const t = s.target;\n if (t) {\n const e = t.closest(`\n [data-${this.config.attrOpen}],\n [data-${this.config.attrReplace}],\n [data-${this.config.attrClose}]\n `);\n if (e) {\n if (s.preventDefault(), e.matches(`[data-${this.config.attrOpen}]`)) {\n const i = e.getAttribute(`data-${this.config.attrOpen}`)?.trim(), n = this.getOrThrow(i);\n return t.closest(this.config.selector) || (this.trigger = e), n.open();\n }\n if (e.matches(`[data-${this.config.attrReplace}]`)) {\n const i = e.getAttribute(`data-${this.config.attrReplace}`)?.trim(), n = this.getOrThrow(i);\n return t.closest(this.config.selector) || (this.trigger = e), n.replace();\n }\n if (e.matches(`[data-${this.config.attrClose}]`)) {\n const i = e.getAttribute(`data-${this.config.attrClose}`)?.trim();\n return i === \"*\" ? this.closeAll() : this.close(i || \"\");\n }\n }\n if (this.active && t.matches(this.config.selectorScreen) && !this.active.isRequired)\n return this.close();\n }\n}\nfunction S(s) {\n if (s.key === \"Escape\" && this.active && !this.active.dialog.matches(this.config.selectorRequired))\n return this.close();\n}\nasync function M(s = \"\", t) {\n const e = [];\n return await Promise.all(\n this.stack.copy.map(async (i) => {\n s && s === i.id || e.push(await h(i, t, !1));\n })\n ), e;\n}\nclass P extends A {\n constructor(t) {\n super({ ...I, ...t }), this.entryClass = $, this.name = \"Modal\", this.trigger = null, this.#t = T.bind(this), this.#e = S.bind(this), this.stack = new L({\n onChange: () => {\n b(\n !!this.stack.top,\n this.config.selectorInert,\n this.config.selectorOverflow\n );\n }\n });\n }\n #t;\n #e;\n get active() {\n return this.stack.top;\n }\n async open(t, e, i) {\n const n = this.getOrThrow(t);\n return l(n, e, i);\n }\n async close(t, e, i) {\n const n = t ? this.getOrThrow(t) : this.active;\n return h(n, e, i);\n }\n async replace(t, e, i) {\n const n = this.getOrThrow(t);\n return g(n, e, i);\n }\n async closeAll(t, e, i = !0) {\n const n = await M.call(this, t, e);\n return i && c(this), n;\n }\n async afterMount() {\n document.addEventListener(\"click\", this.#t, !1), document.addEventListener(\"keydown\", this.#e, !1);\n }\n async beforeUnmount() {\n this.trigger = null;\n }\n async afterUnmount() {\n document.removeEventListener(\"click\", this.#t, !1), document.removeEventListener(\"keydown\", this.#e, !1);\n }\n}\nexport {\n P as default\n};\n//# sourceMappingURL=index.js.map\n","function jt(t) {\n if (typeof t == \"string\") {\n const e = document.getElementById(t);\n if (e) return e;\n throw new Error(`Element not found with ID: \"${t}\"`);\n } else if (t instanceof HTMLElement) {\n if (!t.id)\n throw new Error(\"HTMLElement must have an ID\");\n return t;\n } else\n throw new Error(\"Invalid argument: query must be a string or HTMLElement\");\n}\nasync function z(t, e, ...n) {\n e in t && typeof t[e] == \"function\" && await t[e](...n);\n}\nfunction Kt(t, e = {}) {\n const n = {\n fallback: null,\n element: document.body,\n ...e\n };\n if (!t.startsWith(\"--\")) {\n const s = Jt();\n s && (t = `${s}${t}`), t = `--${t}`;\n }\n const i = getComputedStyle(n.element).getPropertyValue(t).trim();\n if (i)\n return i;\n if (n.fallback)\n return n.fallback;\n throw new Error(`CSS variable \"${t}\" was not found!`);\n}\nasync function N(t, e, n) {\n await z(e, t, n), n && await z(n, t);\n for (const i of e.plugins)\n await z(i, t, { parent: e, entry: n });\n await e.emit(t, { parent: e, entry: n });\n}\nfunction Jt() {\n return getComputedStyle(document.body).getPropertyValue(\"--vb-prefix\").trim();\n}\nclass Gt {\n #t;\n #e;\n constructor() {\n this.#t = {}, this.#e = [];\n }\n get(e, n) {\n const { fallback: i, source: s } = n ?? {};\n if (s) {\n const o = this.#t?.[s]?.[e];\n if (o !== void 0)\n return o;\n } else\n for (const o of this.#e) {\n const r = this.#t?.[o]?.[e];\n if (r !== void 0)\n return r;\n }\n if (i !== void 0)\n return i;\n throw new Error(`Config does not exist: ${e}`);\n }\n set(e, n = {}) {\n let i, s;\n return typeof e == \"string\" ? (i = e, s = n) : (i = \"entry\", s = e), this.#t[i] ? Object.assign(this.#t[i], s) : (this.#e.unshift(i), this.#t[i] = s), this.#t[i];\n }\n remove(e) {\n const n = this.#e.indexOf(e);\n n !== -1 && this.#e.splice(n, 1), delete this.#t[e];\n }\n setSourceOrder(e) {\n const n = Object.keys(this.#t).reverse(), i = e.filter((s) => n.includes(s));\n for (const s of n)\n i.includes(s) || i.push(s);\n return this.#e = i;\n }\n}\nclass Qt {\n constructor() {\n this.events = {};\n }\n on(e, n, ...i) {\n this.events[e] || (this.events[e] = []), this.events[e].some(\n (s) => s.listener === n\n ) || this.events[e].push({ listener: n, args: i });\n }\n off(e, n) {\n this.events[e] && (this.events[e] = this.events[e].filter(\n (i) => i.listener !== n\n ));\n }\n async emit(e, ...n) {\n if (e = e.startsWith(\"on\") ? e.slice(2, 3).toLowerCase() + e.slice(3) : e, !!this.events[e])\n for (const { listener: i, args: s } of this.events[e])\n await i(...n, ...s);\n }\n}\nclass Zt extends Array {\n constructor(e = {}) {\n super(), this.presets = e;\n }\n #t(e) {\n const n = this.presets?.[e.name] || {}, i = e?.options || {};\n e.config = { ...e.config, ...n, ...i };\n }\n #e(e) {\n return !(\"name\" in e) || typeof e.name != \"string\" ? (console.error(\"Plugin requires a name!\"), !1) : !0;\n }\n get(e) {\n return this.find((n) => n.name === e) || null;\n }\n add(e) {\n if (Array.isArray(e))\n e.forEach((n) => this.add(n));\n else if (this.#t(e), this.#e(e)) {\n const n = this.findIndex((i) => i.name === e.name);\n ~n ? this[n] = e : this.push(e);\n }\n }\n remove(e) {\n const n = this.findIndex((i) => i.name === e);\n ~n && this.splice(n, 1);\n }\n}\nclass Pt {\n constructor(e, n) {\n this.config = new Gt(), this.parent = e, this.el = jt(n), this.id = this.el.id, this.config.set(\"parent\", this.parent.config), this.config.set(\"entry\", {});\n }\n}\nconst te = {\n selector: \"\",\n plugins: [],\n presets: {}\n};\nclass ee {\n constructor(e = {}) {\n this.#t = new Qt(), this.events = this.#t.events, this.on = this.#t.on.bind(this.#t), this.off = this.#t.off.bind(this.#t), this.emit = this.#t.emit.bind(this.#t), this.collection = [], this.entryClass = Pt, this.name = this.constructor.name, this.config = { ...te, ...e }, this.plugins = new Zt(this.config.presets);\n }\n #t;\n get(e, n = \"id\") {\n return this.collection.find((i) => i[n] === e);\n }\n getOrThrow(e, n = \"id\") {\n const i = this.get(e, n);\n if (i)\n return i;\n throw new Error(\n `${this.name} entry not found in collection with ${String(n)} of \"${e}\"`\n );\n }\n updateConfig(e = {}) {\n return Object.assign(this.config, e);\n }\n async createEntry(e) {\n const n = new this.entryClass(this, e);\n return await z(n, \"init\"), await N(\"onCreateEntry\", this, n), n;\n }\n async destroyEntry(e) {\n return await N(\"onDestroyEntry\", this, e), await z(e, \"destroy\"), e;\n }\n async register(e) {\n const n = this.collection.findIndex((i) => i.id === e.id);\n return ~n ? this.collection[n] = e : this.collection.push(e), await N(\"onRegisterEntry\", this, e), e;\n }\n async deregister(e) {\n const n = this.collection.findIndex((i) => i.id === e.id);\n if (~n) {\n await N(\n \"onDeregisterEntry\",\n this,\n this.collection[n]\n );\n const [i] = this.collection.splice(n, 1);\n }\n return e;\n }\n async mount(e = (n) => n) {\n for (const n of this.config?.plugins || [])\n this.plugins.add(n);\n for (const n of this.plugins)\n await z(n, \"setup\", this);\n if (await N(\"beforeMount\", this), this.config.selector) {\n const n = document.querySelectorAll(this.config.selector);\n for (const i of n)\n await this.createEntry(i).then((s) => e(s)).then((s) => this.register(s));\n }\n return await N(\"afterMount\", this), this;\n }\n async unmount(e = (n) => n) {\n for (await N(\"beforeUnmount\", this); this.collection.length > 0; )\n await this.destroyEntry(this.collection[0]).then((n) => e(n)).then((n) => this.deregister(n));\n await N(\"afterUnmount\", this);\n for (const n of this.plugins)\n await z(n, \"teardown\", this);\n for (const n of [...this.plugins])\n this.plugins.remove(n.name);\n return this;\n }\n}\nKt(\"theme-prefix\", { fallback: \"vb-theme-\" });\nconst ne = {\n // Selectors\n selector: \".popover\",\n selectorTooltip: \".popover_tooltip\",\n selectorArrow: \".popover__arrow\",\n // State classes\n stateActive: \"is-active\",\n // Custom properties and their defaults\n customProps: [\n \"placement\",\n \"event\",\n \"offset\",\n \"flip-padding\",\n \"shift-padding\",\n \"arrow-padding\",\n \"toggle-delay\"\n ],\n customEventPrefix: \"popover:\",\n placement: \"bottom\",\n event: \"click\",\n offset: 0,\n flipPadding: 0,\n shiftPadding: 0,\n arrowPadding: 0,\n toggleDelay: 0\n}, j = Math.min, q = Math.max, st = Math.round, it = Math.floor, P = (t) => ({\n x: t,\n y: t\n}), ie = {\n left: \"right\",\n right: \"left\",\n bottom: \"top\",\n top: \"bottom\"\n}, se = {\n start: \"end\",\n end: \"start\"\n};\nfunction ht(t, e, n) {\n return q(t, j(e, n));\n}\nfunction X(t, e) {\n return typeof t == \"function\" ? t(e) : t;\n}\nfunction I(t) {\n return t.split(\"-\")[0];\n}\nfunction et(t) {\n return t.split(\"-\")[1];\n}\nfunction pt(t) {\n return t === \"x\" ? \"y\" : \"x\";\n}\nfunction wt(t) {\n return t === \"y\" ? \"height\" : \"width\";\n}\nconst oe = /* @__PURE__ */ new Set([\"top\", \"bottom\"]);\nfunction F(t) {\n return oe.has(I(t)) ? \"y\" : \"x\";\n}\nfunction yt(t) {\n return pt(F(t));\n}\nfunction re(t, e, n) {\n n === void 0 && (n = !1);\n const i = et(t), s = yt(t), o = wt(s);\n let r = s === \"x\" ? i === (n ? \"end\" : \"start\") ? \"right\" : \"left\" : i === \"start\" ? \"bottom\" : \"top\";\n return e.reference[o] > e.floating[o] && (r = ot(r)), [r, ot(r)];\n}\nfunction ce(t) {\n const e = ot(t);\n return [gt(t), e, gt(e)];\n}\nfunction gt(t) {\n return t.replace(/start|end/g, (e) => se[e]);\n}\nconst Et = [\"left\", \"right\"], At = [\"right\", \"left\"], le = [\"top\", \"bottom\"], ae = [\"bottom\", \"top\"];\nfunction fe(t, e, n) {\n switch (t) {\n case \"top\":\n case \"bottom\":\n return n ? e ? At : Et : e ? Et : At;\n case \"left\":\n case \"right\":\n return e ? le : ae;\n default:\n return [];\n }\n}\nfunction ue(t, e, n, i) {\n const s = et(t);\n let o = fe(I(t), n === \"start\", i);\n return s && (o = o.map((r) => r + \"-\" + s), e && (o = o.concat(o.map(gt)))), o;\n}\nfunction ot(t) {\n return t.replace(/left|right|bottom|top/g, (e) => ie[e]);\n}\nfunction de(t) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...t\n };\n}\nfunction kt(t) {\n return typeof t != \"number\" ? de(t) : {\n top: t,\n right: t,\n bottom: t,\n left: t\n };\n}\nfunction rt(t) {\n const {\n x: e,\n y: n,\n width: i,\n height: s\n } = t;\n return {\n width: i,\n height: s,\n top: n,\n left: e,\n right: e + i,\n bottom: n + s,\n x: e,\n y: n\n };\n}\nfunction Ct(t, e, n) {\n let {\n reference: i,\n floating: s\n } = t;\n const o = F(e), r = yt(e), c = wt(r), a = I(e), l = o === \"y\", d = i.x + i.width / 2 - s.width / 2, u = i.y + i.height / 2 - s.height / 2, h = i[c] / 2 - s[c] / 2;\n let f;\n switch (a) {\n case \"top\":\n f = {\n x: d,\n y: i.y - s.height\n };\n break;\n case \"bottom\":\n f = {\n x: d,\n y: i.y + i.height\n };\n break;\n case \"right\":\n f = {\n x: i.x + i.width,\n y: u\n };\n break;\n case \"left\":\n f = {\n x: i.x - s.width,\n y: u\n };\n break;\n default:\n f = {\n x: i.x,\n y: i.y\n };\n }\n switch (et(e)) {\n case \"start\":\n f[r] -= h * (n && l ? -1 : 1);\n break;\n case \"end\":\n f[r] += h * (n && l ? -1 : 1);\n break;\n }\n return f;\n}\nconst he = async (t, e, n) => {\n const {\n placement: i = \"bottom\",\n strategy: s = \"absolute\",\n middleware: o = [],\n platform: r\n } = n, c = o.filter(Boolean), a = await (r.isRTL == null ? void 0 : r.isRTL(e));\n let l = await r.getElementRects({\n reference: t,\n floating: e,\n strategy: s\n }), {\n x: d,\n y: u\n } = Ct(l, i, a), h = i, f = {}, g = 0;\n for (let m = 0; m < c.length; m++) {\n const {\n name: p,\n fn: w\n } = c[m], {\n x: y,\n y: x,\n data: b,\n reset: v\n } = await w({\n x: d,\n y: u,\n initialPlacement: i,\n placement: h,\n strategy: s,\n middlewareData: f,\n rects: l,\n platform: r,\n elements: {\n reference: t,\n floating: e\n }\n });\n d = y ?? d, u = x ?? u, f = {\n ...f,\n [p]: {\n ...f[p],\n ...b\n }\n }, v && g <= 50 && (g++, typeof v == \"object\" && (v.placement && (h = v.placement), v.rects && (l = v.rects === !0 ? await r.getElementRects({\n reference: t,\n floating: e,\n strategy: s\n }) : v.rects), {\n x: d,\n y: u\n } = Ct(l, h, a)), m = -1);\n }\n return {\n x: d,\n y: u,\n placement: h,\n strategy: s,\n middlewareData: f\n };\n};\nasync function Dt(t, e) {\n var n;\n e === void 0 && (e = {});\n const {\n x: i,\n y: s,\n platform: o,\n rects: r,\n elements: c,\n strategy: a\n } = t, {\n boundary: l = \"clippingAncestors\",\n rootBoundary: d = \"viewport\",\n elementContext: u = \"floating\",\n altBoundary: h = !1,\n padding: f = 0\n } = X(e, t), g = kt(f), p = c[h ? u === \"floating\" ? \"reference\" : \"floating\" : u], w = rt(await o.getClippingRect({\n element: (n = await (o.isElement == null ? void 0 : o.isElement(p))) == null || n ? p : p.contextElement || await (o.getDocumentElement == null ? void 0 : o.getDocumentElement(c.floating)),\n boundary: l,\n rootBoundary: d,\n strategy: a\n })), y = u === \"floating\" ? {\n x: i,\n y: s,\n width: r.floating.width,\n height: r.floating.height\n } : r.reference, x = await (o.getOffsetParent == null ? void 0 : o.getOffsetParent(c.floating)), b = await (o.isElement == null ? void 0 : o.isElement(x)) ? await (o.getScale == null ? void 0 : o.getScale(x)) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n }, v = rt(o.convertOffsetParentRelativeRectToViewportRelativeRect ? await o.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements: c,\n rect: y,\n offsetParent: x,\n strategy: a\n }) : y);\n return {\n top: (w.top - v.top + g.top) / b.y,\n bottom: (v.bottom - w.bottom + g.bottom) / b.y,\n left: (w.left - v.left + g.left) / b.x,\n right: (v.right - w.right + g.right) / b.x\n };\n}\nconst ge = (t) => ({\n name: \"arrow\",\n options: t,\n async fn(e) {\n const {\n x: n,\n y: i,\n placement: s,\n rects: o,\n platform: r,\n elements: c,\n middlewareData: a\n } = e, {\n element: l,\n padding: d = 0\n } = X(t, e) || {};\n if (l == null)\n return {};\n const u = kt(d), h = {\n x: n,\n y: i\n }, f = yt(s), g = wt(f), m = await r.getDimensions(l), p = f === \"y\", w = p ? \"top\" : \"left\", y = p ? \"bottom\" : \"right\", x = p ? \"clientHeight\" : \"clientWidth\", b = o.reference[g] + o.reference[f] - h[f] - o.floating[g], v = h[f] - o.reference[f], C = await (r.getOffsetParent == null ? void 0 : r.getOffsetParent(l));\n let L = C ? C[x] : 0;\n (!L || !await (r.isElement == null ? void 0 : r.isElement(C))) && (L = c.floating[x] || o.floating[g]);\n const G = b / 2 - v / 2, V = L / 2 - m[g] / 2 - 1, M = j(u[w], V), Q = j(u[y], V), B = M, Z = L - m[g] - Q, E = L / 2 - m[g] / 2 + G, _ = ht(B, E, Z), $ = !a.arrow && et(s) != null && E !== _ && o.reference[g] / 2 - (E < B ? M : Q) - m[g] / 2 < 0, O = $ ? E < B ? E - B : E - Z : 0;\n return {\n [f]: h[f] + O,\n data: {\n [f]: _,\n centerOffset: E - _ - O,\n ...$ && {\n alignmentOffset: O\n }\n },\n reset: $\n };\n }\n}), me = function(t) {\n return t === void 0 && (t = {}), {\n name: \"flip\",\n options: t,\n async fn(e) {\n var n, i;\n const {\n placement: s,\n middlewareData: o,\n rects: r,\n initialPlacement: c,\n platform: a,\n elements: l\n } = e, {\n mainAxis: d = !0,\n crossAxis: u = !0,\n fallbackPlacements: h,\n fallbackStrategy: f = \"bestFit\",\n fallbackAxisSideDirection: g = \"none\",\n flipAlignment: m = !0,\n ...p\n } = X(t, e);\n if ((n = o.arrow) != null && n.alignmentOffset)\n return {};\n const w = I(s), y = F(c), x = I(c) === c, b = await (a.isRTL == null ? void 0 : a.isRTL(l.floating)), v = h || (x || !m ? [ot(c)] : ce(c)), C = g !== \"none\";\n !h && C && v.push(...ue(c, m, g, b));\n const L = [c, ...v], G = await Dt(e, p), V = [];\n let M = ((i = o.flip) == null ? void 0 : i.overflows) || [];\n if (d && V.push(G[w]), u) {\n const E = re(s, r, b);\n V.push(G[E[0]], G[E[1]]);\n }\n if (M = [...M, {\n placement: s,\n overflows: V\n }], !V.every((E) => E <= 0)) {\n var Q, B;\n const E = (((Q = o.flip) == null ? void 0 : Q.index) || 0) + 1, _ = L[E];\n if (_ && (!(u === \"alignment\" ? y !== F(_) : !1) || // We leave the current main axis only if every placement on that axis\n // overflows the main axis.\n M.every((T) => F(T.placement) === y ? T.overflows[0] > 0 : !0)))\n return {\n data: {\n index: E,\n overflows: M\n },\n reset: {\n placement: _\n }\n };\n let $ = (B = M.filter((O) => O.overflows[0] <= 0).sort((O, T) => O.overflows[1] - T.overflows[1])[0]) == null ? void 0 : B.placement;\n if (!$)\n switch (f) {\n case \"bestFit\": {\n var Z;\n const O = (Z = M.filter((T) => {\n if (C) {\n const H = F(T.placement);\n return H === y || // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n H === \"y\";\n }\n return !0;\n }).map((T) => [T.placement, T.overflows.filter((H) => H > 0).reduce((H, Yt) => H + Yt, 0)]).sort((T, H) => T[1] - H[1])[0]) == null ? void 0 : Z[0];\n O && ($ = O);\n break;\n }\n case \"initialPlacement\":\n $ = c;\n break;\n }\n if (s !== $)\n return {\n reset: {\n placement: $\n }\n };\n }\n return {};\n }\n };\n}, Mt = /* @__PURE__ */ new Set([\"left\", \"top\"]);\nasync function pe(t, e) {\n const {\n placement: n,\n platform: i,\n elements: s\n } = t, o = await (i.isRTL == null ? void 0 : i.isRTL(s.floating)), r = I(n), c = et(n), a = F(n) === \"y\", l = Mt.has(r) ? -1 : 1, d = o && a ? -1 : 1, u = X(e, t);\n let {\n mainAxis: h,\n crossAxis: f,\n alignmentAxis: g\n } = typeof u == \"number\" ? {\n mainAxis: u,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: u.mainAxis || 0,\n crossAxis: u.crossAxis || 0,\n alignmentAxis: u.alignmentAxis\n };\n return c && typeof g == \"number\" && (f = c === \"end\" ? g * -1 : g), a ? {\n x: f * d,\n y: h * l\n } : {\n x: h * l,\n y: f * d\n };\n}\nconst we = function(t) {\n return t === void 0 && (t = 0), {\n name: \"offset\",\n options: t,\n async fn(e) {\n var n, i;\n const {\n x: s,\n y: o,\n placement: r,\n middlewareData: c\n } = e, a = await pe(e, t);\n return r === ((n = c.offset) == null ? void 0 : n.placement) && (i = c.arrow) != null && i.alignmentOffset ? {} : {\n x: s + a.x,\n y: o + a.y,\n data: {\n ...a,\n placement: r\n }\n };\n }\n };\n}, ye = function(t) {\n return t === void 0 && (t = {}), {\n name: \"shift\",\n options: t,\n async fn(e) {\n const {\n x: n,\n y: i,\n placement: s\n } = e, {\n mainAxis: o = !0,\n crossAxis: r = !1,\n limiter: c = {\n fn: (p) => {\n let {\n x: w,\n y\n } = p;\n return {\n x: w,\n y\n };\n }\n },\n ...a\n } = X(t, e), l = {\n x: n,\n y: i\n }, d = await Dt(e, a), u = F(I(s)), h = pt(u);\n let f = l[h], g = l[u];\n if (o) {\n const p = h === \"y\" ? \"top\" : \"left\", w = h === \"y\" ? \"bottom\" : \"right\", y = f + d[p], x = f - d[w];\n f = ht(y, f, x);\n }\n if (r) {\n const p = u === \"y\" ? \"top\" : \"left\", w = u === \"y\" ? \"bottom\" : \"right\", y = g + d[p], x = g - d[w];\n g = ht(y, g, x);\n }\n const m = c.fn({\n ...e,\n [h]: f,\n [u]: g\n });\n return {\n ...m,\n data: {\n x: m.x - n,\n y: m.y - i,\n enabled: {\n [h]: o,\n [u]: r\n }\n }\n };\n }\n };\n}, xe = function(t) {\n return t === void 0 && (t = {}), {\n options: t,\n fn(e) {\n const {\n x: n,\n y: i,\n placement: s,\n rects: o,\n middlewareData: r\n } = e, {\n offset: c = 0,\n mainAxis: a = !0,\n crossAxis: l = !0\n } = X(t, e), d = {\n x: n,\n y: i\n }, u = F(s), h = pt(u);\n let f = d[h], g = d[u];\n const m = X(c, e), p = typeof m == \"number\" ? {\n mainAxis: m,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...m\n };\n if (a) {\n const x = h === \"y\" ? \"height\" : \"width\", b = o.reference[h] - o.floating[x] + p.mainAxis, v = o.reference[h] + o.reference[x] - p.mainAxis;\n f < b ? f = b : f > v && (f = v);\n }\n if (l) {\n var w, y;\n const x = h === \"y\" ? \"width\" : \"height\", b = Mt.has(I(s)), v = o.reference[u] - o.floating[x] + (b && ((w = r.offset) == null ? void 0 : w[u]) || 0) + (b ? 0 : p.crossAxis), C = o.reference[u] + o.reference[x] + (b ? 0 : ((y = r.offset) == null ? void 0 : y[u]) || 0) - (b ? p.crossAxis : 0);\n g < v ? g = v : g > C && (g = C);\n }\n return {\n [h]: f,\n [u]: g\n };\n }\n };\n};\nfunction ct() {\n return typeof window < \"u\";\n}\nfunction J(t) {\n return $t(t) ? (t.nodeName || \"\").toLowerCase() : \"#document\";\n}\nfunction A(t) {\n var e;\n return (t == null || (e = t.ownerDocument) == null ? void 0 : e.defaultView) || window;\n}\nfunction D(t) {\n var e;\n return (e = ($t(t) ? t.ownerDocument : t.document) || window.document) == null ? void 0 : e.documentElement;\n}\nfunction $t(t) {\n return ct() ? t instanceof Node || t instanceof A(t).Node : !1;\n}\nfunction S(t) {\n return ct() ? t instanceof Element || t instanceof A(t).Element : !1;\n}\nfunction k(t) {\n return ct() ? t instanceof HTMLElement || t instanceof A(t).HTMLElement : !1;\n}\nfunction Lt(t) {\n return !ct() || typeof ShadowRoot > \"u\" ? !1 : t instanceof ShadowRoot || t instanceof A(t).ShadowRoot;\n}\nconst ve = /* @__PURE__ */ new Set([\"inline\", \"contents\"]);\nfunction nt(t) {\n const {\n overflow: e,\n overflowX: n,\n overflowY: i,\n display: s\n } = R(t);\n return /auto|scroll|overlay|hidden|clip/.test(e + i + n) && !ve.has(s);\n}\nconst be = /* @__PURE__ */ new Set([\"table\", \"td\", \"th\"]);\nfunction Ee(t) {\n return be.has(J(t));\n}\nconst Ae = [\":popover-open\", \":modal\"];\nfunction lt(t) {\n return Ae.some((e) => {\n try {\n return t.matches(e);\n } catch {\n return !1;\n }\n });\n}\nconst Ce = [\"transform\", \"translate\", \"scale\", \"rotate\", \"perspective\"], Le = [\"transform\", \"translate\", \"scale\", \"rotate\", \"perspective\", \"filter\"], Oe = [\"paint\", \"layout\", \"strict\", \"content\"];\nfunction xt(t) {\n const e = vt(), n = S(t) ? R(t) : t;\n return Ce.some((i) => n[i] ? n[i] !== \"none\" : !1) || (n.containerType ? n.containerType !== \"normal\" : !1) || !e && (n.backdropFilter ? n.backdropFilter !== \"none\" : !1) || !e && (n.filter ? n.filter !== \"none\" : !1) || Le.some((i) => (n.willChange || \"\").includes(i)) || Oe.some((i) => (n.contain || \"\").includes(i));\n}\nfunction Te(t) {\n let e = W(t);\n for (; k(e) && !K(e); ) {\n if (xt(e))\n return e;\n if (lt(e))\n return null;\n e = W(e);\n }\n return null;\n}\nfunction vt() {\n return typeof CSS > \"u\" || !CSS.supports ? !1 : CSS.supports(\"-webkit-backdrop-filter\", \"none\");\n}\nconst Se = /* @__PURE__ */ new Set([\"html\", \"body\", \"#document\"]);\nfunction K(t) {\n return Se.has(J(t));\n}\nfunction R(t) {\n return A(t).getComputedStyle(t);\n}\nfunction at(t) {\n return S(t) ? {\n scrollLeft: t.scrollLeft,\n scrollTop: t.scrollTop\n } : {\n scrollLeft: t.scrollX,\n scrollTop: t.scrollY\n };\n}\nfunction W(t) {\n if (J(t) === \"html\")\n return t;\n const e = (\n // Step into the shadow DOM of the parent of a slotted node.\n t.assignedSlot || // DOM Element detected.\n t.parentNode || // ShadowRoot detected.\n Lt(t) && t.host || // Fallback.\n D(t)\n );\n return Lt(e) ? e.host : e;\n}\nfunction Ft(t) {\n const e = W(t);\n return K(e) ? t.ownerDocument ? t.ownerDocument.body : t.body : k(e) && nt(e) ? e : Ft(e);\n}\nfunction tt(t, e, n) {\n var i;\n e === void 0 && (e = []), n === void 0 && (n = !0);\n const s = Ft(t), o = s === ((i = t.ownerDocument) == null ? void 0 : i.body), r = A(s);\n if (o) {\n const c = mt(r);\n return e.concat(r, r.visualViewport || [], nt(s) ? s : [], c && n ? tt(c) : []);\n }\n return e.concat(s, tt(s, [], n));\n}\nfunction mt(t) {\n return t.parent && Object.getPrototypeOf(t.parent) ? t.frameElement : null;\n}\nfunction Ht(t) {\n const e = R(t);\n let n = parseFloat(e.width) || 0, i = parseFloat(e.height) || 0;\n const s = k(t), o = s ? t.offsetWidth : n, r = s ? t.offsetHeight : i, c = st(n) !== o || st(i) !== r;\n return c && (n = o, i = r), {\n width: n,\n height: i,\n $: c\n };\n}\nfunction bt(t) {\n return S(t) ? t : t.contextElement;\n}\nfunction Y(t) {\n const e = bt(t);\n if (!k(e))\n return P(1);\n const n = e.getBoundingClientRect(), {\n width: i,\n height: s,\n $: o\n } = Ht(e);\n let r = (o ? st(n.width) : n.width) / i, c = (o ? st(n.height) : n.height) / s;\n return (!r || !Number.isFinite(r)) && (r = 1), (!c || !Number.isFinite(c)) && (c = 1), {\n x: r,\n y: c\n };\n}\nconst Re = /* @__PURE__ */ P(0);\nfunction Nt(t) {\n const e = A(t);\n return !vt() || !e.visualViewport ? Re : {\n x: e.visualViewport.offsetLeft,\n y: e.visualViewport.offsetTop\n };\n}\nfunction Pe(t, e, n) {\n return e === void 0 && (e = !1), !n || e && n !== A(t) ? !1 : e;\n}\nfunction U(t, e, n, i) {\n e === void 0 && (e = !1), n === void 0 && (n = !1);\n const s = t.getBoundingClientRect(), o = bt(t);\n let r = P(1);\n e && (i ? S(i) && (r = Y(i)) : r = Y(t));\n const c = Pe(o, n, i) ? Nt(o) : P(0);\n let a = (s.left + c.x) / r.x, l = (s.top + c.y) / r.y, d = s.width / r.x, u = s.height / r.y;\n if (o) {\n const h = A(o), f = i && S(i) ? A(i) : i;\n let g = h, m = mt(g);\n for (; m && i && f !== g; ) {\n const p = Y(m), w = m.getBoundingClientRect(), y = R(m), x = w.left + (m.clientLeft + parseFloat(y.paddingLeft)) * p.x, b = w.top + (m.clientTop + parseFloat(y.paddingTop)) * p.y;\n a *= p.x, l *= p.y, d *= p.x, u *= p.y, a += x, l += b, g = A(m), m = mt(g);\n }\n }\n return rt({\n width: d,\n height: u,\n x: a,\n y: l\n });\n}\nfunction ft(t, e) {\n const n = at(t).scrollLeft;\n return e ? e.left + n : U(D(t)).left + n;\n}\nfunction It(t, e) {\n const n = t.getBoundingClientRect(), i = n.left + e.scrollLeft - ft(t, n), s = n.top + e.scrollTop;\n return {\n x: i,\n y: s\n };\n}\nfunction ke(t) {\n let {\n elements: e,\n rect: n,\n offsetParent: i,\n strategy: s\n } = t;\n const o = s === \"fixed\", r = D(i), c = e ? lt(e.floating) : !1;\n if (i === r || c && o)\n return n;\n let a = {\n scrollLeft: 0,\n scrollTop: 0\n }, l = P(1);\n const d = P(0), u = k(i);\n if ((u || !u && !o) && ((J(i) !== \"body\" || nt(r)) && (a = at(i)), k(i))) {\n const f = U(i);\n l = Y(i), d.x = f.x + i.clientLeft, d.y = f.y + i.clientTop;\n }\n const h = r && !u && !o ? It(r, a) : P(0);\n return {\n width: n.width * l.x,\n height: n.height * l.y,\n x: n.x * l.x - a.scrollLeft * l.x + d.x + h.x,\n y: n.y * l.y - a.scrollTop * l.y + d.y + h.y\n };\n}\nfunction De(t) {\n return Array.from(t.getClientRects());\n}\nfunction Me(t) {\n const e = D(t), n = at(t), i = t.ownerDocument.body, s = q(e.scrollWidth, e.clientWidth, i.scrollWidth, i.clientWidth), o = q(e.scrollHeight, e.clientHeight, i.scrollHeight, i.clientHeight);\n let r = -n.scrollLeft + ft(t);\n const c = -n.scrollTop;\n return R(i).direction === \"rtl\" && (r += q(e.clientWidth, i.clientWidth) - s), {\n width: s,\n height: o,\n x: r,\n y: c\n };\n}\nconst Ot = 25;\nfunction $e(t, e) {\n const n = A(t), i = D(t), s = n.visualViewport;\n let o = i.clientWidth, r = i.clientHeight, c = 0, a = 0;\n if (s) {\n o = s.width, r = s.height;\n const d = vt();\n (!d || d && e === \"fixed\") && (c = s.offsetLeft, a = s.offsetTop);\n }\n const l = ft(i);\n if (l <= 0) {\n const d = i.ownerDocument, u = d.body, h = getComputedStyle(u), f = d.compatMode === \"CSS1Compat\" && parseFloat(h.marginLeft) + parseFloat(h.marginRight) || 0, g = Math.abs(i.clientWidth - u.clientWidth - f);\n g <= Ot && (o -= g);\n } else l <= Ot && (o += l);\n return {\n width: o,\n height: r,\n x: c,\n y: a\n };\n}\nconst Fe = /* @__PURE__ */ new Set([\"absolute\", \"fixed\"]);\nfunction He(t, e) {\n const n = U(t, !0, e === \"fixed\"), i = n.top + t.clientTop, s = n.left + t.clientLeft, o = k(t) ? Y(t) : P(1), r = t.clientWidth * o.x, c = t.clientHeight * o.y, a = s * o.x, l = i * o.y;\n return {\n width: r,\n height: c,\n x: a,\n y: l\n };\n}\nfunction Tt(t, e, n) {\n let i;\n if (e === \"viewport\")\n i = $e(t, n);\n else if (e === \"document\")\n i = Me(D(t));\n else if (S(e))\n i = He(e, n);\n else {\n const s = Nt(t);\n i = {\n x: e.x - s.x,\n y: e.y - s.y,\n width: e.width,\n height: e.height\n };\n }\n return rt(i);\n}\nfunction Wt(t, e) {\n const n = W(t);\n return n === e || !S(n) || K(n) ? !1 : R(n).position === \"fixed\" || Wt(n, e);\n}\nfunction Ne(t, e) {\n const n = e.get(t);\n if (n)\n return n;\n let i = tt(t, [], !1).filter((c) => S(c) && J(c) !== \"body\"), s = null;\n const o = R(t).position === \"fixed\";\n let r = o ? W(t) : t;\n for (; S(r) && !K(r); ) {\n const c = R(r), a = xt(r);\n !a && c.position === \"fixed\" && (s = null), (o ? !a && !s : !a && c.position === \"static\" && !!s && Fe.has(s.position) || nt(r) && !a && Wt(t, r)) ? i = i.filter((d) => d !== r) : s = c, r = W(r);\n }\n return e.set(t, i), i;\n}\nfunction Ie(t) {\n let {\n element: e,\n boundary: n,\n rootBoundary: i,\n strategy: s\n } = t;\n const r = [...n === \"clippingAncestors\" ? lt(e) ? [] : Ne(e, this._c) : [].concat(n), i], c = r[0], a = r.reduce((l, d) => {\n const u = Tt(e, d, s);\n return l.top = q(u.top, l.top), l.right = j(u.right, l.right), l.bottom = j(u.bottom, l.bottom), l.left = q(u.left, l.left), l;\n }, Tt(e, c, s));\n return {\n width: a.right - a.left,\n height: a.bottom - a.top,\n x: a.left,\n y: a.top\n };\n}\nfunction We(t) {\n const {\n width: e,\n height: n\n } = Ht(t);\n return {\n width: e,\n height: n\n };\n}\nfunction Ve(t, e, n) {\n const i = k(e), s = D(e), o = n === \"fixed\", r = U(t, !0, o, e);\n let c = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const a = P(0);\n function l() {\n a.x = ft(s);\n }\n if (i || !i && !o)\n if ((J(e) !== \"body\" || nt(s)) && (c = at(e)), i) {\n const f = U(e, !0, o, e);\n a.x = f.x + e.clientLeft, a.y = f.y + e.clientTop;\n } else s && l();\n o && !i && s && l();\n const d = s && !i && !o ? It(s, c) : P(0), u = r.left + c.scrollLeft - a.x - d.x, h = r.top + c.scrollTop - a.y - d.y;\n return {\n x: u,\n y: h,\n width: r.width,\n height: r.height\n };\n}\nfunction ut(t) {\n return R(t).position === \"static\";\n}\nfunction St(t, e) {\n if (!k(t) || R(t).position === \"fixed\")\n return null;\n if (e)\n return e(t);\n let n = t.offsetParent;\n return D(t) === n && (n = n.ownerDocument.body), n;\n}\nfunction Vt(t, e) {\n const n = A(t);\n if (lt(t))\n return n;\n if (!k(t)) {\n let s = W(t);\n for (; s && !K(s); ) {\n if (S(s) && !ut(s))\n return s;\n s = W(s);\n }\n return n;\n }\n let i = St(t, e);\n for (; i && Ee(i) && ut(i); )\n i = St(i, e);\n return i && K(i) && ut(i) && !xt(i) ? n : i || Te(t) || n;\n}\nconst Be = async function(t) {\n const e = this.getOffsetParent || Vt, n = this.getDimensions, i = await n(t.floating);\n return {\n reference: Ve(t.reference, await e(t.floating), t.strategy),\n floating: {\n x: 0,\n y: 0,\n width: i.width,\n height: i.height\n }\n };\n};\nfunction _e(t) {\n return R(t).direction === \"rtl\";\n}\nconst ze = {\n convertOffsetParentRelativeRectToViewportRelativeRect: ke,\n getDocumentElement: D,\n getClippingRect: Ie,\n getOffsetParent: Vt,\n getElementRects: Be,\n getClientRects: De,\n getDimensions: We,\n getScale: Y,\n isElement: S,\n isRTL: _e\n};\nfunction Bt(t, e) {\n return t.x === e.x && t.y === e.y && t.width === e.width && t.height === e.height;\n}\nfunction qe(t, e) {\n let n = null, i;\n const s = D(t);\n function o() {\n var c;\n clearTimeout(i), (c = n) == null || c.disconnect(), n = null;\n }\n function r(c, a) {\n c === void 0 && (c = !1), a === void 0 && (a = 1), o();\n const l = t.getBoundingClientRect(), {\n left: d,\n top: u,\n width: h,\n height: f\n } = l;\n if (c || e(), !h || !f)\n return;\n const g = it(u), m = it(s.clientWidth - (d + h)), p = it(s.clientHeight - (u + f)), w = it(d), x = {\n rootMargin: -g + \"px \" + -m + \"px \" + -p + \"px \" + -w + \"px\",\n threshold: q(0, j(1, a)) || 1\n };\n let b = !0;\n function v(C) {\n const L = C[0].intersectionRatio;\n if (L !== a) {\n if (!b)\n return r();\n L ? r(!1, L) : i = setTimeout(() => {\n r(!1, 1e-7);\n }, 1e3);\n }\n L === 1 && !Bt(l, t.getBoundingClientRect()) && r(), b = !1;\n }\n try {\n n = new IntersectionObserver(v, {\n ...x,\n // Handle <iframe>s\n root: s.ownerDocument\n });\n } catch {\n n = new IntersectionObserver(v, x);\n }\n n.observe(t);\n }\n return r(!0), o;\n}\nfunction Xe(t, e, n, i) {\n i === void 0 && (i = {});\n const {\n ancestorScroll: s = !0,\n ancestorResize: o = !0,\n elementResize: r = typeof ResizeObserver == \"function\",\n layoutShift: c = typeof IntersectionObserver == \"function\",\n animationFrame: a = !1\n } = i, l = bt(t), d = s || o ? [...l ? tt(l) : [], ...tt(e)] : [];\n d.forEach((w) => {\n s && w.addEventListener(\"scroll\", n, {\n passive: !0\n }), o && w.addEventListener(\"resize\", n);\n });\n const u = l && c ? qe(l, n) : null;\n let h = -1, f = null;\n r && (f = new ResizeObserver((w) => {\n let [y] = w;\n y && y.target === l && f && (f.unobserve(e), cancelAnimationFrame(h), h = requestAnimationFrame(() => {\n var x;\n (x = f) == null || x.observe(e);\n })), n();\n }), l && !a && f.observe(l), f.observe(e));\n let g, m = a ? U(t) : null;\n a && p();\n function p() {\n const w = U(t);\n m && !Bt(m, w) && n(), m = w, g = requestAnimationFrame(p);\n }\n return n(), () => {\n var w;\n d.forEach((y) => {\n s && y.removeEventListener(\"scroll\", n), o && y.removeEventListener(\"resize\", n);\n }), u?.(), (w = f) == null || w.disconnect(), f = null, a && cancelAnimationFrame(g);\n };\n}\nconst Ue = we, Ye = ye, je = me, Ke = ge, Je = xe, Ge = (t, e, n) => {\n const i = /* @__PURE__ */ new Map(), s = {\n platform: ze,\n ...n\n }, o = {\n ...s.platform,\n _c: i\n };\n return he(t, e, {\n ...s,\n platform: o\n });\n};\nfunction Rt(t, e, n) {\n Object.assign(t.style, {\n left: e != null ? `${e}px` : \"\",\n top: n != null ? `${n}px` : \"\"\n });\n}\nfunction _t(t, e) {\n let n = t.config.get(\"toggleDelay\");\n typeof n == \"string\" && (n.indexOf(\",\") > -1 && (n = n.split(\",\")), n.indexOf(\" \") > -1 && (n = n.split(\" \"))), Array.isArray(n) && (n = n[e]);\n const i = Number(n);\n if (Number.isNaN(i))\n throw new Error(`Provided delay value is not a number: \"${n}\"`);\n return i;\n}\nfunction dt(t) {\n let e;\n const n = typeof t == \"string\" ? t.trim().split(\" \").map((i) => parseFloat(i)).filter((i) => !isNaN(i)) : [t];\n for (let i = 0; i < n.length; i++)\n n[i] = Number(n[i]);\n switch (n.length) {\n case 1:\n e = n[0];\n break;\n case 2:\n e = {\n top: n[0],\n right: n[1],\n bottom: n[0],\n left: n[1]\n };\n break;\n case 3:\n e = {\n top: n[0],\n right: n[1],\n bottom: n[2],\n left: n[1]\n };\n break;\n case 4:\n e = {\n top: n[0],\n right: n[1],\n bottom: n[2],\n left: n[3]\n };\n break;\n default:\n e = void 0;\n break;\n }\n return e;\n}\nfunction Qe(t) {\n return {\n offset: Number(t.config.get(\"offset\")),\n flip: {\n padding: dt(t.config.get(\"flipPadding\"))\n },\n shift: {\n padding: dt(t.config.get(\"shiftPadding\"))\n },\n arrow: {\n selector: t.config.get(\"selectorArrow\"),\n element: null,\n padding: dt(t.config.get(\"arrowPadding\"))\n }\n };\n}\nasync function zt(t) {\n return t && t.state === \"opened\" && (t.el.inert = !0, t.el.classList.remove(t.config.get(\"stateActive\")), t.isTooltip || t.trigger?.setAttribute(\"aria-expanded\", \"false\"), t.floatingCleanup(), t.state = \"closed\", t.trigger === t.parent.trigger && (t.parent.trigger = null), t.el.dispatchEvent(\n new CustomEvent(t.config.get(\"customEventPrefix\") + \"closed\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"closed\", t)), t;\n}\nasync function qt(t) {\n const e = [];\n for (const n of t.collection)\n n.state === \"opened\" && e.push(await n.close());\n return e;\n}\nfunction Xt(t) {\n t.state == \"opened\" && setTimeout(() => (document.activeElement?.closest(\n `#${t.id}, [aria-controls=\"${t.id}\"], [aria-describedby=\"${t.id}\"]`\n ) || t.close(), t), 1);\n}\nfunction Ze(t) {\n t.state === \"opened\" ? t.close() : (this.trigger = t.trigger, t.open());\n}\nfunction tn(t) {\n t.isTooltip && (t.toggleDelayId && clearTimeout(t.toggleDelayId), t.close());\n}\nfunction en(t, e) {\n if (!(e instanceof MouseEvent) || (t.isHovered = e, e.type == \"focus\" && t.trigger && !t.trigger.matches(\":focus-visible\")))\n return;\n t.toggleDelayId && clearTimeout(t.toggleDelayId);\n const n = t.trigger?.getAttribute(\"aria-expanded\");\n if (n && n == \"true\") return;\n const i = this.activeHover ? 0 : _t(t, 0);\n this.activeHover && this.activeHover.close(), t.toggleDelayId = setTimeout(() => {\n t.id && t.open();\n }, i);\n}\nfunction nn(t, e) {\n e instanceof MouseEvent && setTimeout(() => {\n t.isHovered = e, !t.isHovered && (t.toggleDelayId && clearTimeout(t.toggleDelayId), t.toggleDelayId = setTimeout(\n () => Xt(t),\n _t(t, 1)\n ));\n }, 1);\n}\nfunction sn(t) {\n switch (t.key) {\n case \"Escape\":\n this.trigger && this.trigger.focus(), qt(this);\n return;\n case \"Tab\":\n this.collection.forEach((e) => {\n Xt(e);\n });\n return;\n default:\n return;\n }\n}\nfunction on(t) {\n document.addEventListener(\"click\", function e(n) {\n const i = n.target;\n i && (i.closest(\n `#${t.id}, [aria-controls=\"${t.id}\"], [aria-describedby=\"${t.id}\"]`\n ) ? t.el && !t.el.classList.contains(t.config.get(\"stateActive\")) && this.removeEventListener(\"click\", e) : (t.el && t.el.classList.contains(t.config.get(\"stateActive\")) && t.close(), this.removeEventListener(\"click\", e)));\n });\n}\nasync function Ut(t) {\n t.el.inert = !1, t.el.classList.add(t.config.get(\"stateActive\")), t.isTooltip || t.trigger?.setAttribute(\"aria-expanded\", \"true\"), await t.parent.emit(\"updateCustomProps\", t);\n const e = Qe(t), n = t.el.querySelector(\n e.arrow.selector\n );\n return e.arrow.element = n || null, t.trigger instanceof HTMLElement && (t.floatingCleanup = Xe(t.trigger, t.el, () => {\n const i = [\n je(e.flip),\n Ye({ ...e.shift, limiter: Je() }),\n Ue(e.offset)\n ];\n e.arrow.element && i.push(\n Ke({\n ...e.arrow,\n element: e.arrow.element\n })\n ), Ge(t.trigger, t.el, {\n placement: t.config.get(\"placement\"),\n middleware: i\n }).then(({ x: s, y: o, placement: r, middlewareData: c }) => {\n if (t.el) {\n if (Rt(t.el, s, o), e.arrow.element && c.arrow) {\n const { x: a, y: l } = c.arrow;\n Rt(e.arrow.element, a, l);\n }\n t.el.setAttribute(\"data-floating-placement\", r);\n }\n });\n })), t.state = \"opened\", t.config.get(\"event\") === \"click\" && on.call(t.parent, t), t.el.dispatchEvent(\n new CustomEvent(t.config.get(\"customEventPrefix\") + \"opened\", {\n detail: t.parent,\n bubbles: !0\n })\n ), await t.parent.emit(\"opened\", t), t;\n}\nclass rn extends Pt {\n constructor(e, n) {\n super(e, n), this.#t = [], this.#e = {\n el: !1,\n trigger: !1\n }, this.state = \"closed\", this.trigger = null, this.toggleDelayId = null, this.floatingCleanup = () => {\n };\n }\n #t;\n #e;\n get isTooltip() {\n return !!this.el.closest(this.config.get(\"selectorTooltip\")) || this.el.getAttribute(\"role\") == \"tooltip\";\n }\n get isHovered() {\n return this.#e.el || this.#e.trigger;\n }\n set isHovered(e) {\n const n = e.type == \"mouseenter\" ? !0 : e.type == \"mouseleave\" ? !1 : void 0;\n if (n != null)\n switch (e.target) {\n case this.el:\n this.#e.el = n;\n break;\n case this.trigger:\n this.#e.trigger = n;\n break;\n }\n }\n async open() {\n return Ut(this);\n }\n async close() {\n return zt(this);\n }\n async deregister() {\n return this.parent.deregister(this);\n }\n registerEventListeners() {\n this.#t.length || (this.config.get(\"event\") === \"hover\" ? (this.#t = [\n {\n el: [\"el\", \"trigger\"],\n type: [\"mouseenter\", \"focus\"],\n listener: en.bind(this.parent, this)\n },\n {\n el: [\"el\", \"trigger\"],\n type: [\"mouseleave\", \"focusout\"],\n listener: nn.bind(this.parent, this)\n },\n {\n el: [\"trigger\"],\n type: [\"click\"],\n listener: tn.bind(this.parent, this)\n }\n ], this.#t.forEach((n) => {\n n.el.forEach((i) => {\n n.type.forEach((s) => {\n this[i].addEventListener(\n s,\n n.listener,\n !1\n );\n });\n });\n })) : (this.#t = [\n {\n el: [\"trigger\"],\n type: [\"click\"],\n listener: Ze.bind(this.parent, this)\n }\n ], this.#t.forEach((n) => {\n n.el.forEach((i) => {\n n.type.forEach((s) => {\n this[i].addEventListener(\n s,\n n.listener,\n !1\n );\n });\n });\n })));\n }\n deregisterEventListeners() {\n this.#t && (this.#t.forEach((e) => {\n e.el.forEach((n) => {\n e.type.forEach((i) => {\n this[n].removeEventListener(\n i,\n e.listener,\n !1\n );\n });\n });\n }), this.#t = []);\n }\n async onCreateEntry() {\n this.trigger = document.querySelector(\n `[aria-controls=\"${this.id}\"], [aria-describedby=\"${this.id}\"]`\n ), this.isTooltip ? (this.config.set({ event: \"hover\" }), this.el.setAttribute(\"role\", \"tooltip\")) : this.trigger && this.trigger instanceof HTMLElement && this.trigger.setAttribute(\"aria-expanded\", \"false\");\n }\n async onRegisterEntry() {\n this.registerEventListeners(), this.el.classList.contains(this.config.get(\"stateActive\")) ? await this.open() : this.el.inert = !0;\n }\n async onDestroyEntry() {\n this.state === \"opened\" && await this.close(), this.floatingCleanup(), this.deregisterEventListeners();\n }\n}\nclass cn extends ee {\n constructor(e) {\n super({ ...ne, ...e }), this.entryClass = rn, this.name = \"Popover\", this.trigger = null, this.#t = sn.bind(this);\n }\n #t;\n get active() {\n return this.get(\"opened\", \"state\");\n }\n get activeHover() {\n return this.collection.find((e) => e.state == \"opened\" && e.config.get(\"event\") == \"hover\");\n }\n async open(e) {\n const n = this.getOrThrow(e);\n return Ut(n);\n }\n async close(e) {\n const n = e ? this.getOrThrow(e) : void 0;\n return n ? zt(n) : qt(this);\n }\n async afterMount() {\n document.addEventListener(\"keydown\", this.#t, !1);\n }\n async beforeUnmount() {\n this.trigger = null;\n }\n async afterUnmount() {\n document.removeEventListener(\"keydown\", this.#t, !1);\n }\n}\nexport {\n cn as default\n};\n//# sourceMappingURL=index.js.map\n"],"names":["l","u","m","C","x","v","h","g","k","r","R","M","A","W","S","y","d","b","c","a","P","T","U","O","$","w","N","X","K","Y","q","tt","f","F","et","D","ot","p","E","nt","j","it","I","J","L","z","rt","st","G","V","Q","B","Z","_","H"],"mappings":"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"}