epic
🧩 Syntax:
import {
m as Et,
q as j,
F as ne,
s as z,
v as X,
x as K,
y as p,
l as E,
i as G,
z as W,
A as ee,
B as be,
T as _t,
C as xt,
D as Lt,
E as Tt,
G as he,
_ as Ze,
H as $t,
I as Ye,
J as kt,
K as ze,
L as Ee,
o as N,
g as De,
w as se,
b as J,
M as Ce,
a as c,
N as Re,
O as Ft,
P as Ct,
c as H,
Q as O,
R as Ot,
d as w,
t as S,
S as pe,
U as Pt,
V as At,
e as Dt,
W as Rt
} from "./entry.9bc8680c.js";
const Nt = {
wrapper: "relative z-50",
inner: "fixed inset-0 overflow-y-auto",
container: "flex min-h-full items-end sm:items-center justify-center text-center",
padding: "p-4 sm:p-0",
margin: "sm:my-8",
base: "relative text-left rtl:text-right overflow-hidden flex flex-col",
overlay: {
base: "fixed inset-0 transition-opacity",
background: "bg-gray-200/75 dark:bg-gray-800/75",
transition: {
enter: "ease-out duration-300",
enterFrom: "opacity-0",
enterTo: "opacity-100",
leave: "ease-in duration-200",
leaveFrom: "opacity-100",
leaveTo: "opacity-0"
}
},
background: "bg-white dark:bg-gray-900",
ring: "",
rounded: "rounded-lg",
shadow: "shadow-xl",
width: "w-full sm:max-w-lg",
height: "",
fullscreen: "w-screen h-screen",
transition: {
enter: "ease-out duration-300",
enterFrom: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
enterTo: "opacity-100 translate-y-0 sm:scale-100",
leave: "ease-in duration-200",
leaveFrom: "opacity-100 translate-y-0 sm:scale-100",
leaveTo: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95"
}
};
function Q(e, t, ...n) {
if (e in t) {
let o = t[e];
return typeof o == "function" ? o(...n) : o
}
let l = new Error(`Tried to handle "${e}" but there is no handler defined. Only defined handlers are: ${Object.keys(t).map(o=>`"${o}"`).join(", ")}.`);
throw Error.captureStackTrace && Error.captureStackTrace(l, Q), l
}
var $e = (e => (e[e.None = 0] = "None", e[e.RenderStrategy = 1] = "RenderStrategy", e[e.Static = 2] = "Static", e))($e || {}),
ae = (e => (e[e.Unmount = 0] = "Unmount", e[e.Hidden = 1] = "Hidden", e))(ae || {});
function te({
visible: e = !0,
features: t = 0,
ourProps: n,
theirProps: l,
...o
}) {
var a;
let r = tt(l, n),
s = Object.assign(o, {
props: r
});
if (e || t & 2 && r.static) return Oe(s);
if (t & 1) {
let i = (a = r.unmount) == null || a ? 0 : 1;
return Q(i, {
0() {
return null
},
1() {
return Oe({
...o,
props: {
...r,
hidden: !0,
style: {
display: "none"
}
}
})
}
})
}
return Oe(s)
}
function Oe({
props: e,
attrs: t,
slots: n,
slot: l,
name: o
}) {
var a, r;
let {
as: s,
...i
} = nt(e, ["unmount", "static"]), u = (a = n.default) == null ? void 0 : a.call(n, l), d = {};
if (l) {
let g = !1,
f = [];
for (let [b, y] of Object.entries(l)) typeof y == "boolean" && (g = !0), y === !0 && f.push(b);
g && (d["data-headlessui-state"] = f.join(" "))
}
if (s === "template") {
if (u = et(u ?? []), Object.keys(i).length > 0 || Object.keys(t).length > 0) {
let [g, ...f] = u ?? [];
if (!jt(g) || f.length > 0) throw new Error(['Passing props on "template"!', "", `The current component <${o} /> is rendering a "template".`,
"However we need to passthrough the following props:", Object.keys(i).concat(Object.keys(t)).map(m => m.trim()).filter((m, C, I) =>
I.indexOf(m) === C).sort((m, C) => m.localeCompare(C)).map(m => ` - ${m}`).join(`
`), "", "You can apply a few solutions:", ['Add an `as="..."` prop, to ensure that we render an actual element instead of a "template".',
"Render a single element as the child so that we can forward the props onto that element."
].map(m => ` - ${m}`).join(`
`)
].join(`
`));
let b = tt((r = g.props) != null ? r : {}, i),
y = Et(g, b);
for (let m in b) m.startsWith("on") && (y.props || (y.props = {}), y.props[m] = b[m]);
return y
}
return Array.isArray(u) && u.length === 1 ? u[0] : u
}
return j(s, Object.assign({}, i, d), {
default: () => u
})
}
function et(e) {
return e.flatMap(t => t.type === ne ? et(t.children) : [t])
}
function tt(...e) {
if (e.length === 0) return {};
if (e.length === 1) return e[0];
let t = {},
n = {};
for (let l of e)
for (let o in l) o.startsWith("on") && typeof l[o] == "function" ? (n[o] != null || (n[o] = []), n[o].push(l[o])) : t[o] = l[o];
if (t.disabled || t["aria-disabled"]) return Object.assign(t, Object.fromEntries(Object.keys(n).map(l => [l, void 0])));
for (let l in n) Object.assign(t, {
[l](o, ...a) {
let r = n[l];
for (let s of r) {
if (o instanceof Event && o.defaultPrevented) return;
s(o, ...a)
}
}
});
return t
}
function nt(e, t = []) {
let n = Object.assign({}, e);
for (let l of t) l in n && delete n[l];
return n
}
function jt(e) {
return e == null ? !1 : typeof e.type == "string" || typeof e.type == "object" || typeof e.type == "function"
}
let Mt = 0;
function Ht() {
return ++Mt
}
function Ue() {
return Ht()
}
var lt = (e => (e.Space = " ", e.Enter = "Enter", e.Escape = "Escape", e.Backspace = "Backspace", e.Delete = "Delete", e.ArrowLeft = "ArrowLeft", e.ArrowUp =
"ArrowUp", e.ArrowRight = "ArrowRight", e.ArrowDown = "ArrowDown", e.Home = "Home", e.End = "End", e.PageUp = "PageUp", e.PageDown = "PageDown", e
.Tab = "Tab", e))(lt || {});
function A(e) {
var t;
return e == null || e.value == null ? null : (t = e.value.$el) != null ? t : e.value
}
let at = Symbol("Context");
var B = (e => (e[e.Open = 1] = "Open", e[e.Closed = 2] = "Closed", e[e.Closing = 4] = "Closing", e[e.Opening = 8] = "Opening", e))(B || {});
function Bt() {
return Ve() !== null
}
function Ve() {
return z(at, null)
}
function It(e) {
X(at, e)
}
var Ut = Object.defineProperty,
Vt = (e, t, n) => t in e ? Ut(e, t, {
enumerable: !0,
configurable: !0,
writable: !0,
value: n
}) : e[t] = n,
Ke = (e, t, n) => (Vt(e, typeof t != "symbol" ? t + "" : t, n), n);
class Wt {
constructor() {
Ke(this, "current", this.detect()), Ke(this, "currentId", 0)
}
set(t) {
this.current !== t && (this.currentId = 0, this.current = t)
}
reset() {
this.set(this.detect())
}
nextId() {
return ++this.currentId
}
get isServer() {
return this.current === "server"
}
get isClient() {
return this.current === "client"
}
detect() {
return typeof window > "u" || typeof document > "u" ? "server" : "client"
}
}
let ye = new Wt;
function de(e) {
if (ye.isServer) return null;
if (e instanceof Node) return e.ownerDocument;
if (e != null && e.hasOwnProperty("value")) {
let t = A(e);
if (t) return t.ownerDocument
}
return document
}
let Ne = ["[contentEditable=true]", "[tabindex]", "a[href]", "area[href]", "button:not([disabled])", "iframe", "input:not([disabled])",
"select:not([disabled])", "textarea:not([disabled])"
].map(e => `${e}:not([tabindex='-1'])`).join(",");
var le = (e => (e[e.First = 1] = "First", e[e.Previous = 2] = "Previous", e[e.Next = 4] = "Next", e[e.Last = 8] = "Last", e[e.WrapAround = 16] = "WrapAround",
e[e.NoScroll = 32] = "NoScroll", e))(le || {}),
ot = (e => (e[e.Error = 0] = "Error", e[e.Overflow = 1] = "Overflow", e[e.Success = 2] = "Success", e[e.Underflow = 3] = "Underflow", e))(ot || {}),
Gt = (e => (e[e.Previous = -1] = "Previous", e[e.Next = 1] = "Next", e))(Gt || {});
function qt(e = document.body) {
return e == null ? [] : Array.from(e.querySelectorAll(Ne)).sort((t, n) => Math.sign((t.tabIndex || Number.MAX_SAFE_INTEGER) - (n.tabIndex || Number
.MAX_SAFE_INTEGER)))
}
var rt = (e => (e[e.Strict = 0] = "Strict", e[e.Loose = 1] = "Loose", e))(rt || {});
function Yt(e, t = 0) {
var n;
return e === ((n = de(e)) == null ? void 0 : n.body) ? !1 : Q(t, {
0() {
return e.matches(Ne)
},
1() {
let l = e;
for (; l !== null;) {
if (l.matches(Ne)) return !0;
l = l.parentElement
}
return !1
}
})
}
var zt = (e => (e[e.Keyboard = 0] = "Keyboard", e[e.Mouse = 1] = "Mouse", e))(zt || {});
typeof window < "u" && typeof document < "u" && (document.addEventListener("keydown", e => {
e.metaKey || e.altKey || e.ctrlKey || (document.documentElement.dataset.headlessuiFocusVisible = "")
}, !0), document.addEventListener("click", e => {
e.detail === 1 ? delete document.documentElement.dataset.headlessuiFocusVisible : e.detail === 0 && (document.documentElement.dataset
.headlessuiFocusVisible = "")
}, !0));
function ce(e) {
e == null || e.focus({
preventScroll: !0
})
}
let Kt = ["textarea", "input"].join(",");
function Jt(e) {
var t, n;
return (n = (t = e == null ? void 0 : e.matches) == null ? void 0 : t.call(e, Kt)) != null ? n : !1
}
function Xt(e, t = n => n) {
return e.slice().sort((n, l) => {
let o = t(n),
a = t(l);
if (o === null || a === null) return 0;
let r = o.compareDocumentPosition(a);
return r & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : r & Node.DOCUMENT_POSITION_PRECEDING ? 1 : 0
})
}
function Te(e, t, {
sorted: n = !0,
relativeTo: l = null,
skipElements: o = []
} = {}) {
var a;
let r = (a = Array.isArray(e) ? e.length > 0 ? e[0].ownerDocument : document : e == null ? void 0 : e.ownerDocument) != null ? a : document,
s = Array.isArray(e) ? n ? Xt(e) : e : qt(e);
o.length > 0 && s.length > 1 && (s = s.filter(y => !o.includes(y))), l = l ?? r.activeElement;
let i = (() => {
if (t & 5) return 1;
if (t & 10) return -1;
throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")
})(),
u = (() => {
if (t & 1) return 0;
if (t & 2) return Math.max(0, s.indexOf(l)) - 1;
if (t & 4) return Math.max(0, s.indexOf(l)) + 1;
if (t & 8) return s.length - 1;
throw new Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")
})(),
d = t & 32 ? {
preventScroll: !0
} : {},
g = 0,
f = s.length,
b;
do {
if (g >= f || g + f <= 0) return 0;
let y = u + g;
if (t & 16) y = (y + f) % f;
else {
if (y < 0) return 3;
if (y >= f) return 1
}
b = s[y], b == null || b.focus(d), g += i
} while (b !== r.activeElement);
return t & 6 && Jt(b) && b.select(), 2
}
function _e(e, t, n) {
ye.isServer || K(l => {
document.addEventListener(e, t, n), l(() => document.removeEventListener(e, t, n))
})
}
function st(e, t, n) {
ye.isServer || K(l => {
window.addEventListener(e, t, n), l(() => window.removeEventListener(e, t, n))
})
}
function Qt(e, t, n = E(() => !0)) {
function l(a, r) {
if (!n.value || a.defaultPrevented) return;
let s = r(a);
if (s === null || !s.getRootNode().contains(s)) return;
let i = function u(d) {
return typeof d == "function" ? u(d()) : Array.isArray(d) || d instanceof Set ? d : [d]
}(e);
for (let u of i) {
if (u === null) continue;
let d = u instanceof HTMLElement ? u : A(u);
if (d != null && d.contains(s) || a.composed && a.composedPath().includes(d)) return
}
return !Yt(s, rt.Loose) && s.tabIndex !== -1 && a.preventDefault(), t(a, s)
}
let o = p(null);
_e("pointerdown", a => {
var r, s;
n.value && (o.value = ((s = (r = a.composedPath) == null ? void 0 : r.call(a)) == null ? void 0 : s[0]) || a.target)
}, !0), _e("mousedown", a => {
var r, s;
n.value && (o.value = ((s = (r = a.composedPath) == null ? void 0 : r.call(a)) == null ? void 0 : s[0]) || a.target)
}, !0), _e("click", a => {
o.value && (l(a, () => o.value), o.value = null)
}, !0), _e("touchend", a => l(a, () => a.target instanceof HTMLElement ? a.target : null), !0), st("blur", a => l(a, () => window.document
.activeElement instanceof HTMLIFrameElement ? window.document.activeElement : null), !0)
}
var ke = (e => (e[e.None = 1] = "None", e[e.Focusable = 2] = "Focusable", e[e.Hidden = 4] = "Hidden", e))(ke || {});
let je = G({
name: "Hidden",
props: {
as: {
type: [Object, String],
default: "div"
},
features: {
type: Number,
default: 1
}
},
setup(e, {
slots: t,
attrs: n
}) {
return () => {
let {
features: l,
...o
} = e, a = {
"aria-hidden": (l & 2) === 2 ? !0 : void 0,
style: {
position: "fixed",
top: 1,
left: 1,
width: 1,
height: 0,
padding: 0,
margin: -1,
overflow: "hidden",
clip: "rect(0, 0, 0, 0)",
whiteSpace: "nowrap",
borderWidth: "0",
...(l & 4) === 4 && (l & 2) !== 2 && {
display: "none"
}
}
};
return te({
ourProps: a,
theirProps: o,
slot: {},
attrs: n,
slots: t,
name: "Hidden"
})
}
}
});
function Zt() {
return /iPhone/gi.test(window.navigator.platform) || /Mac/gi.test(window.navigator.platform) && window.navigator.maxTouchPoints > 0
}
function We(e) {
typeof queueMicrotask == "function" ? queueMicrotask(e) : Promise.resolve().then(e).catch(t => setTimeout(() => {
throw t
}))
}
function we() {
let e = [],
t = {
addEventListener(n, l, o, a) {
return n.addEventListener(l, o, a), t.add(() => n.removeEventListener(l, o, a))
},
requestAnimationFrame(...n) {
let l = requestAnimationFrame(...n);
t.add(() => cancelAnimationFrame(l))
},
nextFrame(...n) {
t.requestAnimationFrame(() => {
t.requestAnimationFrame(...n)
})
},
setTimeout(...n) {
let l = setTimeout(...n);
t.add(() => clearTimeout(l))
},
microTask(...n) {
let l = {
current: !0
};
return We(() => {
l.current && n[0]()
}), t.add(() => {
l.current = !1
})
},
style(n, l, o) {
let a = n.style.getPropertyValue(l);
return Object.assign(n.style, {
[l]: o
}), this.add(() => {
Object.assign(n.style, {
[l]: a
})
})
},
group(n) {
let l = we();
return n(l), this.add(() => l.dispose())
},
add(n) {
return e.push(n), () => {
let l = e.indexOf(n);
if (l >= 0)
for (let o of e.splice(l, 1)) o()
}
},
dispose() {
for (let n of e.splice(0)) n()
}
};
return t
}
var ge = (e => (e[e.Forwards = 0] = "Forwards", e[e.Backwards = 1] = "Backwards", e))(ge || {});
function en() {
let e = p(0);
return st("keydown", t => {
t.key === "Tab" && (e.value = t.shiftKey ? 1 : 0)
}), e
}
function it(e, t, n, l) {
ye.isServer || K(o => {
e = e ?? window, e.addEventListener(t, n, l), o(() => e.removeEventListener(t, n, l))
})
}
function tn(e) {
function t() {
document.readyState !== "loading" && (e(), document.removeEventListener("DOMContentLoaded", t))
}
typeof window < "u" && typeof document < "u" && (document.addEventListener("DOMContentLoaded", t), t())
}
function ut(e) {
if (!e) return new Set;
if (typeof e == "function") return new Set(e());
let t = new Set;
for (let n of e.value) {
let l = A(n);
l instanceof HTMLElement && t.add(l)
}
return t
}
var ct = (e => (e[e.None = 1] = "None", e[e.InitialFocus = 2] = "InitialFocus", e[e.TabLock = 4] = "TabLock", e[e.FocusLock = 8] = "FocusLock", e[e
.RestoreFocus = 16] = "RestoreFocus", e[e.All = 30] = "All", e))(ct || {});
let ve = Object.assign(G({
name: "FocusTrap",
props: {
as: {
type: [Object, String],
default: "div"
},
initialFocus: {
type: Object,
default: null
},
features: {
type: Number,
default: 30
},
containers: {
type: [Object, Function],
default: p(new Set)
}
},
inheritAttrs: !1,
setup(e, {
attrs: t,
slots: n,
expose: l
}) {
let o = p(null);
l({
el: o,
$el: o
});
let a = E(() => de(o)),
r = p(!1);
W(() => r.value = !0), ee(() => r.value = !1), ln({
ownerDocument: a
}, E(() => r.value && !!(e.features & 16)));
let s = an({
ownerDocument: a,
container: o,
initialFocus: E(() => e.initialFocus)
}, E(() => r.value && !!(e.features & 2)));
on({
ownerDocument: a,
container: o,
containers: e.containers,
previousActiveElement: s
}, E(() => r.value && !!(e.features & 8)));
let i = en();
function u(b) {
let y = A(o);
y && (m => m())(() => {
Q(i.value, {
[ge.Forwards]: () => {
Te(y, le.First, {
skipElements: [b.relatedTarget]
})
},
[ge.Backwards]: () => {
Te(y, le.Last, {
skipElements: [b.relatedTarget]
})
}
})
})
}
let d = p(!1);
function g(b) {
b.key === "Tab" && (d.value = !0, requestAnimationFrame(() => {
d.value = !1
}))
}
function f(b) {
if (!r.value) return;
let y = ut(e.containers);
A(o) instanceof HTMLElement && y.add(A(o));
let m = b.relatedTarget;
m instanceof HTMLElement && m.dataset.headlessuiFocusGuard !== "true" && (dt(y, m) || (d.value ? Te(A(o), Q(i.value, {
[ge.Forwards]: () => le.Next,
[ge.Backwards]: () => le.Previous
}) | le.WrapAround, {
relativeTo: b.target
}) : b.target instanceof HTMLElement && ce(b.target)))
}
return () => {
let b = {},
y = {
ref: o,
onKeydown: g,
onFocusout: f
},
{
features: m,
initialFocus: C,
containers: I,
...D
} = e;
return j(ne, [!!(m & 4) && j(je, {
as: "button",
type: "button",
"data-headlessui-focus-guard": !0,
onFocus: u,
features: ke.Focusable
}), te({
ourProps: y,
theirProps: {
...t,
...D
},
slot: b,
attrs: t,
slots: n,
name: "FocusTrap"
}), !!(m & 4) && j(je, {
as: "button",
type: "button",
"data-headlessui-focus-guard": !0,
onFocus: u,
features: ke.Focusable
})])
}
}
}), {
features: ct
}),
ie = [];
tn(() => {
function e(t) {
t.target instanceof HTMLElement && t.target !== document.body && ie[0] !== t.target && (ie.unshift(t.target), ie = ie.filter(n => n != null && n
.isConnected), ie.splice(10))
}
window.addEventListener("click", e, {
capture: !0
}), window.addEventListener("mousedown", e, {
capture: !0
}), window.addEventListener("focus", e, {
capture: !0
}), document.body.addEventListener("click", e, {
capture: !0
}), document.body.addEventListener("mousedown", e, {
capture: !0
}), document.body.addEventListener("focus", e, {
capture: !0
})
});
function nn(e) {
let t = p(ie.slice());
return be([e], ([n], [l]) => {
l === !0 && n === !1 ? We(() => {
t.value.splice(0)
}) : l === !1 && n === !0 && (t.value = ie.slice())
}, {
flush: "post"
}), () => {
var n;
return (n = t.value.find(l => l != null && l.isConnected)) != null ? n : null
}
}
function ln({
ownerDocument: e
}, t) {
let n = nn(t);
W(() => {
K(() => {
var l, o;
t.value || ((l = e.value) == null ? void 0 : l.activeElement) === ((o = e.value) == null ? void 0 : o.body) && ce(n())
}, {
flush: "post"
})
}), ee(() => {
t.value && ce(n())
})
}
function an({
ownerDocument: e,
container: t,
initialFocus: n
}, l) {
let o = p(null),
a = p(!1);
return W(() => a.value = !0), ee(() => a.value = !1), W(() => {
be([t, n, l], (r, s) => {
if (r.every((u, d) => (s == null ? void 0 : s[d]) === u) || !l.value) return;
let i = A(t);
i && We(() => {
var u, d;
if (!a.value) return;
let g = A(n),
f = (u = e.value) == null ? void 0 : u.activeElement;
if (g) {
if (g === f) {
o.value = f;
return
}
} else if (i.contains(f)) {
o.value = f;
return
}
g ? ce(g) : Te(i, le.First | le.NoScroll) === ot.Error && console.warn(
"There are no focusable elements inside the <FocusTrap />"), o.value = (d = e.value) == null ? void 0 : d
.activeElement
})
}, {
immediate: !0,
flush: "post"
})
}), o
}
function on({
ownerDocument: e,
container: t,
containers: n,
previousActiveElement: l
}, o) {
var a;
it((a = e.value) == null ? void 0 : a.defaultView, "focus", r => {
if (!o.value) return;
let s = ut(n);
A(t) instanceof HTMLElement && s.add(A(t));
let i = l.value;
if (!i) return;
let u = r.target;
u && u instanceof HTMLElement ? dt(s, u) ? (l.value = u, ce(u)) : (r.preventDefault(), r.stopPropagation(), ce(i)) : ce(l.value)
}, !0)
}
function dt(e, t) {
for (let n of e)
if (n.contains(t)) return !0;
return !1
}
let Pe = new Map,
me = new Map;
function Je(e, t = p(!0)) {
K(n => {
var l;
if (!t.value) return;
let o = A(e);
if (!o) return;
n(function() {
var r;
if (!o) return;
let s = (r = me.get(o)) != null ? r : 1;
if (s === 1 ? me.delete(o) : me.set(o, s - 1), s !== 1) return;
let i = Pe.get(o);
i && (i["aria-hidden"] === null ? o.removeAttribute("aria-hidden") : o.setAttribute("aria-hidden", i["aria-hidden"]), o.inert = i
.inert, Pe.delete(o))
});
let a = (l = me.get(o)) != null ? l : 0;
me.set(o, a + 1), a === 0 && (Pe.set(o, {
"aria-hidden": o.getAttribute("aria-hidden"),
inert: o.inert
}), o.setAttribute("aria-hidden", "true"), o.inert = !0)
})
}
let ft = Symbol("ForcePortalRootContext");
function rn() {
return z(ft, !1)
}
let Xe = G({
name: "ForcePortalRoot",
props: {
as: {
type: [Object, String],
default: "template"
},
force: {
type: Boolean,
default: !1
}
},
setup(e, {
slots: t,
attrs: n
}) {
return X(ft, e.force), () => {
let {
force: l,
...o
} = e;
return te({
theirProps: o,
ourProps: {},
slot: {},
slots: t,
attrs: n,
name: "ForcePortalRoot"
})
}
}
});
function sn(e) {
let t = de(e);
if (!t) {
if (e === null) return null;
throw new Error(`[Headless UI]: Cannot find ownerDocument for contextElement: ${e}`)
}
let n = t.getElementById("headlessui-portal-root");
if (n) return n;
let l = t.createElement("div");
return l.setAttribute("id", "headlessui-portal-root"), t.body.appendChild(l)
}
let un = G({
name: "Portal",
props: {
as: {
type: [Object, String],
default: "div"
}
},
setup(e, {
slots: t,
attrs: n
}) {
let l = p(null),
o = E(() => de(l)),
a = rn(),
r = z(pt, null),
s = p(a === !0 || r == null ? sn(l.value) : r.resolveTarget());
K(() => {
a || r != null && (s.value = r.resolveTarget())
});
let i = z(Me, null);
return W(() => {
let u = A(l);
u && i && ee(i.register(u))
}), ee(() => {
var u, d;
let g = (u = o.value) == null ? void 0 : u.getElementById("headlessui-portal-root");
g && s.value === g && s.value.children.length <= 0 && ((d = s.value.parentElement) == null || d.removeChild(s.value))
}), () => {
if (s.value === null) return null;
let u = {
ref: l,
"data-headlessui-portal": ""
};
return j(_t, {
to: s.value
}, te({
ourProps: u,
theirProps: e,
slot: {},
attrs: n,
slots: t,
name: "Portal"
}))
}
}
}),
Me = Symbol("PortalParentContext");
function cn() {
let e = z(Me, null),
t = p([]);
function n(a) {
return t.value.push(a), e && e.register(a), () => l(a)
}
function l(a) {
let r = t.value.indexOf(a);
r !== -1 && t.value.splice(r, 1), e && e.unregister(a)
}
let o = {
register: n,
unregister: l,
portals: t
};
return [t, G({
name: "PortalWrapper",
setup(a, {
slots: r
}) {
return X(Me, o), () => {
var s;
return (s = r.default) == null ? void 0 : s.call(r)
}
}
})]
}
let pt = Symbol("PortalGroupContext"),
dn = G({
name: "PortalGroup",
props: {
as: {
type: [Object, String],
default: "template"
},
target: {
type: Object,
default: null
}
},
setup(e, {
attrs: t,
slots: n
}) {
let l = xt({
resolveTarget() {
return e.target
}
});
return X(pt, l), () => {
let {
target: o,
...a
} = e;
return te({
theirProps: a,
ourProps: {},
slot: {},
attrs: t,
slots: n,
name: "PortalGroup"
})
}
}
}),
vt = Symbol("StackContext");
var He = (e => (e[e.Add = 0] = "Add", e[e.Remove = 1] = "Remove", e))(He || {});
function fn() {
return z(vt, () => {})
}
function pn({
type: e,
enabled: t,
element: n,
onUpdate: l
}) {
let o = fn();
function a(...r) {
l == null || l(...r), o(...r)
}
W(() => {
be(t, (r, s) => {
r ? a(0, e, n) : s === !0 && a(1, e, n)
}, {
immediate: !0,
flush: "sync"
})
}), ee(() => {
t.value && a(1, e, n)
}), X(vt, a)
}
let vn = Symbol("DescriptionContext");
function mn({
slot: e = p({}),
name: t = "Description",
props: n = {}
} = {}) {
let l = p([]);
function o(a) {
return l.value.push(a), () => {
let r = l.value.indexOf(a);
r !== -1 && l.value.splice(r, 1)
}
}
return X(vn, {
register: o,
slot: e,
name: t,
props: n
}), E(() => l.value.length > 0 ? l.value.join(" ") : void 0)
}
function hn(e) {
let t = Lt(e.getSnapshot());
return ee(e.subscribe(() => {
t.value = e.getSnapshot()
})), t
}
function gn(e, t) {
let n = e(),
l = new Set;
return {
getSnapshot() {
return n
},
subscribe(o) {
return l.add(o), () => l.delete(o)
},
dispatch(o, ...a) {
let r = t[o].call(n, ...a);
r && (n = r, l.forEach(s => s()))
}
}
}
function bn() {
let e;
return {
before({
doc: t
}) {
var n;
let l = t.documentElement;
e = ((n = t.defaultView) != null ? n : window).innerWidth - l.clientWidth
},
after({
doc: t,
d: n
}) {
let l = t.documentElement,
o = l.clientWidth - l.offsetWidth,
a = e - o;
n.style(l, "paddingRight", `${a}px`)
}
}
}
function yn() {
if (!Zt()) return {};
let e;
return {
before() {
e = window.pageYOffset
},
after({
doc: t,
d: n,
meta: l
}) {
function o(r) {
return l.containers.flatMap(s => s()).some(s => s.contains(r))
}
if (window.getComputedStyle(t.documentElement).scrollBehavior !== "auto") {
let r = we();
r.style(t.documentElement, "scroll-behavior", "auto"), n.add(() => n.microTask(() => r.dispose()))
}
n.style(t.body, "marginTop", `-${e}px`), window.scrollTo(0, 0);
let a = null;
n.addEventListener(t, "click", r => {
if (r.target instanceof HTMLElement) try {
let s = r.target.closest("a");
if (!s) return;
let {
hash: i
} = new URL(s.href), u = t.querySelector(i);
u && !o(u) && (a = u)
} catch {}
}, !0), n.addEventListener(t, "touchmove", r => {
r.target instanceof HTMLElement && !o(r.target) && r.preventDefault()
}, {
passive: !1
}), n.add(() => {
window.scrollTo(0, window.pageYOffset + e), a && a.isConnected && (a.scrollIntoView({
block: "nearest"
}), a = null)
})
}
}
}
function wn() {
return {
before({
doc: e,
d: t
}) {
t.style(e.documentElement, "overflow", "hidden")
}
}
}
function Sn(e) {
let t = {};
for (let n of e) Object.assign(t, n(t));
return t
}
let ue = gn(() => new Map, {
PUSH(e, t) {
var n;
let l = (n = this.get(e)) != null ? n : {
doc: e,
count: 0,
d: we(),
meta: new Set
};
return l.count++, l.meta.add(t), this.set(e, l), this
},
POP(e, t) {
let n = this.get(e);
return n && (n.count--, n.meta.delete(t)), this
},
SCROLL_PREVENT({
doc: e,
d: t,
meta: n
}) {
let l = {
doc: e,
d: t,
meta: Sn(n)
},
o = [yn(), bn(), wn()];
o.forEach(({
before: a
}) => a == null ? void 0 : a(l)), o.forEach(({
after: a
}) => a == null ? void 0 : a(l))
},
SCROLL_ALLOW({
d: e
}) {
e.dispose()
},
TEARDOWN({
doc: e
}) {
this.delete(e)
}
});
ue.subscribe(() => {
let e = ue.getSnapshot(),
t = new Map;
for (let [n] of e) t.set(n, n.documentElement.style.overflow);
for (let n of e.values()) {
let l = t.get(n.doc) === "hidden",
o = n.count !== 0;
(o && !l || !o && l) && ue.dispatch(n.count > 0 ? "SCROLL_PREVENT" : "SCROLL_ALLOW", n), n.count === 0 && ue.dispatch("TEARDOWN", n)
}
});
function En(e, t, n) {
let l = hn(ue),
o = E(() => {
let a = e.value ? l.value.get(e.value) : void 0;
return a ? a.count > 0 : !1
});
return be([e, t], ([a, r], [s], i) => {
if (!a || !r) return;
ue.dispatch("PUSH", a, n);
let u = !1;
i(() => {
u || (ue.dispatch("POP", s ?? a, n), u = !0)
})
}, {
immediate: !0
}), o
}
function _n({
defaultContainers: e = [],
portals: t,
mainTreeNodeRef: n
} = {}) {
let l = p(null),
o = de(l);
function a() {
var r;
let s = [];
for (let i of e) i !== null && (i instanceof HTMLElement ? s.push(i) : "value" in i && i.value instanceof HTMLElement && s.push(i.value));
if (t != null && t.value)
for (let i of t.value) s.push(i);
for (let i of (r = o == null ? void 0 : o.querySelectorAll("html > *, body > *")) != null ? r : []) i !== document.body && i !== document.head &&
i instanceof HTMLElement && i.id !== "headlessui-portal-root" && (i.contains(A(l)) || s.some(u => i.contains(u)) || s.push(i));
return s
}
return {
resolveContainers: a,
contains(r) {
return a().some(s => s.contains(r))
},
mainTreeNodeRef: l,
MainTreeNode() {
return n != null ? null : j(je, {
features: ke.Hidden,
ref: l
})
}
}
}
var xn = (e => (e[e.Open = 0] = "Open", e[e.Closed = 1] = "Closed", e))(xn || {});
let Be = Symbol("DialogContext");
function mt(e) {
let t = z(Be, null);
if (t === null) {
let n = new Error(`<${e} /> is missing a parent <Dialog /> component.`);
throw Error.captureStackTrace && Error.captureStackTrace(n, mt), n
}
return t
}
let xe = "DC8F892D-2EBD-447C-A4C8-A03058436FF4",
Ln = G({
name: "Dialog",
inheritAttrs: !1,
props: {
as: {
type: [Object, String],
default: "div"
},
static: {
type: Boolean,
default: !1
},
unmount: {
type: Boolean,
default: !0
},
open: {
type: [Boolean, String],
default: xe
},
initialFocus: {
type: Object,
default: null
},
id: {
type: String,
default: () => `headlessui-dialog-${Ue()}`
}
},
emits: {
close: e => !0
},
setup(e, {
emit: t,
attrs: n,
slots: l,
expose: o
}) {
var a;
let r = p(!1);
W(() => {
r.value = !0
});
let s = p(0),
i = Ve(),
u = E(() => e.open === xe && i !== null ? (i.value & B.Open) === B.Open : e.open),
d = p(null),
g = E(() => de(d));
if (o({
el: d,
$el: d
}), !(e.open !== xe || i !== null)) throw new Error("You forgot to provide an `open` prop to the `Dialog`.");
if (typeof u.value != "boolean") throw new Error(
`You provided an \`open\` prop to the \`Dialog\`, but the value is not a boolean. Received: ${u.value===xe?void 0:e.open}`);
let f = E(() => r.value && u.value ? 0 : 1),
b = E(() => f.value === 0),
y = E(() => s.value > 1),
m = z(Be, null) !== null,
[C, I] = cn(),
{
resolveContainers: D,
mainTreeNodeRef: M,
MainTreeNode: L
} = _n({
portals: C,
defaultContainers: [E(() => {
var k;
return (k = $.panelRef.value) != null ? k : d.value
})]
}),
fe = E(() => y.value ? "parent" : "leaf"),
v = E(() => i !== null ? (i.value & B.Closing) === B.Closing : !1),
h = E(() => m || v.value ? !1 : b.value),
F = E(() => {
var k, R, q;
return (q = Array.from((R = (k = g.value) == null ? void 0 : k.querySelectorAll("body > *")) != null ? R : []).find(Y => Y.id ===
"headlessui-portal-root" ? !1 : Y.contains(A(M)) && Y instanceof HTMLElement)) != null ? q : null
});
Je(F, h);
let _ = E(() => y.value ? !0 : b.value),
x = E(() => {
var k, R, q;
return (q = Array.from((R = (k = g.value) == null ? void 0 : k.querySelectorAll("[data-headlessui-portal]")) != null ? R : []).find(
Y => Y.contains(A(M)) && Y instanceof HTMLElement)) != null ? q : null
});
Je(x, _), pn({
type: "Dialog",
enabled: E(() => f.value === 0),
element: d,
onUpdate: (k, R) => {
if (R === "Dialog") return Q(k, {
[He.Add]: () => s.value += 1,
[He.Remove]: () => s.value -= 1
})
}
});
let T = mn({
name: "DialogDescription",
slot: E(() => ({
open: u.value
}))
}),
U = p(null),
$ = {
titleId: U,
panelRef: p(null),
dialogState: f,
setTitleId(k) {
U.value !== k && (U.value = k)
},
close() {
t("close", !1)
}
};
X(Be, $);
let oe = E(() => !(!b.value || y.value));
Qt(D, (k, R) => {
$.close(), Tt(() => R == null ? void 0 : R.focus())
}, oe);
let P = E(() => !(y.value || f.value !== 0));
it((a = g.value) == null ? void 0 : a.defaultView, "keydown", k => {
P.value && (k.defaultPrevented || k.key === lt.Escape && (k.preventDefault(), k.stopPropagation(), $.close()))
});
let V = E(() => !(v.value || f.value !== 0 || m));
return En(g, V, k => {
var R;
return {
containers: [...(R = k.containers) != null ? R : [], D]
}
}), K(k => {
if (f.value !== 0) return;
let R = A(d);
if (!R) return;
let q = new ResizeObserver(Y => {
for (let Se of Y) {
let Z = Se.target.getBoundingClientRect();
Z.x === 0 && Z.y === 0 && Z.width === 0 && Z.height === 0 && $.close()
}
});
q.observe(R), k(() => q.disconnect())
}), () => {
let {
id: k,
open: R,
initialFocus: q,
...Y
} = e, Se = {
...n,
ref: d,
id: k,
role: "dialog",
"aria-modal": f.value === 0 ? !0 : void 0,
"aria-labelledby": U.value,
"aria-describedby": T.value
}, Z = {
open: f.value === 0
};
return j(Xe, {
force: !0
}, () => [j(un, () => j(dn, {
target: d.value
}, () => j(Xe, {
force: !1
}, () => j(ve, {
initialFocus: q,
containers: D,
features: b.value ? Q(fe.value, {
parent: ve.features.RestoreFocus,
leaf: ve.features.All & ~ve.features.FocusLock
}) : ve.features.None
}, () => j(I, {}, () => te({
ourProps: Se,
theirProps: {
...Y,
...n
},
slot: Z,
attrs: n,
slots: l,
visible: f.value === 0,
features: $e.RenderStrategy | $e.Static,
name: "Dialog"
})))))), j(L)])
}
}
}),
Tn = G({
name: "DialogPanel",
props: {
as: {
type: [Object, String],
default: "div"
},
id: {
type: String,
default: () => `headlessui-dialog-panel-${Ue()}`
}
},
setup(e, {
attrs: t,
slots: n,
expose: l
}) {
let o = mt("DialogPanel");
l({
el: o.panelRef,
$el: o.panelRef
});
function a(r) {
r.stopPropagation()
}
return () => {
let {
id: r,
...s
} = e, i = {
id: r,
ref: o.panelRef,
onClick: a
};
return te({
ourProps: i,
theirProps: s,
slot: {
open: o.dialogState.value === 0
},
attrs: t,
slots: n,
name: "DialogPanel"
})
}
}
});
function $n(e) {
let t = {
called: !1
};
return (...n) => {
if (!t.called) return t.called = !0, e(...n)
}
}
function Ae(e, ...t) {
e && t.length > 0 && e.classList.add(...t)
}
function Le(e, ...t) {
e && t.length > 0 && e.classList.remove(...t)
}
var Ie = (e => (e.Finished = "finished", e.Cancelled = "cancelled", e))(Ie || {});
function kn(e, t) {
let n = we();
if (!e) return n.dispose;
let {
transitionDuration: l,
transitionDelay: o
} = getComputedStyle(e), [a, r] = [l, o].map(s => {
let [i = 0] = s.split(",").filter(Boolean).map(u => u.includes("ms") ? parseFloat(u) : parseFloat(u) * 1e3).sort((u, d) => d - u);
return i
});
return a !== 0 ? n.setTimeout(() => t("finished"), a + r) : t("finished"), n.add(() => t("cancelled")), n.dispose
}
function Qe(e, t, n, l, o, a) {
let r = we(),
s = a !== void 0 ? $n(a) : () => {};
return Le(e, ...o), Ae(e, ...t, ...n), r.nextFrame(() => {
Le(e, ...n), Ae(e, ...l), r.add(kn(e, i => (Le(e, ...l, ...t), Ae(e, ...o), s(i))))
}), r.add(() => Le(e, ...t, ...n, ...l, ...o)), r.add(() => s("cancelled")), r.dispose
}
function re(e = "") {
return e.split(" ").filter(t => t.trim().length > 1)
}
let Ge = Symbol("TransitionContext");
var Fn = (e => (e.Visible = "visible", e.Hidden = "hidden", e))(Fn || {});
function Cn() {
return z(Ge, null) !== null
}
function On() {
let e = z(Ge, null);
if (e === null) throw new Error("A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.");
return e
}
function Pn() {
let e = z(qe, null);
if (e === null) throw new Error("A <TransitionChild /> is used but it is missing a parent <TransitionRoot />.");
return e
}
let qe = Symbol("NestingContext");
function Fe(e) {
return "children" in e ? Fe(e.children) : e.value.filter(({
state: t
}) => t === "visible").length > 0
}
function ht(e) {
let t = p([]),
n = p(!1);
W(() => n.value = !0), ee(() => n.value = !1);
function l(a, r = ae.Hidden) {
let s = t.value.findIndex(({
id: i
}) => i === a);
s !== -1 && (Q(r, {
[ae.Unmount]() {
t.value.splice(s, 1)
},
[ae.Hidden]() {
t.value[s].state = "hidden"
}
}), !Fe(t) && n.value && (e == null || e()))
}
function o(a) {
let r = t.value.find(({
id: s
}) => s === a);
return r ? r.state !== "visible" && (r.state = "visible") : t.value.push({
id: a,
state: "visible"
}), () => l(a, ae.Unmount)
}
return {
children: t,
register: o,
unregister: l
}
}
let gt = $e.RenderStrategy,
bt = G({
props: {
as: {
type: [Object, String],
default: "div"
},
show: {
type: [Boolean],
default: null
},
unmount: {
type: [Boolean],
default: !0
},
appear: {
type: [Boolean],
default: !1
},
enter: {
type: [String],
default: ""
},
enterFrom: {
type: [String],
default: ""
},
enterTo: {
type: [String],
default: ""
},
entered: {
type: [String],
default: ""
},
leave: {
type: [String],
default: ""
},
leaveFrom: {
type: [String],
default: ""
},
leaveTo: {
type: [String],
default: ""
}
},
emits: {
beforeEnter: () => !0,
afterEnter: () => !0,
beforeLeave: () => !0,
afterLeave: () => !0
},
setup(e, {
emit: t,
attrs: n,
slots: l,
expose: o
}) {
let a = p(0);
function r() {
a.value |= B.Opening, t("beforeEnter")
}
function s() {
a.value &= ~B.Opening, t("afterEnter")
}
function i() {
a.value |= B.Closing, t("beforeLeave")
}
function u() {
a.value &= ~B.Closing, t("afterLeave")
}
if (!Cn() && Bt()) return () => j(yt, {
...e,
onBeforeEnter: r,
onAfterEnter: s,
onBeforeLeave: i,
onAfterLeave: u
}, l);
let d = p(null),
g = E(() => e.unmount ? ae.Unmount : ae.Hidden);
o({
el: d,
$el: d
});
let {
show: f,
appear: b
} = On(), {
register: y,
unregister: m
} = Pn(), C = p(f.value ? "visible" : "hidden"), I = {
value: !0
}, D = Ue(), M = {
value: !1
}, L = ht(() => {
!M.value && C.value !== "hidden" && (C.value = "hidden", m(D), u())
});
W(() => {
let $ = y(D);
ee($)
}), K(() => {
if (g.value === ae.Hidden && D) {
if (f.value && C.value !== "visible") {
C.value = "visible";
return
}
Q(C.value, {
hidden: () => m(D),
visible: () => y(D)
})
}
});
let fe = re(e.enter),
v = re(e.enterFrom),
h = re(e.enterTo),
F = re(e.entered),
_ = re(e.leave),
x = re(e.leaveFrom),
T = re(e.leaveTo);
W(() => {
K(() => {
if (C.value === "visible") {
let $ = A(d);
if ($ instanceof Comment && $.data === "") throw new Error(
"Did you forget to passthrough the `ref` to the actual DOM node?")
}
})
});
function U($) {
let oe = I.value && !b.value,
P = A(d);
!P || !(P instanceof HTMLElement) || oe || (M.value = !0, f.value && r(), f.value || i(), $(f.value ? Qe(P, fe, v, h, F, V => {
M.value = !1, V === Ie.Finished && s()
}) : Qe(P, _, x, T, F, V => {
M.value = !1, V === Ie.Finished && (Fe(L) || (C.value = "hidden", m(D), u()))
})))
}
return W(() => {
be([f], ($, oe, P) => {
U(P), I.value = !1
}, {
immediate: !0
})
}), X(qe, L), It(E(() => Q(C.value, {
visible: B.Open,
hidden: B.Closed
}) | a.value)), () => {
let {
appear: $,
show: oe,
enter: P,
enterFrom: V,
enterTo: k,
entered: R,
leave: q,
leaveFrom: Y,
leaveTo: Se,
...Z
} = e, wt = {
ref: d
}, St = {
...Z,
...b.value && f.value && ye.isServer ? {
class: he([n.class, Z.class, ...fe, ...v])
} : {}
};
return te({
theirProps: St,
ourProps: wt,
slot: {},
slots: l,
attrs: n,
features: gt,
visible: C.value === "visible",
name: "TransitionChild"
})
}
}
}),
An = bt,
yt = G({
inheritAttrs: !1,
props: {
as: {
type: [Object, String],
default: "div"
},
show: {
type: [Boolean],
default: null
},
unmount: {
type: [Boolean],
default: !0
},
appear: {
type: [Boolean],
default: !1
},
enter: {
type: [String],
default: ""
},
enterFrom: {
type: [String],
default: ""
},
enterTo: {
type: [String],
default: ""
},
entered: {
type: [String],
default: ""
},
leave: {
type: [String],
default: ""
},
leaveFrom: {
type: [String],
default: ""
},
leaveTo: {
type: [String],
default: ""
}
},
emits: {
beforeEnter: () => !0,
afterEnter: () => !0,
beforeLeave: () => !0,
afterLeave: () => !0
},
setup(e, {
emit: t,
attrs: n,
slots: l
}) {
let o = Ve(),
a = E(() => e.show === null && o !== null ? (o.value & B.Open) === B.Open : e.show);
K(() => {
if (![!0, !1].includes(a.value)) throw new Error('A <Transition /> is used but it is missing a `:show="true | false"` prop.')
});
let r = p(a.value ? "visible" : "hidden"),
s = ht(() => {
r.value = "hidden"
}),
i = p(!0),
u = {
show: a,
appear: E(() => e.appear || !i.value)
};
return W(() => {
K(() => {
i.value = !1, a.value ? r.value = "visible" : Fe(s) || (r.value = "hidden")
})
}), X(qe, s), X(Ge, u), () => {
let d = nt(e, ["show", "appear", "unmount", "onBeforeEnter", "onBeforeLeave", "onAfterEnter", "onAfterLeave"]),
g = {
unmount: e.unmount
};
return te({
ourProps: {
...g,
as: "template"
},
theirProps: {},
slot: {},
slots: {
...l,
default: () => [j(An, {
onBeforeEnter: () => t("beforeEnter"),
onAfterEnter: () => t("afterEnter"),
onBeforeLeave: () => t("beforeLeave"),
onAfterLeave: () => t("afterLeave"),
...n,
...g,
...d
}, l.default)]
},
attrs: {},
features: gt,
visible: r.value === "visible",
name: "Transition"
})
}
}
});
const Dn = $t(Ye.ui.strategy, Ye.ui.modal, Nt),
Rn = G({
components: {
HDialog: Ln,
HDialogPanel: Tn,
TransitionRoot: yt,
TransitionChild: bt
},
inheritAttrs: !1,
props: {
modelValue: {
type: Boolean,
default: !1
},
appear: {
type: Boolean,
default: !1
},
overlay: {
type: Boolean,
default: !0
},
transition: {
type: Boolean,
default: !0
},
preventClose: {
type: Boolean,
default: !1
},
fullscreen: {
type: Boolean,
default: !1
},
class: {
type: [String, Object, Array],
default: () => ""
},
ui: {
type: Object,
default: () => ({})
}
},
emits: ["update:modelValue", "close"],
setup(e, {
emit: t
}) {
const {
ui: n,
attrs: l
} = kt("modal", ze(e, "ui"), Dn, ze(e, "class")), o = E({
get() {
return e.modelValue
},
set(s) {
t("update:modelValue", s)
}
}), a = E(() => e.transition ? {
...n.value.transition
} : {});
function r(s) {
o.value = s, t("close")
}
return {
ui: n,
attrs: l,
isOpen: o,
transitionClass: a,
close: r
}
}
});
function Nn(e, t, n, l, o, a) {
const r = Ee("TransitionChild"),
s = Ee("HDialogPanel"),
i = Ee("HDialog"),
u = Ee("TransitionRoot");
return N(), De(u, {
appear: e.appear,
show: e.isOpen,
as: "template"
}, {
default: se(() => [J(i, Ce({
class: e.ui.wrapper
}, e.attrs, {
onClose: t[0] || (t[0] = d => !e.preventClose && e.close(d))
}), {
default: se(() => [e.overlay ? (N(), De(r, Ce({
key: 0,
as: "template",
appear: e.appear
}, e.ui.overlay.transition), {
default: se(() => [c("div", {
class: he([e.ui.overlay.base, e.ui.overlay.background])
}, null, 2)]),
_: 1
}, 16, ["appear"])) : Re("", !0), c("div", {
class: he(e.ui.inner)
}, [c("div", {
class: he([e.ui.container, !e.fullscreen && e.ui.padding])
}, [J(r, Ce({
as: "template",
appear: e.appear
}, e.transitionClass), {
default: se(() => [J(s, {
class: he([e.ui.base, e.ui.background, e.ui.ring, e.ui.shadow, e
.fullscreen ? e.ui.fullscreen : [e.ui.width, e.ui
.height, e.ui.rounded, e.ui.margin
]
])
}, {
default: se(() => [Ft(e.$slots, "default")]),
_: 3
}, 8, ["class"])]),
_: 3
}, 16, ["appear"])], 2)], 2)]),
_: 3
}, 16, ["class"])]),
_: 3
}, 8, ["appear", "show"])
}
const jn = Ze(Rn, [
["render", Nn]
]),
Mn = {
key: 0,
class: "bg-dark-primary h-screen items-center justify-center text-center flex flex-col gap-y-10"
},
Hn = {
class: "flex flex-col items-center gap-y-4 py-8 text-center"
},
Bn = c("span", {
class: "text-4xl text-gray-100"
}, "Reset save data?", -1),
In = c("span", {
class: "text-gray-400"
}, [w("All game progress will be wiped and the game will reload."), c("br"), w("This can not be undone.")], -1),
Un = {
class: "flex gap-x-4"
},
Vn = {
class: "text-4xl text-gray-100"
},
Wn = {
class: "text-blue-500"
},
Gn = {
class: "text-blue-500"
},
qn = c("img", {
draggable: "false",
src: "https://cdn.hypefoxstudios.com/data/melon/img/icon.svg",
class: "w-64 h-64 cursor-pointer select-none"
}, null, -1),
Yn = [qn],
zn = c("span", {
class: "text-4xl text-gray-200"
}, "Shop for upgrades", -1),
Kn = {
class: "grid"
},
Jn = {
class: "text-indigo-200 text-2xl"
},
Xn = {
class: "text-blue-500"
},
Qn = {
class: "flex flex-wrap"
},
Zn = {
class: "grid mb-2"
},
el = {
class: "text-indigo-400 text-2xl mt-4"
},
tl = {
class: "text-blue-500"
},
nl = {
class: "text-blue-500"
},
ll = {
class: "text-gray-500"
},
al = {
class: "text-blue-500"
},
ol = {
class: "text-gray-400 max-w-xs break-words"
},
rl = {
class: "text-green-600"
},
sl = {
class: "text-blue-500"
},
il = {
class: "text-red-400"
},
ul = {
class: "text-blue-500"
},
cl = {
class: "text-red-500"
},
dl = {
class: "text-blue-500"
},
fl = {
class: "grid text-white"
},
pl = {
class: "text-blue-500"
},
vl = {
class: "text-blue-500"
},
ml = {
class: "text-blue-500"
},
hl = {
class: "text-blue-500"
},
gl = {
class: "text-blue-500"
},
bl = {
class: "text-blue-500"
},
yl = {
class: "text-blue-500"
},
wl = {
class: "text-blue-500"
},
Sl = {
class: "text-blue-500"
},
El = {
class: "text-blue-500"
},
_l = {
class: "text-blue-500"
},
xl = {
class: "text-blue-500"
},
Ll = {
class: "text-blue-500"
},
Tl = {
class: "text-blue-500"
},
$l = {
class: "text-blue-500"
},
kl = {
class: "pt-4"
},
Fl = {
key: 1
},
Cl = {
class: "flex items-center justify-center h-screen"
},
Ol = {
class: "flex flex-col items-center gap-y-2"
},
Pl = c("a", {
class: "text-red-500 text-4xl font-bold uppercase"
}, "Cheating detected!", -1),
Al = c("a", {
class: "text-red-500 text-xl"
}, "Looks like you've been caught red-handed! Remember, in the game of life, cheats never prosper. Better luck next time!", -1),
Dl = c("a", {
class: "text-red-500 text-xl font-extrabold"
}, "Save data has been destroyed.", -1),
Rl = G({
__name: "game",
setup(e) {
const t = Pt(),
n = p("11a99af6"),
l = t.$settings,
o = new Date().getFullYear(),
a = p(Array()),
r = p("00:00:00"),
s = t.$data,
i = p(!1),
u = p(!1),
d = Ct(),
g = p(0),
f = p(0),
b = p(0),
y = p(""),
m = p(1),
C = p(0),
I = p(0),
D = p(0),
M = p({});
class L {
static price(v, h) {
return (.1 * v * h + v) * l.general.inflationRate
}
static progress(v = !0) {
let h = 0;
if (v) return (L.buildings() / L.buildings(!0, !0) * 100).toFixed(2);
for (const F of s.buildings.categories)
for (const _ of F.members) _.owned >= _.limit && h++;
return h
}
static buildings(v = !0, h = !1) {
let F = 0;
if (v)
for (const _ of s.buildings.categories)
for (const x of _.members) h ? F += x.limit : F += x.owned;
else
for (const _ of s.buildings.categories)
for (const x of _.members) F++;
return F
}
static leveling() {
return l.leveling.base * m.value ** 2
}
static purchase(v, h) {
const _ = s.buildings.categories.find(x => x.name === v).members.find(x => x.name === h);
if (_.owned >= _.limit) {
d.add({
title: "Limit check failed.",
description: `You have reached the limit (${_.owned}/${_.limit}) of ${_.name}.`,
color: "red",
icon: "i-lucide-alert-circle",
timeout: 5 * 1e3
});
return
}
for (const x of _.conditions) switch (x.name) {
case "level":
if (m.value < x.value) {
d.add({
title: "Condition check failed.",
description: `You do not meet the required level to purchase this item (need ${x.value.toLocaleString()}, have ${m.value.toLocaleString()}).`,
color: "red",
icon: "i-lucide-alert-circle",
timeout: 5 * 1e3
});
return
}
break
}
for (const x of _.cost) switch (x.name) {
case "melons":
let T = L.price(x.base, _.owned);
f.value >= T ? (f.value -= T, I.value += T, _.owned++, d.add({
title: "Transaction successful!",
description: `Purchased ${_.name}. You now have ${_.owned} of them. ${T.toLocaleString()} melons was deducted from your balance, and you have ${f.value.toLocaleString()} melons remaining.`,
color: "green",
icon: "i-lucide-check",
timeout: 5 * 1e3
}), T = L.price(x.base, _.owned), M.value[_.name + x.name] = T) : d.add({
title: "Transaction check failed.",
description: `You do not have enough melons to purchase this item (need ${T.toLocaleString()}, have ${f.value.toLocaleString()}, missing ${(T-f.value).toLocaleString()}).`,
color: "red",
icon: "i-lucide-alert-circle",
timeout: 5 * 1e3
});
break
}
}
static saveGame() {
localStorage.setItem("game", JSON.stringify({
melons: f.value,
clicks: g.value,
level: m.value,
total: C.value,
spent: I.value,
tracking: M.value,
verid: n.value,
data: s
}))
}
static tick() {
if (u.value) return;
b.value++, y.value = b.value === 1 ? "tick" : "ticks", D.value = 0;
for (const _ of s.buildings.categories)
for (const x of _.members)
if (x.owned > 0)
for (const T of x.output) switch (T.name) {
case "melons":
const U = x.owned * T.value * l.general.inflationRate;
f.value += U, C.value += U, D.value += U;
break
}
D.value >= L.leveling() && (m.value++, d.add({
title: "Level up!",
description: `Good job! You have reached level ${m.value.toLocaleString()}.`,
color: "blue",
icon: "i-lucide-rocket",
timeout: 5 * 1e3
}));
let v = parseInt(r.value.split(":")[2]),
h = parseInt(r.value.split(":")[1]),
F = parseInt(r.value.split(":")[0]);
v++, v >= 60 && (v = 0, h++), h >= 60 && (h = 0, F++), r.value =
`${F.toString().padStart(2,"0")}:${h.toString().padStart(2,"0")}:${v.toString().padStart(2,"0")}`, L.saveGame()
}
static init() {
{
const v = localStorage.getItem("game");
if (v) {
const h = JSON.parse(v);
g.value = h.clicks, f.value = h.melons, m.value = h.level, C.value = h.total, I.value = h.spent, M.value = h.tracking, h
.verid !== n.value ? d.add({
title: "Game updated!",
description: `The game has been updated to version ${n.value}. Your save data has been migrated, reset if you encounter any issues.`,
color: "blue",
icon: "i-lucide-rocket",
timeout: 5 * 1e3
}) : s.buildings = h.data.buildings
}
}
y.value = b.value === 1 ? "tick" : "ticks";
for (const v of s.buildings.categories)
for (const h of v.members)
for (const F of h.cost) M.value[h.name + F.name] = F.base * l.general.inflationRate
}
static title(v) {
return v.charAt(0).toUpperCase() + v.slice(1)
}
static handleClick() {
a.value.push(Date.now()), a.value.length > 25 && a.value.shift(), f.value++, g.value++, L.anticheat(), u.value ? localStorage
.removeItem("game") : L.saveGame()
}
static clear() {
localStorage.removeItem("game"), location.reload()
}
static anticheat() {
}
}
return L.init(), setInterval(L.tick, l.tick.interval * 1e3), (fe, v) => {
const h = At,
F = jn,
_ = Dt,
x = Rt;
return N(), H(ne, null, [O(u) ? Re("", !0) : (N(), H("div", Mn, [J(F, {
modelValue: O(i),
"onUpdate:modelValue": v[2] || (v[2] = T => Ot(i) ? i.value = T : null)
}, {
default: se(() => [c("div", Hn, [Bn, In, c("div", Un, [J(h, {
onClick: v[0] || (v[0] = T => i.value = !1),
label: "Cancel",
color: "blue",
size: "lg",
class: "w-22 h-8 justify-center",
"trailing-icon": "i-lucide-x"
}), J(h, {
onClick: v[1] || (v[1] = T => L.clear()),
label: "Reset",
color: "red",
size: "lg",
class: "w-22 h-8 justify-center",
"trailing-icon": "i-lucide-trash"
})])])]),
_: 1
}, 8, ["modelValue"]), c("div", Vn, [w(" Melons: "), c("span", Wn, S(O(f).toLocaleString()), 1), w(" ("), c(
"span", Gn, S(O(D).toLocaleString()), 1), w("/sec) ")]), c("button", {
onClick: v[3] || (v[3] = (...T) => L.handleClick && L.handleClick(...T)),
class: "focus:outline-none"
}, Yn), zn, c("div", Kn, [(N(!0), H(ne, null, pe(O(s).buildings.categories, (T, U) => (N(), H("div", {
key: U
}, [c("span", Jn, [w(S(T.name) + " (", 1), c("span", Xn, S(T.members.length), 1), w(
")")]), c("div", Qn, [(N(!0), H(ne, null, pe(T.members, ($, oe) => (N(), H(
"div", {
key: oe,
class: "mr-4 mb-4"
}, [c("div", Zn, [c("span", el, [w(S($.name) + " (",
1), c("span", tl, S($
.owned), 1), w("/"), c(
"span", nl, S($.limit), 1),
w(" owned) ")
]), c("span", ll, [c("span", al, S(Math
.floor($.owned / $
.limit * 100)) +
"% ", 1), w("completed")]), c(
"span", ol, S($.description), 1), c(
"span", rl, [w("Production: "), (N(!
0), H(ne, null, pe($
.output, (P, V) => (
N(), H("span", {
key: V,
class: "text-gray-400"
}, [w(S(L.title(P
.name
)) +
": ",
1),
c("span",
sl,
S((P.value *
O(
l)
.general
.inflationRate
)
.toLocaleString()
),
1)
]))), 128))]), c("span", il,
[w("Conditions: "), (N(!0), H(ne,
null, pe($.conditions, (
P, V) => (N(),
H("span", {
key: V,
class: "text-gray-400"
}, [w(S(L.title(P
.name
)) +
": ",
1),
c("span",
ul,
S(P.value
.toLocaleString()
),
1)
]))), 128))]), c("span", cl,
[w("Cost: "), (N(!0), H(ne, null,
pe($.cost, (P, V) => (
N(), H("span", {
key: V,
class: "text-gray-400"
}, [w(S(L.title(P
.name
)) +
": ",
1),
c("span",
dl,
S(O(M)[$.name +
P
.name
]
.toLocaleString()
),
1)
]))), 128))])]), J(h, {
onClick: P => L.purchase(T.name, $
.name),
label: "Purchase",
color: "blue",
size: "lg",
class: "w-full justify-center",
"trailing-icon": "i-lucide-shopping-cart"
}, null, 8, ["onClick"])]))), 128))])]))), 128))]), c("footer", null, [c("div", fl, [c("div", null, [w(
" Level: "), c("span", pl, S(O(m).toLocaleString()), 1), w(
" | MPS for next level: "), c("span", vl, S(L.leveling().toLocaleString()), 1), w(
" ("), c("span", ml, S((L.leveling() - O(D)).toLocaleString()), 1), w(
" left) | Total earned: "), c("span", hl, S((O(C) + O(g)).toLocaleString()), 1), w(
" | Total spent: "), c("span", gl, S(O(I).toLocaleString()), 1), w(
" | Total buildings: "), c("span", bl, S(L.buildings().toLocaleString()), 1), w(
"/"), c("span", yl, S(L.buildings(!0, !0).toLocaleString()), 1), w(
" | Earned from buildings: "), c("span", wl, S(O(C).toLocaleString()), 1), w(
" | Earned from clicking: "), c("span", Sl, S(O(g).toLocaleString()), 1)
]), c("div", null, [w(" Total game progress: "), c("span", El, S(L.progress()) + "%", 1), w(
" | Maxed out: "), c("span", _l, S(L.progress(!1)), 1), w("/"), c("span", xl, S(L
.buildings(!1)), 1), w(" | Engine runtime: "), c("span", Ll, S(O(r)), 1), w(" ("),
c("span", Tl, S(O(b)), 1), w(" " + S(O(y)) + ") ", 1)
]), c("div", null, [w(" © " + S(O(o)) + " ", 1), J(_, {
to: "https://hypefoxstudios.com",
class: "text-blue-500"
}, {
default: se(() => [w("Hypefox Studios Ltd")]),
_: 1
}), w(" - All Rights Reserved | Version ID: "), c("span", $l, S(O(n)), 1)]), c("div", kl, [J(
h, {
onClick: v[4] || (v[4] = T => i.value = !0),
label: "Reset",
color: "red",
size: "lg",
class: "w-22 h-8 justify-center",
"trailing-icon": "i-lucide-trash"
})])])])])), O(u) ? (N(), H("div", Fl, [c("div", Cl, [c("div", Ol, [J(x, {
name: "i-lucide-alert-triangle",
class: "text-red-500 text-[10rem]"
}), Pl, Al, Dl])])])) : Re("", !0)], 64)
}
}
}),
Nl = {};
function jl(e, t) {
const n = Rl;
return N(), De(n)
}
const Hl = Ze(Nl, [
["render", jl]
]);
export {
Hl as
default
};