dikplhd/public/assets/libs/@frostui/tailwindcss/frostui.mjs

1210 lines
49 KiB
JavaScript

var re = Object.defineProperty;
var oe = (e, i, t) => i in e ? re(e, i, { enumerable: !0, configurable: !0, writable: !0, value: t }) : e[i] = t;
var o = (e, i, t) => (oe(e, typeof i != "symbol" ? i + "" : i, t), t);
const ht = /* @__PURE__ */ new Map(), St = {
set(e, i, t) {
ht.has(e) || ht.set(e, /* @__PURE__ */ new Map()), ht.get(e).set(i, t);
},
get(e, i) {
var t;
return ((t = ht.get(e)) == null ? void 0 : t.get(i)) || null;
},
remove(e, i) {
var t;
return ((t = ht.get(e)) == null ? void 0 : t.delete(i)) || !0;
}
}, nt = /* @__PURE__ */ new Map(), Ft = {
addListener(e, i, t) {
nt.has(e) || nt.set(e, /* @__PURE__ */ new Map());
const s = nt.get(e);
let n = s.get(i);
n == null && (n = []), n.push(t), s.set(i, n);
},
removeListener(e, i, t) {
if (!nt.has(e))
return;
const s = nt.get(e);
let n = s.get(i);
n != null && (n = n.filter((a) => a != t), s.set(i, n));
},
getCallbacks(e, i) {
var t;
return ((t = nt.get(e)) == null ? void 0 : t.get(i)) ?? [];
}
}, p = {
findAll(e) {
return Array.from(document.querySelectorAll(e));
},
findAllInElement(e, i) {
return Array.from(e.querySelectorAll(i));
},
findOnlyChildrenInElement(e, i) {
return Array.from(e.querySelectorAll(":scope > " + i));
},
find(e) {
return document.querySelector(e);
},
findById(e) {
return document.getElementById(e);
},
findOrById(e) {
return e.length != 0 && e.charAt(0) == "#" ? document.querySelector(e) : document.getElementById(e);
},
nextElementSibling(e) {
return e.nextElementSibling instanceof HTMLElement ? e.nextElementSibling : null;
},
getSiblingElement(e) {
return e.nextElementSibling;
},
addOverlay(e) {
const i = document.createElement("div");
return i.classList.add(...e), i.classList.add("hidden"), i.setAttribute("data-fc-overlay-backdrop", ""), document.body.appendChild(i), i;
},
showOverlay() {
var e;
(e = this.getOverlay()) == null || e.classList.remove("hidden");
},
hideOverlay() {
var e;
(e = this.getOverlay()) == null || e.classList.add("hidden");
},
getOverlay() {
return document.querySelector('[data-fc-overlay-backdrop=""]');
},
isElementSameOrContains(e, i) {
return e.contains(i) || e == i;
},
isElementContains(e, i) {
return e.contains(i) && e != i;
},
getAttribute(e, i, t = null) {
return e.hasAttribute(i) ? e.getAttribute(i) : t;
}
};
class I {
constructor(i, t) {
o(this, "_element");
o(this, "_destroyed", !1);
o(this, "_config", {});
typeof i == "string" ? this._element = p.findOrById(i) : this._element = i, this._config = t ?? {}, this._element != null && St.set(this.constructor.type, this._element, this);
}
get config() {
return this._config ?? {};
}
static getInstance(i) {
return i == null ? null : St.get(this.type, i);
}
static getInstanceOrCreate(i, t) {
if (i == null)
return null;
const s = this.getInstance(i);
return s ?? new this(i, t);
}
addEventListener(i, t) {
Ft.addListener(this, i, t);
}
removeEventListener(i, t) {
Ft.removeListener(this, i, t);
}
dispatchEvent(i) {
Ft.getCallbacks(this, i).forEach((t) => t());
}
destroy() {
this._destroyed = !0, this._element != null && St.remove(this.constructor.type, this._element);
}
}
o(I, "type", "");
const Lt = {
addAfterEvent(e, i, t) {
const s = (n) => {
i(n), e.removeEventListener(t, s, !0);
};
e.addEventListener(t, s, !0);
},
afterTransition(e, i) {
window.getComputedStyle(e, null).getPropertyValue("transition-duration") !== "0s" ? this.addAfterEvent(e, i, "transitionend") : i();
},
isMouseEventWithinElement(e, i) {
const t = {
x: i.pageX,
y: i.pageY
}, s = e.getBoundingClientRect();
return t.x < s.right && t.x > s.left && t.y < s.bottom && t.y > s.top;
},
listenOverlayClick(e) {
var i;
(i = p.getOverlay()) == null || i.addEventListener("click", e);
}
}, S = class extends I {
constructor(t, s) {
super(t, s);
o(this, "_targetElement", null);
this.init();
}
init() {
this._element != null && (this._element.classList.add(S.DEFAULT.class.base), this._targetElement = this.getTargetElement()), this.initOptions(), this.initListener();
}
initOptions() {
this._targetElement != null && !this._targetElement.classList.contains(S.DEFAULT.class.hidden) && this._element.classList.add(S.DEFAULT.class.open), this.config.toggle && this.toggle();
}
initListener() {
this._element.addEventListener("click", () => {
this.toggle();
});
}
get isShown() {
var t;
return ((t = this._element) == null ? void 0 : t.classList.contains(S.DEFAULT.class.open)) ?? !1;
}
show() {
this._destroyed || (this.dispatchEvent(S.EVENTS.show), this._targetElement != null && this._element != null && (this._element.classList.add(S.DEFAULT.class.open), this._targetElement.classList.remove(S.DEFAULT.class.hidden), this._targetElement.style.height = "0px", this._targetElement.style.height = `${this._targetElement.scrollHeight}px`, Lt.afterTransition(this._targetElement, () => {
this.isShown && (this._targetElement.style.height = "");
})), this.dispatchEvent(S.EVENTS.shown));
}
hide() {
this._destroyed || (this.dispatchEvent(S.EVENTS.hide), this._targetElement != null && this._element != null && (this._element.classList.remove(S.DEFAULT.class.open), this._targetElement.style.height = `${this._targetElement.scrollHeight}px`, Lt.afterTransition(this._targetElement, () => {
this.isShown || (this._targetElement.classList.add(S.DEFAULT.class.hidden), this._targetElement.style.height = "");
}), setTimeout(() => {
this._targetElement.style.height = "0px";
})), this.dispatchEvent(S.EVENTS.hidden));
}
toggle() {
this.isShown ? this.hide() : this.show();
}
getTargetElement() {
if (this._element == null)
return null;
const t = this.config.target ?? this._element.getAttribute(S.DEFAULT.attr.target);
return typeof t == "string" ? p.findOrById(t) : t instanceof HTMLElement ? t : p.nextElementSibling(this._element);
}
};
let C = S;
o(C, "type", "collapse"), o(C, "SELECTOR", '[data-fc-type="collapse"]'), o(C, "EVENTS", {
show: "fc.collapse.show",
shown: "fc.collapse.shown",
hide: "fc.collapse.hide",
hidden: "fc.collapse.hidden"
}), o(C, "DEFAULT", {
class: {
base: "fc-collapse",
hidden: "hidden",
open: "open"
},
attr: {
target: "data-fc-target"
}
});
const Tt = class extends I {
constructor(t, s) {
super(t, s);
o(this, "targetCollapses", []);
this.init();
}
init() {
if (this._element != null) {
const t = p.findAllInElement(this._element, C.SELECTOR);
let s = !1;
for (let n of t)
if (n.hasAttribute(Tt.DEFAULT.attr.parent)) {
s = !0;
break;
}
if (!s)
this.targetCollapses = t.map((n) => C.getInstanceOrCreate(n));
else {
const n = this._element.id;
this.targetCollapses = t.filter((a) => a.getAttribute(Tt.DEFAULT.attr.parent) == n).map((a) => C.getInstanceOrCreate(a));
}
this.initListeners();
}
}
initListeners() {
this.targetCollapses.forEach((t) => {
t.addEventListener(C.EVENTS.show, () => {
this._destroyed || this.targetCollapses.filter((s) => s != t).forEach((s) => s.hide());
});
});
}
};
let Z = Tt;
o(Z, "type", "accordion"), o(Z, "SELECTOR", '[data-fc-type="accordion"]'), o(Z, "DEFAULT", {
attr: {
parent: "data-fc-parent"
}
});
function gt(e) {
return e.split("-")[1];
}
function Rt(e) {
return e === "y" ? "height" : "width";
}
function st(e) {
return e.split("-")[0];
}
function ut(e) {
return ["top", "bottom"].includes(st(e)) ? "x" : "y";
}
function Ht(e, i, t) {
let { reference: s, floating: n } = e;
const a = s.x + s.width / 2 - n.width / 2, l = s.y + s.height / 2 - n.height / 2, r = ut(i), d = Rt(r), h = s[d] / 2 - n[d] / 2, f = r === "x";
let c;
switch (st(i)) {
case "top":
c = { x: a, y: s.y - n.height };
break;
case "bottom":
c = { x: a, y: s.y + s.height };
break;
case "right":
c = { x: s.x + s.width, y: l };
break;
case "left":
c = { x: s.x - n.width, y: l };
break;
default:
c = { x: s.x, y: s.y };
}
switch (gt(i)) {
case "start":
c[r] -= h * (t && f ? -1 : 1);
break;
case "end":
c[r] += h * (t && f ? -1 : 1);
}
return c;
}
const ce = async (e, i, t) => {
const { placement: s = "bottom", strategy: n = "absolute", middleware: a = [], platform: l } = t, r = a.filter(Boolean), d = await (l.isRTL == null ? void 0 : l.isRTL(i));
let h = await l.getElementRects({ reference: e, floating: i, strategy: n }), { x: f, y: c } = Ht(h, s, d), m = s, g = {}, E = 0;
for (let u = 0; u < r.length; u++) {
const { name: L, fn: w } = r[u], { x: y, y: b, data: D, reset: k } = await w({ x: f, y: c, initialPlacement: s, placement: m, strategy: n, middlewareData: g, rects: h, platform: l, elements: { reference: e, floating: i } });
f = y ?? f, c = b ?? c, g = { ...g, [L]: { ...g[L], ...D } }, k && E <= 50 && (E++, typeof k == "object" && (k.placement && (m = k.placement), k.rects && (h = k.rects === !0 ? await l.getElementRects({ reference: e, floating: i, strategy: n }) : k.rects), { x: f, y: c } = Ht(h, m, d)), u = -1);
}
return { x: f, y: c, placement: m, strategy: n, middlewareData: g };
};
function qt(e) {
return typeof e != "number" ? function(i) {
return { top: 0, right: 0, bottom: 0, left: 0, ...i };
}(e) : { top: e, right: e, bottom: e, left: e };
}
function yt(e) {
return { ...e, top: e.y, left: e.x, right: e.x + e.width, bottom: e.y + e.height };
}
async function zt(e, i) {
var t;
i === void 0 && (i = {});
const { x: s, y: n, platform: a, rects: l, elements: r, strategy: d } = e, { boundary: h = "clippingAncestors", rootBoundary: f = "viewport", elementContext: c = "floating", altBoundary: m = !1, padding: g = 0 } = i, E = qt(g), u = r[m ? c === "floating" ? "reference" : "floating" : c], L = yt(await a.getClippingRect({ element: (t = await (a.isElement == null ? void 0 : a.isElement(u))) == null || t ? u : u.contextElement || await (a.getDocumentElement == null ? void 0 : a.getDocumentElement(r.floating)), boundary: h, rootBoundary: f, strategy: d })), w = c === "floating" ? { ...l.floating, x: s, y: n } : l.reference, y = await (a.getOffsetParent == null ? void 0 : a.getOffsetParent(r.floating)), b = await (a.isElement == null ? void 0 : a.isElement(y)) && await (a.getScale == null ? void 0 : a.getScale(y)) || { x: 1, y: 1 }, D = yt(a.convertOffsetParentRelativeRectToViewportRelativeRect ? await a.convertOffsetParentRelativeRectToViewportRelativeRect({ rect: w, offsetParent: y, strategy: d }) : w);
return { top: (L.top - D.top + E.top) / b.y, bottom: (D.bottom - L.bottom + E.bottom) / b.y, left: (L.left - D.left + E.left) / b.x, right: (D.right - L.right + E.right) / b.x };
}
const he = Math.min, de = Math.max;
function Ut(e, i, t) {
return de(e, he(i, t));
}
const fe = (e) => ({ name: "arrow", options: e, async fn(i) {
const { element: t, padding: s = 0 } = e || {}, { x: n, y: a, placement: l, rects: r, platform: d, elements: h } = i;
if (t == null)
return {};
const f = qt(s), c = { x: n, y: a }, m = ut(l), g = Rt(m), E = await d.getDimensions(t), u = m === "y", L = u ? "top" : "left", w = u ? "bottom" : "right", y = u ? "clientHeight" : "clientWidth", b = r.reference[g] + r.reference[m] - c[m] - r.floating[g], D = c[m] - r.reference[m], k = await (d.getOffsetParent == null ? void 0 : d.getOffsetParent(t));
let H = k ? k[y] : 0;
H && await (d.isElement == null ? void 0 : d.isElement(k)) || (H = h.floating[y] || r.floating[g]);
const Y = b / 2 - D / 2, G = f[L], ot = H - E[g] - f[w], V = H / 2 - E[g] / 2 + Y, A = Ut(G, V, ot), R = gt(l) != null && V != A && r.reference[g] / 2 - (V < G ? f[L] : f[w]) - E[g] / 2 < 0;
return { [m]: c[m] - (R ? V < G ? G - V : ot - V : 0), data: { [m]: A, centerOffset: V - A } };
} }), me = ["top", "right", "bottom", "left"];
me.reduce((e, i) => e.concat(i, i + "-start", i + "-end"), []);
const ge = { left: "right", right: "left", bottom: "top", top: "bottom" };
function wt(e) {
return e.replace(/left|right|bottom|top/g, (i) => ge[i]);
}
function ue(e, i, t) {
t === void 0 && (t = !1);
const s = gt(e), n = ut(e), a = Rt(n);
let l = n === "x" ? s === (t ? "end" : "start") ? "right" : "left" : s === "start" ? "bottom" : "top";
return i.reference[a] > i.floating[a] && (l = wt(l)), { main: l, cross: wt(l) };
}
const Ee = { start: "end", end: "start" };
function Dt(e) {
return e.replace(/start|end/g, (i) => Ee[i]);
}
const pe = function(e) {
return e === void 0 && (e = {}), { name: "flip", options: e, async fn(i) {
var t;
const { placement: s, middlewareData: n, rects: a, initialPlacement: l, platform: r, elements: d } = i, { mainAxis: h = !0, crossAxis: f = !0, fallbackPlacements: c, fallbackStrategy: m = "bestFit", fallbackAxisSideDirection: g = "none", flipAlignment: E = !0, ...u } = e, L = st(s), w = st(l) === l, y = await (r.isRTL == null ? void 0 : r.isRTL(d.floating)), b = c || (w || !E ? [wt(l)] : function(A) {
const R = wt(A);
return [Dt(A), R, Dt(R)];
}(l));
c || g === "none" || b.push(...function(A, R, Q, B) {
const M = gt(A);
let O = function(ct, kt, ne) {
const $t = ["left", "right"], It = ["right", "left"], le = ["top", "bottom"], ae = ["bottom", "top"];
switch (ct) {
case "top":
case "bottom":
return ne ? kt ? It : $t : kt ? $t : It;
case "left":
case "right":
return kt ? le : ae;
default:
return [];
}
}(st(A), Q === "start", B);
return M && (O = O.map((ct) => ct + "-" + M), R && (O = O.concat(O.map(Dt)))), O;
}(l, E, g, y));
const D = [l, ...b], k = await zt(i, u), H = [];
let Y = ((t = n.flip) == null ? void 0 : t.overflows) || [];
if (h && H.push(k[L]), f) {
const { main: A, cross: R } = ue(s, a, y);
H.push(k[A], k[R]);
}
if (Y = [...Y, { placement: s, overflows: H }], !H.every((A) => A <= 0)) {
var G, ot;
const A = (((G = n.flip) == null ? void 0 : G.index) || 0) + 1, R = D[A];
if (R)
return { data: { index: A, overflows: Y }, reset: { placement: R } };
let Q = (ot = Y.filter((B) => B.overflows[0] <= 0).sort((B, M) => B.overflows[1] - M.overflows[1])[0]) == null ? void 0 : ot.placement;
if (!Q)
switch (m) {
case "bestFit": {
var V;
const B = (V = Y.map((M) => [M.placement, M.overflows.filter((O) => O > 0).reduce((O, ct) => O + ct, 0)]).sort((M, O) => M[1] - O[1])[0]) == null ? void 0 : V[0];
B && (Q = B);
break;
}
case "initialPlacement":
Q = l;
}
if (s !== Q)
return { reset: { placement: Q } };
}
return {};
} };
}, Jt = function(e) {
return e === void 0 && (e = 0), { name: "offset", options: e, async fn(i) {
const { x: t, y: s } = i, n = await async function(a, l) {
const { placement: r, platform: d, elements: h } = a, f = await (d.isRTL == null ? void 0 : d.isRTL(h.floating)), c = st(r), m = gt(r), g = ut(r) === "x", E = ["left", "top"].includes(c) ? -1 : 1, u = f && g ? -1 : 1, L = typeof l == "function" ? l(a) : l;
let { mainAxis: w, crossAxis: y, alignmentAxis: b } = typeof L == "number" ? { mainAxis: L, crossAxis: 0, alignmentAxis: null } : { mainAxis: 0, crossAxis: 0, alignmentAxis: null, ...L };
return m && typeof b == "number" && (y = m === "end" ? -1 * b : b), g ? { x: y * u, y: w * E } : { x: w * E, y: y * u };
}(i, e);
return { x: t + n.x, y: s + n.y, data: n };
} };
};
function Le(e) {
return e === "x" ? "y" : "x";
}
const ye = function(e) {
return e === void 0 && (e = {}), { name: "shift", options: e, async fn(i) {
const { x: t, y: s, placement: n } = i, { mainAxis: a = !0, crossAxis: l = !1, limiter: r = { fn: (L) => {
let { x: w, y } = L;
return { x: w, y };
} }, ...d } = e, h = { x: t, y: s }, f = await zt(i, d), c = ut(st(n)), m = Le(c);
let g = h[c], E = h[m];
if (a) {
const L = c === "y" ? "bottom" : "right";
g = Ut(g + f[c === "y" ? "top" : "left"], g, g - f[L]);
}
if (l) {
const L = m === "y" ? "bottom" : "right";
E = Ut(E + f[m === "y" ? "top" : "left"], E, E - f[L]);
}
const u = r.fn({ ...i, [c]: g, [m]: E });
return { ...u, data: { x: u.x - t, y: u.y - s } };
} };
};
function U(e) {
var i;
return ((i = e.ownerDocument) == null ? void 0 : i.defaultView) || window;
}
function $(e) {
return U(e).getComputedStyle(e);
}
function Kt(e) {
return e instanceof U(e).Node;
}
function X(e) {
return Kt(e) ? (e.nodeName || "").toLowerCase() : "";
}
let Et;
function Xt() {
if (Et)
return Et;
const e = navigator.userAgentData;
return e && Array.isArray(e.brands) ? (Et = e.brands.map((i) => i.brand + "/" + i.version).join(" "), Et) : navigator.userAgent;
}
function N(e) {
return e instanceof U(e).HTMLElement;
}
function J(e) {
return e instanceof U(e).Element;
}
function Mt(e) {
return typeof ShadowRoot > "u" ? !1 : e instanceof U(e).ShadowRoot || e instanceof ShadowRoot;
}
function _t(e) {
const { overflow: i, overflowX: t, overflowY: s, display: n } = $(e);
return /auto|scroll|overlay|hidden|clip/.test(i + s + t) && !["inline", "contents"].includes(n);
}
function we(e) {
return ["table", "td", "th"].includes(X(e));
}
function Ot(e) {
const i = /firefox/i.test(Xt()), t = $(e), s = t.backdropFilter || t.WebkitBackdropFilter;
return t.transform !== "none" || t.perspective !== "none" || !!s && s !== "none" || i && t.willChange === "filter" || i && !!t.filter && t.filter !== "none" || ["transform", "perspective"].some((n) => t.willChange.includes(n)) || ["paint", "layout", "strict", "content"].some((n) => {
const a = t.contain;
return a != null && a.includes(n);
});
}
function Ct() {
return /^((?!chrome|android).)*safari/i.test(Xt());
}
function Nt(e) {
return ["html", "body", "#document"].includes(X(e));
}
const Bt = Math.min, dt = Math.max, vt = Math.round;
function Yt(e) {
const i = $(e);
let t = parseFloat(i.width), s = parseFloat(i.height);
const n = N(e), a = n ? e.offsetWidth : t, l = n ? e.offsetHeight : s, r = vt(t) !== a || vt(s) !== l;
return r && (t = a, s = l), { width: t, height: s, fallback: r };
}
function Gt(e) {
return J(e) ? e : e.contextElement;
}
const Qt = { x: 1, y: 1 };
function rt(e) {
const i = Gt(e);
if (!N(i))
return Qt;
const t = i.getBoundingClientRect(), { width: s, height: n, fallback: a } = Yt(i);
let l = (a ? vt(t.width) : t.width) / s, r = (a ? vt(t.height) : t.height) / n;
return l && Number.isFinite(l) || (l = 1), r && Number.isFinite(r) || (r = 1), { x: l, y: r };
}
function ft(e, i, t, s) {
var n, a;
i === void 0 && (i = !1), t === void 0 && (t = !1);
const l = e.getBoundingClientRect(), r = Gt(e);
let d = Qt;
i && (s ? J(s) && (d = rt(s)) : d = rt(e));
const h = r ? U(r) : window, f = Ct() && t;
let c = (l.left + (f && ((n = h.visualViewport) == null ? void 0 : n.offsetLeft) || 0)) / d.x, m = (l.top + (f && ((a = h.visualViewport) == null ? void 0 : a.offsetTop) || 0)) / d.y, g = l.width / d.x, E = l.height / d.y;
if (r) {
const u = U(r), L = s && J(s) ? U(s) : s;
let w = u.frameElement;
for (; w && s && L !== u; ) {
const y = rt(w), b = w.getBoundingClientRect(), D = getComputedStyle(w);
b.x += (w.clientLeft + parseFloat(D.paddingLeft)) * y.x, b.y += (w.clientTop + parseFloat(D.paddingTop)) * y.y, c *= y.x, m *= y.y, g *= y.x, E *= y.y, c += b.x, m += b.y, w = U(w).frameElement;
}
}
return yt({ width: g, height: E, x: c, y: m });
}
function K(e) {
return ((Kt(e) ? e.ownerDocument : e.document) || window.document).documentElement;
}
function At(e) {
return J(e) ? { scrollLeft: e.scrollLeft, scrollTop: e.scrollTop } : { scrollLeft: e.pageXOffset, scrollTop: e.pageYOffset };
}
function Zt(e) {
return ft(K(e)).left + At(e).scrollLeft;
}
function mt(e) {
if (X(e) === "html")
return e;
const i = e.assignedSlot || e.parentNode || Mt(e) && e.host || K(e);
return Mt(i) ? i.host : i;
}
function te(e) {
const i = mt(e);
return Nt(i) ? i.ownerDocument.body : N(i) && _t(i) ? i : te(i);
}
function ee(e, i) {
var t;
i === void 0 && (i = []);
const s = te(e), n = s === ((t = e.ownerDocument) == null ? void 0 : t.body), a = U(s);
return n ? i.concat(a, a.visualViewport || [], _t(s) ? s : []) : i.concat(s, ee(s));
}
function Pt(e, i, t) {
let s;
if (i === "viewport")
s = function(l, r) {
const d = U(l), h = K(l), f = d.visualViewport;
let c = h.clientWidth, m = h.clientHeight, g = 0, E = 0;
if (f) {
c = f.width, m = f.height;
const u = Ct();
(!u || u && r === "fixed") && (g = f.offsetLeft, E = f.offsetTop);
}
return { width: c, height: m, x: g, y: E };
}(e, t);
else if (i === "document")
s = function(l) {
const r = K(l), d = At(l), h = l.ownerDocument.body, f = dt(r.scrollWidth, r.clientWidth, h.scrollWidth, h.clientWidth), c = dt(r.scrollHeight, r.clientHeight, h.scrollHeight, h.clientHeight);
let m = -d.scrollLeft + Zt(l);
const g = -d.scrollTop;
return $(h).direction === "rtl" && (m += dt(r.clientWidth, h.clientWidth) - f), { width: f, height: c, x: m, y: g };
}(K(e));
else if (J(i))
s = function(l, r) {
const d = ft(l, !0, r === "fixed"), h = d.top + l.clientTop, f = d.left + l.clientLeft, c = N(l) ? rt(l) : { x: 1, y: 1 };
return { width: l.clientWidth * c.x, height: l.clientHeight * c.y, x: f * c.x, y: h * c.y };
}(i, t);
else {
const l = { ...i };
if (Ct()) {
var n, a;
const r = U(e);
l.x -= ((n = r.visualViewport) == null ? void 0 : n.offsetLeft) || 0, l.y -= ((a = r.visualViewport) == null ? void 0 : a.offsetTop) || 0;
}
s = l;
}
return yt(s);
}
function Wt(e, i) {
return N(e) && $(e).position !== "fixed" ? i ? i(e) : e.offsetParent : null;
}
function jt(e, i) {
const t = U(e);
if (!N(e))
return t;
let s = Wt(e, i);
for (; s && we(s) && $(s).position === "static"; )
s = Wt(s, i);
return s && (X(s) === "html" || X(s) === "body" && $(s).position === "static" && !Ot(s)) ? t : s || function(n) {
let a = mt(n);
for (; N(a) && !Nt(a); ) {
if (Ot(a))
return a;
a = mt(a);
}
return null;
}(e) || t;
}
function ve(e, i, t) {
const s = N(i), n = K(i), a = ft(e, !0, t === "fixed", i);
let l = { scrollLeft: 0, scrollTop: 0 };
const r = { x: 0, y: 0 };
if (s || !s && t !== "fixed")
if ((X(i) !== "body" || _t(n)) && (l = At(i)), N(i)) {
const d = ft(i, !0);
r.x = d.x + i.clientLeft, r.y = d.y + i.clientTop;
} else
n && (r.x = Zt(n));
return { x: a.left + l.scrollLeft - r.x, y: a.top + l.scrollTop - r.y, width: a.width, height: a.height };
}
const Te = { getClippingRect: function(e) {
let { element: i, boundary: t, rootBoundary: s, strategy: n } = e;
const a = t === "clippingAncestors" ? function(h, f) {
const c = f.get(h);
if (c)
return c;
let m = ee(h).filter((L) => J(L) && X(L) !== "body"), g = null;
const E = $(h).position === "fixed";
let u = E ? mt(h) : h;
for (; J(u) && !Nt(u); ) {
const L = $(u), w = Ot(u);
L.position === "fixed" && (g = null), (E ? w || g : w || L.position !== "static" || !g || !["absolute", "fixed"].includes(g.position)) ? g = L : m = m.filter((y) => y !== u), u = mt(u);
}
return f.set(h, m), m;
}(i, this._c) : [].concat(t), l = [...a, s], r = l[0], d = l.reduce((h, f) => {
const c = Pt(i, f, n);
return h.top = dt(c.top, h.top), h.right = Bt(c.right, h.right), h.bottom = Bt(c.bottom, h.bottom), h.left = dt(c.left, h.left), h;
}, Pt(i, r, n));
return { width: d.right - d.left, height: d.bottom - d.top, x: d.left, y: d.top };
}, convertOffsetParentRelativeRectToViewportRelativeRect: function(e) {
let { rect: i, offsetParent: t, strategy: s } = e;
const n = N(t), a = K(t);
if (t === a)
return i;
let l = { scrollLeft: 0, scrollTop: 0 }, r = { x: 1, y: 1 };
const d = { x: 0, y: 0 };
if ((n || !n && s !== "fixed") && ((X(t) !== "body" || _t(a)) && (l = At(t)), N(t))) {
const h = ft(t);
r = rt(t), d.x = h.x + t.clientLeft, d.y = h.y + t.clientTop;
}
return { width: i.width * r.x, height: i.height * r.y, x: i.x * r.x - l.scrollLeft * r.x + d.x, y: i.y * r.y - l.scrollTop * r.y + d.y };
}, isElement: J, getDimensions: function(e) {
return Yt(e);
}, getOffsetParent: jt, getDocumentElement: K, getScale: rt, async getElementRects(e) {
let { reference: i, floating: t, strategy: s } = e;
const n = this.getOffsetParent || jt, a = this.getDimensions;
return { reference: ve(i, await n(t), s), floating: { x: 0, y: 0, ...await a(t) } };
}, getClientRects: (e) => Array.from(e.getClientRects()), isRTL: (e) => $(e).direction === "rtl" }, ie = (e, i, t) => {
const s = /* @__PURE__ */ new Map(), n = { platform: Te, ...t }, a = { ...n.platform, _c: s };
return ce(e, i, { ...n, platform: a });
}, T = class extends I {
constructor(t, s) {
super(t, s);
o(this, "_targetElement", null);
o(this, "clicked", !1);
o(this, "_targetOffset", 4);
o(this, "_placement", null);
o(this, "_trigger", null);
o(this, "_autoclose", null);
o(this, "keyListener", (t) => {
t.key == "Escape" && this.hide();
});
this.init();
}
get isShown() {
var t;
return ((t = this._targetElement) == null ? void 0 : t.classList.contains(T.DEFAULT.class.hidden)) === !1;
}
get isHover() {
return this._trigger === "hover";
}
show() {
this.dispatchEvent(T.EVENTS.show), this.addComputePositionInTargetElement(), this._targetElement != null && this._element != null && (this._targetElement.classList.remove(T.DEFAULT.class.hidden), setTimeout(() => {
this._element.classList.add(T.DEFAULT.class.open), this._targetElement.classList.add(T.DEFAULT.class.open);
}, 1)), window.addEventListener("keydown", this.keyListener), this.dispatchEvent(T.EVENTS.shown);
}
hide() {
var t;
this.dispatchEvent(T.EVENTS.hide), this.clicked = !1, this._targetElement != null && ((t = this._element) == null || t.classList.remove(T.DEFAULT.class.open), this._targetElement.classList.remove(T.DEFAULT.class.open), this._targetElement.classList.add(T.DEFAULT.class.hidden)), window.removeEventListener("keydown", this.keyListener), this.dispatchEvent(T.EVENTS.hidden);
}
toggle() {
this.isShown ? this.hide() : this.show();
}
init() {
this._element != null && (this._targetElement = this.getTargetElement(), this.initOptions(), this.initListener());
}
initOptions() {
var t, s, n, a;
if ((t = this._element) == null || t.classList.add(T.DEFAULT.class.base), (s = this._targetElement) == null || s.classList.add(T.DEFAULT.class.base), this._placement = p.getAttribute(this._element, T.DEFAULT.attr.placement, this.config.placement), this._trigger = p.getAttribute(this._element, T.DEFAULT.attr.trigger, this.config.trigger ?? "click"), this._autoclose = p.getAttribute(this._element, T.DEFAULT.attr.autoclose, this.config.autoclose ?? "both"), ((n = this._targetElement) == null ? void 0 : n.classList.contains(T.DEFAULT.class.hidden)) === !1 && this.show(), (a = this._element) != null && a.hasAttribute(T.DEFAULT.attr.offset)) {
const l = this._element.getAttribute(T.DEFAULT.attr.offset);
isNaN(parseInt(l)) || (this._targetOffset = parseInt(l));
}
}
initListener() {
var t, s;
(t = this._element) == null || t.addEventListener("click", () => {
this._destroyed || (this.isHover ? (this.clicked ? this.hide() : this.show(), this.clicked = !this.clicked) : this.toggle());
}), this.isHover && ((s = this._element) == null || s.addEventListener("mouseover", () => {
this.show();
}), window.addEventListener("mousemove", (n) => {
this._destroyed || this._targetElement != null && this._element != null && n.target instanceof HTMLElement && !this.clicked && !p.isElementSameOrContains(this._targetElement, n.target) && !p.isElementSameOrContains(this._element, n.target) && this.hide();
})), window.addEventListener("click", (n) => {
if (!this._destroyed && this._targetElement != null && this._element != null && n.target instanceof HTMLElement) {
if (p.isElementSameOrContains(this._element, n.target))
return;
const a = p.isElementSameOrContains(this._targetElement, n.target);
(this._autoclose == "outside" && !a || this._autoclose == "inside" && a || this._autoclose == "both") && this.hide();
}
});
}
addComputePositionInTargetElement() {
const t = [Jt(this._targetOffset)];
this._element != null && this._targetElement != null && (this._targetElement.classList.add("absolute"), ie(this._element, this._targetElement, {
placement: this._placement ?? "bottom-start",
middleware: t
}).then(({ x: s, y: n }) => {
this._targetElement != null && Object.assign(this._targetElement.style, {
left: `${s}px`,
top: `${n}px`
});
}));
}
getTargetElement() {
if (this._element == null)
return null;
const t = this._element.getAttribute(T.DEFAULT.attr.target), s = this.config.target ?? t;
return typeof s == "string" ? p.findOrById(s) : s instanceof HTMLElement ? s : p.nextElementSibling(this._element);
}
};
let P = T;
o(P, "type", "dropdown"), o(P, "SELECTOR", '[data-fc-type="dropdown"]'), o(P, "EVENTS", {
show: "fc.dropdown.show",
shown: "fc.dropdown.shown",
hide: "fc.dropdown.hide",
hidden: "fc.dropdown.hidden"
}), o(P, "DEFAULT", {
class: {
base: "fc-dropdown",
hidden: "hidden",
open: "open"
},
attr: {
target: "data-fc-target",
placement: "data-fc-placement",
trigger: "data-fc-trigger",
offset: "data-fc-offset",
autoclose: "data-fc-autoclose"
}
});
const Vt = class extends I {
constructor(t, s) {
super(t, s);
o(this, "_elements", /* @__PURE__ */ new Map());
this.init();
}
init() {
if (this._element != null) {
const t = /* @__PURE__ */ new Map(), s = this._element.querySelectorAll("[data-fc-target]");
for (const n of s) {
const a = n.getAttribute(Vt.DEFAULT.attr.target);
if (a != null) {
const l = p.findOrById(a);
l != null && t.set(n, l);
}
}
this._elements = t, this.initListener();
}
}
initListener() {
for (const t of this._elements.keys())
t.addEventListener("click", () => {
this.showTab(t);
});
}
showTab(t) {
const s = this._elements.get(t), n = Array.from(this._elements.keys()).filter((l) => l != t), a = n.map((l) => this._elements.get(l));
s == null || s.classList.remove("hidden"), a.forEach((l) => l.classList.add("hidden")), s == null || s.classList.add("active"), t.classList.add("active"), a.forEach((l) => l.classList.remove("active")), n.forEach((l) => l.classList.remove("active"));
}
};
let tt = Vt;
o(tt, "type", "tab"), o(tt, "SELECTOR", '[data-fc-type="tab"]'), o(tt, "DEFAULT", {
attr: {
target: "data-fc-target"
}
});
const x = class extends I {
constructor(t, s) {
super(t, s);
o(this, "_targetElement", null);
o(this, "_windowClickListen", !1);
o(this, "keyListener", (t) => {
t.key == "Escape" && !this.isStatic && this.hide();
});
o(this, "onWindowClicked", (t) => {
!this.isStatic && t.target instanceof HTMLElement && this._targetElement && this.isShown && (p.isElementContains(this._targetElement, t.target) || this.hide());
});
this.init();
}
get isShown() {
var t;
return !((t = this._targetElement) != null && t.classList.contains(x.DEFAULT.class.hidden));
}
get isStatic() {
return this.config.behavior === "static";
}
init() {
var t;
this._element != null && (this._targetElement = this.getTargetElement(), (t = this._targetElement) == null || t.classList.add(x.DEFAULT.class.base), this.initOptions(), this.initListener());
}
initOptions() {
var s;
let t = (s = this._element) == null ? void 0 : s.getAttribute(x.DEFAULT.attr.behavior);
t ? this.config.behavior = t == "static" ? "static" : "default" : this.config.behavior == null && (this.config.behavior = "default");
}
initListener() {
var t;
this._element != null && (this._element.addEventListener("click", () => {
this.toggle();
}), (t = this._targetElement) == null || t.querySelectorAll(`[${x.DEFAULT.attr.dismiss}]`).forEach((s) => {
s.addEventListener("click", () => {
this.hide();
});
}));
}
show() {
if (this.dispatchEvent(x.EVENTS.show), this._targetElement != null && this._element != null) {
const t = document.documentElement.clientWidth;
document.body.style.paddingRight = Math.abs(window.innerWidth - t) + "px", document.body.classList.add(x.DEFAULT.class.overflowHidden), this._element.classList.add(x.DEFAULT.class.open), this._targetElement.classList.remove(x.DEFAULT.class.hidden), setTimeout(() => {
this._targetElement.classList.add(x.DEFAULT.class.open), p.showOverlay(), this._windowClickListen || (window.addEventListener("click", this.onWindowClicked), this._windowClickListen = !0);
}, 1);
}
window.addEventListener("keydown", this.keyListener), this.dispatchEvent(x.EVENTS.shown);
}
hide() {
var t;
this.dispatchEvent(x.EVENTS.hide), this._targetElement != null && this.isShown && (document.body.classList.remove(x.DEFAULT.class.overflowHidden), (t = this._element) == null || t.classList.remove(x.DEFAULT.class.open), this._targetElement.classList.remove(x.DEFAULT.class.open), Object.assign(document.body.style, {
paddingRight: null
}), setTimeout(() => {
window.removeEventListener("click", this.onWindowClicked), this._windowClickListen = !1, p.hideOverlay(), this._targetElement.classList.add(x.DEFAULT.class.hidden);
}, 1)), window.removeEventListener("keydown", this.keyListener), this.dispatchEvent(x.EVENTS.hidden);
}
toggle() {
this.isShown ? this.hide() : this.show();
}
getTargetElement() {
if (this._element == null)
return null;
const t = this.config.target ?? this._element.getAttribute(x.DEFAULT.attr.target);
return typeof t == "string" ? p.findOrById(t) : t instanceof HTMLElement ? t : p.nextElementSibling(this._element);
}
};
let W = x;
o(W, "type", "modal"), o(W, "SELECTOR", '[data-fc-type="modal"]'), o(W, "EVENTS", {
show: "fc.modal.show",
shown: "fc.modal.shown",
hide: "fc.modal.hide",
hidden: "fc.modal.hidden"
}), o(W, "DEFAULT", {
class: {
base: "fc-modal",
hidden: "hidden",
open: "open",
overflowHidden: "overflow-hidden"
},
attr: {
target: "data-fc-target",
dismiss: "data-fc-dismiss",
behavior: "data-fc-behavior"
}
});
const v = class extends I {
constructor(t, s) {
super(t, s);
o(this, "_targetElement", null);
o(this, "_arrowElement", null);
o(this, "_targetOffset", 8);
this.init();
}
get isShown() {
var t;
return !((t = this._targetElement) != null && t.classList.contains(v.DEFAULT.class.hidden));
}
get isClickTrigger() {
return this.config.trigger === "click";
}
show() {
this.computeTooltipPosition(), this.dispatchEvent(v.EVENTS.show), this._targetElement != null && this._element != null && (this._targetElement.classList.remove(v.DEFAULT.class.hidden), this._targetElement.classList.remove(v.DEFAULT.class.opacity0), setTimeout(() => {
this._element.classList.add(v.DEFAULT.class.open), this._targetElement.classList.add(v.DEFAULT.class.open), this._targetElement.classList.add(v.DEFAULT.class.opacity100);
}, 1)), this.dispatchEvent(v.EVENTS.shown);
}
hide() {
var t;
this.dispatchEvent(v.EVENTS.hide), this._targetElement != null && ((t = this._element) == null || t.classList.remove(v.DEFAULT.class.open), this._targetElement.classList.add(v.DEFAULT.class.opacity0), this._targetElement.classList.remove(v.DEFAULT.class.opacity100), this._targetElement.classList.add(v.DEFAULT.class.hidden)), this.dispatchEvent(v.EVENTS.hidden);
}
toggle() {
this.isShown ? this.hide() : this.show();
}
init() {
const t = this._element.getAttribute(v.DEFAULT.attr.target);
t ? this._targetElement = p.findOrById(t) : this._targetElement = p.nextElementSibling(this._element), this._targetElement && (this._arrowElement = this._targetElement.querySelector(`[${v.DEFAULT.attr.arrow}]`)), this.initOptions(), this.initListener();
}
initOptions() {
var t, s, n, a, l;
if ((t = this._element) != null && t.hasAttribute(v.DEFAULT.attr.placement) && (this.config.placement = (s = this._element) == null ? void 0 : s.getAttribute(v.DEFAULT.attr.placement)), (n = this._element) != null && n.hasAttribute(v.DEFAULT.attr.trigger) && (this.config.trigger = ((a = this._element) == null ? void 0 : a.getAttribute(v.DEFAULT.attr.trigger)) === "click" ? "click" : "hover"), (l = this._element) != null && l.hasAttribute(v.DEFAULT.attr.offset)) {
const r = this._element.getAttribute(v.DEFAULT.attr.offset);
isNaN(parseInt(r)) || (this._targetOffset = parseInt(r));
}
}
initListener() {
this._element != null && (this.isClickTrigger ? this._element.addEventListener("click", () => {
this.toggle();
}) : (this._element.addEventListener("mouseenter", () => {
this.show();
}), this._element.addEventListener("mouseleave", () => {
this.hide();
})));
}
computeTooltipPosition() {
const t = [Jt(this._targetOffset), ye({ padding: 2 }), pe({ fallbackStrategy: "bestFit" })];
this._arrowElement && t.push(fe({ element: this._arrowElement })), this._element != null && this._targetElement != null && (this._targetElement.classList.add(v.DEFAULT.class.absolute), this._arrowElement && this._arrowElement.classList.add(v.DEFAULT.class.absolute), ie(this._element, this._targetElement, {
placement: this.config.placement,
middleware: t
}).then(({ x: s, y: n, middlewareData: a }) => {
var l, r, d, h;
if (Object.assign(this._targetElement.style, {
left: `${s}px`,
top: `${n}px`
}), a.arrow && this._arrowElement) {
const { x: f, y: c } = a.arrow, m = f != null ? `${f}px` : `${-this._arrowElement.offsetWidth / 2}px`, g = c != null ? `${c}px` : `${-this._arrowElement.offsetHeight / 2}px`, E = {
left: (l = this.config.placement) != null && l.includes("left") ? null : m,
top: (r = this.config.placement) != null && r.includes("top") ? null : g,
right: (d = this.config.placement) != null && d.includes("left") ? m : null,
bottom: (h = this.config.placement) != null && h.includes("top") ? g : null
};
Object.assign(this._arrowElement.style, E);
}
}));
}
};
let j = v;
o(j, "type", "tooltip"), o(j, "SELECTOR", '[data-fc-type="tooltip"]'), o(j, "EVENTS", {
show: "fc.tooltip.show",
shown: "fc.tooltip.shown",
hide: "fc.tooltip.hide",
hidden: "fc.tooltip.hidden"
}), o(j, "DEFAULT", {
class: {
base: "fc-collapse",
hidden: "hidden",
open: "open",
opacity0: "opacity-0",
opacity100: "opacity-100",
absolute: "absolute"
},
attr: {
target: "data-fc-target",
placement: "data-fc-placement",
trigger: "data-fc-trigger",
arrow: "data-fc-arrow",
offset: "data-fc-offset"
}
});
const _ = class extends I {
constructor(t, s) {
super(t, s);
o(this, "_targetElement", null);
o(this, "keyListener", (t) => {
t.key == "Escape" && !this.isStatic && this.hide();
});
this.init();
}
init() {
var t;
this._element != null && (this._targetElement = this.getTargetElement(), (t = this._targetElement) == null || t.classList.add(_.DEFAULT.class.base), this.initOptions(), this.initListener());
}
initOptions() {
var a, l, r;
let t = (a = this._element) == null ? void 0 : a.getAttribute(_.DEFAULT.attr.scroll);
t ? this.config.scroll = t !== "false" : this.config.scroll == null && (this.config.scroll = !1);
let s = (l = this._element) == null ? void 0 : l.getAttribute(_.DEFAULT.attr.backdrop);
s ? this.config.backdrop = s !== "false" : this.config.backdrop == null && (this.config.backdrop = !0);
let n = (r = this._element) == null ? void 0 : r.getAttribute(_.DEFAULT.attr.behavior);
n ? this.config.behavior = n == "static" ? "static" : "default" : this.config.behavior == null && (this.config.behavior = "default");
}
initListener() {
var t;
this._element != null && (this._element.addEventListener("click", () => {
this.toggle();
}), (t = this._targetElement) == null || t.querySelectorAll(`[${_.DEFAULT.attr.dismiss}]`).forEach((s) => {
s.addEventListener("click", () => {
this.hide();
});
}), Lt.listenOverlayClick(() => {
this.isStatic || this.hide();
}));
}
get isShown() {
var t;
return !((t = this._targetElement) != null && t.classList.contains(_.DEFAULT.class.hidden));
}
get isStatic() {
return this.config.behavior === "static";
}
show() {
if (this.dispatchEvent(_.EVENTS.show), this._targetElement != null && this._element != null && (this._targetElement.classList.remove(_.DEFAULT.class.hidden), this._element.classList.add(_.DEFAULT.class.open), this.config.backdrop && p.showOverlay(), setTimeout(() => {
this._targetElement.classList.add(_.DEFAULT.class.open);
}, 1), !this.config.scroll)) {
const t = document.documentElement.clientWidth;
document.body.style.paddingRight = Math.abs(window.innerWidth - t) + "px", document.body.classList.add("overflow-hidden");
}
window.addEventListener("keydown", this.keyListener), this.dispatchEvent(_.EVENTS.shown);
}
hide() {
var t;
this.isShown && (this.dispatchEvent(_.EVENTS.hide), this._targetElement != null && this.isShown && ((t = this._element) == null || t.classList.remove(_.DEFAULT.class.open), this._targetElement.classList.remove(_.DEFAULT.class.open), Lt.afterTransition(this._targetElement, () => {
this._targetElement.classList.add(_.DEFAULT.class.hidden), this.config.backdrop && p.hideOverlay();
}), this.config.scroll || (document.body.classList.remove("overflow-hidden"), Object.assign(document.body.style, {
paddingRight: null
}))), window.removeEventListener("keydown", this.keyListener), this.dispatchEvent(_.EVENTS.hidden));
}
toggle() {
this.isShown ? this.hide() : this.show();
}
getTargetElement() {
if (this._element == null)
return null;
const t = this.config.target ?? this._element.getAttribute(_.DEFAULT.attr.target);
return typeof t == "string" ? p.findOrById(t) : t instanceof HTMLElement ? t : p.nextElementSibling(this._element);
}
};
let q = _;
o(q, "type", "offcanvas"), o(q, "SELECTOR", '[data-fc-type="offcanvas"]'), o(q, "EVENTS", {
show: "fc.offcanvas.show",
shown: "fc.offcanvas.shown",
hide: "fc.offcanvas.hide",
hidden: "fc.offcanvas.hidden"
}), o(q, "DEFAULT", {
class: {
base: "fc-offcanvas",
hidden: "hidden",
open: "open"
},
attr: {
target: "data-fc-target",
dismiss: "data-fc-dismiss",
behavior: "data-fc-behavior",
scroll: "data-fc-scroll",
backdrop: "data-fc-backdrop"
}
});
const at = class extends I {
constructor(t, s) {
super(t, s);
o(this, "_targetElement", null);
this.init();
}
init() {
this._element != null && (this._targetElement = this._getTargetElement()), this._targetElement && this.initListener();
}
initListener() {
this._element.addEventListener("click", () => {
this.hide();
});
}
hide() {
this.dispatchEvent(at.EVENTS.hide), this._targetElement != null && this._targetElement.classList.add(at.DEFAULT.class.hidden), this.dispatchEvent(at.EVENTS.hidden);
}
_getTargetElement() {
if (this._element == null)
return null;
const t = this.config.target ?? this._element.getAttribute(at.DEFAULT.attr.target);
return typeof t == "string" ? p.findOrById(t) : t instanceof HTMLElement ? t : this._element.parentElement;
}
};
let z = at;
o(z, "type", "dismissable"), o(z, "SELECTOR", "[data-fc-dismiss]"), o(z, "EVENTS", {
hide: "fc.dismissable.hide",
hidden: "fc.dismissable.hidden"
}), o(z, "DEFAULT", {
class: {
hidden: "hidden"
},
attr: {
target: "data-fc-dismiss"
}
});
const be = {
clearArray(e) {
return e.filter((i) => i != null);
},
deepClone(e) {
return JSON.parse(JSON.stringify(e));
}
}, bt = class {
static get state() {
return this._initialize || (this._initialize = this.retrieveFromLocal()), this._state;
}
static init() {
this._initialize = this.retrieveFromLocal(), this._old_state = be.deepClone(this._state);
}
static changeTheme(i) {
this._state.theme = i, this.updateState();
}
static updateState() {
this.updateInLocal(), this.notifyListener();
}
static updateInLocal() {
localStorage.setItem(this.stateKey, JSON.stringify(this._state));
}
static retrieveFromLocal() {
const i = localStorage.getItem(this.stateKey);
if (i == null)
return this._state = this.defaultState, !0;
const t = JSON.parse(i);
return Object.keys(t).forEach((s) => t[s] == null ? t[s] = this.defaultState[s] : void 0), this._state = t, !0;
}
static attachListener(i) {
this._listener.push(i);
}
static detachListener(i) {
this._listener = this._listener.filter((t) => t != i);
}
static notifyListener() {
for (const i of this._listener)
i(bt.state);
}
};
let F = bt;
o(F, "_old_state", null), o(F, "_initialize", !1), o(F, "stateKey", "frost.app_state"), o(F, "defaultState", { theme: "light" }), o(F, "_listener", []), o(F, "_state", bt.defaultState);
class et {
static init() {
F.attachListener(this.themeChangeListener), this.themeChangeListener(F.state);
}
static themeChangeListener(i) {
i.theme == "system" ? (et.changeTheme(window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light"), window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change", et.windowThemeListener)) : (et.changeTheme(i.theme), window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change", et.windowThemeListener));
}
static windowThemeListener(i) {
et.changeTheme(i.matches ? "dark" : "light");
}
static changeTheme(i) {
const t = document.getElementsByTagName("html")[0];
i === "dark" ? t.classList.add("dark") : t.classList.remove("dark");
}
}
const it = class extends I {
constructor(t, s) {
super(t, s);
o(this, "theme", null);
o(this, "trigger", null);
this.init();
}
notifyThemeChanged(t) {
var s, n;
if (this.trigger != "switch")
(s = this._element) == null || s.classList.remove("light-theme", "dark-theme", "system-theme"), (n = this._element) == null || n.classList.add(`${t}-theme`);
else if (this._element instanceof HTMLInputElement) {
const a = this._element;
t != "dark" ? (a.removeAttribute("checked"), a.checked = !1) : (a.setAttribute("checked", "checked"), a.checked = !0);
}
}
init() {
this._element != null && (this._element.classList.add(it.DEFAULT.class.base), this.theme = p.getAttribute(this._element, it.DEFAULT.attr.theme, this.config.theme), this.trigger = p.getAttribute(this._element, it.DEFAULT.attr.trigger, this.config.trigger), this.initListeners(), this.notifyThemeChanged(F.state.theme));
}
initListeners() {
var t;
if (this.trigger == "switch" && this._element instanceof HTMLInputElement) {
const s = this._element;
s == null || s.addEventListener("change", (n) => {
F.changeTheme(s.checked ? "dark" : "light"), this.setOtherSwitch();
});
} else
this.theme != null && this.trigger != "never" && ((t = this._element) == null || t.addEventListener("click", () => {
F.changeTheme(this.theme), this.setOtherSwitch();
}));
}
setOtherSwitch() {
const t = F.state.theme;
p.findAll(it.SELECTOR).map((s) => it.getInstanceOrCreate(s)).forEach((s) => {
s == null || s.notifyThemeChanged(t);
});
}
};
let lt = it;
o(lt, "type", "theme_switcher"), o(lt, "SELECTOR", '[data-fc-type="theme_switcher"]'), o(lt, "DEFAULT", {
class: {
base: "fc-theme"
},
attr: {
theme: "data-fc-theme",
trigger: "data-fc-trigger"
}
});
const xt = class {
static get instance() {
return this._instance == null && (this._instance = new xt()), this._instance;
}
init() {
typeof window < "u" && (F.init(), et.init(), p.addOverlay(["transition-all", "fixed", "inset-0", "z-40", "bg-gray-900", "bg-opacity-50", "dark:bg-opacity-80"]), xt.instance.awakeComponents());
}
awakeComponents() {
[C, Z, P, tt, W, q, j, z, lt].map((i) => p.findAll(i.SELECTOR).forEach((t) => i.getInstanceOrCreate(t)));
}
};
let pt = xt;
o(pt, "_instance", null);
const se = pt.instance, xe = {
Collapse: C,
Accordion: Z,
Dropdown: P,
Tooltip: j,
Modal: W,
Offcanvas: q,
Dismissable: z,
Tab: tt,
app: se
}, _e = se.init;
typeof window < "u" && (window.frost = xe, _e());
export {
Z as Accordion,
C as Collapse,
z as Dismissable,
P as Dropdown,
W as Modal,
q as Offcanvas,
tt as Tab,
lt as ThemeSwitcher,
j as Tooltip,
_e as initFrost
};