vrembem 3.0.16 → 3.0.18

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/dist/index.js ADDED
@@ -0,0 +1,2231 @@
1
+ var ze = (e, t, n) => {
2
+ if (!t.has(e))
3
+ throw TypeError("Cannot " + n);
4
+ }, j = (e, t, n) => (ze(e, t, "read from private field"), n ? n.call(e) : t.get(e)), Rt = (e, t, n) => {
5
+ if (t.has(e))
6
+ throw TypeError("Cannot add the same private member more than once");
7
+ t instanceof WeakSet ? t.add(e) : t.set(e, n);
8
+ }, nt = (e, t, n, i) => (ze(e, t, "write to private field"), i ? i.call(e, n) : t.set(e, n), n), V;
9
+ let In = class {
10
+ constructor(t, n) {
11
+ Rt(this, V, void 0), this.value = t, nt(this, V, n), this.mql = null;
12
+ }
13
+ get handler() {
14
+ return j(this, V);
15
+ }
16
+ // Unmount existing handler before setting a new one.
17
+ set handler(t) {
18
+ this.mql && this.mql.removeEventListener("change", j(this, V)), nt(this, V, t);
19
+ }
20
+ mount(t, n) {
21
+ return t && (this.value = t), n && nt(this, V, n), this.value ? (this.mql = window.matchMedia(`(min-width: ${this.value})`), this.mql.addEventListener("change", j(this, V)), j(this, V).call(this, this.mql), this) : this;
22
+ }
23
+ unmount() {
24
+ return this.mql ? (this.mql.removeEventListener("change", j(this, V)), this.value = null, nt(this, V, null), this.mql = null, this) : this;
25
+ }
26
+ };
27
+ V = /* @__PURE__ */ new WeakMap();
28
+ let An = class {
29
+ constructor() {
30
+ this.collection = [];
31
+ }
32
+ async register(t) {
33
+ return await this.deregister(t), this.collection.push(t), this.collection;
34
+ }
35
+ async deregister(t) {
36
+ const n = this.collection.findIndex((i) => i === t);
37
+ if (n >= 0) {
38
+ const i = this.collection[n];
39
+ Object.getOwnPropertyNames(i).forEach((r) => {
40
+ delete i[r];
41
+ }), this.collection.splice(n, 1);
42
+ }
43
+ return this.collection;
44
+ }
45
+ async registerCollection(t) {
46
+ return await Promise.all(Array.from(t, (n) => {
47
+ this.register(n);
48
+ })), this.collection;
49
+ }
50
+ async deregisterCollection() {
51
+ for (; this.collection.length > 0; )
52
+ await this.deregister(this.collection[0]);
53
+ return this.collection;
54
+ }
55
+ get(t, n = "id") {
56
+ return this.collection.find((i) => i[n] === t);
57
+ }
58
+ };
59
+ const p = {
60
+ inert: ":not([inert]):not([inert] *)",
61
+ negTabIndex: ':not([tabindex^="-"])',
62
+ disabled: ":not(:disabled)"
63
+ }, Pn = [
64
+ `a[href]${p.inert}${p.negTabIndex}`,
65
+ `area[href]${p.inert}${p.negTabIndex}`,
66
+ `input:not([type="hidden"]):not([type="radio"])${p.inert}${p.negTabIndex}${p.disabled}`,
67
+ `input[type="radio"]${p.inert}${p.negTabIndex}${p.disabled}`,
68
+ `select${p.inert}${p.negTabIndex}${p.disabled}`,
69
+ `textarea${p.inert}${p.negTabIndex}${p.disabled}`,
70
+ `button${p.inert}${p.negTabIndex}${p.disabled}`,
71
+ `details${p.inert} > summary:first-of-type${p.negTabIndex}`,
72
+ // Discard until Firefox supports `:has()`
73
+ // See: https://github.com/KittyGiraudel/focusable-selectors/issues/12
74
+ // `details:not(:has(> summary))${not.inert}${not.negTabIndex}`,
75
+ `iframe${p.inert}${p.negTabIndex}`,
76
+ `audio[controls]${p.inert}${p.negTabIndex}`,
77
+ `video[controls]${p.inert}${p.negTabIndex}`,
78
+ `[contenteditable]${p.inert}${p.negTabIndex}`,
79
+ `[tabindex]${p.inert}${p.negTabIndex}`
80
+ ];
81
+ var wt, at, lt;
82
+ let Dn = class {
83
+ constructor(t = null, n = "[data-focus]") {
84
+ Rt(this, wt, void 0), Rt(this, at, void 0), Rt(this, lt, void 0), this.el = t, this.selectorFocus = n, nt(this, at, Mn.bind(this)), nt(this, lt, jn.bind(this));
85
+ }
86
+ get focusable() {
87
+ return j(this, wt);
88
+ }
89
+ set focusable(t) {
90
+ nt(this, wt, t), j(this, wt).length ? (document.removeEventListener("keydown", j(this, lt)), document.addEventListener("keydown", j(this, at))) : (document.removeEventListener("keydown", j(this, at)), document.addEventListener("keydown", j(this, lt)));
91
+ }
92
+ get focusableFirst() {
93
+ return this.focusable[0];
94
+ }
95
+ get focusableLast() {
96
+ return this.focusable[this.focusable.length - 1];
97
+ }
98
+ mount(t, n) {
99
+ t && (this.el = t), n && (this.selectorFocus = n), this.focusable = this.getFocusable(), this.focus();
100
+ }
101
+ unmount() {
102
+ this.el = null, this.focusable = [], document.removeEventListener("keydown", j(this, at)), document.removeEventListener("keydown", j(this, lt));
103
+ }
104
+ focus(t = this.el, n = this.selectorFocus) {
105
+ (t.querySelector(n) || t).focus();
106
+ }
107
+ getFocusable(t = this.el) {
108
+ const n = [], i = document.activeElement, r = t.scrollTop;
109
+ return t.querySelectorAll(Pn.join(",")).forEach((s) => {
110
+ s.focus(), document.activeElement === s && n.push(s);
111
+ }), t.scrollTop = r, i.focus(), n;
112
+ }
113
+ };
114
+ wt = /* @__PURE__ */ new WeakMap(), at = /* @__PURE__ */ new WeakMap(), lt = /* @__PURE__ */ new WeakMap();
115
+ function Mn(e) {
116
+ (e.key === "Tab" || e.keyCode === 9) && (e.shiftKey ? (document.activeElement === this.focusableFirst || document.activeElement === this.el) && (e.preventDefault(), this.focusableLast.focus()) : (document.activeElement === this.focusableLast || document.activeElement === this.el) && (e.preventDefault(), this.focusableFirst.focus()));
117
+ }
118
+ function jn(e) {
119
+ (e.key === "Tab" || e.keyCode === 9) && e.preventDefault();
120
+ }
121
+ function Ke() {
122
+ return getComputedStyle(document.body).getPropertyValue("--vrembem-prefix").trim();
123
+ }
124
+ function Ge(e, t = document.body, n = !0) {
125
+ if (n) {
126
+ const r = Ke();
127
+ r && !e.includes(`--${r}`) && (e = e.replace("--", `--${r}`));
128
+ }
129
+ const i = getComputedStyle(t).getPropertyValue(e).trim();
130
+ if (i)
131
+ return i;
132
+ throw new Error(`CSS variable "${e}" was not found!`);
133
+ }
134
+ function qn(e, t) {
135
+ const n = (e.getAttribute(`data-${t}`) || "").replace(/'/g, '"');
136
+ return n ? JSON.parse(n) : {};
137
+ }
138
+ function Fn(e, t = !0) {
139
+ const n = localStorage.getItem(e), i = n ? JSON.parse(n) : {};
140
+ return {
141
+ get(r) {
142
+ return r ? i[r] : i;
143
+ },
144
+ set(r, s) {
145
+ return s ? i[r] = s : delete i[r], t && localStorage.setItem(e, JSON.stringify(i)), i;
146
+ }
147
+ };
148
+ }
149
+ function Nn(e, t, n) {
150
+ const i = t.nodeType === Node.COMMENT_NODE, r = t.nodeType === Node.ELEMENT_NODE;
151
+ if (t = i || r ? t : document.querySelector(t), i && (n = "after"), !t)
152
+ throw new Error(`Not a valid teleport reference: '${t}'`);
153
+ if (typeof t[n] != "function")
154
+ throw new Error(`Not a valid teleport method: '${n}'`);
155
+ let s = null;
156
+ return i || (s = document.createComment("teleported #" + e.id), e.before(s)), t[n](e), i && t.remove(), s;
157
+ }
158
+ function Wn(e, t, n, i = "--transition-duration") {
159
+ return new Promise((r) => {
160
+ if (typeof i == "string") {
161
+ const s = Ge(i, e), a = !!s.includes("ms");
162
+ i = parseFloat(s) * (a ? 1 : 1e3);
163
+ }
164
+ e.classList.remove(t.finish), e.classList.add(n.start), setTimeout(() => {
165
+ e.classList.add(n.finish), e.classList.remove(n.start), r(e);
166
+ }, i);
167
+ });
168
+ }
169
+ function _n(e, t) {
170
+ t && document.querySelectorAll(t).forEach((n) => {
171
+ e ? n.style.overflow = "hidden" : n.style.removeProperty("overflow");
172
+ });
173
+ }
174
+ function Bn(e, t) {
175
+ t && document.querySelectorAll(t).forEach((n) => {
176
+ e ? (n.inert = !0, n.setAttribute("aria-hidden", !0)) : (n.inert = null, n.removeAttribute("aria-hidden"));
177
+ });
178
+ }
179
+ function Rn(e, t) {
180
+ Bn(!!e, t.selectorInert), _n(!!e, t.selectorOverflow);
181
+ }
182
+ const zr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
183
+ __proto__: null,
184
+ Breakpoint: In,
185
+ Collection: An,
186
+ FocusTrap: Dn,
187
+ cssVar: Ge,
188
+ getConfig: qn,
189
+ getPrefix: Ke,
190
+ localStore: Fn,
191
+ teleport: Nn,
192
+ transition: Wn,
193
+ updateGlobalState: Rn
194
+ }, Symbol.toStringTag, { value: "Module" }));
195
+ var Qe = (e, t, n) => {
196
+ if (!t.has(e))
197
+ throw TypeError("Cannot " + n);
198
+ }, Wt = (e, t, n) => (Qe(e, t, "read from private field"), n ? n.call(e) : t.get(e)), Ae = (e, t, n) => {
199
+ if (t.has(e))
200
+ throw TypeError("Cannot add the same private member more than once");
201
+ t instanceof WeakSet ? t.add(e) : t.set(e, n);
202
+ }, Pe = (e, t, n, i) => (Qe(e, t, "write to private field"), i ? i.call(e, n) : t.set(e, n), n), Ze = (e, t, n) => {
203
+ if (!t.has(e))
204
+ throw TypeError("Cannot " + n);
205
+ }, q = (e, t, n) => (Ze(e, t, "read from private field"), n ? n.call(e) : t.get(e)), Vt = (e, t, n) => {
206
+ if (t.has(e))
207
+ throw TypeError("Cannot add the same private member more than once");
208
+ t instanceof WeakSet ? t.add(e) : t.set(e, n);
209
+ }, it = (e, t, n, i) => (Ze(e, t, "write to private field"), i ? i.call(e, n) : t.set(e, n), n), H;
210
+ let Vn = class {
211
+ constructor(t, n) {
212
+ Vt(this, H, void 0), this.value = t, it(this, H, n), this.mql = null;
213
+ }
214
+ get handler() {
215
+ return q(this, H);
216
+ }
217
+ // Unmount existing handler before setting a new one.
218
+ set handler(t) {
219
+ this.mql && this.mql.removeEventListener("change", q(this, H)), it(this, H, t);
220
+ }
221
+ mount(t, n) {
222
+ return t && (this.value = t), n && it(this, H, n), this.value ? (this.mql = window.matchMedia(`(min-width: ${this.value})`), this.mql.addEventListener("change", q(this, H)), q(this, H).call(this, this.mql), this) : this;
223
+ }
224
+ unmount() {
225
+ return this.mql ? (this.mql.removeEventListener("change", q(this, H)), this.value = null, it(this, H, null), this.mql = null, this) : this;
226
+ }
227
+ };
228
+ H = /* @__PURE__ */ new WeakMap();
229
+ let Hn = class {
230
+ constructor() {
231
+ this.collection = [];
232
+ }
233
+ async register(t) {
234
+ return await this.deregister(t), this.collection.push(t), this.collection;
235
+ }
236
+ async deregister(t) {
237
+ const n = this.collection.findIndex((i) => i === t);
238
+ if (n >= 0) {
239
+ const i = this.collection[n];
240
+ Object.getOwnPropertyNames(i).forEach((r) => {
241
+ delete i[r];
242
+ }), this.collection.splice(n, 1);
243
+ }
244
+ return this.collection;
245
+ }
246
+ async registerCollection(t) {
247
+ return await Promise.all(Array.from(t, (n) => {
248
+ this.register(n);
249
+ })), this.collection;
250
+ }
251
+ async deregisterCollection() {
252
+ for (; this.collection.length > 0; )
253
+ await this.deregister(this.collection[0]);
254
+ return this.collection;
255
+ }
256
+ get(t, n = "id") {
257
+ return this.collection.find((i) => i[n] === t);
258
+ }
259
+ };
260
+ const g = {
261
+ inert: ":not([inert]):not([inert] *)",
262
+ negTabIndex: ':not([tabindex^="-"])',
263
+ disabled: ":not(:disabled)"
264
+ }, Jn = [
265
+ `a[href]${g.inert}${g.negTabIndex}`,
266
+ `area[href]${g.inert}${g.negTabIndex}`,
267
+ `input:not([type="hidden"]):not([type="radio"])${g.inert}${g.negTabIndex}${g.disabled}`,
268
+ `input[type="radio"]${g.inert}${g.negTabIndex}${g.disabled}`,
269
+ `select${g.inert}${g.negTabIndex}${g.disabled}`,
270
+ `textarea${g.inert}${g.negTabIndex}${g.disabled}`,
271
+ `button${g.inert}${g.negTabIndex}${g.disabled}`,
272
+ `details${g.inert} > summary:first-of-type${g.negTabIndex}`,
273
+ // Discard until Firefox supports `:has()`
274
+ // See: https://github.com/KittyGiraudel/focusable-selectors/issues/12
275
+ // `details:not(:has(> summary))${not.inert}${not.negTabIndex}`,
276
+ `iframe${g.inert}${g.negTabIndex}`,
277
+ `audio[controls]${g.inert}${g.negTabIndex}`,
278
+ `video[controls]${g.inert}${g.negTabIndex}`,
279
+ `[contenteditable]${g.inert}${g.negTabIndex}`,
280
+ `[tabindex]${g.inert}${g.negTabIndex}`
281
+ ];
282
+ var $t, ct, dt;
283
+ let zn = class {
284
+ constructor(t = null, n = "[data-focus]") {
285
+ Vt(this, $t, void 0), Vt(this, ct, void 0), Vt(this, dt, void 0), this.el = t, this.selectorFocus = n, it(this, ct, Kn.bind(this)), it(this, dt, Gn.bind(this));
286
+ }
287
+ get focusable() {
288
+ return q(this, $t);
289
+ }
290
+ set focusable(t) {
291
+ it(this, $t, t), q(this, $t).length ? (document.removeEventListener("keydown", q(this, dt)), document.addEventListener("keydown", q(this, ct))) : (document.removeEventListener("keydown", q(this, ct)), document.addEventListener("keydown", q(this, dt)));
292
+ }
293
+ get focusableFirst() {
294
+ return this.focusable[0];
295
+ }
296
+ get focusableLast() {
297
+ return this.focusable[this.focusable.length - 1];
298
+ }
299
+ mount(t, n) {
300
+ t && (this.el = t), n && (this.selectorFocus = n), this.focusable = this.getFocusable(), this.focus();
301
+ }
302
+ unmount() {
303
+ this.el = null, this.focusable = [], document.removeEventListener("keydown", q(this, ct)), document.removeEventListener("keydown", q(this, dt));
304
+ }
305
+ focus(t = this.el, n = this.selectorFocus) {
306
+ (t.querySelector(n) || t).focus();
307
+ }
308
+ getFocusable(t = this.el) {
309
+ const n = [], i = document.activeElement, r = t.scrollTop;
310
+ return t.querySelectorAll(Jn.join(",")).forEach((s) => {
311
+ s.focus(), document.activeElement === s && n.push(s);
312
+ }), t.scrollTop = r, i.focus(), n;
313
+ }
314
+ };
315
+ $t = /* @__PURE__ */ new WeakMap(), ct = /* @__PURE__ */ new WeakMap(), dt = /* @__PURE__ */ new WeakMap();
316
+ function Kn(e) {
317
+ (e.key === "Tab" || e.keyCode === 9) && (e.shiftKey ? (document.activeElement === this.focusableFirst || document.activeElement === this.el) && (e.preventDefault(), this.focusableLast.focus()) : (document.activeElement === this.focusableLast || document.activeElement === this.el) && (e.preventDefault(), this.focusableFirst.focus()));
318
+ }
319
+ function Gn(e) {
320
+ (e.key === "Tab" || e.keyCode === 9) && e.preventDefault();
321
+ }
322
+ function Xe() {
323
+ return getComputedStyle(document.body).getPropertyValue("--vrembem-prefix").trim();
324
+ }
325
+ function Qn(e, t = document.body, n = !0) {
326
+ if (n) {
327
+ const r = Xe();
328
+ r && !e.includes(`--${r}`) && (e = e.replace("--", `--${r}`));
329
+ }
330
+ const i = getComputedStyle(t).getPropertyValue(e).trim();
331
+ if (i)
332
+ return i;
333
+ throw new Error(`CSS variable "${e}" was not found!`);
334
+ }
335
+ function Zn(e, t) {
336
+ const n = (e.getAttribute(`data-${t}`) || "").replace(/'/g, '"');
337
+ return n ? JSON.parse(n) : {};
338
+ }
339
+ function Xn(e, t = !0) {
340
+ const n = localStorage.getItem(e), i = n ? JSON.parse(n) : {};
341
+ return {
342
+ get(r) {
343
+ return r ? i[r] : i;
344
+ },
345
+ set(r, s) {
346
+ return s ? i[r] = s : delete i[r], t && localStorage.setItem(e, JSON.stringify(i)), i;
347
+ }
348
+ };
349
+ }
350
+ function Ye(e, t, n, i = "--transition-duration") {
351
+ return new Promise((r) => {
352
+ if (typeof i == "string") {
353
+ const s = Qn(i, e), a = !!s.includes("ms");
354
+ i = parseFloat(s) * (a ? 1 : 1e3);
355
+ }
356
+ e.classList.remove(t.finish), e.classList.add(n.start), setTimeout(() => {
357
+ e.classList.add(n.finish), e.classList.remove(n.start), r(e);
358
+ }, i);
359
+ });
360
+ }
361
+ function Yn(e, t) {
362
+ t && document.querySelectorAll(t).forEach((n) => {
363
+ e ? n.style.overflow = "hidden" : n.style.removeProperty("overflow");
364
+ });
365
+ }
366
+ function Un(e, t) {
367
+ t && document.querySelectorAll(t).forEach((n) => {
368
+ e ? (n.inert = !0, n.setAttribute("aria-hidden", !0)) : (n.inert = null, n.removeAttribute("aria-hidden"));
369
+ });
370
+ }
371
+ function ae(e, t) {
372
+ Un(!!e, t.selectorInert), Yn(!!e, t.selectorOverflow);
373
+ }
374
+ const ti = {
375
+ autoInit: !1,
376
+ // Data attributes
377
+ dataOpen: "drawer-open",
378
+ dataClose: "drawer-close",
379
+ dataToggle: "drawer-toggle",
380
+ dataBreakpoint: "drawer-breakpoint",
381
+ dataConfig: "drawer-config",
382
+ // Selectors
383
+ selectorDrawer: ".drawer",
384
+ selectorDialog: ".drawer__dialog",
385
+ selectorScreen: ".drawer",
386
+ selectorFocus: "[data-focus]",
387
+ selectorInert: null,
388
+ selectorOverflow: "body",
389
+ // State classes
390
+ stateOpened: "is-opened",
391
+ stateOpening: "is-opening",
392
+ stateClosing: "is-closing",
393
+ stateClosed: "is-closed",
394
+ // Classes
395
+ classModal: "drawer_modal",
396
+ // Feature toggles
397
+ breakpoints: null,
398
+ customEventPrefix: "drawer:",
399
+ eventListeners: !0,
400
+ store: !0,
401
+ storeKey: "VB:DrawerState",
402
+ setTabindex: !0,
403
+ transition: !0,
404
+ transitionDuration: "--vb-drawer-transition-duration"
405
+ };
406
+ async function ei(e) {
407
+ const t = e.target.closest(`
408
+ [data-${this.settings.dataOpen}],
409
+ [data-${this.settings.dataToggle}],
410
+ [data-${this.settings.dataClose}]
411
+ `);
412
+ if (t) {
413
+ e.preventDefault(), t.matches(`[data-${this.settings.dataToggle}]`) && t.getAttribute(`data-${this.settings.dataToggle}`).trim().split(" ").forEach((n) => {
414
+ const i = this.get(n);
415
+ return i.trigger = t, i.toggle();
416
+ }), t.matches(`[data-${this.settings.dataOpen}]`) && t.getAttribute(`data-${this.settings.dataOpen}`).trim().split(" ").forEach((n) => {
417
+ const i = this.get(n);
418
+ return i.trigger = t, i.open();
419
+ }), t.matches(`[data-${this.settings.dataClose}]`) && t.getAttribute(`data-${this.settings.dataClose}`).trim().split(" ").forEach((n) => {
420
+ if (n) {
421
+ const i = this.get(n);
422
+ return i.trigger = t, i.close();
423
+ } else {
424
+ const i = e.target.closest(this.settings.selectorDrawer);
425
+ if (i)
426
+ return this.close(i);
427
+ }
428
+ });
429
+ return;
430
+ }
431
+ if (this.activeModal && e.target.matches(this.settings.selectorScreen))
432
+ return this.close(this.activeModal.id);
433
+ }
434
+ function ni(e) {
435
+ if (e.key === "Escape" && this.activeModal)
436
+ return this.close(this.activeModal);
437
+ }
438
+ async function ee(e, t = !0) {
439
+ const n = this.collection.findIndex((i) => i.id === e.id);
440
+ if (n >= 0) {
441
+ const i = this.collection[n];
442
+ t && i.state === "opened" && await i.close(!1), this.store.set(i.id), i.unmountBreakpoint(), Object.getOwnPropertyNames(i).forEach((r) => {
443
+ delete i[r];
444
+ }), this.collection.splice(n, 1);
445
+ }
446
+ return this.collection;
447
+ }
448
+ function ii(e) {
449
+ e.store === "opened" ? e.open(!1, !1) : e.store === "closed" ? e.close(!1, !1) : e.store === "indeterminate" ? e.state = "indeterminate" : e.el.classList.contains(e.getSetting("stateOpened")) ? e.open(!1, !1) : e.el.classList.contains(e.getSetting("stateClosed")) ? e.close(!1, !1) : e.state = "indeterminate";
450
+ }
451
+ async function ri(e) {
452
+ e.store === "opened" ? await e.open(!1, !1) : e.store === "closed" ? await e.close(!1, !1) : e.store === "indeterminate" ? e.state != "indeterminate" && (e.state = "indeterminate") : (e.state != e.inlineState && (e.state = e.inlineState), e.inlineState === "opened" ? await e.open(!1, !1) : e.inlineState === "closed" && await e.close(!1, !1));
453
+ }
454
+ function si(e) {
455
+ const t = Xe(), n = e.getAttribute(`data-${this.settings.dataBreakpoint}`);
456
+ return this.settings.breakpoints && this.settings.breakpoints[n] ? this.settings.breakpoints[n] : getComputedStyle(document.body).getPropertyValue(`--${t}breakpoint-${n}`).trim() ? getComputedStyle(document.body).getPropertyValue(`--${t}breakpoint-${n}`).trim() : n;
457
+ }
458
+ function le(e) {
459
+ const t = typeof e == "string" ? this.get(e) : this.get(e.id);
460
+ if (t)
461
+ return t;
462
+ throw new Error(`Drawer not found in collection with id of "${e.id || e}".`);
463
+ }
464
+ function Ue(e) {
465
+ e.state === "opened" ? e.mode === "modal" ? this.focusTrap.mount(e.dialog, this.settings.selectorFocus) : this.focusTrap.focus(e.dialog, this.settings.selectorFocus) : (e.trigger && (e.trigger.focus(), e.trigger = null), this.focusTrap.unmount());
466
+ }
467
+ async function ce(e, t, n = !0) {
468
+ const i = le.call(this, e), r = { ...this.settings, ...i.settings };
469
+ return t !== void 0 && (r.transition = t), (i.state === "closed" || i.state === "indeterminate") && (i.state = "opening", r.transition ? await Ye(i.el, {
470
+ start: r.stateClosing,
471
+ finish: r.stateClosed
472
+ }, {
473
+ start: r.stateOpening,
474
+ finish: r.stateOpened
475
+ }, r.transitionDuration) : (i.el.classList.add(r.stateOpened), i.el.classList.remove(r.stateClosed)), i.state = "opened", i.mode === "modal" && ae(!0, r), n && Ue.call(this, i), i.el.dispatchEvent(new CustomEvent(r.customEventPrefix + "opened", {
476
+ detail: this,
477
+ bubbles: !0
478
+ }))), i;
479
+ }
480
+ async function zt(e, t, n = !0) {
481
+ const i = le.call(this, e), r = { ...this.settings, ...i.settings };
482
+ return t !== void 0 && (r.transition = t), (i.state === "opened" || i.state === "indeterminate") && (i.state = "closing", document.activeElement.blur(), r.transition ? await Ye(i.el, {
483
+ start: r.stateOpening,
484
+ finish: r.stateOpened
485
+ }, {
486
+ start: r.stateClosing,
487
+ finish: r.stateClosed
488
+ }, r.transitionDuration) : (i.el.classList.add(r.stateClosed), i.el.classList.remove(r.stateOpened)), i.state = "closed", i.mode === "modal" && ae(!1, r), n && Ue.call(this, i), i.el.dispatchEvent(new CustomEvent(r.customEventPrefix + "closed", {
489
+ detail: this,
490
+ bubbles: !0
491
+ }))), i;
492
+ }
493
+ async function tn(e, t, n) {
494
+ const i = le.call(this, e);
495
+ return i.state === "closed" ? ce.call(this, i, t, n) : zt.call(this, i, t, n);
496
+ }
497
+ function oi(e) {
498
+ switch (e.mode) {
499
+ case "inline":
500
+ return ai.call(this, e);
501
+ case "modal":
502
+ return li.call(this, e);
503
+ default:
504
+ throw new Error(`"${e.mode}" is not a valid drawer mode.`);
505
+ }
506
+ }
507
+ async function ai(e) {
508
+ return e.el.classList.remove(e.getSetting("classModal")), e.dialog.removeAttribute("aria-modal"), ae(!1, { ...this.settings, ...e.settings }), this.focusTrap.unmount(), await ri(e), e.el.dispatchEvent(new CustomEvent(e.getSetting("customEventPrefix") + "switchMode", {
509
+ detail: this,
510
+ bubbles: !0
511
+ })), e;
512
+ }
513
+ async function li(e) {
514
+ return e.el.classList.add(e.getSetting("classModal")), e.dialog.setAttribute("aria-modal", "true"), await zt.call(this, e, !1, !1), e.el.dispatchEvent(new CustomEvent(e.getSetting("customEventPrefix") + "switchMode", {
515
+ detail: this,
516
+ bubbles: !0
517
+ })), e;
518
+ }
519
+ async function ci(e, t = {}) {
520
+ await ee.call(this, e, !1);
521
+ const n = this, i = new Vn();
522
+ let r, s = "indeterminate";
523
+ const a = {
524
+ id: e.id,
525
+ el: e,
526
+ dialog: null,
527
+ trigger: null,
528
+ settings: { ...Zn(e, this.settings.dataConfig), ...t },
529
+ inlineState: "indeterminate",
530
+ get breakpoint() {
531
+ return si.call(n, e);
532
+ },
533
+ get store() {
534
+ return n.store.get(this.id);
535
+ },
536
+ get mode() {
537
+ return r;
538
+ },
539
+ set mode(o) {
540
+ r = o, oi.call(n, this);
541
+ },
542
+ get state() {
543
+ return s;
544
+ },
545
+ set state(o) {
546
+ s = o, this.mode === "inline" && o != "opening" && o != "closing" && (this.inlineState = o, this.getSetting("store") && n.store.set(this.id, o)), o === "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")));
547
+ },
548
+ open(o, l) {
549
+ return ce.call(n, this, o, l);
550
+ },
551
+ close(o, l) {
552
+ return zt.call(n, this, o, l);
553
+ },
554
+ toggle(o, l) {
555
+ return tn.call(n, this, o, l);
556
+ },
557
+ deregister() {
558
+ return ee.call(n, this);
559
+ },
560
+ mountBreakpoint() {
561
+ const o = this.breakpoint, l = this.handleBreakpoint.bind(this);
562
+ return i.mount(o, l), this;
563
+ },
564
+ unmountBreakpoint() {
565
+ return i.unmount(), this;
566
+ },
567
+ handleBreakpoint(o) {
568
+ const l = o.matches ? "inline" : "modal";
569
+ return this.mode != l && (this.mode = l), this;
570
+ },
571
+ getSetting(o) {
572
+ return o in this.settings ? this.settings[o] : n.settings[o];
573
+ }
574
+ };
575
+ this.collection.push(a);
576
+ const c = e.querySelector(a.getSetting("selectorDialog"));
577
+ return a.dialog = c || e, a.getSetting("setTabindex") && a.dialog.setAttribute("tabindex", "-1"), await ii(a), a.inlineState = a.state, a.mode = e.classList.contains(a.getSetting("classModal")) ? "modal" : "inline", a.breakpoint && a.mountBreakpoint(), a;
578
+ }
579
+ var Et, xt;
580
+ let Zr = class extends Hn {
581
+ constructor(t) {
582
+ super(), Ae(this, Et, void 0), Ae(this, xt, void 0), this.defaults = ti, this.settings = { ...this.defaults, ...t }, this.focusTrap = new zn(), this.store = Xn(this.settings.storeKey, this.settings.store), Pe(this, Et, ei.bind(this)), Pe(this, xt, ni.bind(this)), this.settings.autoInit && this.init();
583
+ }
584
+ get activeModal() {
585
+ return this.collection.find((t) => t.state === "opened" && t.mode === "modal");
586
+ }
587
+ async init(t = null) {
588
+ t && (this.settings = { ...this.settings, ...t });
589
+ const n = document.querySelectorAll(this.settings.selectorDrawer);
590
+ return await this.registerCollection(n), this.settings.eventListeners && this.initEventListeners(), this;
591
+ }
592
+ async destroy() {
593
+ return await this.deregisterCollection(), this.settings.eventListeners && this.destroyEventListeners(), this;
594
+ }
595
+ initEventListeners() {
596
+ document.addEventListener("click", Wt(this, Et), !1), document.addEventListener("keydown", Wt(this, xt), !1);
597
+ }
598
+ destroyEventListeners() {
599
+ document.removeEventListener("click", Wt(this, Et), !1), document.removeEventListener("keydown", Wt(this, xt), !1);
600
+ }
601
+ register(t, n = {}) {
602
+ let i = typeof t == "string" ? document.getElementById(t) : t;
603
+ return i ? ci.call(this, i, n) : Promise.reject(new Error(`Failed to register; drawer not found with ID of: "${t.id || t}".`));
604
+ }
605
+ deregister(t) {
606
+ let n = this.get(t.id || t);
607
+ return n ? ee.call(this, n) : Promise.reject(new Error(`Failed to deregister; drawer does not exist in collection with ID of: "${t.id || t}".`));
608
+ }
609
+ open(t, n, i) {
610
+ return ce.call(this, t, n, i);
611
+ }
612
+ close(t, n, i) {
613
+ return zt.call(this, t, n, i);
614
+ }
615
+ toggle(t, n, i) {
616
+ return tn.call(this, t, n, i);
617
+ }
618
+ };
619
+ Et = /* @__PURE__ */ new WeakMap(), xt = /* @__PURE__ */ new WeakMap();
620
+ var en = (e, t, n) => {
621
+ if (!t.has(e))
622
+ throw TypeError("Cannot " + n);
623
+ }, _t = (e, t, n) => (en(e, t, "read from private field"), n ? n.call(e) : t.get(e)), De = (e, t, n) => {
624
+ if (t.has(e))
625
+ throw TypeError("Cannot add the same private member more than once");
626
+ t instanceof WeakSet ? t.add(e) : t.set(e, n);
627
+ }, Me = (e, t, n, i) => (en(e, t, "write to private field"), i ? i.call(e, n) : t.set(e, n), n), nn = (e, t, n) => {
628
+ if (!t.has(e))
629
+ throw TypeError("Cannot " + n);
630
+ }, Q = (e, t, n) => (nn(e, t, "read from private field"), n ? n.call(e) : t.get(e)), Yt = (e, t, n) => {
631
+ if (t.has(e))
632
+ throw TypeError("Cannot add the same private member more than once");
633
+ t instanceof WeakSet ? t.add(e) : t.set(e, n);
634
+ }, Ut = (e, t, n, i) => (nn(e, t, "write to private field"), i ? i.call(e, n) : t.set(e, n), n);
635
+ class di {
636
+ constructor() {
637
+ this.collection = [];
638
+ }
639
+ async register(t) {
640
+ return await this.deregister(t), this.collection.push(t), this.collection;
641
+ }
642
+ async deregister(t) {
643
+ const n = this.collection.findIndex((i) => i === t);
644
+ if (n >= 0) {
645
+ const i = this.collection[n];
646
+ Object.getOwnPropertyNames(i).forEach((r) => {
647
+ delete i[r];
648
+ }), this.collection.splice(n, 1);
649
+ }
650
+ return this.collection;
651
+ }
652
+ async registerCollection(t) {
653
+ return await Promise.all(Array.from(t, (n) => {
654
+ this.register(n);
655
+ })), this.collection;
656
+ }
657
+ async deregisterCollection() {
658
+ for (; this.collection.length > 0; )
659
+ await this.deregister(this.collection[0]);
660
+ return this.collection;
661
+ }
662
+ get(t, n = "id") {
663
+ return this.collection.find((i) => i[n] === t);
664
+ }
665
+ }
666
+ const m = {
667
+ inert: ":not([inert]):not([inert] *)",
668
+ negTabIndex: ':not([tabindex^="-"])',
669
+ disabled: ":not(:disabled)"
670
+ }, ui = [
671
+ `a[href]${m.inert}${m.negTabIndex}`,
672
+ `area[href]${m.inert}${m.negTabIndex}`,
673
+ `input:not([type="hidden"]):not([type="radio"])${m.inert}${m.negTabIndex}${m.disabled}`,
674
+ `input[type="radio"]${m.inert}${m.negTabIndex}${m.disabled}`,
675
+ `select${m.inert}${m.negTabIndex}${m.disabled}`,
676
+ `textarea${m.inert}${m.negTabIndex}${m.disabled}`,
677
+ `button${m.inert}${m.negTabIndex}${m.disabled}`,
678
+ `details${m.inert} > summary:first-of-type${m.negTabIndex}`,
679
+ // Discard until Firefox supports `:has()`
680
+ // See: https://github.com/KittyGiraudel/focusable-selectors/issues/12
681
+ // `details:not(:has(> summary))${not.inert}${not.negTabIndex}`,
682
+ `iframe${m.inert}${m.negTabIndex}`,
683
+ `audio[controls]${m.inert}${m.negTabIndex}`,
684
+ `video[controls]${m.inert}${m.negTabIndex}`,
685
+ `[contenteditable]${m.inert}${m.negTabIndex}`,
686
+ `[tabindex]${m.inert}${m.negTabIndex}`
687
+ ];
688
+ var Ot, ut, ht;
689
+ class hi {
690
+ constructor(t = null, n = "[data-focus]") {
691
+ Yt(this, Ot, void 0), Yt(this, ut, void 0), Yt(this, ht, void 0), this.el = t, this.selectorFocus = n, Ut(this, ut, fi.bind(this)), Ut(this, ht, pi.bind(this));
692
+ }
693
+ get focusable() {
694
+ return Q(this, Ot);
695
+ }
696
+ set focusable(t) {
697
+ Ut(this, Ot, t), Q(this, Ot).length ? (document.removeEventListener("keydown", Q(this, ht)), document.addEventListener("keydown", Q(this, ut))) : (document.removeEventListener("keydown", Q(this, ut)), document.addEventListener("keydown", Q(this, ht)));
698
+ }
699
+ get focusableFirst() {
700
+ return this.focusable[0];
701
+ }
702
+ get focusableLast() {
703
+ return this.focusable[this.focusable.length - 1];
704
+ }
705
+ mount(t, n) {
706
+ t && (this.el = t), n && (this.selectorFocus = n), this.focusable = this.getFocusable(), this.focus();
707
+ }
708
+ unmount() {
709
+ this.el = null, this.focusable = [], document.removeEventListener("keydown", Q(this, ut)), document.removeEventListener("keydown", Q(this, ht));
710
+ }
711
+ focus(t = this.el, n = this.selectorFocus) {
712
+ (t.querySelector(n) || t).focus();
713
+ }
714
+ getFocusable(t = this.el) {
715
+ const n = [], i = document.activeElement, r = t.scrollTop;
716
+ return t.querySelectorAll(ui.join(",")).forEach((s) => {
717
+ s.focus(), document.activeElement === s && n.push(s);
718
+ }), t.scrollTop = r, i.focus(), n;
719
+ }
720
+ }
721
+ Ot = /* @__PURE__ */ new WeakMap(), ut = /* @__PURE__ */ new WeakMap(), ht = /* @__PURE__ */ new WeakMap();
722
+ function fi(e) {
723
+ (e.key === "Tab" || e.keyCode === 9) && (e.shiftKey ? (document.activeElement === this.focusableFirst || document.activeElement === this.el) && (e.preventDefault(), this.focusableLast.focus()) : (document.activeElement === this.focusableLast || document.activeElement === this.el) && (e.preventDefault(), this.focusableFirst.focus()));
724
+ }
725
+ function pi(e) {
726
+ (e.key === "Tab" || e.keyCode === 9) && e.preventDefault();
727
+ }
728
+ function gi() {
729
+ return getComputedStyle(document.body).getPropertyValue("--vrembem-prefix").trim();
730
+ }
731
+ function mi(e, t = document.body, n = !0) {
732
+ if (n) {
733
+ const r = gi();
734
+ r && !e.includes(`--${r}`) && (e = e.replace("--", `--${r}`));
735
+ }
736
+ const i = getComputedStyle(t).getPropertyValue(e).trim();
737
+ if (i)
738
+ return i;
739
+ throw new Error(`CSS variable "${e}" was not found!`);
740
+ }
741
+ function vi(e, t) {
742
+ const n = (e.getAttribute(`data-${t}`) || "").replace(/'/g, '"');
743
+ return n ? JSON.parse(n) : {};
744
+ }
745
+ function je(e, t, n) {
746
+ const i = t.nodeType === Node.COMMENT_NODE, r = t.nodeType === Node.ELEMENT_NODE;
747
+ if (t = i || r ? t : document.querySelector(t), i && (n = "after"), !t)
748
+ throw new Error(`Not a valid teleport reference: '${t}'`);
749
+ if (typeof t[n] != "function")
750
+ throw new Error(`Not a valid teleport method: '${n}'`);
751
+ let s = null;
752
+ return i || (s = document.createComment("teleported #" + e.id), e.before(s)), t[n](e), i && t.remove(), s;
753
+ }
754
+ function rn(e, t, n, i = "--transition-duration") {
755
+ return new Promise((r) => {
756
+ if (typeof i == "string") {
757
+ const s = mi(i, e), a = !!s.includes("ms");
758
+ i = parseFloat(s) * (a ? 1 : 1e3);
759
+ }
760
+ e.classList.remove(t.finish), e.classList.add(n.start), setTimeout(() => {
761
+ e.classList.add(n.finish), e.classList.remove(n.start), r(e);
762
+ }, i);
763
+ });
764
+ }
765
+ function bi(e, t) {
766
+ t && document.querySelectorAll(t).forEach((n) => {
767
+ e ? n.style.overflow = "hidden" : n.style.removeProperty("overflow");
768
+ });
769
+ }
770
+ function yi(e, t) {
771
+ t && document.querySelectorAll(t).forEach((n) => {
772
+ e ? (n.inert = !0, n.setAttribute("aria-hidden", !0)) : (n.inert = null, n.removeAttribute("aria-hidden"));
773
+ });
774
+ }
775
+ function wi(e, t) {
776
+ yi(!!e, t.selectorInert), bi(!!e, t.selectorOverflow);
777
+ }
778
+ const $i = {
779
+ autoInit: !1,
780
+ // Data attributes
781
+ dataOpen: "modal-open",
782
+ dataClose: "modal-close",
783
+ dataReplace: "modal-replace",
784
+ dataConfig: "modal-config",
785
+ // Selectors
786
+ selectorModal: ".modal",
787
+ selectorDialog: ".modal__dialog",
788
+ selectorScreen: ".modal",
789
+ selectorRequired: '[role="alertdialog"]',
790
+ selectorFocus: "[data-focus]",
791
+ selectorInert: null,
792
+ selectorOverflow: "body",
793
+ // State classes
794
+ stateOpened: "is-opened",
795
+ stateOpening: "is-opening",
796
+ stateClosing: "is-closing",
797
+ stateClosed: "is-closed",
798
+ // Feature settings
799
+ customEventPrefix: "modal:",
800
+ eventListeners: !0,
801
+ teleport: null,
802
+ teleportMethod: "append",
803
+ setTabindex: !0,
804
+ transition: !0,
805
+ transitionDuration: "--vb-modal-transition-duration"
806
+ };
807
+ async function Ei(e) {
808
+ const t = e.target.closest(`
809
+ [data-${this.settings.dataOpen}],
810
+ [data-${this.settings.dataReplace}],
811
+ [data-${this.settings.dataClose}]
812
+ `);
813
+ if (t) {
814
+ if (e.preventDefault(), t.matches(`[data-${this.settings.dataOpen}]`)) {
815
+ const n = t.getAttribute(`data-${this.settings.dataOpen}`).trim(), i = this.get(n);
816
+ return e.target.closest(this.settings.selectorModal) || (this.trigger = t), i.open();
817
+ }
818
+ if (t.matches(`[data-${this.settings.dataReplace}]`)) {
819
+ const n = t.getAttribute(`data-${this.settings.dataReplace}`).trim(), i = this.get(n);
820
+ return e.target.closest(this.settings.selectorModal) || (this.trigger = t), i.replace();
821
+ }
822
+ if (t.matches(`[data-${this.settings.dataClose}]`)) {
823
+ const n = t.getAttribute(`data-${this.settings.dataClose}`).trim();
824
+ return n === "*" ? this.closeAll() : this.close(n);
825
+ }
826
+ }
827
+ if (this.active && e.target.matches(this.settings.selectorScreen) && !this.active.required)
828
+ return this.close(this.active.id);
829
+ }
830
+ function xi(e) {
831
+ if (e.key === "Escape" && this.active && !this.active.dialog.matches(this.settings.selectorRequired))
832
+ return this.close();
833
+ }
834
+ async function ne(e, t = !0) {
835
+ const n = this.collection.findIndex((i) => i.id === e.id);
836
+ if (n >= 0) {
837
+ const i = this.collection[n];
838
+ t && i.state === "opened" ? await i.close(!1) : this.stack.remove(i), i.getSetting("teleport") && i.teleportReturn(), Object.getOwnPropertyNames(i).forEach((r) => {
839
+ delete i[r];
840
+ }), this.collection.splice(n, 1);
841
+ }
842
+ return this.collection;
843
+ }
844
+ function de(e) {
845
+ const t = typeof e == "string" ? this.get(e) : this.get(e.id);
846
+ if (t)
847
+ return t;
848
+ throw new Error(`Modal not found in collection with id of "${e.id || e}".`);
849
+ }
850
+ function Kt() {
851
+ this.active ? this.focusTrap.mount(this.active.dialog, this.settings.selectorFocus) : (this.trigger && (this.trigger.focus(), this.trigger = null), this.focusTrap.unmount());
852
+ }
853
+ async function ue(e, t, n = !0) {
854
+ const i = de.call(this, e), r = { ...this.settings, ...i.settings };
855
+ return t !== void 0 && (r.transition = t), this.stack.moveToTop(i), i.state === "closed" && (i.state = "opening", this.stack.add(i), r.transition ? await rn(i.el, {
856
+ start: r.stateClosing,
857
+ finish: r.stateClosed
858
+ }, {
859
+ start: r.stateOpening,
860
+ finish: r.stateOpened
861
+ }, r.transitionDuration) : (i.el.classList.add(r.stateOpened), i.el.classList.remove(r.stateClosed)), i.state = "opened"), n && Kt.call(this), i.el.dispatchEvent(new CustomEvent(r.customEventPrefix + "opened", {
862
+ detail: this,
863
+ bubbles: !0
864
+ })), i;
865
+ }
866
+ async function he(e, t, n = !0) {
867
+ const i = e ? de.call(this, e) : this.active;
868
+ if (i && i.state === "opened") {
869
+ i.state = "closing";
870
+ const r = { ...this.settings, ...i.settings };
871
+ t !== void 0 && (r.transition = t), document.activeElement.blur(), r.transition ? await rn(i.el, {
872
+ start: r.stateOpening,
873
+ finish: r.stateOpened
874
+ }, {
875
+ start: r.stateClosing,
876
+ finish: r.stateClosed
877
+ }, r.transitionDuration) : (i.el.classList.add(r.stateClosed), i.el.classList.remove(r.stateOpened)), this.stack.remove(i), i.state = "closed", n && Kt.call(this), i.el.dispatchEvent(new CustomEvent(r.customEventPrefix + "closed", {
878
+ detail: this,
879
+ bubbles: !0
880
+ }));
881
+ }
882
+ return i;
883
+ }
884
+ async function ie(e, t) {
885
+ const n = [];
886
+ return await Promise.all(this.stack.value.map(async (i) => {
887
+ e && e === i.id ? Promise.resolve() : n.push(await he.call(this, i, t, !1)), i.trigger = null;
888
+ })), n;
889
+ }
890
+ async function sn(e, t, n = !0) {
891
+ const i = de.call(this, e);
892
+ let r, s;
893
+ return i.state === "opened" ? (r = i, s = await ie.call(this, i.id, t)) : (s = ie.call(this, !1, t), r = ue.call(this, i, t, !1), await Promise.all([r, s])), n && Kt.call(this), { opened: r, closed: s };
894
+ }
895
+ async function Oi(e, t = {}) {
896
+ await ne.call(this, e, !1);
897
+ const n = this, i = {
898
+ id: e.id,
899
+ state: "closed",
900
+ el: e,
901
+ dialog: null,
902
+ get required() {
903
+ return this.dialog.matches(this.getSetting("selectorRequired"));
904
+ },
905
+ returnRef: null,
906
+ settings: { ...vi(e, this.settings.dataConfig), ...t },
907
+ open(s, a) {
908
+ return ue.call(n, this, s, a);
909
+ },
910
+ close(s, a) {
911
+ return he.call(n, this, s, a);
912
+ },
913
+ replace(s, a) {
914
+ return sn.call(n, this, s, a);
915
+ },
916
+ deregister() {
917
+ return ne.call(n, this);
918
+ },
919
+ teleport(s = this.getSetting("teleport"), a = this.getSetting("teleportMethod")) {
920
+ return this.returnRef ? (console.error("Element has already been teleported:", this.el), !1) : (this.returnRef = je(this.el, s, a), this.el);
921
+ },
922
+ teleportReturn() {
923
+ return this.returnRef ? (this.returnRef = je(this.el, this.returnRef), this.el) : (console.error("No return reference found:", this.el), !1);
924
+ },
925
+ getSetting(s) {
926
+ return s in this.settings ? this.settings[s] : n.settings[s];
927
+ }
928
+ }, r = e.querySelector(i.getSetting("selectorDialog"));
929
+ return i.dialog = r || e, i.dialog.setAttribute("aria-modal", "true"), i.dialog.hasAttribute("role") || i.dialog.setAttribute("role", "dialog"), i.getSetting("setTabindex") && i.dialog.setAttribute("tabindex", "-1"), i.getSetting("teleport") && i.teleport(), this.collection.push(i), i.el.classList.contains(this.settings.stateOpened) ? await i.open(!1) : (i.el.classList.remove(this.settings.stateOpening), i.el.classList.remove(this.settings.stateClosing), i.el.classList.add(this.settings.stateClosed)), i;
930
+ }
931
+ function Li(e) {
932
+ const t = [];
933
+ return {
934
+ get value() {
935
+ return [...t];
936
+ },
937
+ get top() {
938
+ return t[t.length - 1];
939
+ },
940
+ updateIndex() {
941
+ t.forEach((n, i) => {
942
+ n.el.style.zIndex = null;
943
+ const r = getComputedStyle(n.el)["z-index"];
944
+ n.el.style.zIndex = parseInt(r) + i + 1;
945
+ });
946
+ },
947
+ updateGlobalState() {
948
+ wi(this.top, e), this.updateIndex();
949
+ },
950
+ add(n) {
951
+ n.el.style.zIndex = null;
952
+ const i = getComputedStyle(n.el)["z-index"];
953
+ n.el.style.zIndex = parseInt(i) + t.length + 1, t.push(n), this.updateGlobalState();
954
+ },
955
+ remove(n) {
956
+ const i = t.findIndex((r) => r.id === n.id);
957
+ i >= 0 && (n.el.style.zIndex = null, t.splice(i, 1), this.updateGlobalState());
958
+ },
959
+ moveToTop(n) {
960
+ const i = t.findIndex((r) => r.id === n.id);
961
+ i >= 0 && (t.splice(i, 1), this.add(n));
962
+ }
963
+ };
964
+ }
965
+ var Lt, kt;
966
+ let Yr = class extends di {
967
+ constructor(t) {
968
+ super(), De(this, Lt, void 0), De(this, kt, void 0), this.defaults = $i, this.settings = { ...this.defaults, ...t }, this.trigger = null, this.focusTrap = new hi(), this.stack = Li(this.settings), Me(this, Lt, Ei.bind(this)), Me(this, kt, xi.bind(this)), this.settings.autoInit && this.init();
969
+ }
970
+ get active() {
971
+ return this.stack.top;
972
+ }
973
+ async init(t) {
974
+ t && (this.settings = { ...this.settings, ...t });
975
+ const n = document.querySelectorAll(this.settings.selectorModal);
976
+ return await this.registerCollection(n), this.settings.eventListeners && this.initEventListeners(), this;
977
+ }
978
+ async destroy() {
979
+ return this.trigger = null, await this.deregisterCollection(), this.settings.eventListeners && this.destroyEventListeners(), this;
980
+ }
981
+ initEventListeners() {
982
+ document.addEventListener("click", _t(this, Lt), !1), document.addEventListener("keydown", _t(this, kt), !1);
983
+ }
984
+ destroyEventListeners() {
985
+ document.removeEventListener("click", _t(this, Lt), !1), document.removeEventListener("keydown", _t(this, kt), !1);
986
+ }
987
+ register(t, n = {}) {
988
+ let i = typeof t == "string" ? document.getElementById(t) : t;
989
+ return i ? Oi.call(this, i, n) : Promise.reject(new Error(`Failed to register; modal not found with ID of: "${t.id || t}".`));
990
+ }
991
+ deregister(t) {
992
+ let n = this.get(t.id || t);
993
+ return n ? ne.call(this, n) : Promise.reject(new Error(`Failed to deregister; modal does not exist in collection with ID of: "${t.id || t}".`));
994
+ }
995
+ open(t, n, i) {
996
+ return ue.call(this, t, n, i);
997
+ }
998
+ close(t, n, i) {
999
+ return he.call(this, t, n, i);
1000
+ }
1001
+ replace(t, n, i) {
1002
+ return sn.call(this, t, n, i);
1003
+ }
1004
+ async closeAll(t = !1, n, i = !0) {
1005
+ const r = await ie.call(this, t, n);
1006
+ return i && Kt.call(this), r;
1007
+ }
1008
+ };
1009
+ Lt = /* @__PURE__ */ new WeakMap(), kt = /* @__PURE__ */ new WeakMap();
1010
+ var on = (e, t, n) => {
1011
+ if (!t.has(e))
1012
+ throw TypeError("Cannot " + n);
1013
+ }, qe = (e, t, n) => (on(e, t, "read from private field"), n ? n.call(e) : t.get(e)), ki = (e, t, n) => {
1014
+ if (t.has(e))
1015
+ throw TypeError("Cannot add the same private member more than once");
1016
+ t instanceof WeakSet ? t.add(e) : t.set(e, n);
1017
+ }, Ti = (e, t, n, i) => (on(e, t, "write to private field"), i ? i.call(e, n) : t.set(e, n), n);
1018
+ class Si {
1019
+ constructor() {
1020
+ this.collection = [];
1021
+ }
1022
+ async register(t) {
1023
+ return await this.deregister(t), this.collection.push(t), this.collection;
1024
+ }
1025
+ async deregister(t) {
1026
+ const n = this.collection.findIndex((i) => i === t);
1027
+ if (n >= 0) {
1028
+ const i = this.collection[n];
1029
+ Object.getOwnPropertyNames(i).forEach((r) => {
1030
+ delete i[r];
1031
+ }), this.collection.splice(n, 1);
1032
+ }
1033
+ return this.collection;
1034
+ }
1035
+ async registerCollection(t) {
1036
+ return await Promise.all(Array.from(t, (n) => {
1037
+ this.register(n);
1038
+ })), this.collection;
1039
+ }
1040
+ async deregisterCollection() {
1041
+ for (; this.collection.length > 0; )
1042
+ await this.deregister(this.collection[0]);
1043
+ return this.collection;
1044
+ }
1045
+ get(t, n = "id") {
1046
+ return this.collection.find((i) => i[n] === t);
1047
+ }
1048
+ }
1049
+ function Ci() {
1050
+ return getComputedStyle(document.body).getPropertyValue("--vrembem-prefix").trim();
1051
+ }
1052
+ const Ii = {
1053
+ autoInit: !1,
1054
+ // Selectors
1055
+ selectorPopover: ".popover",
1056
+ selectorArrow: ".popover__arrow",
1057
+ // State classes
1058
+ stateActive: "is-active",
1059
+ // Feature settings
1060
+ eventListeners: !0,
1061
+ eventType: "click",
1062
+ placement: "bottom"
1063
+ };
1064
+ function an(e, t) {
1065
+ const n = getComputedStyle(e), i = {
1066
+ placement: t.placement,
1067
+ event: t.eventType,
1068
+ offset: 0,
1069
+ "overflow-padding": 0,
1070
+ "flip-padding": 0,
1071
+ "arrow-element": t.selectorArrow,
1072
+ "arrow-padding": 0
1073
+ };
1074
+ for (const r in i) {
1075
+ const s = Ci(), a = n.getPropertyValue(`--${s}popover-${r}`).trim();
1076
+ a && (i[r] = a);
1077
+ }
1078
+ return i;
1079
+ }
1080
+ function te(e) {
1081
+ let t;
1082
+ const n = typeof e == "string" ? e.trim().split(" ") : [e];
1083
+ switch (n.forEach(function(i, r) {
1084
+ n[r] = parseInt(i, 10);
1085
+ }), n.length) {
1086
+ case 1:
1087
+ t = n[0];
1088
+ break;
1089
+ case 2:
1090
+ t = {
1091
+ top: n[0],
1092
+ right: n[1],
1093
+ bottom: n[0],
1094
+ left: n[1]
1095
+ };
1096
+ break;
1097
+ case 3:
1098
+ t = {
1099
+ top: n[0],
1100
+ right: n[1],
1101
+ bottom: n[2],
1102
+ left: n[1]
1103
+ };
1104
+ break;
1105
+ case 4:
1106
+ t = {
1107
+ top: n[0],
1108
+ right: n[1],
1109
+ bottom: n[2],
1110
+ left: n[3]
1111
+ };
1112
+ break;
1113
+ default:
1114
+ t = !1;
1115
+ break;
1116
+ }
1117
+ return t;
1118
+ }
1119
+ function Ai(e) {
1120
+ return [{
1121
+ name: "offset",
1122
+ options: {
1123
+ offset: [0, parseInt(e.offset, 10)]
1124
+ }
1125
+ }, {
1126
+ name: "preventOverflow",
1127
+ options: {
1128
+ padding: te(e["overflow-padding"])
1129
+ }
1130
+ }, {
1131
+ name: "flip",
1132
+ options: {
1133
+ padding: te(e["flip-padding"])
1134
+ }
1135
+ }, {
1136
+ name: "arrow",
1137
+ options: {
1138
+ element: e["arrow-element"],
1139
+ padding: te(e["arrow-padding"])
1140
+ }
1141
+ }];
1142
+ }
1143
+ function ln(e) {
1144
+ const t = typeof e == "string" ? this.get(e) : this.get(e.id);
1145
+ if (t)
1146
+ return t;
1147
+ throw new Error(`Popover not found in collection with id of "${e}".`);
1148
+ }
1149
+ function Pi(e) {
1150
+ return typeof e == "string" ? e : typeof e.hasAttribute == "function" ? e.closest(this.settings.selectorPopover) ? (e = e.closest(this.settings.selectorPopover), e.id) : e.hasAttribute("aria-controls") ? e.getAttribute("aria-controls") : e.hasAttribute("aria-describedby") ? e.getAttribute("aria-describedby") : !1 : !1;
1151
+ }
1152
+ function Di(e) {
1153
+ const t = Pi.call(this, e);
1154
+ if (t) {
1155
+ const n = document.querySelector(`#${t}`), i = document.querySelector(`[aria-controls="${t}"]`) || document.querySelector(`[aria-describedby="${t}"]`);
1156
+ return !i && !n ? { error: new Error(`No popover elements found using the ID: "${t}".`) } : i ? n ? { popover: n, trigger: i } : { error: new Error("No popover associated with the provided popover trigger.") } : { error: new Error("No popover trigger associated with the provided popover.") };
1157
+ } else
1158
+ return { error: new Error("Could not resolve the popover ID.") };
1159
+ }
1160
+ async function fe(e) {
1161
+ const t = e ? ln.call(this, e) : await cn.call(this);
1162
+ return t && t.state === "opened" && (t.el.classList.remove(this.settings.stateActive), t.trigger.hasAttribute("aria-controls") && t.trigger.setAttribute("aria-expanded", "false"), t.popper.setOptions({
1163
+ modifiers: [{ name: "eventListeners", enabled: !1 }]
1164
+ }), t.state = "closed", t.trigger === this.trigger && (this.trigger = null)), t;
1165
+ }
1166
+ async function cn() {
1167
+ const e = [];
1168
+ return await Promise.all(this.collection.map(async (t) => {
1169
+ t.state === "opened" && e.push(await fe.call(this, t));
1170
+ })), e;
1171
+ }
1172
+ function dn(e) {
1173
+ e.state == "opened" && setTimeout(() => {
1174
+ const t = e.el.closest(":hover") === e.el || e.trigger.closest(":hover") === e.trigger, n = document.activeElement.closest(
1175
+ `#${e.id}, [aria-controls="${e.id}"], [aria-describedby="${e.id}"]`
1176
+ );
1177
+ return !t && !n && e.close(), e;
1178
+ }, 1);
1179
+ }
1180
+ function Mi(e) {
1181
+ e.state === "opened" ? e.close() : (this.trigger = e.trigger, e.open(), un.call(this, e));
1182
+ }
1183
+ function ji(e) {
1184
+ switch (e.key) {
1185
+ case "Escape":
1186
+ this.trigger && this.trigger.focus(), cn.call(this);
1187
+ return;
1188
+ case "Tab":
1189
+ this.collection.forEach((t) => {
1190
+ dn.call(this, t);
1191
+ });
1192
+ return;
1193
+ default:
1194
+ return;
1195
+ }
1196
+ }
1197
+ function un(e) {
1198
+ const t = this;
1199
+ document.addEventListener("click", function n(i) {
1200
+ i.target.closest(
1201
+ `#${e.id}, [aria-controls="${e.id}"], [aria-describedby="${e.id}"]`
1202
+ ) ? e.el && !e.el.classList.contains(t.settings.stateActive) && this.removeEventListener("click", n) : (e.el && e.el.classList.contains(t.settings.stateActive) && e.close(), this.removeEventListener("click", n));
1203
+ });
1204
+ }
1205
+ var P = "top", W = "bottom", _ = "right", D = "left", pe = "auto", Pt = [P, W, _, D], ft = "start", It = "end", qi = "clippingParents", hn = "viewport", yt = "popper", Fi = "reference", Fe = /* @__PURE__ */ Pt.reduce(function(e, t) {
1206
+ return e.concat([t + "-" + ft, t + "-" + It]);
1207
+ }, []), fn = /* @__PURE__ */ [].concat(Pt, [pe]).reduce(function(e, t) {
1208
+ return e.concat([t, t + "-" + ft, t + "-" + It]);
1209
+ }, []), Ni = "beforeRead", Wi = "read", _i = "afterRead", Bi = "beforeMain", Ri = "main", Vi = "afterMain", Hi = "beforeWrite", Ji = "write", zi = "afterWrite", Ki = [Ni, Wi, _i, Bi, Ri, Vi, Hi, Ji, zi];
1210
+ function z(e) {
1211
+ return e ? (e.nodeName || "").toLowerCase() : null;
1212
+ }
1213
+ function F(e) {
1214
+ if (e == null)
1215
+ return window;
1216
+ if (e.toString() !== "[object Window]") {
1217
+ var t = e.ownerDocument;
1218
+ return t && t.defaultView || window;
1219
+ }
1220
+ return e;
1221
+ }
1222
+ function st(e) {
1223
+ var t = F(e).Element;
1224
+ return e instanceof t || e instanceof Element;
1225
+ }
1226
+ function N(e) {
1227
+ var t = F(e).HTMLElement;
1228
+ return e instanceof t || e instanceof HTMLElement;
1229
+ }
1230
+ function ge(e) {
1231
+ if (typeof ShadowRoot > "u")
1232
+ return !1;
1233
+ var t = F(e).ShadowRoot;
1234
+ return e instanceof t || e instanceof ShadowRoot;
1235
+ }
1236
+ function Gi(e) {
1237
+ var t = e.state;
1238
+ Object.keys(t.elements).forEach(function(n) {
1239
+ var i = t.styles[n] || {}, r = t.attributes[n] || {}, s = t.elements[n];
1240
+ !N(s) || !z(s) || (Object.assign(s.style, i), Object.keys(r).forEach(function(a) {
1241
+ var c = r[a];
1242
+ c === !1 ? s.removeAttribute(a) : s.setAttribute(a, c === !0 ? "" : c);
1243
+ }));
1244
+ });
1245
+ }
1246
+ function Qi(e) {
1247
+ var t = e.state, n = {
1248
+ popper: {
1249
+ position: t.options.strategy,
1250
+ left: "0",
1251
+ top: "0",
1252
+ margin: "0"
1253
+ },
1254
+ arrow: {
1255
+ position: "absolute"
1256
+ },
1257
+ reference: {}
1258
+ };
1259
+ return Object.assign(t.elements.popper.style, n.popper), t.styles = n, t.elements.arrow && Object.assign(t.elements.arrow.style, n.arrow), function() {
1260
+ Object.keys(t.elements).forEach(function(i) {
1261
+ var r = t.elements[i], s = t.attributes[i] || {}, a = Object.keys(t.styles.hasOwnProperty(i) ? t.styles[i] : n[i]), c = a.reduce(function(o, l) {
1262
+ return o[l] = "", o;
1263
+ }, {});
1264
+ !N(r) || !z(r) || (Object.assign(r.style, c), Object.keys(s).forEach(function(o) {
1265
+ r.removeAttribute(o);
1266
+ }));
1267
+ });
1268
+ };
1269
+ }
1270
+ const Zi = {
1271
+ name: "applyStyles",
1272
+ enabled: !0,
1273
+ phase: "write",
1274
+ fn: Gi,
1275
+ effect: Qi,
1276
+ requires: ["computeStyles"]
1277
+ };
1278
+ function J(e) {
1279
+ return e.split("-")[0];
1280
+ }
1281
+ var rt = Math.max, Jt = Math.min, pt = Math.round;
1282
+ function re() {
1283
+ var e = navigator.userAgentData;
1284
+ return e != null && e.brands && Array.isArray(e.brands) ? e.brands.map(function(t) {
1285
+ return t.brand + "/" + t.version;
1286
+ }).join(" ") : navigator.userAgent;
1287
+ }
1288
+ function pn() {
1289
+ return !/^((?!chrome|android).)*safari/i.test(re());
1290
+ }
1291
+ function gt(e, t, n) {
1292
+ t === void 0 && (t = !1), n === void 0 && (n = !1);
1293
+ var i = e.getBoundingClientRect(), r = 1, s = 1;
1294
+ t && N(e) && (r = e.offsetWidth > 0 && pt(i.width) / e.offsetWidth || 1, s = e.offsetHeight > 0 && pt(i.height) / e.offsetHeight || 1);
1295
+ var a = st(e) ? F(e) : window, c = a.visualViewport, o = !pn() && n, l = (i.left + (o && c ? c.offsetLeft : 0)) / r, d = (i.top + (o && c ? c.offsetTop : 0)) / s, b = i.width / r, v = i.height / s;
1296
+ return {
1297
+ width: b,
1298
+ height: v,
1299
+ top: d,
1300
+ right: l + b,
1301
+ bottom: d + v,
1302
+ left: l,
1303
+ x: l,
1304
+ y: d
1305
+ };
1306
+ }
1307
+ function me(e) {
1308
+ var t = gt(e), n = e.offsetWidth, i = e.offsetHeight;
1309
+ return Math.abs(t.width - n) <= 1 && (n = t.width), Math.abs(t.height - i) <= 1 && (i = t.height), {
1310
+ x: e.offsetLeft,
1311
+ y: e.offsetTop,
1312
+ width: n,
1313
+ height: i
1314
+ };
1315
+ }
1316
+ function gn(e, t) {
1317
+ var n = t.getRootNode && t.getRootNode();
1318
+ if (e.contains(t))
1319
+ return !0;
1320
+ if (n && ge(n)) {
1321
+ var i = t;
1322
+ do {
1323
+ if (i && e.isSameNode(i))
1324
+ return !0;
1325
+ i = i.parentNode || i.host;
1326
+ } while (i);
1327
+ }
1328
+ return !1;
1329
+ }
1330
+ function G(e) {
1331
+ return F(e).getComputedStyle(e);
1332
+ }
1333
+ function Xi(e) {
1334
+ return ["table", "td", "th"].indexOf(z(e)) >= 0;
1335
+ }
1336
+ function Z(e) {
1337
+ return ((st(e) ? e.ownerDocument : (
1338
+ // $FlowFixMe[prop-missing]
1339
+ e.document
1340
+ )) || window.document).documentElement;
1341
+ }
1342
+ function Gt(e) {
1343
+ return z(e) === "html" ? e : (
1344
+ // this is a quicker (but less type safe) way to save quite some bytes from the bundle
1345
+ // $FlowFixMe[incompatible-return]
1346
+ // $FlowFixMe[prop-missing]
1347
+ e.assignedSlot || // step into the shadow DOM of the parent of a slotted node
1348
+ e.parentNode || // DOM Element detected
1349
+ (ge(e) ? e.host : null) || // ShadowRoot detected
1350
+ // $FlowFixMe[incompatible-call]: HTMLElement is a Node
1351
+ Z(e)
1352
+ );
1353
+ }
1354
+ function Ne(e) {
1355
+ return !N(e) || // https://github.com/popperjs/popper-core/issues/837
1356
+ G(e).position === "fixed" ? null : e.offsetParent;
1357
+ }
1358
+ function Yi(e) {
1359
+ var t = /firefox/i.test(re()), n = /Trident/i.test(re());
1360
+ if (n && N(e)) {
1361
+ var i = G(e);
1362
+ if (i.position === "fixed")
1363
+ return null;
1364
+ }
1365
+ var r = Gt(e);
1366
+ for (ge(r) && (r = r.host); N(r) && ["html", "body"].indexOf(z(r)) < 0; ) {
1367
+ var s = G(r);
1368
+ if (s.transform !== "none" || s.perspective !== "none" || s.contain === "paint" || ["transform", "perspective"].indexOf(s.willChange) !== -1 || t && s.willChange === "filter" || t && s.filter && s.filter !== "none")
1369
+ return r;
1370
+ r = r.parentNode;
1371
+ }
1372
+ return null;
1373
+ }
1374
+ function Dt(e) {
1375
+ for (var t = F(e), n = Ne(e); n && Xi(n) && G(n).position === "static"; )
1376
+ n = Ne(n);
1377
+ return n && (z(n) === "html" || z(n) === "body" && G(n).position === "static") ? t : n || Yi(e) || t;
1378
+ }
1379
+ function ve(e) {
1380
+ return ["top", "bottom"].indexOf(e) >= 0 ? "x" : "y";
1381
+ }
1382
+ function St(e, t, n) {
1383
+ return rt(e, Jt(t, n));
1384
+ }
1385
+ function Ui(e, t, n) {
1386
+ var i = St(e, t, n);
1387
+ return i > n ? n : i;
1388
+ }
1389
+ function mn() {
1390
+ return {
1391
+ top: 0,
1392
+ right: 0,
1393
+ bottom: 0,
1394
+ left: 0
1395
+ };
1396
+ }
1397
+ function vn(e) {
1398
+ return Object.assign({}, mn(), e);
1399
+ }
1400
+ function bn(e, t) {
1401
+ return t.reduce(function(n, i) {
1402
+ return n[i] = e, n;
1403
+ }, {});
1404
+ }
1405
+ var tr = function(e, t) {
1406
+ return e = typeof e == "function" ? e(Object.assign({}, t.rects, {
1407
+ placement: t.placement
1408
+ })) : e, vn(typeof e != "number" ? e : bn(e, Pt));
1409
+ };
1410
+ function er(e) {
1411
+ var t, n = e.state, i = e.name, r = e.options, s = n.elements.arrow, a = n.modifiersData.popperOffsets, c = J(n.placement), o = ve(c), l = [D, _].indexOf(c) >= 0, d = l ? "height" : "width";
1412
+ if (!(!s || !a)) {
1413
+ var b = tr(r.padding, n), v = me(s), h = o === "y" ? P : D, $ = o === "y" ? W : _, u = n.rects.reference[d] + n.rects.reference[o] - a[o] - n.rects.popper[d], w = a[o] - n.rects.reference[o], E = Dt(s), O = E ? o === "y" ? E.clientHeight || 0 : E.clientWidth || 0 : 0, L = u / 2 - w / 2, f = b[h], y = O - v[d] - b[$], x = O / 2 - v[d] / 2 + L, k = St(f, x, y), T = o;
1414
+ n.modifiersData[i] = (t = {}, t[T] = k, t.centerOffset = k - x, t);
1415
+ }
1416
+ }
1417
+ function nr(e) {
1418
+ var t = e.state, n = e.options, i = n.element, r = i === void 0 ? "[data-popper-arrow]" : i;
1419
+ r != null && (typeof r == "string" && (r = t.elements.popper.querySelector(r), !r) || gn(t.elements.popper, r) && (t.elements.arrow = r));
1420
+ }
1421
+ const ir = {
1422
+ name: "arrow",
1423
+ enabled: !0,
1424
+ phase: "main",
1425
+ fn: er,
1426
+ effect: nr,
1427
+ requires: ["popperOffsets"],
1428
+ requiresIfExists: ["preventOverflow"]
1429
+ };
1430
+ function mt(e) {
1431
+ return e.split("-")[1];
1432
+ }
1433
+ var rr = {
1434
+ top: "auto",
1435
+ right: "auto",
1436
+ bottom: "auto",
1437
+ left: "auto"
1438
+ };
1439
+ function sr(e, t) {
1440
+ var n = e.x, i = e.y, r = t.devicePixelRatio || 1;
1441
+ return {
1442
+ x: pt(n * r) / r || 0,
1443
+ y: pt(i * r) / r || 0
1444
+ };
1445
+ }
1446
+ function We(e) {
1447
+ var t, n = e.popper, i = e.popperRect, r = e.placement, s = e.variation, a = e.offsets, c = e.position, o = e.gpuAcceleration, l = e.adaptive, d = e.roundOffsets, b = e.isFixed, v = a.x, h = v === void 0 ? 0 : v, $ = a.y, u = $ === void 0 ? 0 : $, w = typeof d == "function" ? d({
1448
+ x: h,
1449
+ y: u
1450
+ }) : {
1451
+ x: h,
1452
+ y: u
1453
+ };
1454
+ h = w.x, u = w.y;
1455
+ var E = a.hasOwnProperty("x"), O = a.hasOwnProperty("y"), L = D, f = P, y = window;
1456
+ if (l) {
1457
+ var x = Dt(n), k = "clientHeight", T = "clientWidth";
1458
+ if (x === F(n) && (x = Z(n), G(x).position !== "static" && c === "absolute" && (k = "scrollHeight", T = "scrollWidth")), x = x, r === P || (r === D || r === _) && s === It) {
1459
+ f = W;
1460
+ var S = b && x === y && y.visualViewport ? y.visualViewport.height : (
1461
+ // $FlowFixMe[prop-missing]
1462
+ x[k]
1463
+ );
1464
+ u -= S - i.height, u *= o ? 1 : -1;
1465
+ }
1466
+ if (r === D || (r === P || r === W) && s === It) {
1467
+ L = _;
1468
+ var C = b && x === y && y.visualViewport ? y.visualViewport.width : (
1469
+ // $FlowFixMe[prop-missing]
1470
+ x[T]
1471
+ );
1472
+ h -= C - i.width, h *= o ? 1 : -1;
1473
+ }
1474
+ }
1475
+ var I = Object.assign({
1476
+ position: c
1477
+ }, l && rr), B = d === !0 ? sr({
1478
+ x: h,
1479
+ y: u
1480
+ }, F(n)) : {
1481
+ x: h,
1482
+ y: u
1483
+ };
1484
+ if (h = B.x, u = B.y, o) {
1485
+ var A;
1486
+ return Object.assign({}, I, (A = {}, A[f] = O ? "0" : "", A[L] = E ? "0" : "", A.transform = (y.devicePixelRatio || 1) <= 1 ? "translate(" + h + "px, " + u + "px)" : "translate3d(" + h + "px, " + u + "px, 0)", A));
1487
+ }
1488
+ return Object.assign({}, I, (t = {}, t[f] = O ? u + "px" : "", t[L] = E ? h + "px" : "", t.transform = "", t));
1489
+ }
1490
+ function or(e) {
1491
+ var t = e.state, n = e.options, i = n.gpuAcceleration, r = i === void 0 ? !0 : i, s = n.adaptive, a = s === void 0 ? !0 : s, c = n.roundOffsets, o = c === void 0 ? !0 : c, l = {
1492
+ placement: J(t.placement),
1493
+ variation: mt(t.placement),
1494
+ popper: t.elements.popper,
1495
+ popperRect: t.rects.popper,
1496
+ gpuAcceleration: r,
1497
+ isFixed: t.options.strategy === "fixed"
1498
+ };
1499
+ t.modifiersData.popperOffsets != null && (t.styles.popper = Object.assign({}, t.styles.popper, We(Object.assign({}, l, {
1500
+ offsets: t.modifiersData.popperOffsets,
1501
+ position: t.options.strategy,
1502
+ adaptive: a,
1503
+ roundOffsets: o
1504
+ })))), t.modifiersData.arrow != null && (t.styles.arrow = Object.assign({}, t.styles.arrow, We(Object.assign({}, l, {
1505
+ offsets: t.modifiersData.arrow,
1506
+ position: "absolute",
1507
+ adaptive: !1,
1508
+ roundOffsets: o
1509
+ })))), t.attributes.popper = Object.assign({}, t.attributes.popper, {
1510
+ "data-popper-placement": t.placement
1511
+ });
1512
+ }
1513
+ const ar = {
1514
+ name: "computeStyles",
1515
+ enabled: !0,
1516
+ phase: "beforeWrite",
1517
+ fn: or,
1518
+ data: {}
1519
+ };
1520
+ var Bt = {
1521
+ passive: !0
1522
+ };
1523
+ function lr(e) {
1524
+ var t = e.state, n = e.instance, i = e.options, r = i.scroll, s = r === void 0 ? !0 : r, a = i.resize, c = a === void 0 ? !0 : a, o = F(t.elements.popper), l = [].concat(t.scrollParents.reference, t.scrollParents.popper);
1525
+ return s && l.forEach(function(d) {
1526
+ d.addEventListener("scroll", n.update, Bt);
1527
+ }), c && o.addEventListener("resize", n.update, Bt), function() {
1528
+ s && l.forEach(function(d) {
1529
+ d.removeEventListener("scroll", n.update, Bt);
1530
+ }), c && o.removeEventListener("resize", n.update, Bt);
1531
+ };
1532
+ }
1533
+ const cr = {
1534
+ name: "eventListeners",
1535
+ enabled: !0,
1536
+ phase: "write",
1537
+ fn: function() {
1538
+ },
1539
+ effect: lr,
1540
+ data: {}
1541
+ };
1542
+ var dr = {
1543
+ left: "right",
1544
+ right: "left",
1545
+ bottom: "top",
1546
+ top: "bottom"
1547
+ };
1548
+ function Ht(e) {
1549
+ return e.replace(/left|right|bottom|top/g, function(t) {
1550
+ return dr[t];
1551
+ });
1552
+ }
1553
+ var ur = {
1554
+ start: "end",
1555
+ end: "start"
1556
+ };
1557
+ function _e(e) {
1558
+ return e.replace(/start|end/g, function(t) {
1559
+ return ur[t];
1560
+ });
1561
+ }
1562
+ function be(e) {
1563
+ var t = F(e), n = t.pageXOffset, i = t.pageYOffset;
1564
+ return {
1565
+ scrollLeft: n,
1566
+ scrollTop: i
1567
+ };
1568
+ }
1569
+ function ye(e) {
1570
+ return gt(Z(e)).left + be(e).scrollLeft;
1571
+ }
1572
+ function hr(e, t) {
1573
+ var n = F(e), i = Z(e), r = n.visualViewport, s = i.clientWidth, a = i.clientHeight, c = 0, o = 0;
1574
+ if (r) {
1575
+ s = r.width, a = r.height;
1576
+ var l = pn();
1577
+ (l || !l && t === "fixed") && (c = r.offsetLeft, o = r.offsetTop);
1578
+ }
1579
+ return {
1580
+ width: s,
1581
+ height: a,
1582
+ x: c + ye(e),
1583
+ y: o
1584
+ };
1585
+ }
1586
+ function fr(e) {
1587
+ var t, n = Z(e), i = be(e), r = (t = e.ownerDocument) == null ? void 0 : t.body, s = rt(n.scrollWidth, n.clientWidth, r ? r.scrollWidth : 0, r ? r.clientWidth : 0), a = rt(n.scrollHeight, n.clientHeight, r ? r.scrollHeight : 0, r ? r.clientHeight : 0), c = -i.scrollLeft + ye(e), o = -i.scrollTop;
1588
+ return G(r || n).direction === "rtl" && (c += rt(n.clientWidth, r ? r.clientWidth : 0) - s), {
1589
+ width: s,
1590
+ height: a,
1591
+ x: c,
1592
+ y: o
1593
+ };
1594
+ }
1595
+ function we(e) {
1596
+ var t = G(e), n = t.overflow, i = t.overflowX, r = t.overflowY;
1597
+ return /auto|scroll|overlay|hidden/.test(n + r + i);
1598
+ }
1599
+ function yn(e) {
1600
+ return ["html", "body", "#document"].indexOf(z(e)) >= 0 ? e.ownerDocument.body : N(e) && we(e) ? e : yn(Gt(e));
1601
+ }
1602
+ function Ct(e, t) {
1603
+ var n;
1604
+ t === void 0 && (t = []);
1605
+ var i = yn(e), r = i === ((n = e.ownerDocument) == null ? void 0 : n.body), s = F(i), a = r ? [s].concat(s.visualViewport || [], we(i) ? i : []) : i, c = t.concat(a);
1606
+ return r ? c : (
1607
+ // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here
1608
+ c.concat(Ct(Gt(a)))
1609
+ );
1610
+ }
1611
+ function se(e) {
1612
+ return Object.assign({}, e, {
1613
+ left: e.x,
1614
+ top: e.y,
1615
+ right: e.x + e.width,
1616
+ bottom: e.y + e.height
1617
+ });
1618
+ }
1619
+ function pr(e, t) {
1620
+ var n = gt(e, !1, t === "fixed");
1621
+ return n.top = n.top + e.clientTop, n.left = n.left + e.clientLeft, n.bottom = n.top + e.clientHeight, n.right = n.left + e.clientWidth, n.width = e.clientWidth, n.height = e.clientHeight, n.x = n.left, n.y = n.top, n;
1622
+ }
1623
+ function Be(e, t, n) {
1624
+ return t === hn ? se(hr(e, n)) : st(t) ? pr(t, n) : se(fr(Z(e)));
1625
+ }
1626
+ function gr(e) {
1627
+ var t = Ct(Gt(e)), n = ["absolute", "fixed"].indexOf(G(e).position) >= 0, i = n && N(e) ? Dt(e) : e;
1628
+ return st(i) ? t.filter(function(r) {
1629
+ return st(r) && gn(r, i) && z(r) !== "body";
1630
+ }) : [];
1631
+ }
1632
+ function mr(e, t, n, i) {
1633
+ var r = t === "clippingParents" ? gr(e) : [].concat(t), s = [].concat(r, [n]), a = s[0], c = s.reduce(function(o, l) {
1634
+ var d = Be(e, l, i);
1635
+ return o.top = rt(d.top, o.top), o.right = Jt(d.right, o.right), o.bottom = Jt(d.bottom, o.bottom), o.left = rt(d.left, o.left), o;
1636
+ }, Be(e, a, i));
1637
+ return c.width = c.right - c.left, c.height = c.bottom - c.top, c.x = c.left, c.y = c.top, c;
1638
+ }
1639
+ function wn(e) {
1640
+ var t = e.reference, n = e.element, i = e.placement, r = i ? J(i) : null, s = i ? mt(i) : null, a = t.x + t.width / 2 - n.width / 2, c = t.y + t.height / 2 - n.height / 2, o;
1641
+ switch (r) {
1642
+ case P:
1643
+ o = {
1644
+ x: a,
1645
+ y: t.y - n.height
1646
+ };
1647
+ break;
1648
+ case W:
1649
+ o = {
1650
+ x: a,
1651
+ y: t.y + t.height
1652
+ };
1653
+ break;
1654
+ case _:
1655
+ o = {
1656
+ x: t.x + t.width,
1657
+ y: c
1658
+ };
1659
+ break;
1660
+ case D:
1661
+ o = {
1662
+ x: t.x - n.width,
1663
+ y: c
1664
+ };
1665
+ break;
1666
+ default:
1667
+ o = {
1668
+ x: t.x,
1669
+ y: t.y
1670
+ };
1671
+ }
1672
+ var l = r ? ve(r) : null;
1673
+ if (l != null) {
1674
+ var d = l === "y" ? "height" : "width";
1675
+ switch (s) {
1676
+ case ft:
1677
+ o[l] = o[l] - (t[d] / 2 - n[d] / 2);
1678
+ break;
1679
+ case It:
1680
+ o[l] = o[l] + (t[d] / 2 - n[d] / 2);
1681
+ break;
1682
+ }
1683
+ }
1684
+ return o;
1685
+ }
1686
+ function At(e, t) {
1687
+ t === void 0 && (t = {});
1688
+ var n = t, i = n.placement, r = i === void 0 ? e.placement : i, s = n.strategy, a = s === void 0 ? e.strategy : s, c = n.boundary, o = c === void 0 ? qi : c, l = n.rootBoundary, d = l === void 0 ? hn : l, b = n.elementContext, v = b === void 0 ? yt : b, h = n.altBoundary, $ = h === void 0 ? !1 : h, u = n.padding, w = u === void 0 ? 0 : u, E = vn(typeof w != "number" ? w : bn(w, Pt)), O = v === yt ? Fi : yt, L = e.rects.popper, f = e.elements[$ ? O : v], y = mr(st(f) ? f : f.contextElement || Z(e.elements.popper), o, d, a), x = gt(e.elements.reference), k = wn({
1689
+ reference: x,
1690
+ element: L,
1691
+ strategy: "absolute",
1692
+ placement: r
1693
+ }), T = se(Object.assign({}, L, k)), S = v === yt ? T : x, C = {
1694
+ top: y.top - S.top + E.top,
1695
+ bottom: S.bottom - y.bottom + E.bottom,
1696
+ left: y.left - S.left + E.left,
1697
+ right: S.right - y.right + E.right
1698
+ }, I = e.modifiersData.offset;
1699
+ if (v === yt && I) {
1700
+ var B = I[r];
1701
+ Object.keys(C).forEach(function(A) {
1702
+ var X = [_, W].indexOf(A) >= 0 ? 1 : -1, Y = [P, W].indexOf(A) >= 0 ? "y" : "x";
1703
+ C[A] += B[Y] * X;
1704
+ });
1705
+ }
1706
+ return C;
1707
+ }
1708
+ function vr(e, t) {
1709
+ t === void 0 && (t = {});
1710
+ var n = t, i = n.placement, r = n.boundary, s = n.rootBoundary, a = n.padding, c = n.flipVariations, o = n.allowedAutoPlacements, l = o === void 0 ? fn : o, d = mt(i), b = d ? c ? Fe : Fe.filter(function($) {
1711
+ return mt($) === d;
1712
+ }) : Pt, v = b.filter(function($) {
1713
+ return l.indexOf($) >= 0;
1714
+ });
1715
+ v.length === 0 && (v = b);
1716
+ var h = v.reduce(function($, u) {
1717
+ return $[u] = At(e, {
1718
+ placement: u,
1719
+ boundary: r,
1720
+ rootBoundary: s,
1721
+ padding: a
1722
+ })[J(u)], $;
1723
+ }, {});
1724
+ return Object.keys(h).sort(function($, u) {
1725
+ return h[$] - h[u];
1726
+ });
1727
+ }
1728
+ function br(e) {
1729
+ if (J(e) === pe)
1730
+ return [];
1731
+ var t = Ht(e);
1732
+ return [_e(e), t, _e(t)];
1733
+ }
1734
+ function yr(e) {
1735
+ var t = e.state, n = e.options, i = e.name;
1736
+ if (!t.modifiersData[i]._skip) {
1737
+ for (var r = n.mainAxis, s = r === void 0 ? !0 : r, a = n.altAxis, c = a === void 0 ? !0 : a, o = n.fallbackPlacements, l = n.padding, d = n.boundary, b = n.rootBoundary, v = n.altBoundary, h = n.flipVariations, $ = h === void 0 ? !0 : h, u = n.allowedAutoPlacements, w = t.options.placement, E = J(w), O = E === w, L = o || (O || !$ ? [Ht(w)] : br(w)), f = [w].concat(L).reduce(function(tt, K) {
1738
+ return tt.concat(J(K) === pe ? vr(t, {
1739
+ placement: K,
1740
+ boundary: d,
1741
+ rootBoundary: b,
1742
+ padding: l,
1743
+ flipVariations: $,
1744
+ allowedAutoPlacements: u
1745
+ }) : K);
1746
+ }, []), y = t.rects.reference, x = t.rects.popper, k = /* @__PURE__ */ new Map(), T = !0, S = f[0], C = 0; C < f.length; C++) {
1747
+ var I = f[C], B = J(I), A = mt(I) === ft, X = [P, W].indexOf(B) >= 0, Y = X ? "width" : "height", M = At(t, {
1748
+ placement: I,
1749
+ boundary: d,
1750
+ rootBoundary: b,
1751
+ altBoundary: v,
1752
+ padding: l
1753
+ }), R = X ? A ? _ : D : A ? W : P;
1754
+ y[Y] > x[Y] && (R = Ht(R));
1755
+ var Mt = Ht(R), U = [];
1756
+ if (s && U.push(M[B] <= 0), c && U.push(M[R] <= 0, M[Mt] <= 0), U.every(function(tt) {
1757
+ return tt;
1758
+ })) {
1759
+ S = I, T = !1;
1760
+ break;
1761
+ }
1762
+ k.set(I, U);
1763
+ }
1764
+ if (T)
1765
+ for (var jt = $ ? 3 : 1, Qt = function(tt) {
1766
+ var K = f.find(function(Ft) {
1767
+ var bt = k.get(Ft);
1768
+ if (bt)
1769
+ return bt.slice(0, tt).every(function(ot) {
1770
+ return ot;
1771
+ });
1772
+ });
1773
+ if (K)
1774
+ return S = K, "break";
1775
+ }, vt = jt; vt > 0; vt--) {
1776
+ var qt = Qt(vt);
1777
+ if (qt === "break")
1778
+ break;
1779
+ }
1780
+ t.placement !== S && (t.modifiersData[i]._skip = !0, t.placement = S, t.reset = !0);
1781
+ }
1782
+ }
1783
+ const wr = {
1784
+ name: "flip",
1785
+ enabled: !0,
1786
+ phase: "main",
1787
+ fn: yr,
1788
+ requiresIfExists: ["offset"],
1789
+ data: {
1790
+ _skip: !1
1791
+ }
1792
+ };
1793
+ function Re(e, t, n) {
1794
+ return n === void 0 && (n = {
1795
+ x: 0,
1796
+ y: 0
1797
+ }), {
1798
+ top: e.top - t.height - n.y,
1799
+ right: e.right - t.width + n.x,
1800
+ bottom: e.bottom - t.height + n.y,
1801
+ left: e.left - t.width - n.x
1802
+ };
1803
+ }
1804
+ function Ve(e) {
1805
+ return [P, _, W, D].some(function(t) {
1806
+ return e[t] >= 0;
1807
+ });
1808
+ }
1809
+ function $r(e) {
1810
+ var t = e.state, n = e.name, i = t.rects.reference, r = t.rects.popper, s = t.modifiersData.preventOverflow, a = At(t, {
1811
+ elementContext: "reference"
1812
+ }), c = At(t, {
1813
+ altBoundary: !0
1814
+ }), o = Re(a, i), l = Re(c, r, s), d = Ve(o), b = Ve(l);
1815
+ t.modifiersData[n] = {
1816
+ referenceClippingOffsets: o,
1817
+ popperEscapeOffsets: l,
1818
+ isReferenceHidden: d,
1819
+ hasPopperEscaped: b
1820
+ }, t.attributes.popper = Object.assign({}, t.attributes.popper, {
1821
+ "data-popper-reference-hidden": d,
1822
+ "data-popper-escaped": b
1823
+ });
1824
+ }
1825
+ const Er = {
1826
+ name: "hide",
1827
+ enabled: !0,
1828
+ phase: "main",
1829
+ requiresIfExists: ["preventOverflow"],
1830
+ fn: $r
1831
+ };
1832
+ function xr(e, t, n) {
1833
+ var i = J(e), r = [D, P].indexOf(i) >= 0 ? -1 : 1, s = typeof n == "function" ? n(Object.assign({}, t, {
1834
+ placement: e
1835
+ })) : n, a = s[0], c = s[1];
1836
+ return a = a || 0, c = (c || 0) * r, [D, _].indexOf(i) >= 0 ? {
1837
+ x: c,
1838
+ y: a
1839
+ } : {
1840
+ x: a,
1841
+ y: c
1842
+ };
1843
+ }
1844
+ function Or(e) {
1845
+ var t = e.state, n = e.options, i = e.name, r = n.offset, s = r === void 0 ? [0, 0] : r, a = fn.reduce(function(d, b) {
1846
+ return d[b] = xr(b, t.rects, s), d;
1847
+ }, {}), c = a[t.placement], o = c.x, l = c.y;
1848
+ t.modifiersData.popperOffsets != null && (t.modifiersData.popperOffsets.x += o, t.modifiersData.popperOffsets.y += l), t.modifiersData[i] = a;
1849
+ }
1850
+ const Lr = {
1851
+ name: "offset",
1852
+ enabled: !0,
1853
+ phase: "main",
1854
+ requires: ["popperOffsets"],
1855
+ fn: Or
1856
+ };
1857
+ function kr(e) {
1858
+ var t = e.state, n = e.name;
1859
+ t.modifiersData[n] = wn({
1860
+ reference: t.rects.reference,
1861
+ element: t.rects.popper,
1862
+ strategy: "absolute",
1863
+ placement: t.placement
1864
+ });
1865
+ }
1866
+ const Tr = {
1867
+ name: "popperOffsets",
1868
+ enabled: !0,
1869
+ phase: "read",
1870
+ fn: kr,
1871
+ data: {}
1872
+ };
1873
+ function Sr(e) {
1874
+ return e === "x" ? "y" : "x";
1875
+ }
1876
+ function Cr(e) {
1877
+ var t = e.state, n = e.options, i = e.name, r = n.mainAxis, s = r === void 0 ? !0 : r, a = n.altAxis, c = a === void 0 ? !1 : a, o = n.boundary, l = n.rootBoundary, d = n.altBoundary, b = n.padding, v = n.tether, h = v === void 0 ? !0 : v, $ = n.tetherOffset, u = $ === void 0 ? 0 : $, w = At(t, {
1878
+ boundary: o,
1879
+ rootBoundary: l,
1880
+ padding: b,
1881
+ altBoundary: d
1882
+ }), E = J(t.placement), O = mt(t.placement), L = !O, f = ve(E), y = Sr(f), x = t.modifiersData.popperOffsets, k = t.rects.reference, T = t.rects.popper, S = typeof u == "function" ? u(Object.assign({}, t.rects, {
1883
+ placement: t.placement
1884
+ })) : u, C = typeof S == "number" ? {
1885
+ mainAxis: S,
1886
+ altAxis: S
1887
+ } : Object.assign({
1888
+ mainAxis: 0,
1889
+ altAxis: 0
1890
+ }, S), I = t.modifiersData.offset ? t.modifiersData.offset[t.placement] : null, B = {
1891
+ x: 0,
1892
+ y: 0
1893
+ };
1894
+ if (x) {
1895
+ if (s) {
1896
+ var A, X = f === "y" ? P : D, Y = f === "y" ? W : _, M = f === "y" ? "height" : "width", R = x[f], Mt = R + w[X], U = R - w[Y], jt = h ? -T[M] / 2 : 0, Qt = O === ft ? k[M] : T[M], vt = O === ft ? -T[M] : -k[M], qt = t.elements.arrow, tt = h && qt ? me(qt) : {
1897
+ width: 0,
1898
+ height: 0
1899
+ }, K = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : mn(), Ft = K[X], bt = K[Y], ot = St(0, k[M], tt[M]), xn = L ? k[M] / 2 - jt - ot - Ft - C.mainAxis : Qt - ot - Ft - C.mainAxis, On = L ? -k[M] / 2 + jt + ot + bt + C.mainAxis : vt + ot + bt + C.mainAxis, Zt = t.elements.arrow && Dt(t.elements.arrow), Ln = Zt ? f === "y" ? Zt.clientTop || 0 : Zt.clientLeft || 0 : 0, Ee = (A = I == null ? void 0 : I[f]) != null ? A : 0, kn = R + xn - Ee - Ln, Tn = R + On - Ee, xe = St(h ? Jt(Mt, kn) : Mt, R, h ? rt(U, Tn) : U);
1900
+ x[f] = xe, B[f] = xe - R;
1901
+ }
1902
+ if (c) {
1903
+ var Oe, Sn = f === "x" ? P : D, Cn = f === "x" ? W : _, et = x[y], Nt = y === "y" ? "height" : "width", Le = et + w[Sn], ke = et - w[Cn], Xt = [P, D].indexOf(E) !== -1, Te = (Oe = I == null ? void 0 : I[y]) != null ? Oe : 0, Se = Xt ? Le : et - k[Nt] - T[Nt] - Te + C.altAxis, Ce = Xt ? et + k[Nt] + T[Nt] - Te - C.altAxis : ke, Ie = h && Xt ? Ui(Se, et, Ce) : St(h ? Se : Le, et, h ? Ce : ke);
1904
+ x[y] = Ie, B[y] = Ie - et;
1905
+ }
1906
+ t.modifiersData[i] = B;
1907
+ }
1908
+ }
1909
+ const Ir = {
1910
+ name: "preventOverflow",
1911
+ enabled: !0,
1912
+ phase: "main",
1913
+ fn: Cr,
1914
+ requiresIfExists: ["offset"]
1915
+ };
1916
+ function Ar(e) {
1917
+ return {
1918
+ scrollLeft: e.scrollLeft,
1919
+ scrollTop: e.scrollTop
1920
+ };
1921
+ }
1922
+ function Pr(e) {
1923
+ return e === F(e) || !N(e) ? be(e) : Ar(e);
1924
+ }
1925
+ function Dr(e) {
1926
+ var t = e.getBoundingClientRect(), n = pt(t.width) / e.offsetWidth || 1, i = pt(t.height) / e.offsetHeight || 1;
1927
+ return n !== 1 || i !== 1;
1928
+ }
1929
+ function Mr(e, t, n) {
1930
+ n === void 0 && (n = !1);
1931
+ var i = N(t), r = N(t) && Dr(t), s = Z(t), a = gt(e, r, n), c = {
1932
+ scrollLeft: 0,
1933
+ scrollTop: 0
1934
+ }, o = {
1935
+ x: 0,
1936
+ y: 0
1937
+ };
1938
+ return (i || !i && !n) && ((z(t) !== "body" || // https://github.com/popperjs/popper-core/issues/1078
1939
+ we(s)) && (c = Pr(t)), N(t) ? (o = gt(t, !0), o.x += t.clientLeft, o.y += t.clientTop) : s && (o.x = ye(s))), {
1940
+ x: a.left + c.scrollLeft - o.x,
1941
+ y: a.top + c.scrollTop - o.y,
1942
+ width: a.width,
1943
+ height: a.height
1944
+ };
1945
+ }
1946
+ function jr(e) {
1947
+ var t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set(), i = [];
1948
+ e.forEach(function(s) {
1949
+ t.set(s.name, s);
1950
+ });
1951
+ function r(s) {
1952
+ n.add(s.name);
1953
+ var a = [].concat(s.requires || [], s.requiresIfExists || []);
1954
+ a.forEach(function(c) {
1955
+ if (!n.has(c)) {
1956
+ var o = t.get(c);
1957
+ o && r(o);
1958
+ }
1959
+ }), i.push(s);
1960
+ }
1961
+ return e.forEach(function(s) {
1962
+ n.has(s.name) || r(s);
1963
+ }), i;
1964
+ }
1965
+ function qr(e) {
1966
+ var t = jr(e);
1967
+ return Ki.reduce(function(n, i) {
1968
+ return n.concat(t.filter(function(r) {
1969
+ return r.phase === i;
1970
+ }));
1971
+ }, []);
1972
+ }
1973
+ function Fr(e) {
1974
+ var t;
1975
+ return function() {
1976
+ return t || (t = new Promise(function(n) {
1977
+ Promise.resolve().then(function() {
1978
+ t = void 0, n(e());
1979
+ });
1980
+ })), t;
1981
+ };
1982
+ }
1983
+ function Nr(e) {
1984
+ var t = e.reduce(function(n, i) {
1985
+ var r = n[i.name];
1986
+ return n[i.name] = r ? Object.assign({}, r, i, {
1987
+ options: Object.assign({}, r.options, i.options),
1988
+ data: Object.assign({}, r.data, i.data)
1989
+ }) : i, n;
1990
+ }, {});
1991
+ return Object.keys(t).map(function(n) {
1992
+ return t[n];
1993
+ });
1994
+ }
1995
+ var He = {
1996
+ placement: "bottom",
1997
+ modifiers: [],
1998
+ strategy: "absolute"
1999
+ };
2000
+ function Je() {
2001
+ for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++)
2002
+ t[n] = arguments[n];
2003
+ return !t.some(function(i) {
2004
+ return !(i && typeof i.getBoundingClientRect == "function");
2005
+ });
2006
+ }
2007
+ function Wr(e) {
2008
+ e === void 0 && (e = {});
2009
+ var t = e, n = t.defaultModifiers, i = n === void 0 ? [] : n, r = t.defaultOptions, s = r === void 0 ? He : r;
2010
+ return function(a, c, o) {
2011
+ o === void 0 && (o = s);
2012
+ var l = {
2013
+ placement: "bottom",
2014
+ orderedModifiers: [],
2015
+ options: Object.assign({}, He, s),
2016
+ modifiersData: {},
2017
+ elements: {
2018
+ reference: a,
2019
+ popper: c
2020
+ },
2021
+ attributes: {},
2022
+ styles: {}
2023
+ }, d = [], b = !1, v = {
2024
+ state: l,
2025
+ setOptions: function(u) {
2026
+ var w = typeof u == "function" ? u(l.options) : u;
2027
+ $(), l.options = Object.assign({}, s, l.options, w), l.scrollParents = {
2028
+ reference: st(a) ? Ct(a) : a.contextElement ? Ct(a.contextElement) : [],
2029
+ popper: Ct(c)
2030
+ };
2031
+ var E = qr(Nr([].concat(i, l.options.modifiers)));
2032
+ return l.orderedModifiers = E.filter(function(O) {
2033
+ return O.enabled;
2034
+ }), h(), v.update();
2035
+ },
2036
+ // Sync update – it will always be executed, even if not necessary. This
2037
+ // is useful for low frequency updates where sync behavior simplifies the
2038
+ // logic.
2039
+ // For high frequency updates (e.g. `resize` and `scroll` events), always
2040
+ // prefer the async Popper#update method
2041
+ forceUpdate: function() {
2042
+ if (!b) {
2043
+ var u = l.elements, w = u.reference, E = u.popper;
2044
+ if (Je(w, E)) {
2045
+ l.rects = {
2046
+ reference: Mr(w, Dt(E), l.options.strategy === "fixed"),
2047
+ popper: me(E)
2048
+ }, l.reset = !1, l.placement = l.options.placement, l.orderedModifiers.forEach(function(T) {
2049
+ return l.modifiersData[T.name] = Object.assign({}, T.data);
2050
+ });
2051
+ for (var O = 0; O < l.orderedModifiers.length; O++) {
2052
+ if (l.reset === !0) {
2053
+ l.reset = !1, O = -1;
2054
+ continue;
2055
+ }
2056
+ var L = l.orderedModifiers[O], f = L.fn, y = L.options, x = y === void 0 ? {} : y, k = L.name;
2057
+ typeof f == "function" && (l = f({
2058
+ state: l,
2059
+ options: x,
2060
+ name: k,
2061
+ instance: v
2062
+ }) || l);
2063
+ }
2064
+ }
2065
+ }
2066
+ },
2067
+ // Async and optimistically optimized update – it will not be executed if
2068
+ // not necessary (debounced to run at most once-per-tick)
2069
+ update: Fr(function() {
2070
+ return new Promise(function(u) {
2071
+ v.forceUpdate(), u(l);
2072
+ });
2073
+ }),
2074
+ destroy: function() {
2075
+ $(), b = !0;
2076
+ }
2077
+ };
2078
+ if (!Je(a, c))
2079
+ return v;
2080
+ v.setOptions(o).then(function(u) {
2081
+ !b && o.onFirstUpdate && o.onFirstUpdate(u);
2082
+ });
2083
+ function h() {
2084
+ l.orderedModifiers.forEach(function(u) {
2085
+ var w = u.name, E = u.options, O = E === void 0 ? {} : E, L = u.effect;
2086
+ if (typeof L == "function") {
2087
+ var f = L({
2088
+ state: l,
2089
+ name: w,
2090
+ instance: v,
2091
+ options: O
2092
+ }), y = function() {
2093
+ };
2094
+ d.push(f || y);
2095
+ }
2096
+ });
2097
+ }
2098
+ function $() {
2099
+ d.forEach(function(u) {
2100
+ return u();
2101
+ }), d = [];
2102
+ }
2103
+ return v;
2104
+ };
2105
+ }
2106
+ var _r = [cr, Tr, ar, Zi, Lr, wr, Ir, ir, Er], Br = /* @__PURE__ */ Wr({
2107
+ defaultModifiers: _r
2108
+ });
2109
+ async function oe(e) {
2110
+ const t = this.collection.findIndex((n) => n.id === e.id);
2111
+ if (t >= 0) {
2112
+ const n = this.collection[t];
2113
+ n.state === "opened" && n.close(), n.popper.destroy(), $n(n), Object.getOwnPropertyNames(n).forEach((i) => {
2114
+ delete n[i];
2115
+ }), this.collection.splice(t, 1);
2116
+ }
2117
+ return this.collection;
2118
+ }
2119
+ function $n(e) {
2120
+ return e.__eventListeners && (e.__eventListeners.forEach((t) => {
2121
+ t.el.forEach((n) => {
2122
+ t.type.forEach((i) => {
2123
+ e[n].removeEventListener(i, t.listener, !1);
2124
+ });
2125
+ });
2126
+ }), delete e.__eventListeners), e;
2127
+ }
2128
+ async function $e(e) {
2129
+ const t = ln.call(this, e);
2130
+ return t.el.classList.add(this.settings.stateActive), t.trigger.hasAttribute("aria-controls") && t.trigger.setAttribute("aria-expanded", "true"), t.config = an(t.el, this.settings), t.popper.setOptions({
2131
+ placement: t.config.placement,
2132
+ modifiers: [
2133
+ { name: "eventListeners", enabled: !0 },
2134
+ ...Ai(t.config)
2135
+ ]
2136
+ }), t.popper.update(), t.state = "opened", t;
2137
+ }
2138
+ async function Rr(e, t) {
2139
+ oe.call(this, e);
2140
+ const n = this, i = {
2141
+ id: e.id,
2142
+ state: "closed",
2143
+ el: e,
2144
+ trigger: t,
2145
+ popper: Br(t, e),
2146
+ config: an(e, this.settings),
2147
+ open() {
2148
+ return $e.call(n, this);
2149
+ },
2150
+ close() {
2151
+ return fe.call(n, this);
2152
+ },
2153
+ deregister() {
2154
+ return oe.call(n, this);
2155
+ }
2156
+ };
2157
+ return i.trigger.hasAttribute("aria-controls") && i.trigger.setAttribute("aria-expanded", "false"), En.call(this, i), this.collection.push(i), i.el.classList.contains(this.settings.stateActive) && (await i.open(), un.call(this, i)), i;
2158
+ }
2159
+ function En(e) {
2160
+ return e.__eventListeners || (e.config.event === "hover" ? (e.__eventListeners = [{
2161
+ el: ["trigger"],
2162
+ type: ["mouseenter", "focus"],
2163
+ listener: $e.bind(this, e)
2164
+ }, {
2165
+ el: ["el", "trigger"],
2166
+ type: ["mouseleave", "focusout"],
2167
+ listener: dn.bind(this, e)
2168
+ }], e.__eventListeners.forEach((t) => {
2169
+ t.el.forEach((n) => {
2170
+ t.type.forEach((i) => {
2171
+ e[n].addEventListener(i, t.listener, !1);
2172
+ });
2173
+ });
2174
+ })) : (e.__eventListeners = [{
2175
+ el: ["trigger"],
2176
+ type: ["click"],
2177
+ listener: Mi.bind(this, e)
2178
+ }], e.__eventListeners.forEach((t) => {
2179
+ t.el.forEach((n) => {
2180
+ t.type.forEach((i) => {
2181
+ e[n].addEventListener(i, t.listener, !1);
2182
+ });
2183
+ });
2184
+ }))), e;
2185
+ }
2186
+ var Tt;
2187
+ class ts extends Si {
2188
+ constructor(t) {
2189
+ super(), ki(this, Tt, void 0), this.defaults = Ii, this.settings = { ...this.defaults, ...t }, this.trigger = null, Ti(this, Tt, ji.bind(this)), this.settings.autoInit && this.init();
2190
+ }
2191
+ async init(t) {
2192
+ t && (this.settings = { ...this.settings, ...t });
2193
+ const n = document.querySelectorAll(this.settings.selectorPopover);
2194
+ return await this.registerCollection(n), this.settings.eventListeners && this.initEventListeners(!1), this;
2195
+ }
2196
+ async destroy() {
2197
+ return this.trigger = null, await this.deregisterCollection(), this.settings.eventListeners && this.destroyEventListeners(!1), this;
2198
+ }
2199
+ initEventListeners(t = !0) {
2200
+ t && this.collection.forEach((n) => {
2201
+ En.call(this, n);
2202
+ }), document.addEventListener("keydown", qe(this, Tt), !1);
2203
+ }
2204
+ destroyEventListeners(t = !0) {
2205
+ t && this.collection.forEach((n) => {
2206
+ $n(n);
2207
+ }), document.removeEventListener("keydown", qe(this, Tt), !1);
2208
+ }
2209
+ register(t) {
2210
+ const n = Di.call(this, t);
2211
+ return n.error ? Promise.reject(n.error) : Rr.call(this, n.popover, n.trigger);
2212
+ }
2213
+ deregister(t) {
2214
+ let n = this.get(t.id || t);
2215
+ return n ? oe.call(this, n) : Promise.reject(new Error(`Failed to deregister; popover does not exist in collection with ID of: "${t.id || t}".`));
2216
+ }
2217
+ open(t) {
2218
+ return $e.call(this, t);
2219
+ }
2220
+ close(t) {
2221
+ return fe.call(this, t);
2222
+ }
2223
+ }
2224
+ Tt = /* @__PURE__ */ new WeakMap();
2225
+ export {
2226
+ Zr as Drawer,
2227
+ Yr as Modal,
2228
+ ts as Popover,
2229
+ zr as core
2230
+ };
2231
+ //# sourceMappingURL=index.js.map