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
};