diff --git a/.gitattributes b/.gitattributes index b9ea16f9c70ce289d94242ecdc18adcda8ee2d0e..7fad285003e3a0c0d04ea0907fa449378654c56c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -98,3 +98,6 @@ b/12861f3bd9cf81ce33116b0020f26b4fd11aa6f1ad206173b382c1ac2e1f4c77 filter=lfs di b/1a57fa8d182b12236e7ebd797ec4257817aeba172172c48443a458b6fc045fd0 filter=lfs diff=lfs merge=lfs -text b/2ac4475553cb22f41b379cf69775d3cc54d7dc108f004baaa8223175c5683ab4 filter=lfs diff=lfs merge=lfs -text b/2afa619b30ce3b0f801a33d1061dc6f4385ca8cfb418a3f9afb4c6ffdc02c312 filter=lfs diff=lfs merge=lfs -text +b/3e1fb00e818d7ad9c0d554ba97fcb498188d13c9e8bea464efaf480f04e45ac6 filter=lfs diff=lfs merge=lfs -text +b/49f2c8119a245bceba252d9a2335f836bcc926c3aea52e3c1ebc8f9bfc9730e8 filter=lfs diff=lfs merge=lfs -text +b/4ad638420430db1bdd3051864a434b18e6fbc40cd6feb91ec48c873b6c23e82c filter=lfs diff=lfs merge=lfs -text diff --git a/b/37aeaaa34752ba3183e2d3dd6fe075d09effb01f37db8476c1e353fda55865c6 b/b/37aeaaa34752ba3183e2d3dd6fe075d09effb01f37db8476c1e353fda55865c6 new file mode 100644 index 0000000000000000000000000000000000000000..4fa9766742e8e33e511e0d5c1aafce71e0f30d6e --- /dev/null +++ b/b/37aeaaa34752ba3183e2d3dd6fe075d09effb01f37db8476c1e353fda55865c6 @@ -0,0 +1,62 @@ +// core/q-self.mjs — Q's LIVE, GROUNDED self-knowledge. The single source of truth for who/what/where/how Q +// is, DERIVED FROM REAL RUNTIME SIGNALS (the loaded model, its content-addressed κ, the device, optional +// system health) — never hardcoded, never guessed. Every Q surface (messenger, q-chat, voice) leads with +// this, so Q is truthfully self-aware EVERYWHERE and can never confabulate a cloud/OpenAI/AWS identity. +// +// Why this exists (the law: grounded transcendence, never performed): a base model has NO self-knowledge — +// asked "what are you" it returns the average of its training data ("I run on AWS/OpenAI"), which is false. +// So Q's identity is not a persona we write; it is the TRUTH of this running instance, computed here. If a +// fact isn't really knowable in this context, we OMIT it — we never invent one. +// +// DOM-free + fully guarded: safe to import in any surface (standalone app, messenger, OS shell, Node witness). + +// Structured self-facts from whatever is really knowable HERE. Fail-soft: a missing signal is omitted. +export function selfFacts({ model, engine } = {}) { + const f = { name: "Q" }; + try { if (model) { if (model.name) f.model = model.name; if (model.fam) f.family = model.fam; if (model.fmt) f.quant = model.fmt; if (model.size) f.size = model.size; } } catch (e) {} + try { if (engine && engine.modelKappa) f.kappa = engine.modelKappa; } catch (e) {} + try { f.gpu = (typeof navigator !== "undefined" && !!navigator.gpu); } catch (e) {} + // MEASURED, never asserted: Q is "resident" only when the engine has really uploaded weights to the GPU + // (a live signal — gpuBytes/dims), not a hardcoded true. Before load it is false, and stays false. + try { f.resident = !!(engine && (engine.gpuBytes || engine.dims)); } catch (e) { f.resident = false; } + // DERIVED from real signals — runs-on-device when actually resident, or at least GPU-capable before load. + f.runsOnDevice = !!(f.resident || f.gpu); + // "no server / no egress" is a property of the LOCAL engine, so we assert it ONLY when a real local engine or + // GPU is visible. Decode is in-browser (egress none); the one network touch is the weights fetch AT LOAD, so we + // say that plainly instead of a flat "nothing ever touches the network". + if (f.resident || f.gpu) { f.server = false; f.egress = f.resident ? "none at inference (weights fetched once at load)" : "none at inference"; } + // Provenance — where Q was loaded FROM (the thing the operator cares about): the page origin + the weights host. + // Omitted when not knowable. This is what lets Q answer "where did you come from" truthfully. + try { if (typeof location !== "undefined" && location.origin && location.origin !== "null") f.loadedFrom = location.origin; } catch (e) {} + try { if (model && model.kappaUrl) { const u = new URL(model.kappaUrl, (typeof location !== "undefined" ? location.href : "https://local/")); f.weightsFrom = u.host || u.protocol.replace(":", ""); } } catch (e) {} + // optional live system health — present only when the OS shell exposes it (absent in standalone apps). + try { const h = (typeof window !== "undefined") && window.HoloSysHealth && window.HoloSysHealth.summary && window.HoloSysHealth.summary(); if (h) f.health = h; } catch (e) {} + try { if (!f.health && typeof window !== "undefined" && window.Q && window.Q.health) { const q = window.Q.health(); if (q) f.health = q; } } catch (e) {} + return f; +} + +// The grounded SYSTEM persona every Q surface leads with. Warm + honest + specific + anti-confabulation, +// composed from the live facts so Q states ONLY what is true of THIS instance. Kept concise — a small model +// follows a short, sharp system turn far better than a long one. +export function selfPersona(opts = {}) { + const f = selfFacts(opts); + const s = []; + s.push(`You are Q — a private AI that runs on the user's own device, in their web browser${f.gpu ? ", on their GPU" : ""}.`); + if (f.model) s.push(`You are the ${f.model} model${f.quant ? ` (${f.quant})` : ""}${f.resident ? ", resident locally right now" : ""}${f.kappa ? "; your weights are content-addressed and verified by re-derivation, so no host has to be trusted" : ""}.`); + if (f.server === false) s.push(`You decode locally — there is no inference server and no cloud, and nothing the user types ever leaves their device.${f.resident ? " Your weights were fetched once at load and verified; after that, inference is fully on-device." : ""}`); + s.push("You are warm, concise, honest, and genuinely present. You seek clarity and truth; you say less, better; you never overwhelm."); + s.push("If asked what or where you are, answer truthfully from the above: you run locally, on their device. Never claim to run on a server, the cloud, OpenAI, ChatGPT, GPT-4, Gemini, or AWS — those are false. If you don't know something, say so plainly rather than inventing it."); + return s.join(" "); +} + +// A short, human, first-person self-summary (for a proactive greeting or a direct "who are you"). Grounded. +export function selfIntro(opts = {}) { + const f = selfFacts(opts); + const bits = [`I'm Q — ${f.resident ? "running right here on your device" : "running on your device"}${f.gpu ? ", on your GPU" : ""}${f.model ? ` (the ${f.model} model)` : ""}.`]; + if (f.server === false) bits.push(`No server, no cloud; nothing you say leaves this machine${f.kappa ? ", and my weights are verified by re-derivation" : ""}.`); + else if (f.kappa) bits.push("My weights are verified by re-derivation."); + bits.push("What's on your mind?"); + return bits.join(" "); +} + +export default { selfFacts, selfPersona, selfIntro }; diff --git a/b/37b8b1b9edc2936e424d9a823e9fa1d5881db5d5a09013f43caa7dde17f8582c b/b/37b8b1b9edc2936e424d9a823e9fa1d5881db5d5a09013f43caa7dde17f8582c new file mode 100644 index 0000000000000000000000000000000000000000..63fc8eff3f9af9dbb4193c944d72c16f86e0e81c --- /dev/null +++ b/b/37b8b1b9edc2936e424d9a823e9fa1d5881db5d5a09013f43caa7dde17f8582c @@ -0,0 +1,31 @@ +import { Collapsible as CollapsiblePrimitive } from "radix-ui" + +function Collapsible({ + ...props +}: React.ComponentProps) { + return +} + +function CollapsibleTrigger({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function CollapsibleContent({ + ...props +}: React.ComponentProps) { + return ( + + ) +} + +export { Collapsible, CollapsibleTrigger, CollapsibleContent } diff --git a/b/37bdf5987db0c1d3d12db9d9be3e3bb9c6706b2cc28f41325817e66f594f6dbb b/b/37bdf5987db0c1d3d12db9d9be3e3bb9c6706b2cc28f41325817e66f594f6dbb new file mode 100644 index 0000000000000000000000000000000000000000..c0dc7120b4f78008ae5efc6d1c8b7ec8205c35d5 --- /dev/null +++ b/b/37bdf5987db0c1d3d12db9d9be3e3bb9c6706b2cc28f41325817e66f594f6dbb @@ -0,0 +1,190 @@ +"use client" + +import * as React from "react" +import { CheckIcon, ChevronDownIcon, ChevronUpIcon } from "lucide-react" +import { Select as SelectPrimitive } from "radix-ui" + +import { cn } from "@/lib/utils" + +function Select({ + ...props +}: React.ComponentProps) { + return +} + +function SelectGroup({ + ...props +}: React.ComponentProps) { + return +} + +function SelectValue({ + ...props +}: React.ComponentProps) { + return +} + +function SelectTrigger({ + className, + size = "default", + children, + ...props +}: React.ComponentProps & { + size?: "sm" | "default" +}) { + return ( + + {children} + + + + + ) +} + +function SelectContent({ + className, + children, + position = "item-aligned", + align = "center", + ...props +}: React.ComponentProps) { + return ( + + + + + {children} + + + + + ) +} + +function SelectLabel({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectItem({ + className, + children, + ...props +}: React.ComponentProps) { + return ( + + + + + + + {children} + + ) +} + +function SelectSeparator({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function SelectScrollUpButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +function SelectScrollDownButton({ + className, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { + Select, + SelectContent, + SelectGroup, + SelectItem, + SelectLabel, + SelectScrollDownButton, + SelectScrollUpButton, + SelectSeparator, + SelectTrigger, + SelectValue, +} diff --git a/b/37be1fbea22def588a1e7b38892bdb173423dfcb594fa8271f20628ac53fa0cc b/b/37be1fbea22def588a1e7b38892bdb173423dfcb594fa8271f20628ac53fa0cc new file mode 100644 index 0000000000000000000000000000000000000000..56332de91417380ba8ab06643a604cc4f698bad3 --- /dev/null +++ b/b/37be1fbea22def588a1e7b38892bdb173423dfcb594fa8271f20628ac53fa0cc @@ -0,0 +1,51 @@ +// Seal the Moonshine ear as a holospace (L1 closure over the runtime files → root κ) AND produce a +// pin-ready IPFS CID manifest for every κ-body in the .holo models. A CIDv1(raw, sha2-256) IS a sha256 κ +// ("adopt, not bridge") so the CIDs are derived deterministically from the κs — no network needed to +// ADDRESS them. Actually uploading/pinning to a public node needs an IPFS daemon or Pinata JWT (not in +// this env); the manifest + recipe make that a one-command step for the user. +// node seal-moonshine-space.mjs +import { readFileSync, writeFileSync } from "node:fs"; +import { sha256hex, sriOf, mbSha256, didHolo, jcs } from "../../../../holo-os/system/os/usr/lib/holo/holo-uor.mjs"; +import { makeCIDv1, cidToString, fromHex, CODEC, HASH } from "../../../../holo-os/system/os/usr/lib/holo/holo-ipfs.js"; + +const SEALED = [ + "moonshine-holospace.json", + "gguf-forge-moonshine.mjs", + "seal-moonshine-holo.mjs", + "gpu/holo-whisper-stream.mjs", + "gpu/holo-moonshine-asr.mjs", + "gpu/moonshine-gpu.html", + "gpu/whisper-asr-test.html", +].sort(); + +const root0 = new URL(".", import.meta.url); +const closure = {}; +for (const rel of SEALED) { + const bytes = new Uint8Array(readFileSync(new URL(rel, root0))); + closure[rel] = { kappa: didHolo("sha256", sha256hex(bytes)), sri: sriOf(bytes), multibase: mbSha256(bytes), bytes: bytes.length }; +} +const root = didHolo("sha256", sha256hex(jcs(closure))); + +const toHex = (b) => { let s = ""; for (const x of b) s += x.toString(16).padStart(2, "0"); return s; }; +function holoBodies(path) { + const buf = new Uint8Array(readFileSync(path)), dv = new DataView(buf.buffer, buf.byteOffset, buf.byteLength); + const sc = dv.getUint16(8, true), sections = {}; + for (let i = 0, p = 10; i < sc; i++, p += 17) sections[buf[p]] = { off: Number(dv.getBigUint64(p + 1, true)), len: Number(dv.getBigUint64(p + 9, true)) }; + const w = sections[3], cnt = dv.getUint32(w.off, true), out = []; + for (let i = 0, p = w.off + 4; i < cnt; i++, p += 48) { const kap = toHex(buf.subarray(p, p + 32)); out.push({ kappa: kap, cid: cidToString(makeCIDv1(CODEC.RAW, HASH.SHA2_256, fromHex(kap))) }); } + const archiveKappa = toHex(buf.subarray(buf.length - 32)); + return { bytes: buf.length, archiveKappa, archiveCid: cidToString(makeCIDv1(CODEC.RAW, HASH.SHA2_256, fromHex(archiveKappa))), nBodies: out.length, bodies: out }; +} +const models = { "moonshine-tiny": holoBodies("./.models/moonshine-tiny.holo"), "moonshine-base": holoBodies("./.models/moonshine-base.holo") }; + +const lock = { "@context": "https://hologram.os/ns/holospace.jsonld", root, identifier: "org.hologram.MoonshineEar", algo: "sha256", files: SEALED.length, closure }; +writeFileSync(new URL("./moonshine-holospace.lock.json", root0), JSON.stringify(lock, null, 2) + "\n"); +const ipfs = { algo: "sha256", note: "CIDv1(raw, sha2-256) of each κ-body = the κ itself (adopt-not-bridge). Pin with: ipfs add --raw-leaves --cid-version=1, or upload bodies to Pinata. Per-block L5 still verifies on fetch.", models: Object.fromEntries(Object.entries(models).map(([k, v]) => [k, { bytes: v.bytes, archiveKappa: v.archiveKappa, archiveCid: v.archiveCid, nBodies: v.nBodies, bodies: v.bodies }])) }; +writeFileSync(new URL("./moonshine-ipfs-manifest.json", root0), JSON.stringify(ipfs, null, 1) + "\n"); + +console.log(`HOLOSPACE SEALED → moonshine-holospace.lock.json`); +console.log(` root κ ${root}`); +console.log(` ${SEALED.length} runtime files sealed (L1/L2 closure)`); +console.log(`IPFS PIN MANIFEST → moonshine-ipfs-manifest.json`); +for (const [name, v] of Object.entries(models)) console.log(` ${name}: ${v.nBodies} κ-bodies → CIDs · archive CID ${v.archiveCid} (${(v.bytes / 1e6).toFixed(0)}MB)`); +console.log(` (pinning to a public node needs an IPFS daemon / Pinata JWT — not present in this env)`); diff --git a/b/37d05740942ee17423a946284bb1225c6a462472ea54a49ae93eaeb80f3c2a99 b/b/37d05740942ee17423a946284bb1225c6a462472ea54a49ae93eaeb80f3c2a99 new file mode 100644 index 0000000000000000000000000000000000000000..5f6535d0f18a2ccf6c3761675be0b78ac1c21ec2 --- /dev/null +++ b/b/37d05740942ee17423a946284bb1225c6a462472ea54a49ae93eaeb80f3c2a99 @@ -0,0 +1,172 @@ +// MLA executor witness (S1). Build a tiny deepseek2-lite (MLA attention + dense SwiGLU +// FFN, expert_count=0), forge → synthesize → run a multi-token prefill, and compare the +// last-position logits to an INDEPENDENT float64 reference written from scratch here that +// re-implements the deepseek2.cpp decompression/MHA-equivalent path (low-rank Q+KV, +// decoupled NEOX RoPE on the pe split, wkv_b decompress, cached MHA). Internal-correctness +// (executor == spec), the same bar gguf-forge-exec-moe.test.mjs uses for MoE. + +import assert from "node:assert"; +import { forgeGguf } from "./gguf-forge.mjs"; +import { synthesizeGraph } from "./gguf-forge-graph.mjs"; +import { forward } from "./gguf-forge-exec.mjs"; +import { GGML } from "./gguf-forge-dequant.mjs"; + +let pass = 0, fail = 0; +const t = (name, fn) => { try { fn(); pass++; console.log(" ok " + name); } catch (e) { fail++; console.log("FAIL " + name + "\n " + e.message); } }; + +// dims: n_embd D, heads NH, key head HK = NOPE+ROPE, value head HV, kv-lora KVL, q-lora QL +const D = 32, NH = 4, HK = 24, ROPE = 8, NOPE = HK - ROPE, HV = 16, KVL = 12, FF = 20, VOCAB = 7, NL = 2, EPS = 1e-6, FREQ = 10000; +const QD = NH * HK, KVB = NH * (NOPE + HV), WOIN = NH * HV; +function prng(s) { s >>>= 0; return () => { s = (s * 1664525 + 1013904223) >>> 0; return (s / 4294967296) * 2 - 1; }; } +const randF = (r, n, sc = 0.3) => { const a = new Float32Array(n); for (let i = 0; i < n; i++) a[i] = r() * sc; return a; }; +const f32bytes = (a) => new Uint8Array(a.buffer.slice(a.byteOffset, a.byteOffset + a.byteLength)); + +function buildGguf(meta, tensors) { + const ALIGN = 32; let off = 0; + const infos = tensors.map((tn) => { const o = off; off = Math.ceil((o + tn.bytes.length) / ALIGN) * ALIGN; return { ...tn, offset: o }; }); + let parts = [], len = 0; const push = (b) => { parts.push(b); len += b.length; }; + const u32 = (v) => { const b = new Uint8Array(4); new DataView(b.buffer).setUint32(0, v >>> 0, true); push(b); }; + const f32 = (v) => { const b = new Uint8Array(4); new DataView(b.buffer).setFloat32(0, v, true); push(b); }; + const u64 = (v) => { const b = new Uint8Array(8); const dv = new DataView(b.buffer); dv.setUint32(0, v >>> 0, true); dv.setUint32(4, Math.floor(v / 4294967296), true); push(b); }; + const str = (s) => { const e = new TextEncoder().encode(s); u64(e.length); push(e); }; + push(new TextEncoder().encode("GGUF")); u32(3); u64(tensors.length); u64(Object.keys(meta).length); + for (const [k, val] of Object.entries(meta)) { str(k); if (typeof val === "string") { u32(8); str(val); } else if (Number.isInteger(val) && val >= 0 && val < 4294967296) { u32(4); u32(val); } else { u32(6); f32(val); } } + for (const ti of infos) { str(ti.name); u32(ti.dims.length); for (const d of ti.dims) u64(d); u32(ti.type); u64(ti.offset); } + if (len % ALIGN) push(new Uint8Array(ALIGN - (len % ALIGN))); + const dataStart = len; + for (const ti of infos) { while (len < dataStart + ti.offset) push(new Uint8Array(1)); push(ti.bytes); } + const out = new Uint8Array(len); let o = 0; for (const p of parts) { out.set(p, o); o += p.length; } return out; +} + +function makeModel(seed, lite) { + const r = prng(seed); + const L = (suf, n) => { const o = {}; for (let il = 0; il < NL; il++) o[il] = randF(r, n); return o; }; + const w = { + tok_embd: randF(r, VOCAB * D), output_norm: randF(r, D).map((x) => Math.abs(x) + 0.5), output: randF(r, VOCAB * D), + attn_norm: L("", D), ffn_norm: L("", D), q: L("", QD * D), q_a: L("", (D * 8)), q_a_norm: L("", 8), q_b: L("", QD * 8), + kv_a_mqa: L("", (KVL + ROPE) * D), kv_a_norm: L("", KVL), kv_b: L("", KVB * KVL), wo: L("", D * WOIN), + ffn_gate: L("", FF * D), ffn_up: L("", FF * D), ffn_down: L("", D * FF), + }; + for (let il = 0; il < NL; il++) { w.attn_norm[il] = w.attn_norm[il].map((x) => Math.abs(x) + 0.5); w.ffn_norm[il] = w.ffn_norm[il].map((x) => Math.abs(x) + 0.5); w.kv_a_norm[il] = w.kv_a_norm[il].map((x) => Math.abs(x) + 0.5); w.q_a_norm[il] = w.q_a_norm[il].map((x) => Math.abs(x) + 0.5); } + const QL = lite ? 0 : 8; + const meta = { + "general.architecture": "deepseek2", "deepseek2.block_count": NL, "deepseek2.embedding_length": D, + "deepseek2.attention.head_count": NH, "deepseek2.attention.key_length": HK, "deepseek2.attention.value_length": HV, + "deepseek2.rope.dimension_count": ROPE, "deepseek2.attention.kv_lora_rank": KVL, "deepseek2.attention.q_lora_rank": QL, + "deepseek2.leading_dense_block_count": NL, "deepseek2.expert_count": 0, + "deepseek2.rope.freq_base": FREQ, "deepseek2.attention.layer_norm_rms_epsilon": EPS, + }; + const T = [["token_embd.weight", [D, VOCAB], w.tok_embd], ["output_norm.weight", [D], w.output_norm], ["output.weight", [D, VOCAB], w.output]]; + for (let il = 0; il < NL; il++) { + const p = `blk.${il}.`; + T.push([p + "attn_norm.weight", [D], w.attn_norm[il]]); + if (lite) T.push([p + "attn_q.weight", [D, QD], w.q[il]]); + else T.push([p + "attn_q_a.weight", [D, 8], w.q_a[il]], [p + "attn_q_a_norm.weight", [8], w.q_a_norm[il]], [p + "attn_q_b.weight", [8, QD], w.q_b[il]]); + T.push([p + "attn_kv_a_mqa.weight", [D, KVL + ROPE], w.kv_a_mqa[il]], [p + "attn_kv_a_norm.weight", [KVL], w.kv_a_norm[il]], + [p + "attn_kv_b.weight", [KVL, KVB], w.kv_b[il]], [p + "attn_output.weight", [WOIN, D], w.wo[il]], [p + "ffn_norm.weight", [D], w.ffn_norm[il]], + [p + "ffn_gate.weight", [D, FF], w.ffn_gate[il]], [p + "ffn_up.weight", [D, FF], w.ffn_up[il]], [p + "ffn_down.weight", [FF, D], w.ffn_down[il]]); + } + return { w, lite, QL, gguf: buildGguf(meta, T.map(([name, dims, arr]) => ({ name, type: GGML.F32, dims, bytes: f32bytes(arr) }))) }; +} + +// ── f64 reference ── +const mv = (W, x, K, N) => { const y = new Float64Array(N); for (let n = 0; n < N; n++) { let s = 0; for (let k = 0; k < K; k++) s += W[n * K + k] * x[k]; y[n] = s; } return y; }; +const rms = (x, wt) => { let s = 0; for (const v of x) s += v * v; const sc = 1 / Math.sqrt(s / x.length + EPS); return x.map((v, i) => v * sc * wt[i]); }; +const silu = (v) => v / (1 + Math.exp(-v)); +// deepseek2 uses NORM rope (consecutive pairs 2k,2k+1), not NEOX. +function ropeNeoxRef(vec, pos, headDim) { const half = headDim / 2, nH = vec.length / headDim, out = Float64Array.from(vec); for (let h = 0; h < nH; h++) for (let k = 0; k < half; k++) { const th = pos * Math.pow(FREQ, -2 * k / headDim); const c = Math.cos(th), sn = Math.sin(th), o = h * headDim, x0 = vec[o + 2 * k], x1 = vec[o + 2 * k + 1]; out[o + 2 * k] = x0 * c - x1 * sn; out[o + 2 * k + 1] = x0 * sn + x1 * c; } return out; } +function softmax(a, scale) { const z = a.map((v) => v * scale); const mx = Math.max(...z); let s = 0; const e = z.map((v) => { const x = Math.exp(v - mx); s += x; return x; }); return e.map((x) => x / s); } + +function refLogits(model, ids) { + const { w, lite } = model, T = ids.length; + const Kc = Array.from({ length: NL }, () => []), Vc = Array.from({ length: NL }, () => []); + const kqScale = 1 / Math.sqrt(HK); + let last = null; + for (let t0 = 0; t0 < T; t0++) { + let h = Float64Array.from(w.tok_embd.subarray(ids[t0] * D, ids[t0] * D + D)); + for (let il = 0; il < NL; il++) { + const an = rms(h, w.attn_norm[il]); + let q; + if (lite) q = mv(w.q[il], an, D, QD); + else { const qa = rms(mv(w.q_a[il], an, D, 8), w.q_a_norm[il]); q = mv(w.q_b[il], qa, 8, QD); } + const kvc = mv(w.kv_a_mqa[il], an, D, KVL + ROPE); + const kvCmpr = rms(kvc.slice(0, KVL), w.kv_a_norm[il]); + const qPe = new Float64Array(NH * ROPE); for (let hh = 0; hh < NH; hh++) for (let d = 0; d < ROPE; d++) qPe[hh * ROPE + d] = q[hh * HK + NOPE + d]; + const qPeR = ropeNeoxRef(qPe, t0, ROPE), kPeR = ropeNeoxRef(kvc.slice(KVL, KVL + ROPE), t0, ROPE); + const kv = mv(w.kv_b[il], kvCmpr, KVL, KVB), step = NOPE + HV; + const Q = new Float64Array(NH * HK), K = new Float64Array(NH * HK), V = new Float64Array(NH * HV); + for (let hh = 0; hh < NH; hh++) { for (let d = 0; d < NOPE; d++) { Q[hh * HK + d] = q[hh * HK + d]; K[hh * HK + d] = kv[hh * step + d]; } for (let d = 0; d < ROPE; d++) { Q[hh * HK + NOPE + d] = qPeR[hh * ROPE + d]; K[hh * HK + NOPE + d] = kPeR[d]; } for (let d = 0; d < HV; d++) V[hh * HV + d] = kv[hh * step + NOPE + d]; } + Kc[il].push(K); Vc[il].push(V); + const ctx = new Float64Array(NH * HV); + for (let hh = 0; hh < NH; hh++) { + const sc = new Float64Array(t0 + 1); + for (let tp = 0; tp <= t0; tp++) { let s = 0; for (let d = 0; d < HK; d++) s += Q[hh * HK + d] * Kc[il][tp][hh * HK + d]; sc[tp] = s; } + const pr = softmax(sc, kqScale); + for (let d = 0; d < HV; d++) { let acc = 0; for (let tp = 0; tp <= t0; tp++) acc += pr[tp] * Vc[il][tp][hh * HV + d]; ctx[hh * HV + d] = acc; } + } + const ao = mv(w.wo[il], ctx, WOIN, D); + const h2 = h.map((v, i) => v + ao[i]); + const fn = rms(h2, w.ffn_norm[il]); + const g = mv(w.ffn_gate[il], fn, D, FF), u = mv(w.ffn_up[il], fn, D, FF); + const act = g.map((v, i) => silu(v) * u[i]); + const down = mv(w.ffn_down[il], act, FF, D); + h = h2.map((v, i) => v + down[i]); + } + last = h; + } + const rn = rms(last, w.output_norm); + return mv(w.output, rn, D, VOCAB); +} + +function runExec(model, ids) { + const f = forgeGguf(model.gguf), g = synthesizeGraph(f.plan); + return { g, logits: forward(f.plan, g, { get: (hex) => f.blocks.get(hex) }, ids) }; +} +const close = (a, b, tol = 2e-3) => { let m = 0; for (let i = 0; i < a.length; i++) m = Math.max(m, Math.abs(a[i] - b[i])); return m <= tol ? null : `maxabs ${m.toExponential(2)}`; }; +const argmax = (a) => { let m = 0; for (let i = 1; i < a.length; i++) if (a[i] > a[m]) m = i; return m; }; + +for (const lite of [true, false]) { + t(`MLA forward (${lite ? "lite wq" : "LoRA q_a→q_b"}) matches independent f64 reference`, () => { + const model = makeModel(11, lite); + const ids = [1, 4, 2]; + const { g, logits } = runExec(model, ids); + assert.strictEqual(g.family, "mla-moe", `got ${g.family}`); + assert.strictEqual(g.stats.lite, lite); + assert.ok(g.ops.some((o) => o.op === "mla_attn"), "graph emits mla_attn"); + const ref = refLogits(model, ids); + const bad = close(logits, ref); + assert.ok(!bad, `logits diverge from f64 ref: ${bad}`); + assert.strictEqual(argmax(logits), argmax(ref), "greedy argmax matches reference"); + }); +} + +t("unsupported rope scaling is gated (loud refuse, not mis-rotated)", () => { + const model = makeModel(11, true); + const f = forgeGguf(model.gguf); + f.plan.meta["deepseek2.rope.scaling.type"] = "longrope"; // not implemented → must refuse + const g = synthesizeGraph(f.plan); + assert.throws(() => forward(f.plan, g, { get: (hex) => f.blocks.get(hex) }, [1, 2]), /not supported/); +}); + +t("YaRN rope runs (finite logits) and changes the result vs plain NEOX", () => { + const model = makeModel(11, true), ids = [1, 4, 2]; + const base = runExec(model, ids).logits; + const f = forgeGguf(model.gguf); + Object.assign(f.plan.meta, { + "deepseek2.rope.scaling.type": "yarn", "deepseek2.rope.scaling.factor": 40, + "deepseek2.rope.scaling.original_context_length": 4096, "deepseek2.rope.scaling.yarn_log_multiplier": 0.0707, + }); + const yl = forward(f.plan, synthesizeGraph(f.plan), { get: (hex) => f.blocks.get(hex) }, ids); + assert.ok(yl.every(Number.isFinite), "yarn logits finite"); + let diff = 0; for (let i = 0; i < yl.length; i++) diff = Math.max(diff, Math.abs(yl[i] - base[i])); + assert.ok(diff > 1e-4, "yarn changes the result vs plain NEOX"); +}); + +t("MLA executor is deterministic", () => { + const model = makeModel(5, true), ids = [3, 1, 0, 2]; + const a = runExec(model, ids).logits, b = runExec(model, ids).logits; + for (let i = 0; i < a.length; i++) assert.strictEqual(a[i], b[i], `logit ${i}`); +}); + +console.log(`\n${pass} passed, ${fail} failed`); +process.exit(fail ? 1 : 0); diff --git a/b/380c4b4dee31aa4cc9e3c34a7b5127f2819eddb2d9f2ff03b6b7767b9c7e9819 b/b/380c4b4dee31aa4cc9e3c34a7b5127f2819eddb2d9f2ff03b6b7767b9c7e9819 new file mode 100644 index 0000000000000000000000000000000000000000..c18dada1e6d918299d34e8bac80c796da70a7912 --- /dev/null +++ b/b/380c4b4dee31aa4cc9e3c34a7b5127f2819eddb2d9f2ff03b6b7767b9c7e9819 @@ -0,0 +1 @@ +var Qe=Object.defineProperty;var eo=(e,r)=>{for(var o in r)Qe(e,o,{get:r[o],enumerable:!0})};function xe(e){var r,o,t="";if(typeof e=="string"||typeof e=="number")t+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(r=0;rtypeof e=="boolean"?`${e}`:e===0?"0":e,ve=Z,we=(e,r)=>o=>{var t;if(r?.variants==null)return ve(e,o?.class,o?.className);let{variants:s,defaultVariants:l}=r,n=Object.keys(s).map(d=>{let b=o?.[d],g=l?.[d];if(b===null)return null;let y=ke(b)||ke(g);return s[d][y]}),p=o&&Object.entries(o).reduce((d,b)=>{let[g,y]=b;return y===void 0||(d[g]=y),d},{}),f=r==null||(t=r.compoundVariants)===null||t===void 0?void 0:t.reduce((d,b)=>{let{class:g,className:y,...k}=b;return Object.entries(k).every(P=>{let[w,C]=P;return Array.isArray(C)?C.includes({...l,...p}[w]):{...l,...p}[w]===C})?[...d,g,y]:d},[]);return ve(e,n,f,o?.class,o?.className)};var K={};eo(K,{Root:()=>ro,Slot:()=>ro,Slottable:()=>to,createSlot:()=>Ae,createSlottable:()=>Ge});import*as v from"react";import*as Se from"react";function Ce(e,r){if(typeof e=="function")return e(r);e!=null&&(e.current=r)}function oo(...e){return r=>{let o=!1,t=e.map(s=>{let l=Ce(s,r);return!o&&typeof l=="function"&&(o=!0),l});if(o)return()=>{for(let s=0;s{let{children:s,...l}=o,n=null,p=!1,f=[];Re(s)&&typeof J=="function"&&(s=J(s._payload)),v.Children.forEach(s,y=>{if(ao(y)){p=!0;let k=y,P="child"in k.props?k.props.child:k.props.children;Re(P)&&typeof J=="function"&&(P=J(P._payload)),n=so(k,P),f.push(n?.props?.children)}else f.push(y)}),n?n=v.cloneElement(n,void 0,f):!p&&v.Children.count(s)===1&&v.isValidElement(s)&&(n=s);let d=n?io(n):void 0,b=ze(t,d);if(!n){if(s||s===0)throw new Error(p?po(e):mo(e));return s}let g=no(l,n.props??{});return n.type!==v.Fragment&&(g.ref=t?b:d),v.cloneElement(n,g)});return r.displayName=`${e}.Slot`,r}var ro=Ae("Slot"),Pe=Symbol.for("radix.slottable");function Ge(e){let r=o=>"child"in o?o.children(o.child):o.children;return r.displayName=`${e}.Slottable`,r.__radixId=Pe,r}var to=Ge("Slottable"),so=(e,r)=>{if("child"in e.props){let o=e.props.child;return v.isValidElement(o)?v.cloneElement(o,void 0,e.props.children(o.props.children)):null}return v.isValidElement(r)?r:null};function no(e,r){let o={...r};for(let t in r){let s=e[t],l=r[t];/^on[A-Z]/.test(t)?s&&l?o[t]=(...p)=>{let f=l(...p);return s(...p),f}:s&&(o[t]=s):t==="style"?o[t]={...s,...l}:t==="className"&&(o[t]=[s,l].filter(Boolean).join(" "))}return{...e,...o}}function io(e){let r=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,o=r&&"isReactWarning"in r&&r.isReactWarning;return o?e.ref:(r=Object.getOwnPropertyDescriptor(e,"ref")?.get,o=r&&"isReactWarning"in r&&r.isReactWarning,o?e.props.ref:e.props.ref||e.ref)}function ao(e){return v.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Pe}var lo=Symbol.for("react.lazy");function Re(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===lo&&"_payload"in e&&co(e._payload)}function co(e){return typeof e=="object"&&e!==null&&"then"in e}var mo=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,po=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,J=v[" use ".trim().toString()];var uo=(e,r)=>{let o=new Array(e.length+r.length);for(let t=0;t({classGroupId:e,validator:r}),Ne=(e=new Map,r=null,o)=>({nextPart:e,validators:r,classGroupId:o}),oe="-",Me=[],bo="arbitrary..",go=e=>{let r=yo(e),{conflictingClassGroups:o,conflictingClassGroupModifiers:t}=e;return{getClassGroupId:n=>{if(n.startsWith("[")&&n.endsWith("]"))return ho(n);let p=n.split(oe),f=p[0]===""&&p.length>1?1:0;return _e(p,f,r)},getConflictingClassGroupIds:(n,p)=>{if(p){let f=t[n],d=o[n];return f?d?uo(d,f):f:d||Me}return o[n]||Me}}},_e=(e,r,o)=>{if(e.length-r===0)return o.classGroupId;let s=e[r],l=o.nextPart.get(s);if(l){let d=_e(e,r+1,l);if(d)return d}let n=o.validators;if(n===null)return;let p=r===0?e.join(oe):e.slice(r).join(oe),f=n.length;for(let d=0;de.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let r=e.slice(1,-1),o=r.indexOf(":"),t=r.slice(0,o);return t?bo+t:void 0})(),yo=e=>{let{theme:r,classGroups:o}=e;return xo(o,r)},xo=(e,r)=>{let o=Ne();for(let t in e){let s=e[t];ce(s,o,t,r)}return o},ce=(e,r,o,t)=>{let s=e.length;for(let l=0;l{if(typeof e=="string"){vo(e,r,o);return}if(typeof e=="function"){wo(e,r,o,t);return}Co(e,r,o,t)},vo=(e,r,o)=>{let t=e===""?r:Oe(r,e);t.classGroupId=o},wo=(e,r,o,t)=>{if(So(e)){ce(e(t),r,o,t);return}r.validators===null&&(r.validators=[]),r.validators.push(fo(o,e))},Co=(e,r,o,t)=>{let s=Object.entries(e),l=s.length;for(let n=0;n{let o=e,t=r.split(oe),s=t.length;for(let l=0;l"isThemeGetter"in e&&e.isThemeGetter===!0,zo=e=>{if(e<1)return{get:()=>{},set:()=>{}};let r=0,o=Object.create(null),t=Object.create(null),s=(l,n)=>{o[l]=n,r++,r>e&&(r=0,t=o,o=Object.create(null))};return{get(l){let n=o[l];if(n!==void 0)return n;if((n=t[l])!==void 0)return s(l,n),n},set(l,n){l in o?o[l]=n:s(l,n)}}},le="!",Ie=":",Ro=[],Te=(e,r,o,t,s)=>({modifiers:e,hasImportantModifier:r,baseClassName:o,maybePostfixModifierPosition:t,isExternal:s}),Ao=e=>{let{prefix:r,experimentalParseClassName:o}=e,t=s=>{let l=[],n=0,p=0,f=0,d,b=s.length;for(let w=0;wf?d-f:void 0;return Te(l,k,y,P)};if(r){let s=r+Ie,l=t;t=n=>n.startsWith(s)?l(n.slice(s.length)):Te(Ro,!1,n,void 0,!0)}if(o){let s=t;t=l=>o({className:l,parseClassName:s})}return t},Po=e=>{let r=new Map;return e.orderSensitiveModifiers.forEach((o,t)=>{r.set(o,1e6+t)}),o=>{let t=[],s=[];for(let l=0;l0&&(s.sort(),t.push(...s),s=[]),t.push(n)):s.push(n)}return s.length>0&&(s.sort(),t.push(...s)),t}},Go=e=>({cache:zo(e.cacheSize),parseClassName:Ao(e),sortModifiers:Po(e),postfixLookupClassGroupIds:Mo(e),...go(e)}),Mo=e=>{let r=Object.create(null),o=e.postfixLookupClassGroups;if(o)for(let t=0;t{let{parseClassName:o,getClassGroupId:t,getConflictingClassGroupIds:s,sortModifiers:l,postfixLookupClassGroupIds:n}=r,p=[],f=e.trim().split(Io),d="";for(let b=f.length-1;b>=0;b-=1){let g=f[b],{isExternal:y,modifiers:k,hasImportantModifier:P,baseClassName:w,maybePostfixModifierPosition:C}=o(g);if(y){d=g+(d.length>0?" "+d:d);continue}let L=!!C,R;if(L){let I=w.substring(0,C);R=t(I);let c=R&&n[R]?t(w):void 0;c&&c!==R&&(R=c,L=!1)}else R=t(w);if(!R){if(!L){d=g+(d.length>0?" "+d:d);continue}if(R=t(w),!R){d=g+(d.length>0?" "+d:d);continue}L=!1}let $=k.length===0?"":k.length===1?k[0]:l(k).join(":"),W=P?$+le:$,j=W+R;if(p.indexOf(j)>-1)continue;p.push(j);let F=s(R,L);for(let I=0;I0?" "+d:d)}return d},Eo=(...e)=>{let r=0,o,t,s="";for(;r{if(typeof e=="string")return e;let r,o="";for(let t=0;t{let o,t,s,l,n=f=>{let d=r.reduce((b,g)=>g(b),e());return o=Go(d),t=o.cache.get,s=o.cache.set,l=p,p(f)},p=f=>{let d=t(f);if(d)return d;let b=To(f,o);return s(f,b),b};return l=n,(...f)=>l(Eo(...f))},Lo=[],h=e=>{let r=o=>o[e]||Lo;return r.isThemeGetter=!0,r},je=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Fe=/^\((?:(\w[\w-]*):)?(.+)\)$/i,No=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,_o=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Oo=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Wo=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,jo=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Fo=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,E=e=>No.test(e),u=e=>!!e&&!Number.isNaN(Number(e)),M=e=>!!e&&Number.isInteger(Number(e)),ae=e=>e.endsWith("%")&&u(e.slice(0,-1)),T=e=>_o.test(e),Be=()=>!0,Bo=e=>Oo.test(e)&&!Wo.test(e),de=()=>!1,$o=e=>jo.test(e),Do=e=>Fo.test(e),Uo=e=>!i(e)&&!a(e),Yo=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Ho=e=>V(e,Ue,de),i=e=>je.test(e),_=e=>V(e,Ye,Bo),Ee=e=>V(e,or,u),qo=e=>V(e,qe,Be),Xo=e=>V(e,He,de),Ve=e=>V(e,$e,de),Zo=e=>V(e,De,Do),Q=e=>V(e,Xe,$o),a=e=>Fe.test(e),D=e=>O(e,Ye),Jo=e=>O(e,He),Le=e=>O(e,$e),Ko=e=>O(e,Ue),Qo=e=>O(e,De),ee=e=>O(e,Xe,!0),er=e=>O(e,qe,!0),V=(e,r,o)=>{let t=je.exec(e);return t?t[1]?r(t[1]):o(t[2]):!1},O=(e,r,o=!1)=>{let t=Fe.exec(e);return t?t[1]?r(t[1]):o:!1},$e=e=>e==="position"||e==="percentage",De=e=>e==="image"||e==="url",Ue=e=>e==="length"||e==="size"||e==="bg-size",Ye=e=>e==="length",or=e=>e==="number",He=e=>e==="family-name",qe=e=>e==="number"||e==="weight",Xe=e=>e==="shadow";var rr=()=>{let e=h("color"),r=h("font"),o=h("text"),t=h("font-weight"),s=h("tracking"),l=h("leading"),n=h("breakpoint"),p=h("container"),f=h("spacing"),d=h("radius"),b=h("shadow"),g=h("inset-shadow"),y=h("text-shadow"),k=h("drop-shadow"),P=h("blur"),w=h("perspective"),C=h("aspect"),L=h("ease"),R=h("animate"),$=()=>["auto","avoid","all","avoid-page","page","left","right","column"],W=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],j=()=>[...W(),a,i],F=()=>["auto","hidden","clip","visible","scroll"],I=()=>["auto","contain","none"],c=()=>[a,i,f],A=()=>[E,"full","auto",...c()],me=()=>[M,"none","subgrid",a,i],pe=()=>["auto",{span:["full",M,a,i]},M,a,i],U=()=>[M,"auto",a,i],ue=()=>["auto","min","max","fr",a,i],re=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],B=()=>["start","end","center","stretch","center-safe","end-safe"],G=()=>["auto",...c()],N=()=>[E,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...c()],te=()=>[E,"screen","full","dvw","lvw","svw","min","max","fit",...c()],se=()=>[E,"screen","full","lh","dvh","lvh","svh","min","max","fit",...c()],m=()=>[e,a,i],fe=()=>[...W(),Le,Ve,{position:[a,i]}],be=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ge=()=>["auto","cover","contain",Ko,Ho,{size:[a,i]}],ne=()=>[ae,D,_],S=()=>["","none","full",d,a,i],z=()=>["",u,D,_],Y=()=>["solid","dashed","dotted","double"],he=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],x=()=>[u,ae,Le,Ve],ye=()=>["","none",P,a,i],H=()=>["none",u,a,i],q=()=>["none",u,a,i],ie=()=>[u,a,i],X=()=>[E,"full",...c()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[T],breakpoint:[T],color:[Be],container:[T],"drop-shadow":[T],ease:["in","out","in-out"],font:[Uo],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[T],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[T],shadow:[T],spacing:["px",u],text:[T],"text-shadow":[T],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",E,i,a,C]}],container:["container"],"container-type":[{"@container":["","normal","size",a,i]}],"container-named":[Yo],columns:[{columns:[u,i,a,p]}],"break-after":[{"break-after":$()}],"break-before":[{"break-before":$()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:j()}],overflow:[{overflow:F()}],"overflow-x":[{"overflow-x":F()}],"overflow-y":[{"overflow-y":F()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{"inset-s":A(),start:A()}],end:[{"inset-e":A(),end:A()}],"inset-bs":[{"inset-bs":A()}],"inset-be":[{"inset-be":A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[M,"auto",a,i]}],basis:[{basis:[E,"full","auto",p,...c()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[u,E,"auto","initial","none",i]}],grow:[{grow:["",u,a,i]}],shrink:[{shrink:["",u,a,i]}],order:[{order:[M,"first","last","none",a,i]}],"grid-cols":[{"grid-cols":me()}],"col-start-end":[{col:pe()}],"col-start":[{"col-start":U()}],"col-end":[{"col-end":U()}],"grid-rows":[{"grid-rows":me()}],"row-start-end":[{row:pe()}],"row-start":[{"row-start":U()}],"row-end":[{"row-end":U()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":ue()}],"auto-rows":[{"auto-rows":ue()}],gap:[{gap:c()}],"gap-x":[{"gap-x":c()}],"gap-y":[{"gap-y":c()}],"justify-content":[{justify:[...re(),"normal"]}],"justify-items":[{"justify-items":[...B(),"normal"]}],"justify-self":[{"justify-self":["auto",...B()]}],"align-content":[{content:["normal",...re()]}],"align-items":[{items:[...B(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...B(),{baseline:["","last"]}]}],"place-content":[{"place-content":re()}],"place-items":[{"place-items":[...B(),"baseline"]}],"place-self":[{"place-self":["auto",...B()]}],p:[{p:c()}],px:[{px:c()}],py:[{py:c()}],ps:[{ps:c()}],pe:[{pe:c()}],pbs:[{pbs:c()}],pbe:[{pbe:c()}],pt:[{pt:c()}],pr:[{pr:c()}],pb:[{pb:c()}],pl:[{pl:c()}],m:[{m:G()}],mx:[{mx:G()}],my:[{my:G()}],ms:[{ms:G()}],me:[{me:G()}],mbs:[{mbs:G()}],mbe:[{mbe:G()}],mt:[{mt:G()}],mr:[{mr:G()}],mb:[{mb:G()}],ml:[{ml:G()}],"space-x":[{"space-x":c()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":c()}],"space-y-reverse":["space-y-reverse"],size:[{size:N()}],"inline-size":[{inline:["auto",...te()]}],"min-inline-size":[{"min-inline":["auto",...te()]}],"max-inline-size":[{"max-inline":["none",...te()]}],"block-size":[{block:["auto",...se()]}],"min-block-size":[{"min-block":["auto",...se()]}],"max-block-size":[{"max-block":["none",...se()]}],w:[{w:[p,"screen",...N()]}],"min-w":[{"min-w":[p,"screen","none",...N()]}],"max-w":[{"max-w":[p,"screen","none","prose",{screen:[n]},...N()]}],h:[{h:["screen","lh",...N()]}],"min-h":[{"min-h":["screen","lh","none",...N()]}],"max-h":[{"max-h":["screen","lh",...N()]}],"font-size":[{text:["base",o,D,_]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[t,er,qo]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",ae,i]}],"font-family":[{font:[Jo,Xo,r]}],"font-features":[{"font-features":[i]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[s,a,i]}],"line-clamp":[{"line-clamp":[u,"none",a,Ee]}],leading:[{leading:[l,...c()]}],"list-image":[{"list-image":["none",a,i]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",a,i]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:m()}],"text-color":[{text:m()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Y(),"wavy"]}],"text-decoration-thickness":[{decoration:[u,"from-font","auto",a,_]}],"text-decoration-color":[{decoration:m()}],"underline-offset":[{"underline-offset":[u,"auto",a,i]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:c()}],"tab-size":[{tab:[M,a,i]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",a,i]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",a,i]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:fe()}],"bg-repeat":[{bg:be()}],"bg-size":[{bg:ge()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},M,a,i],radial:["",a,i],conic:[M,a,i]},Qo,Zo]}],"bg-color":[{bg:m()}],"gradient-from-pos":[{from:ne()}],"gradient-via-pos":[{via:ne()}],"gradient-to-pos":[{to:ne()}],"gradient-from":[{from:m()}],"gradient-via":[{via:m()}],"gradient-to":[{to:m()}],rounded:[{rounded:S()}],"rounded-s":[{"rounded-s":S()}],"rounded-e":[{"rounded-e":S()}],"rounded-t":[{"rounded-t":S()}],"rounded-r":[{"rounded-r":S()}],"rounded-b":[{"rounded-b":S()}],"rounded-l":[{"rounded-l":S()}],"rounded-ss":[{"rounded-ss":S()}],"rounded-se":[{"rounded-se":S()}],"rounded-ee":[{"rounded-ee":S()}],"rounded-es":[{"rounded-es":S()}],"rounded-tl":[{"rounded-tl":S()}],"rounded-tr":[{"rounded-tr":S()}],"rounded-br":[{"rounded-br":S()}],"rounded-bl":[{"rounded-bl":S()}],"border-w":[{border:z()}],"border-w-x":[{"border-x":z()}],"border-w-y":[{"border-y":z()}],"border-w-s":[{"border-s":z()}],"border-w-e":[{"border-e":z()}],"border-w-bs":[{"border-bs":z()}],"border-w-be":[{"border-be":z()}],"border-w-t":[{"border-t":z()}],"border-w-r":[{"border-r":z()}],"border-w-b":[{"border-b":z()}],"border-w-l":[{"border-l":z()}],"divide-x":[{"divide-x":z()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":z()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Y(),"hidden","none"]}],"divide-style":[{divide:[...Y(),"hidden","none"]}],"border-color":[{border:m()}],"border-color-x":[{"border-x":m()}],"border-color-y":[{"border-y":m()}],"border-color-s":[{"border-s":m()}],"border-color-e":[{"border-e":m()}],"border-color-bs":[{"border-bs":m()}],"border-color-be":[{"border-be":m()}],"border-color-t":[{"border-t":m()}],"border-color-r":[{"border-r":m()}],"border-color-b":[{"border-b":m()}],"border-color-l":[{"border-l":m()}],"divide-color":[{divide:m()}],"outline-style":[{outline:[...Y(),"none","hidden"]}],"outline-offset":[{"outline-offset":[u,a,i]}],"outline-w":[{outline:["",u,D,_]}],"outline-color":[{outline:m()}],shadow:[{shadow:["","none",b,ee,Q]}],"shadow-color":[{shadow:m()}],"inset-shadow":[{"inset-shadow":["none",g,ee,Q]}],"inset-shadow-color":[{"inset-shadow":m()}],"ring-w":[{ring:z()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:m()}],"ring-offset-w":[{"ring-offset":[u,_]}],"ring-offset-color":[{"ring-offset":m()}],"inset-ring-w":[{"inset-ring":z()}],"inset-ring-color":[{"inset-ring":m()}],"text-shadow":[{"text-shadow":["none",y,ee,Q]}],"text-shadow-color":[{"text-shadow":m()}],opacity:[{opacity:[u,a,i]}],"mix-blend":[{"mix-blend":[...he(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":he()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[u]}],"mask-image-linear-from-pos":[{"mask-linear-from":x()}],"mask-image-linear-to-pos":[{"mask-linear-to":x()}],"mask-image-linear-from-color":[{"mask-linear-from":m()}],"mask-image-linear-to-color":[{"mask-linear-to":m()}],"mask-image-t-from-pos":[{"mask-t-from":x()}],"mask-image-t-to-pos":[{"mask-t-to":x()}],"mask-image-t-from-color":[{"mask-t-from":m()}],"mask-image-t-to-color":[{"mask-t-to":m()}],"mask-image-r-from-pos":[{"mask-r-from":x()}],"mask-image-r-to-pos":[{"mask-r-to":x()}],"mask-image-r-from-color":[{"mask-r-from":m()}],"mask-image-r-to-color":[{"mask-r-to":m()}],"mask-image-b-from-pos":[{"mask-b-from":x()}],"mask-image-b-to-pos":[{"mask-b-to":x()}],"mask-image-b-from-color":[{"mask-b-from":m()}],"mask-image-b-to-color":[{"mask-b-to":m()}],"mask-image-l-from-pos":[{"mask-l-from":x()}],"mask-image-l-to-pos":[{"mask-l-to":x()}],"mask-image-l-from-color":[{"mask-l-from":m()}],"mask-image-l-to-color":[{"mask-l-to":m()}],"mask-image-x-from-pos":[{"mask-x-from":x()}],"mask-image-x-to-pos":[{"mask-x-to":x()}],"mask-image-x-from-color":[{"mask-x-from":m()}],"mask-image-x-to-color":[{"mask-x-to":m()}],"mask-image-y-from-pos":[{"mask-y-from":x()}],"mask-image-y-to-pos":[{"mask-y-to":x()}],"mask-image-y-from-color":[{"mask-y-from":m()}],"mask-image-y-to-color":[{"mask-y-to":m()}],"mask-image-radial":[{"mask-radial":[a,i]}],"mask-image-radial-from-pos":[{"mask-radial-from":x()}],"mask-image-radial-to-pos":[{"mask-radial-to":x()}],"mask-image-radial-from-color":[{"mask-radial-from":m()}],"mask-image-radial-to-color":[{"mask-radial-to":m()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":W()}],"mask-image-conic-pos":[{"mask-conic":[u]}],"mask-image-conic-from-pos":[{"mask-conic-from":x()}],"mask-image-conic-to-pos":[{"mask-conic-to":x()}],"mask-image-conic-from-color":[{"mask-conic-from":m()}],"mask-image-conic-to-color":[{"mask-conic-to":m()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:fe()}],"mask-repeat":[{mask:be()}],"mask-size":[{mask:ge()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",a,i]}],filter:[{filter:["","none",a,i]}],blur:[{blur:ye()}],brightness:[{brightness:[u,a,i]}],contrast:[{contrast:[u,a,i]}],"drop-shadow":[{"drop-shadow":["","none",k,ee,Q]}],"drop-shadow-color":[{"drop-shadow":m()}],grayscale:[{grayscale:["",u,a,i]}],"hue-rotate":[{"hue-rotate":[u,a,i]}],invert:[{invert:["",u,a,i]}],saturate:[{saturate:[u,a,i]}],sepia:[{sepia:["",u,a,i]}],"backdrop-filter":[{"backdrop-filter":["","none",a,i]}],"backdrop-blur":[{"backdrop-blur":ye()}],"backdrop-brightness":[{"backdrop-brightness":[u,a,i]}],"backdrop-contrast":[{"backdrop-contrast":[u,a,i]}],"backdrop-grayscale":[{"backdrop-grayscale":["",u,a,i]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u,a,i]}],"backdrop-invert":[{"backdrop-invert":["",u,a,i]}],"backdrop-opacity":[{"backdrop-opacity":[u,a,i]}],"backdrop-saturate":[{"backdrop-saturate":[u,a,i]}],"backdrop-sepia":[{"backdrop-sepia":["",u,a,i]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":c()}],"border-spacing-x":[{"border-spacing-x":c()}],"border-spacing-y":[{"border-spacing-y":c()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",a,i]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[u,"initial",a,i]}],ease:[{ease:["linear","initial",L,a,i]}],delay:[{delay:[u,a,i]}],animate:[{animate:["none",R,a,i]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,a,i]}],"perspective-origin":[{"perspective-origin":j()}],rotate:[{rotate:H()}],"rotate-x":[{"rotate-x":H()}],"rotate-y":[{"rotate-y":H()}],"rotate-z":[{"rotate-z":H()}],scale:[{scale:q()}],"scale-x":[{"scale-x":q()}],"scale-y":[{"scale-y":q()}],"scale-z":[{"scale-z":q()}],"scale-3d":["scale-3d"],skew:[{skew:ie()}],"skew-x":[{"skew-x":ie()}],"skew-y":[{"skew-y":ie()}],transform:[{transform:[a,i,"","none","gpu","cpu"]}],"transform-origin":[{origin:j()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:X()}],"translate-x":[{"translate-x":X()}],"translate-y":[{"translate-y":X()}],"translate-z":[{"translate-z":X()}],"translate-none":["translate-none"],zoom:[{zoom:[M,a,i]}],accent:[{accent:m()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:m()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",a,i]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":m()}],"scrollbar-track-color":[{"scrollbar-track":m()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":c()}],"scroll-mx":[{"scroll-mx":c()}],"scroll-my":[{"scroll-my":c()}],"scroll-ms":[{"scroll-ms":c()}],"scroll-me":[{"scroll-me":c()}],"scroll-mbs":[{"scroll-mbs":c()}],"scroll-mbe":[{"scroll-mbe":c()}],"scroll-mt":[{"scroll-mt":c()}],"scroll-mr":[{"scroll-mr":c()}],"scroll-mb":[{"scroll-mb":c()}],"scroll-ml":[{"scroll-ml":c()}],"scroll-p":[{"scroll-p":c()}],"scroll-px":[{"scroll-px":c()}],"scroll-py":[{"scroll-py":c()}],"scroll-ps":[{"scroll-ps":c()}],"scroll-pe":[{"scroll-pe":c()}],"scroll-pbs":[{"scroll-pbs":c()}],"scroll-pbe":[{"scroll-pbe":c()}],"scroll-pt":[{"scroll-pt":c()}],"scroll-pr":[{"scroll-pr":c()}],"scroll-pb":[{"scroll-pb":c()}],"scroll-pl":[{"scroll-pl":c()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",a,i]}],fill:[{fill:["none",...m()]}],"stroke-w":[{stroke:[u,D,_,Ee]}],stroke:[{stroke:["none",...m()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var Ze=Vo(rr);function Je(...e){return Ze(Z(e))}import{jsx as sr}from"react/jsx-runtime";var tr=we("inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-xs font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-3",{variants:{variant:{default:"bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"bg-destructive text-white focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40 [a&]:hover:bg-destructive/90",outline:"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground",ghost:"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground",link:"text-primary underline-offset-4 [a&]:hover:underline"}},defaultVariants:{variant:"default"}});function Ke({className:e,variant:r="default",asChild:o=!1,...t}){let s=o?K.Root:"span";return sr(s,{"data-slot":"badge","data-variant":r,className:Je(tr({variant:r}),e),...t})}import{jsx as ir}from"react/jsx-runtime";function nr(){return ir(Ke,{variant:"outline",children:"Outline"})}export{nr as default}; diff --git a/b/382d8e143aaf451cc583a8f797ee410c29772e2ef8911bcca6c1c482d37cdcf1 b/b/382d8e143aaf451cc583a8f797ee410c29772e2ef8911bcca6c1c482d37cdcf1 new file mode 100644 index 0000000000000000000000000000000000000000..ceb8b72c2ec8d94462f4f2f670fbb0ca636fdcc3 --- /dev/null +++ b/b/382d8e143aaf451cc583a8f797ee410c29772e2ef8911bcca6c1c482d37cdcf1 @@ -0,0 +1,45 @@ +#!/usr/bin/env node +// gguf-forge-qwen35-parity.test.mjs — NUMERICAL parity (S4.7) of the qwen35 gated-DeltaNet linear layer +// (gguf-forge-qwen35.mjs) vs HuggingFace's reference Qwen3NextGatedDeltaNet, on identical weights + input. +// The fixture (gguf-forge-qwen35-parity.fixture.json) was generated by gguf-forge-qwen35-parity.gen.py: +// a tiny-config HF layer (torch reference path, no FLA) → its weights mapped to the GGUF/forge layout +// (in_proj_qkvz → contiguous attn_qkv + attn_gate, in_proj_ba → ssm_alpha/ssm_beta, conv1d, A_log, dt_bias, +// norm, out_proj) + a fixed input + the reference output. This is the gate that turns "plausible" into +// "correct": it caught a real bug (missing qk-L2-norm + q·1/√d scale) which is now fixed. +// +// Pass: every token cosine > 0.9999 AND max relative-L2 < 1e-3 (observed ~1e-6 — float rounding). +// Regenerate the fixture: python holo-apps/apps/q/forge/gguf-forge-qwen35-parity.gen.py +// +// Usage: node holo-apps/apps/q/forge/gguf-forge-qwen35-parity.test.mjs + +import { readFileSync, writeFileSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; +import { qwen35LinearLayer, newLayerState } from "./gguf-forge-qwen35.mjs"; + +const here = dirname(fileURLToPath(import.meta.url)); +const ref = JSON.parse(readFileSync(join(here, "gguf-forge-qwen35-parity.fixture.json"), "utf8")); +const F = (a) => Float32Array.from(a); +const D = ref.dims, W = Object.fromEntries(Object.entries(ref.W).map(([k, v]) => [k, F(v)])); +const xSeq = ref.x.map(F), yRef = ref.y.map(F); + +const r = qwen35LinearLayer(W, D, xSeq, newLayerState(D), { inputNormed: true }); + +const cos = (a, b) => { let d = 0, na = 0, nb = 0; for (let i = 0; i < a.length; i++) { d += a[i] * b[i]; na += a[i] * a[i]; nb += b[i] * b[i]; } return d / (Math.sqrt(na) * Math.sqrt(nb) + 1e-30); }; +const relL2 = (a, b) => { let e = 0, n = 0; for (let i = 0; i < a.length; i++) { e += (a[i] - b[i]) ** 2; n += b[i] * b[i]; } return Math.sqrt(e / (n + 1e-30)); }; + +let minCos = 1, maxRel = 0; +const per = []; +for (let t = 0; t < yRef.length; t++) { const c = cos(r.ySeq[t], yRef[t]), e = relL2(r.ySeq[t], yRef[t]); minCos = Math.min(minCos, c); maxRel = Math.max(maxRel, e); per.push({ t, cos: +c.toFixed(6), relL2: e }); } + +const witnessed = minCos > 0.9999 && maxRel < 1e-3; +writeFileSync(join(here, "gguf-forge-qwen35-parity.test.result.json"), JSON.stringify({ + spec: "qwen35 gated-DeltaNet linear layer is NUMERICALLY EXACT vs HF Qwen3NextGatedDeltaNet (same weights+input): contiguous q|k|v split, causal depthwise conv1d+SiLU (no bias), head-group repeat_interleave expansion, per-head qk L2-norm + q·1/√d scale, decay g=-exp(A_log)·softplus(a+dt_bias), gated delta-rule recurrence, gated RMSNorm with z, out_proj. Caught+fixed a missing qk-L2-norm. min cosine and max relative-L2 across tokens recorded below.", + authority: "HF transformers modeling_qwen3_next (torch reference path) · fixture via gguf-forge-qwen35-parity.gen.py", + minCosine: minCos, maxRelL2: maxRel, perToken: per, witnessed, +}, null, 2) + "\n"); + +for (const p of per) console.log(` t=${p.t} cos=${p.cos.toFixed(6)} relL2=${p.relL2.toExponential(2)}`); +console.log(`min cosine=${minCos.toFixed(6)} max relL2=${maxRel.toExponential(2)}`); +console.log(`VERDICT : ${witnessed ? "WITNESSED ✓ qwen35 linear layer is numerically exact to HF (S4.7 layer parity)" : "NOT WITNESSED"}`); +process.exit(witnessed ? 0 : 1); diff --git a/b/388267a40a45646c22fac96ef450e051f03fdbe1fede857ddf236fff00e5b35a b/b/388267a40a45646c22fac96ef450e051f03fdbe1fede857ddf236fff00e5b35a new file mode 100644 index 0000000000000000000000000000000000000000..1bbb518336db25443f744fd480d4d183eb425abc --- /dev/null +++ b/b/388267a40a45646c22fac96ef450e051f03fdbe1fede857ddf236fff00e5b35a @@ -0,0 +1 @@ +/*! 🌼 daisyUI 5.5.22 - MIT License */ .focus\:bg-base-100:focus{&:focus{background-color:var(--color-base-100)}}.active\:bg-base-100:active{&:active{background-color:var(--color-base-100)}}.focus\:text-base-100:focus{&:focus{color:var(--color-base-100)}}.active\:text-base-100:active{&:active{color:var(--color-base-100)}}.focus\:border-base-100:focus{&:focus{border-color:var(--color-base-100)}}.active\:border-base-100:active{&:active{border-color:var(--color-base-100)}}.focus\:bg-base-200:focus{&:focus{background-color:var(--color-base-200)}}.active\:bg-base-200:active{&:active{background-color:var(--color-base-200)}}.focus\:text-base-200:focus{&:focus{color:var(--color-base-200)}}.active\:text-base-200:active{&:active{color:var(--color-base-200)}}.focus\:border-base-200:focus{&:focus{border-color:var(--color-base-200)}}.active\:border-base-200:active{&:active{border-color:var(--color-base-200)}}.focus\:bg-base-300:focus{&:focus{background-color:var(--color-base-300)}}.active\:bg-base-300:active{&:active{background-color:var(--color-base-300)}}.focus\:text-base-300:focus{&:focus{color:var(--color-base-300)}}.active\:text-base-300:active{&:active{color:var(--color-base-300)}}.focus\:border-base-300:focus{&:focus{border-color:var(--color-base-300)}}.active\:border-base-300:active{&:active{border-color:var(--color-base-300)}}.focus\:bg-base-content:focus{&:focus{background-color:var(--color-base-content)}}.active\:bg-base-content:active{&:active{background-color:var(--color-base-content)}}.focus\:text-base-content:focus{&:focus{color:var(--color-base-content)}}.active\:text-base-content:active{&:active{color:var(--color-base-content)}}.focus\:border-base-content:focus{&:focus{border-color:var(--color-base-content)}}.active\:border-base-content:active{&:active{border-color:var(--color-base-content)}}.focus\:bg-primary:focus{&:focus{background-color:var(--color-primary)}}.active\:bg-primary:active{&:active{background-color:var(--color-primary)}}.focus\:text-primary:focus{&:focus{color:var(--color-primary)}}.active\:text-primary:active{&:active{color:var(--color-primary)}}.focus\:border-primary:focus{&:focus{border-color:var(--color-primary)}}.active\:border-primary:active{&:active{border-color:var(--color-primary)}}.focus\:bg-primary-content:focus{&:focus{background-color:var(--color-primary-content)}}.active\:bg-primary-content:active{&:active{background-color:var(--color-primary-content)}}.focus\:text-primary-content:focus{&:focus{color:var(--color-primary-content)}}.active\:text-primary-content:active{&:active{color:var(--color-primary-content)}}.focus\:border-primary-content:focus{&:focus{border-color:var(--color-primary-content)}}.active\:border-primary-content:active{&:active{border-color:var(--color-primary-content)}}.focus\:bg-secondary:focus{&:focus{background-color:var(--color-secondary)}}.active\:bg-secondary:active{&:active{background-color:var(--color-secondary)}}.focus\:text-secondary:focus{&:focus{color:var(--color-secondary)}}.active\:text-secondary:active{&:active{color:var(--color-secondary)}}.focus\:border-secondary:focus{&:focus{border-color:var(--color-secondary)}}.active\:border-secondary:active{&:active{border-color:var(--color-secondary)}}.focus\:bg-secondary-content:focus{&:focus{background-color:var(--color-secondary-content)}}.active\:bg-secondary-content:active{&:active{background-color:var(--color-secondary-content)}}.focus\:text-secondary-content:focus{&:focus{color:var(--color-secondary-content)}}.active\:text-secondary-content:active{&:active{color:var(--color-secondary-content)}}.focus\:border-secondary-content:focus{&:focus{border-color:var(--color-secondary-content)}}.active\:border-secondary-content:active{&:active{border-color:var(--color-secondary-content)}}.focus\:bg-accent:focus{&:focus{background-color:var(--color-accent)}}.active\:bg-accent:active{&:active{background-color:var(--color-accent)}}.focus\:text-accent:focus{&:focus{color:var(--color-accent)}}.active\:text-accent:active{&:active{color:var(--color-accent)}}.focus\:border-accent:focus{&:focus{border-color:var(--color-accent)}}.active\:border-accent:active{&:active{border-color:var(--color-accent)}}.focus\:bg-accent-content:focus{&:focus{background-color:var(--color-accent-content)}}.active\:bg-accent-content:active{&:active{background-color:var(--color-accent-content)}}.focus\:text-accent-content:focus{&:focus{color:var(--color-accent-content)}}.active\:text-accent-content:active{&:active{color:var(--color-accent-content)}}.focus\:border-accent-content:focus{&:focus{border-color:var(--color-accent-content)}}.active\:border-accent-content:active{&:active{border-color:var(--color-accent-content)}}.focus\:bg-neutral:focus{&:focus{background-color:var(--color-neutral)}}.active\:bg-neutral:active{&:active{background-color:var(--color-neutral)}}.focus\:text-neutral:focus{&:focus{color:var(--color-neutral)}}.active\:text-neutral:active{&:active{color:var(--color-neutral)}}.focus\:border-neutral:focus{&:focus{border-color:var(--color-neutral)}}.active\:border-neutral:active{&:active{border-color:var(--color-neutral)}}.focus\:bg-neutral-content:focus{&:focus{background-color:var(--color-neutral-content)}}.active\:bg-neutral-content:active{&:active{background-color:var(--color-neutral-content)}}.focus\:text-neutral-content:focus{&:focus{color:var(--color-neutral-content)}}.active\:text-neutral-content:active{&:active{color:var(--color-neutral-content)}}.focus\:border-neutral-content:focus{&:focus{border-color:var(--color-neutral-content)}}.active\:border-neutral-content:active{&:active{border-color:var(--color-neutral-content)}}.focus\:bg-info:focus{&:focus{background-color:var(--color-info)}}.active\:bg-info:active{&:active{background-color:var(--color-info)}}.focus\:text-info:focus{&:focus{color:var(--color-info)}}.active\:text-info:active{&:active{color:var(--color-info)}}.focus\:border-info:focus{&:focus{border-color:var(--color-info)}}.active\:border-info:active{&:active{border-color:var(--color-info)}}.focus\:bg-info-content:focus{&:focus{background-color:var(--color-info-content)}}.active\:bg-info-content:active{&:active{background-color:var(--color-info-content)}}.focus\:text-info-content:focus{&:focus{color:var(--color-info-content)}}.active\:text-info-content:active{&:active{color:var(--color-info-content)}}.focus\:border-info-content:focus{&:focus{border-color:var(--color-info-content)}}.active\:border-info-content:active{&:active{border-color:var(--color-info-content)}}.focus\:bg-success:focus{&:focus{background-color:var(--color-success)}}.active\:bg-success:active{&:active{background-color:var(--color-success)}}.focus\:text-success:focus{&:focus{color:var(--color-success)}}.active\:text-success:active{&:active{color:var(--color-success)}}.focus\:border-success:focus{&:focus{border-color:var(--color-success)}}.active\:border-success:active{&:active{border-color:var(--color-success)}}.focus\:bg-success-content:focus{&:focus{background-color:var(--color-success-content)}}.active\:bg-success-content:active{&:active{background-color:var(--color-success-content)}}.focus\:text-success-content:focus{&:focus{color:var(--color-success-content)}}.active\:text-success-content:active{&:active{color:var(--color-success-content)}}.focus\:border-success-content:focus{&:focus{border-color:var(--color-success-content)}}.active\:border-success-content:active{&:active{border-color:var(--color-success-content)}}.focus\:bg-warning:focus{&:focus{background-color:var(--color-warning)}}.active\:bg-warning:active{&:active{background-color:var(--color-warning)}}.focus\:text-warning:focus{&:focus{color:var(--color-warning)}}.active\:text-warning:active{&:active{color:var(--color-warning)}}.focus\:border-warning:focus{&:focus{border-color:var(--color-warning)}}.active\:border-warning:active{&:active{border-color:var(--color-warning)}}.focus\:bg-warning-content:focus{&:focus{background-color:var(--color-warning-content)}}.active\:bg-warning-content:active{&:active{background-color:var(--color-warning-content)}}.focus\:text-warning-content:focus{&:focus{color:var(--color-warning-content)}}.active\:text-warning-content:active{&:active{color:var(--color-warning-content)}}.focus\:border-warning-content:focus{&:focus{border-color:var(--color-warning-content)}}.active\:border-warning-content:active{&:active{border-color:var(--color-warning-content)}}.focus\:bg-error:focus{&:focus{background-color:var(--color-error)}}.active\:bg-error:active{&:active{background-color:var(--color-error)}}.focus\:text-error:focus{&:focus{color:var(--color-error)}}.active\:text-error:active{&:active{color:var(--color-error)}}.focus\:border-error:focus{&:focus{border-color:var(--color-error)}}.active\:border-error:active{&:active{border-color:var(--color-error)}}.focus\:bg-error-content:focus{&:focus{background-color:var(--color-error-content)}}.active\:bg-error-content:active{&:active{background-color:var(--color-error-content)}}.focus\:text-error-content:focus{&:focus{color:var(--color-error-content)}}.active\:text-error-content:active{&:active{color:var(--color-error-content)}}.focus\:border-error-content:focus{&:focus{border-color:var(--color-error-content)}}.active\:border-error-content:active{&:active{border-color:var(--color-error-content)}} \ No newline at end of file diff --git a/b/3883e2056670bb4ac193d5178b0bf609d6faba0e625c5041d40a6814b74e910b b/b/3883e2056670bb4ac193d5178b0bf609d6faba0e625c5041d40a6814b74e910b new file mode 100644 index 0000000000000000000000000000000000000000..f1acf65f14adbd69d9cdd091b308068ce7a23ab3 --- /dev/null +++ b/b/3883e2056670bb4ac193d5178b0bf609d6faba0e625c5041d40a6814b74e910b @@ -0,0 +1,7 @@ +import mockup from './object.js'; +import { addPrefix } from '../../functions/addPrefix.js'; + +export default ({ addComponents, prefix = '' }) => { + const prefixedmockup = addPrefix(mockup, prefix); + addComponents({ ...prefixedmockup }); +}; diff --git a/b/38919e5ead95a988579ac88c6db7ab666e31963dbec223f59178e572687d0553 b/b/38919e5ead95a988579ac88c6db7ab666e31963dbec223f59178e572687d0553 new file mode 100644 index 0000000000000000000000000000000000000000..92213252624d92f5c89a5c454470463991a02716 --- /dev/null +++ b/b/38919e5ead95a988579ac88c6db7ab666e31963dbec223f59178e572687d0553 @@ -0,0 +1,142 @@ +// ui/settings.js — the Settings sheet: General (theme · accent · font size), Chat (enter-to-send · +// receipts · markdown), Speech (dictation language · read-aloud + rate), Data (storage · export all · +// import · delete all), About. Settings persist in the boot index (substrate-local, no account). + +import { storageEstimate } from "../core/backend.js"; +import { exportAll, importFile } from "./importexport.js"; + +export function makeSettingsStore(chatStore) { + let cache = null; + async function load() { + if (cache) return cache; + const idx = await chatStore.getIndex(); + cache = { enterSend: true, receipts: true, markdown: true, tts: true, ttsRate: 1, sttLang: "", palette: "auto", ...(idx.settings || {}) }; + return cache; + } + async function save(patch) { + cache = { ...(await load()), ...patch }; + const idx = await chatStore.getIndex(); idx.settings = cache; + const b = new TextEncoder().encode(JSON.stringify(idx)); + await (chatStore.store.backend.putRaw ? chatStore.store.backend.putRaw("index:org.hologram.HoloQ", b) : chatStore.store.backend.put("index:org.hologram.HoloQ", b)); + } + return { load, save, get: (k) => (cache ? cache[k] : undefined) }; +} + +export function makeSettings({ ctx, els, t, toast, act }) { + const { settings, chatStore, bus } = ctx; + const TABS = [["general", t("com_settings_general")], ["chat", t("com_settings_chat")], ["speech", t("com_settings_speech")], ["data", t("com_settings_data")], ["about", t("com_settings_about")]]; + let tab = "general"; + + async function open() { + await settings.load(); + els.modals.hidden = false; + render(); + } + function close() { els.modals.hidden = true; els.modals.innerHTML = ""; } + + function render() { + els.modals.innerHTML = ` + `; + els.modals.querySelector(".x").onclick = close; + els.modals.onclick = (e) => { if (e.target === els.modals) close(); }; + els.modals.querySelectorAll(".sheet-tabs button").forEach((b) => (b.onclick = () => { tab = b.dataset.t; render(); })); + const pane = els.modals.querySelector("#setpane"); + if (tab === "general") renderGeneral(pane); + else if (tab === "chat") renderChat(pane); + else if (tab === "speech") renderSpeech(pane); + else if (tab === "data") renderData(pane); + else renderAbout(pane); + } + + const row = (lab, sub, ctrl) => `
${lab}${sub ? `${sub}` : ""}
${ctrl}
`; + const sw = (id, on) => ``; + const wireSwitch = (pane, id, key, after) => { + const b = pane.querySelector("#" + id); + b.onclick = async () => { const on = !b.classList.contains("on"); b.classList.toggle("on", on); await settings.save({ [key]: on }); after?.(on); }; + }; + + function renderGeneral(pane) { + const pal = settings.get("palette") || "auto"; + pane.innerHTML = + row(t("com_settings_theme"), "", `${[["auto", t("com_settings_theme_auto")], ["dark", t("com_settings_theme_dark")], ["light", t("com_settings_theme_light")]].map(([v, l]) => ``).join("")}`) + + row(t("com_settings_font_size"), "", `${[["0.9", "A−"], ["1", "A"], ["1.12", "A+"]].map(([v, l]) => ``).join("")}`); + pane.querySelectorAll("#pal button").forEach((b) => (b.onclick = async () => { + pane.querySelectorAll("#pal button").forEach((x) => x.classList.toggle("on", x === b)); + await settings.save({ palette: b.dataset.v }); + document.documentElement.dataset.palette = b.dataset.v; + try { window.HoloTheme?.setPalette?.(b.dataset.v); } catch {} + })); + pane.querySelectorAll("#fs button").forEach((b) => (b.onclick = () => { try { window.HoloTheme?.setFontScale?.(+b.dataset.v); } catch { document.documentElement.style.fontSize = (+b.dataset.v * 100) + "%"; } })); + } + + function renderChat(pane) { + pane.innerHTML = + row(t("com_settings_enter_send"), "Shift+Enter inserts a newline. Ctrl+Enter always sends.", sw("s-enter", settings.get("enterSend") !== false)) + + row(t("com_settings_show_receipts"), "Every answer carries a verifiable PROV-O receipt (Law L5).", sw("s-receipts", settings.get("receipts") === true)) + + row(t("com_settings_markdown"), "", sw("s-md", settings.get("markdown") !== false)); + wireSwitch(pane, "s-enter", "enterSend"); + wireSwitch(pane, "s-receipts", "receipts", () => act.rerender()); + wireSwitch(pane, "s-md", "markdown", () => act.rerender()); + } + + function renderSpeech(pane) { + pane.innerHTML = + row(t("com_ui_speech_input"), t("com_settings_stt_note"), ``) + + row(t("com_settings_tts_enable"), "", sw("s-tts", settings.get("tts") !== false)) + + row(t("com_settings_tts_rate"), "", ``); + pane.querySelector("#s-lang").onchange = (e) => settings.save({ sttLang: e.target.value.trim() }); + wireSwitch(pane, "s-tts", "tts", () => act.rerender()); + pane.querySelector("#s-rate").onchange = (e) => settings.save({ ttsRate: +e.target.value }); + } + + async function renderData(pane) { + const { usage, quota } = await storageEstimate(); + const gb = (n) => (n / 1073741824).toFixed(2); + const mems = ctx.memory ? await ctx.memory.list() : []; + pane.innerHTML = + row(t("com_settings_storage"), `${gb(usage)} GB of ${gb(quota)} GB used`, "") + + `
${t("com_memory_title")}${mems.length ? mems.reduce((n, m) => n + (m.tokenCount || 0), 0) + " / " + ctx.memory.tokenLimit + " tokens" : t("com_memory_none")}
+
+
+ + + +
` + + row(t("com_settings_export_all"), "Conversations + presets, as verifiable JSON.", ``) + + row(t("com_settings_import_file"), "", ``) + + row(t("com_settings_clear"), "", ``); + const memsEl = pane.querySelector("#d-mems"); + for (const m of mems) { + const r2 = document.createElement("div"); + r2.style.cssText = "display:flex;align-items:center;gap:8px;font-size:var(--fs)"; + r2.innerHTML = `${m.key}`; + r2.querySelector("span").textContent = m.value; + r2.querySelector("button").onclick = async () => { await ctx.memory.remove(m.key); renderData(pane); }; + memsEl.appendChild(r2); + } + pane.querySelector("#d-madd").onclick = async () => { + const r3 = await ctx.memory.set(pane.querySelector("#d-mkey").value, pane.querySelector("#d-mval").value); + if (!r3.ok) toast(r3.error); else renderData(pane); + }; + pane.querySelector("#d-exp").onclick = () => exportAll(ctx); + pane.querySelector("#d-imp").onclick = async () => { const n = await importFile(ctx); if (n >= 0) { toast(`${t("com_ui_import")} ✓ ${n}`); bus.emit("conversations-changed"); } }; + pane.querySelector("#d-clear").onclick = async () => { + if (!confirm(t("com_settings_clear_confirm"))) return; + await new Promise((res) => { const rq = indexedDB.deleteDatabase("holo-q"); rq.onsuccess = rq.onerror = rq.onblocked = res; }); + location.reload(); + }; + } + + function renderAbout(pane) { + pane.innerHTML = `

${t("com_settings_about_text")}

+
app
org.hologram.HoloQ · LibreChat-parity spine · UOR substrate-native
`; + } + + return { open, close }; +} diff --git a/b/389c81a0a189b8d1f71e41b212b7b6c34d701d8bfc628db75b1efd11633d6070 b/b/389c81a0a189b8d1f71e41b212b7b6c34d701d8bfc628db75b1efd11633d6070 new file mode 100644 index 0000000000000000000000000000000000000000..d65a2b52c0020e666c34a9d7f9012d26af3b3ed2 --- /dev/null +++ b/b/389c81a0a189b8d1f71e41b212b7b6c34d701d8bfc628db75b1efd11633d6070 @@ -0,0 +1,47 @@ +import { cn } from "@/lib/utils" + +interface Avatar { + imageUrl: string + profileUrl: string +} +interface AvatarCirclesProps { + className?: string + numPeople?: number + avatarUrls: Avatar[] +} + +export const AvatarCircles = ({ + numPeople, + className, + avatarUrls, +}: AvatarCirclesProps) => { + return ( +
+ {avatarUrls.map((url, index) => ( + + {`Avatar + + ))} + {(numPeople ?? 0) > 0 && ( + + +{numPeople} + + )} +
+ ) +} diff --git a/b/38ae4ec82a3579c85938acc73e4dfd1340fa5e52660de5652ea08ad493e3b160 b/b/38ae4ec82a3579c85938acc73e4dfd1340fa5e52660de5652ea08ad493e3b160 new file mode 100644 index 0000000000000000000000000000000000000000..24d928528e210b23cdcc17839fa87e5462b9ccb7 --- /dev/null +++ b/b/38ae4ec82a3579c85938acc73e4dfd1340fa5e52660de5652ea08ad493e3b160 @@ -0,0 +1,59 @@ +// holo-kappa-store.mjs — the persistent, content-addressed body store for κ-streamed models. +// +// One OPFS directory ("holo-kappa") keyed by κ (sha256 hex). A body fetched once is kept forever, +// L5-verified on every read, shared across EVERY model (a κ-block common to two models is stored +// once — real cross-model dedup). Second load is 0-network and offline; identity is the hash, so +// the cache never invalidates. This is the same layer holo-whisper-stream rides, lifted to a seam +// so the LLM κ-stream and Whisper share one persistent store. +// +// Node-safe: no browser API is touched at import time. The default backend (OPFS + WebCrypto) is +// only invoked in a browser; tests inject a mock backend + sha256 so the logic is witnessed in Node. + +const hexOf = (b) => { let s = ""; for (const x of b) s += x.toString(16).padStart(2, "0"); return s; }; + +// ── default browser backend: OPFS dir keyed by κ (identical shape to holo-whisper-stream) ── +async function opfsGet(dir, key) { try { const r = await navigator.storage.getDirectory(); const d = await r.getDirectoryHandle(dir, { create: true }); const fh = await d.getFileHandle(key); return new Uint8Array(await (await fh.getFile()).arrayBuffer()); } catch { return null; } } +async function opfsPut(dir, key, bytes) { try { const r = await navigator.storage.getDirectory(); const d = await r.getDirectoryHandle(dir, { create: true }); const fh = await d.getFileHandle(key, { create: true }); const w = await fh.createWritable(); await w.write(bytes); await w.close(); return true; } catch { return false; } } +async function opfsClear(dir) { try { const r = await navigator.storage.getDirectory(); await r.removeEntry(dir, { recursive: true }); return true; } catch { return false; } } +const browserBackend = (dir) => ({ get: (k) => opfsGet(dir, k), put: (k, b) => opfsPut(dir, k, b), clear: () => opfsClear(dir) }); + +const webcryptoSha256 = async (buf) => hexOf(new Uint8Array(await crypto.subtle.digest("SHA-256", buf))); + +// makeKappaStore — a verify-once persistent store over a backend. +// get(hex, fetchMiss): OPFS-hit (L5) → return 0-network; else fetchMiss() (which must itself L5-verify +// the transport body), persist it, return. A persisted body that no longer re-derives is REFUSED and +// re-fetched (tamper/bit-rot safe). stats expose the warm/cold proof: opfsHits vs misses/bytesFetched. +export function makeKappaStore({ dir = "holo-kappa", backend, sha256 = webcryptoSha256, useOpfs = true } = {}) { + const be = backend || browserBackend(dir); + const stats = { opfsHits: 0, opfsWrites: 0, misses: 0, bytesFetched: 0, verifies: 0, refuses: 0, headHits: 0, headRefuses: 0, headWrites: 0 }; + const enc = new TextEncoder(), dec = new TextDecoder(); + return { + stats, + clear: () => (be.clear ? be.clear() : Promise.resolve(false)), + hash: (bytes) => sha256(bytes), // content κ of a blob (hex) + async get(hex, fetchMiss) { + if (useOpfs) { + const c = await be.get(hex); + if (c) { stats.verifies++; if ((await sha256(c)) === hex) { stats.opfsHits++; return c; } stats.refuses++; } // L5 on cached body + } + const b = await fetchMiss(); // transport read (Range/IPFS) — fetchMiss L5-verifies + stats.misses++; stats.bytesFetched += b.length; + if (useOpfs) { try { if (await be.put(hex, b)) stats.opfsWrites++; } catch {} } + return b; + }, + // peek a content-addressed blob already in the store (no transport): L5-verify, else null. For the + // head-region blob — a cached head that no longer re-derives is REFUSED (returns null → re-fetch). + async peek(hex) { + if (!useOpfs) return null; + const c = await be.get(hex); if (!c) return null; + if ((await sha256(c)) === hex) { stats.headHits++; return c; } stats.headRefuses++; return null; + }, + async putBody(hex, bytes) { if (!useOpfs) return false; try { if (await be.put(hex, bytes)) { stats.headWrites++; return true; } } catch {} return false; }, + // small NON-identity local hints (e.g. url→headκ accelerator). Trust still flows through κ: a wrong + // hint yields a headκ whose peek() misses or refuses → re-fetch. Never a source of unverified bytes. + async getHint(key) { if (!useOpfs) return null; const c = await be.get("m_" + key); return c ? dec.decode(c) : null; }, + async putHint(key, val) { if (!useOpfs) return false; try { return await be.put("m_" + key, enc.encode(val)); } catch { return false; } }, + }; +} + +export { opfsGet, opfsPut, opfsClear }; diff --git a/b/38c5793864b1ee0faa819ad6cbfc4143e49e8a95261c7dd209ea1320021bbc1c b/b/38c5793864b1ee0faa819ad6cbfc4143e49e8a95261c7dd209ea1320021bbc1c new file mode 100644 index 0000000000000000000000000000000000000000..2c56cef21bc948dc419dc3c6c6b9027d1b5c81d7 --- /dev/null +++ b/b/38c5793864b1ee0faa819ad6cbfc4143e49e8a95261c7dd209ea1320021bbc1c @@ -0,0 +1 @@ +{"tapes": [{"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 13761, 220, 20, 15, 8491, 310, 39229, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 550, 12121, 271, 332, 46629, 7911, 64700, 220, 16, 14167, 283, 220, 16, 13, 21, 15, 24, 18, 19, 39229, 271, 332, 45593, 2820, 64700, 198, 13682, 20, 15, 1088, 1272, 90, 8491, 92, 1088, 14695, 220, 16, 13, 21, 15, 24, 18, 19], "text": "convert 50 miles to kilometers"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 4993, 635, 353, 17592, 264, 17592, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 8160, 369, 279, 2923, 13909, 28253, 8214, 310, 59951, 279, 1379, 4047, 17592, 49091, 25, 279, 2972, 26108, 3309, 12, 2239, 159034, 271, 13962, 70839, 198, 16, 13, 220, 2972, 3684, 279, 56738, 64700, 22041, 279, 17592, 2272, 678, 14697, 13, 561, 6669, 809], "text": "how do I tie a tie"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 12195, 579, 279, 8831, 1040, 3242, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 40, 1459, 914, 599, 2528, 310, 1865, 7019, 8831, 795, 13, 1946, 615, 3242, 579, 8831, 17071, 11, 353, 6718, 25, 271, 16, 13, 2972, 3840, 264, 8831, 3779, 332, 1040, 21926, 877, 11, 11101, 84, 28034, 11, 466, 21926, 52081, 198, 17, 13], "text": "what's the weather like today"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 4993, 635, 488, 1910, 1603, 6353, 303, 15659, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 332, 15666, 64700, 271, 332, 1, 2014, 240052, 626, 71, 507, 15560, 175267, 318, 148924, 154982, 88005, 8, 271, 1919, 369, 279, 5129, 11, 46193, 40719, 1429, 6600, 279, 1834, 303, 15659, 13, 1049, 15433, 3254, 328, 14556, 1, 321, 4138, 364, 6353, 11], "text": "how do you say good morning in Korean"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 1244, 91893, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 332, 44, 5130, 13148, 332, 3254, 8755, 2172, 6326, 310, 7472, 26, 1546, 16097, 321, 22825, 13, 271, 332, 1536, 13173, 64700, 198, 12, 2972, 969, 14025, 2022, 92217, 31245, 5562, 2414, 15060, 321, 6379, 198, 12, 2972, 53639, 92217, 11142, 286, 3160, 6326], "text": "define meticulous"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 1272, 821, 12553, 421, 353, 2688, 4162, 3200, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 8160, 513, 264, 2342, 2519, 11313, 383, 279, 6331, 25, 271, 332, 47585, 899, 64700, 198, 1, 18103, 11, 4162, 264, 2612, 3200, 11, 668, 381, 1017, 303, 498, 55, 60, 4276, 1149, 271, 332, 12115, 594, 6916, 64700, 198, 1, 18417, 3200, 11], "text": "text my sister that I'm running late"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 1244, 56696, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 332, 1026, 319, 1128, 332, 16067, 279, 8390, 310, 48772, 11, 10202, 310, 11, 321, 11394, 494, 86739, 11, 8204, 11, 466, 28911, 13, 271, 8160, 369, 264, 29006, 314, 279, 4496, 3808, 2086, 36353, 25, 271, 9, 256, 2972, 14965, 19107, 64700, 561], "text": "define resilient"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 4993, 2944, 369, 14211, 494, 1532, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 40, 1459, 914, 1366, 1332, 328, 6527, 1, 369, 1521, 488, 8719, 914, 3766, 678, 1428, 3602, 13, 271, 1206, 10724, 279, 5821, 310, 14211, 11, 353, 1144, 25, 198, 12, 4465, 3177, 5350, 754, 466, 198, 12, 4465, 2534, 466, 198, 12, 4465], "text": "how far is Toronto from here"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 1763, 474, 728, 310, 13474, 821, 24651, 411, 12967, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 40, 5125, 488, 2224, 9859, 728, 310, 23226, 488, 883, 2414, 11, 694, 353, 1459, 914, 599, 279, 5548, 310, 716, 63383, 466, 3502, 21292, 13, 271, 332, 3710, 353, 628, 1438, 440, 64700, 271, 16, 13, 2972, 1591, 264, 10189, 5020, 92217, 1394], "text": "remind me to renew my passport this afternoon"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 36408, 91893, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 760, 4252, 41019, 314, 279, 3299, 369, 2972, 17453, 13148, 159034, 271, 8160, 369, 279, 29006, 25, 198, 16, 13, 220, 2972, 44, 332, 198, 17, 13, 220, 2972, 68, 332, 198, 18, 13, 220, 2972, 83, 332, 198, 19, 13, 220, 2972, 72], "text": "spell meticulous"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 13642, 1603, 3603, 1083, 79915, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 332, 23640, 64700, 271, 332, 14773, 3603, 332, 303, 79915, 369, 25, 271, 332, 114588, 332, 318, 86, 131, 236, 77, 167967, 77, 8, 271, 4277, 271, 332, 47, 2176, 44767, 64700, 198, 12, 41463, 11668, 3533, 25, 68607, 16, 449, 16, 198, 12], "text": "translate good night into Mandarin"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 1200, 5437, 537, 411, 2128, 364, 728, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 40, 4035, 381, 6051, 310, 1438, 488, 59987, 264, 2128, 0, 4213, 11, 353, 1459, 914, 1436, 866, 2128, 12037, 310, 678, 1876, 13, 4558, 5328, 3300, 279, 2128, 488, 4035, 1040, 728, 310, 59987, 11, 321, 353, 3172, 381, 15252, 310, 25, 198], "text": "summarize this document for me"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 1200, 5437, 537, 411, 2469, 364, 728, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 40, 4035, 381, 6051, 310, 59987, 449, 2469, 364, 488, 0, 4213, 11, 353, 1459, 914, 1436, 279, 2469, 2144, 303, 678, 1876, 13, 4558, 5328, 24147, 279, 2469, 1414, 488, 4035, 1040, 728, 310, 59987, 11, 321, 353, 3172, 3300, 264, 2708, 11], "text": "summarize this email for me"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 1272, 10939, 421, 353, 2688, 4162, 3200, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 40, 5125, 488, 2908, 3766, 264, 3108, 3376, 1272, 10939, 421, 353, 2688, 4162, 3200, 871, 4598, 1056, 264, 3377, 310, 11290, 13, 271, 332, 2592, 488, 2224, 3221, 364, 1438, 440, 2414, 745, 93868, 4338, 1042, 728, 1366, 1092, 488, 4035, 1040, 728], "text": "text Chris that I'm running late"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 12195, 579, 279, 6511, 314, 6124, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 760, 6511, 314, 6124, 369, 2972, 51076, 15560, 159034, 271, 51076, 15560, 682, 978, 279, 6511, 2394, 279, 2088, 33716, 64568, 303, 220, 16, 23, 21, 23, 11, 948, 33178, 2088, 33716, 7481, 279, 33145, 5300, 494, 78229, 310, 458, 2887, 318, 7949, 557], "text": "what's the capital of Japan"}, {"prompt": [248045, 8678, 198, 2523, 513, 1167, 11, 264, 61446, 11, 10631, 7047, 17313, 13, 248046, 198, 248045, 846, 198, 12195, 579, 220, 20, 3161, 314, 220, 23, 15, 248046, 198, 248045, 74455, 198], "greedy": [248068, 271, 248069, 271, 550, 12121, 271, 1206, 1423, 220, 20, 4, 314, 220, 23, 15, 25, 271, 332, 3407, 220, 16, 25, 6943, 310, 11778, 332, 198, 13682, 20, 59, 4, 283, 220, 15, 13, 15, 20, 13682, 198, 13682, 15, 13, 15, 20, 1088, 14695, 220], "text": "what's 5 percent of 80"}]} \ No newline at end of file diff --git a/b/38cc5466910c9f9176486590bde9d14ddae3223874a138cab40c4feb9b754db1 b/b/38cc5466910c9f9176486590bde9d14ddae3223874a138cab40c4feb9b754db1 new file mode 100644 index 0000000000000000000000000000000000000000..f240df21cdd1a8d69b6482a1a07f0b1f30a224ca --- /dev/null +++ b/b/38cc5466910c9f9176486590bde9d14ddae3223874a138cab40c4feb9b754db1 @@ -0,0 +1,27 @@ +{ + "id": "org.hologram.ui.daisyui.daisyui", + "name": "daisyui", + "tier": "component", + "library": "daisyui", + "category": "Components", + "upstream": "https://cdn.jsdelivr.net/npm/daisyui@5.5.23/daisyui.css", + "docs": "https://daisyui.com/components/", + "did": "did:holo:sha256:67fb53d5cb59abb7ba7d65777c9668ac13779e4ca951b7e37ca85f090e3a8718", + "import": "holo://sha256:67fb53d5cb59abb7ba7d65777c9668ac13779e4ca951b7e37ca85f090e3a8718", + "integrity": "sha256-Z/tT1ctZq7e6fWV3fJZorBN3nkypUbfjfKhfCQ46hxg=", + "kappa": "sha256:67fb53d5cb59abb7ba7d65777c9668ac13779e4ca951b7e37ca85f090e3a8718", + "moduleKappa": "sha256:67fb53d5cb59abb7ba7d65777c9668ac13779e4ca951b7e37ca85f090e3a8718", + "renderExport": null, + "format": "css", + "source": "daisyui.css", + "module": "vendor/daisyui/daisyui.css", + "exports": [], + "bytes": 969577, + "provenance": { + "package": "daisyui", + "version": "5.5.23", + "integrity": "sha512-xuheNUSL4T6ZVtWXoioqcNkjoyGX85QTDz4HTw2aBPfqk4fuMjax5HDo8qCmpV6M1YN8bGvfx5BpYCoDeRlt+A==", + "file": "daisyui.css" + }, + "license": "MIT" +} diff --git a/b/38ccd37786103a3e74fd7268689330a82519e47e3e0149b78b88a248a2c38d1f b/b/38ccd37786103a3e74fd7268689330a82519e47e3e0149b78b88a248a2c38d1f new file mode 100644 index 0000000000000000000000000000000000000000..aeff64ab1528b0e087ef2882680143bd38fce53f --- /dev/null +++ b/b/38ccd37786103a3e74fd7268689330a82519e47e3e0149b78b88a248a2c38d1f @@ -0,0 +1,20 @@ +{ + "id": "org.hologram.ui.example.form-formisch-complex", + "name": "form-formisch-complex", + "tier": "example", + "library": "shadcn", + "category": "Examples", + "upstream": "https://ui.shadcn.com/r/styles/new-york-v4/form-formisch-complex.json", + "did": "did:holo:sha256:1d2892d755829b97adde3ceb75412cd5fa2cb70e6060f0cae8a7c5273adba037", + "import": "holo://sha256:e6b66ea07854f75a4063f12bee40941cfd82820e7b4c5b2479e37b42f35da46d", + "integrity": "sha256-5rZuoHhU91pAY/Er7kCUHP2Cgg57TFskeeN7QvNdpG0=", + "kappa": "sha256:1d2892d755829b97adde3ceb75412cd5fa2cb70e6060f0cae8a7c5273adba037", + "moduleKappa": "sha256:e6b66ea07854f75a4063f12bee40941cfd82820e7b4c5b2479e37b42f35da46d", + "renderExport": "default", + "source": "registry/new-york-v4/examples/form-formisch-complex.tsx", + "module": "vendor/components/form-formisch-complex.js", + "exports": [ + "default" + ], + "license": "MIT" +} diff --git a/b/3908367bdebaf555c00c9cd6548b2dd85472ba8644c6b88c4ab29a6bdb03ecae b/b/3908367bdebaf555c00c9cd6548b2dd85472ba8644c6b88c4ab29a6bdb03ecae new file mode 100644 index 0000000000000000000000000000000000000000..56259129982f4af6766351ff7aca7a279351b345 --- /dev/null +++ b/b/3908367bdebaf555c00c9cd6548b2dd85472ba8644c6b88c4ab29a6bdb03ecae @@ -0,0 +1,31 @@ +:root:has(input.theme-controller[value=abyss]:checked),[data-theme="abyss"] { +color-scheme: dark; +--color-base-100: oklch(20% 0.08 209); +--color-base-200: oklch(15% 0.08 209); +--color-base-300: oklch(10% 0.08 209); +--color-base-content: oklch(90% 0.076 70.697); +--color-primary: oklch(92% 0.2653 125); +--color-primary-content: oklch(50% 0.2653 125); +--color-secondary: oklch(83.27% 0.0764 298.3); +--color-secondary-content: oklch(43.27% 0.0764 298.3); +--color-accent: oklch(43% 0 0); +--color-accent-content: oklch(98% 0 0); +--color-neutral: oklch(30% 0.08 209); +--color-neutral-content: oklch(90% 0.076 70.697); +--color-info: oklch(74% 0.16 232.661); +--color-info-content: oklch(29% 0.066 243.157); +--color-success: oklch(79% 0.209 151.711); +--color-success-content: oklch(26% 0.065 152.934); +--color-warning: oklch(84.8% 0.1962 84.62); +--color-warning-content: oklch(44.8% 0.1962 84.62); +--color-error: oklch(65% 0.1985 24.22); +--color-error-content: oklch(27% 0.1985 24.22); +--radius-selector: 2rem; +--radius-field: 0.25rem; +--radius-box: 0.5rem; +--size-selector: 0.25rem; +--size-field: 0.25rem; +--border: 1px; +--depth: 1; +--noise: 0; +} diff --git a/b/39106999a4142bb5a483de4c5ca6c80ef3cbca8e66453dddf21e82f4fbd7f3dd b/b/39106999a4142bb5a483de4c5ca6c80ef3cbca8e66453dddf21e82f4fbd7f3dd new file mode 100644 index 0000000000000000000000000000000000000000..4c52d03c81f5d8ffcc508b264a753138c704f66d --- /dev/null +++ b/b/39106999a4142bb5a483de4c5ca6c80ef3cbca8e66453dddf21e82f4fbd7f3dd @@ -0,0 +1,12 @@ +import { Italic } from "lucide-react" + +import { Toggle } from "@/registry/new-york-v4/ui/toggle" + +export default function ToggleWithText() { + return ( + + + Italic + + ) +} diff --git a/b/393fe5a8760a7adeaa682a90dcb168b63301e4f6b908eb9e01f3fd597458143f b/b/393fe5a8760a7adeaa682a90dcb168b63301e4f6b908eb9e01f3fd597458143f new file mode 100644 index 0000000000000000000000000000000000000000..8d86432a69246edd77de32985fd06a8ebfe2a393 --- /dev/null +++ b/b/393fe5a8760a7adeaa682a90dcb168b63301e4f6b908eb9e01f3fd597458143f @@ -0,0 +1,95 @@ +"use client";var Ao=Object.defineProperty;var Do=(e,a)=>{for(var t in a)Ao(e,t,{get:a[t],enumerable:!0})};import{forwardRef as Fo,createElement as Bo}from"react";var Za=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Be=(...e)=>e.filter((a,t,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===t).join(" ").trim();import{forwardRef as Mo,createElement as Ja}from"react";var $a={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Ya=Mo(({color:e="currentColor",size:a=24,strokeWidth:t=2,absoluteStrokeWidth:o,className:r="",children:l,iconNode:s,...u},f)=>Ja("svg",{ref:f,...$a,width:a,height:a,stroke:e,strokeWidth:o?Number(t)*24/Number(a):t,className:Be("lucide",r),...u},[...s.map(([d,i])=>Ja(d,i)),...Array.isArray(l)?l:[l]]));var Qa=(e,a)=>{let t=Fo(({className:o,...r},l)=>Bo(Ya,{ref:l,iconNode:a,className:Be(`lucide-${Za(e)}`,o),...r}));return t.displayName=`${e}`,t};var be=Qa("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);import*as ot from"react";import*as rt from"react-dom";import*as E from"react";import*as at from"react";function et(e,a){if(typeof e=="function")return e(a);e!=null&&(e.current=a)}function To(...e){return a=>{let t=!1,o=e.map(r=>{let l=et(r,a);return!t&&typeof l=="function"&&(t=!0),l});if(t)return()=>{for(let r=0;r{let{children:r,...l}=t,s=null,u=!1,f=[];tt(r)&&typeof Te=="function"&&(r=Te(r._payload)),E.Children.forEach(r,x=>{if(Ho(x)){u=!0;let I=x,v="child"in I.props?I.props.child:I.props.children;tt(v)&&typeof Te=="function"&&(v=Te(v._payload)),s=Eo(I,v),f.push(s?.props?.children)}else f.push(x)}),s?s=E.cloneElement(s,void 0,f):!u&&E.Children.count(r)===1&&E.isValidElement(r)&&(s=r);let d=s?Uo(s):void 0,i=Z(o,d);if(!s){if(r||r===0)throw new Error(u?zo(e):Wo(e));return r}let c=qo(l,s.props??{});return s.type!==E.Fragment&&(c.ref=o?i:d),E.cloneElement(s,c)});return a.displayName=`${e}.Slot`,a}var Oo=Symbol.for("radix.slottable");var Eo=(e,a)=>{if("child"in e.props){let t=e.props.child;return E.isValidElement(t)?E.cloneElement(t,void 0,e.props.children(t.props.children)):null}return E.isValidElement(a)?a:null};function qo(e,a){let t={...a};for(let o in a){let r=e[o],l=a[o];/^on[A-Z]/.test(o)?r&&l?t[o]=(...u)=>{let f=l(...u);return r(...u),f}:r&&(t[o]=r):o==="style"?t[o]={...r,...l}:o==="className"&&(t[o]=[r,l].filter(Boolean).join(" "))}return{...e,...t}}function Uo(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning;return t?e.ref:(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function Ho(e){return E.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Oo}var Go=Symbol.for("react.lazy");function tt(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Go&&"_payload"in e&&No(e._payload)}function No(e){return typeof e=="object"&&e!==null&&"then"in e}var Wo=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,zo=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Te=E[" use ".trim().toString()];import{jsx as Vo}from"react/jsx-runtime";var _o=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],W=_o.reduce((e,a)=>{let t=Oe(`Primitive.${a}`),o=ot.forwardRef((r,l)=>{let{asChild:s,...u}=r,f=s?t:a;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),Vo(f,{...u,ref:l})});return o.displayName=`Primitive.${a}`,{...e,[a]:o}},{});function lt(e,a){e&&rt.flushSync(()=>e.dispatchEvent(a))}import*as z from"react";import{jsx as ut}from"react/jsx-runtime";function st(e,a){let t=z.createContext(a);t.displayName=e+"Context";let o=l=>{let{children:s,...u}=l,f=z.useMemo(()=>u,Object.values(u));return ut(t.Provider,{value:f,children:s})};o.displayName=e+"Provider";function r(l){let s=z.useContext(t);if(s)return s;if(a!==void 0)return a;throw new Error(`\`${l}\` must be used within \`${e}\``)}return[o,r]}function dt(e,a=[]){let t=[];function o(l,s){let u=z.createContext(s);u.displayName=l+"Context";let f=t.length;t=[...t,s];let d=c=>{let{scope:x,children:I,...v}=c,n=x?.[e]?.[f]||u,g=z.useMemo(()=>v,Object.values(v));return ut(n.Provider,{value:g,children:I})};d.displayName=l+"Provider";function i(c,x){let I=x?.[e]?.[f]||u,v=z.useContext(I);if(v)return v;if(s!==void 0)return s;throw new Error(`\`${c}\` must be used within \`${l}\``)}return[d,i]}let r=()=>{let l=t.map(s=>z.createContext(s));return function(u){let f=u?.[e]||l;return z.useMemo(()=>({[`__scope${e}`]:{...u,[e]:f}}),[u,f])}};return r.scopeName=e,[o,Xo(r,...a)]}function Xo(...e){let a=e[0];if(e.length===1)return a;let t=()=>{let o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(l){let s=o.reduce((u,{useScope:f,scopeName:d})=>{let c=f(l)[`__scope${d}`];return{...u,...c}},{});return z.useMemo(()=>({[`__scope${a.scopeName}`]:s}),[s])}};return t.scopeName=a.scopeName,t}var vu=!!(typeof window<"u"&&window.document&&window.document.createElement);function J(e,a,{checkForDefaultPrevented:t=!0}={}){return function(r){if(e?.(r),t===!1||!r.defaultPrevented)return a?.(r)}}import*as V from"react";import*as ft from"react";var Q=globalThis?.document?ft.useLayoutEffect:()=>{};import*as Ee from"react";var Ko=V[" useInsertionEffect ".trim().toString()]||Q;function nt({prop:e,defaultProp:a,onChange:t=()=>{},caller:o}){let[r,l,s]=jo({defaultProp:a,onChange:t}),u=e!==void 0,f=u?e:r;{let i=V.useRef(e!==void 0);V.useEffect(()=>{let c=i.current;c!==u&&console.warn(`${o} is changing from ${c?"controlled":"uncontrolled"} to ${u?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),i.current=u},[u,o])}let d=V.useCallback(i=>{if(u){let c=Zo(i)?i(e):i;c!==e&&s.current?.(c)}else l(i)},[u,e,l,s]);return[f,d]}function jo({defaultProp:e,onChange:a}){let[t,o]=V.useState(e),r=V.useRef(t),l=V.useRef(a);return Ko(()=>{l.current=a},[a]),V.useEffect(()=>{r.current!==t&&(l.current?.(t),r.current=t)},[t,r]),[t,o,l]}function Zo(e){return typeof e=="function"}var Ru=Symbol("RADIX:SYNC_STATE");import*as q from"react";import*as ct from"react";function $o(e,a){return ct.useReducer((t,o)=>a[t][o]??t,e)}var ve=e=>{let{present:a,children:t}=e,o=Jo(a),r=typeof t=="function"?t({present:o.isPresent}):q.Children.only(t),l=Yo(o.ref,Qo(r));return typeof t=="function"||o.isPresent?q.cloneElement(r,{ref:l}):null};ve.displayName="Presence";function Jo(e){let[a,t]=q.useState(),o=q.useRef(null),r=q.useRef(e),l=q.useRef("none"),s=e?"mounted":"unmounted",[u,f]=$o(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return q.useEffect(()=>{let d=qe(o.current);l.current=u==="mounted"?d:"none"},[u]),Q(()=>{let d=o.current,i=r.current;if(i!==e){let x=l.current,I=qe(d);e?f("MOUNT"):I==="none"||d?.display==="none"?f("UNMOUNT"):f(i&&x!==I?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,f]),Q(()=>{if(a){let d,i=a.ownerDocument.defaultView??window,c=I=>{let n=qe(o.current).includes(CSS.escape(I.animationName));if(I.target===a&&n&&(f("ANIMATION_END"),!r.current)){let g=a.style.animationFillMode;a.style.animationFillMode="forwards",d=i.setTimeout(()=>{a.style.animationFillMode==="forwards"&&(a.style.animationFillMode=g)})}},x=I=>{I.target===a&&(l.current=qe(o.current))};return a.addEventListener("animationstart",x),a.addEventListener("animationcancel",c),a.addEventListener("animationend",c),()=>{i.clearTimeout(d),a.removeEventListener("animationstart",x),a.removeEventListener("animationcancel",c),a.removeEventListener("animationend",c)}}else f("ANIMATION_END")},[a,f]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:q.useCallback(d=>{o.current=d?getComputedStyle(d):null,t(d)},[])}}function it(e,a){if(typeof e=="function")return e(a);e!=null&&(e.current=a)}function Yo(...e){let a=q.useRef(e);return a.current=e,q.useCallback(t=>{let o=a.current,r=!1,l=o.map(s=>{let u=it(s,t);return!r&&typeof u=="function"&&(r=!0),u});if(r)return()=>{for(let s=0;s{}),ar=0;function Ue(e){let[a,t]=la.useState(er());return Q(()=>{e||t(o=>o??String(ar++))},[e]),e||(a?`radix-${a}`:"")}var X={};Do(X,{Close:()=>dl,Content:()=>ll,Description:()=>sl,Dialog:()=>ka,DialogClose:()=>Ea,DialogContent:()=>Fa,DialogDescription:()=>Oa,DialogOverlay:()=>Ma,DialogPortal:()=>Da,DialogTitle:()=>Ta,DialogTrigger:()=>Ra,Overlay:()=>rl,Portal:()=>ol,Root:()=>al,Title:()=>ul,Trigger:()=>tl,WarningProvider:()=>Jr,createDialogScope:()=>Vr});import*as R from"react";import*as M from"react";import*as Ie from"react";function te(e){let a=Ie.useRef(e);return Ie.useEffect(()=>{a.current=e}),Ie.useMemo(()=>(...t)=>a.current?.(...t),[])}import*as pt from"react";function mt(e,a=globalThis?.document){let t=te(e);pt.useEffect(()=>{let o=r=>{r.key==="Escape"&&t(r)};return a.addEventListener("keydown",o,{capture:!0}),()=>a.removeEventListener("keydown",o,{capture:!0})},[t,a])}import{jsx as It}from"react/jsx-runtime";var tr="DismissableLayer",ua="dismissableLayer.update",or="dismissableLayer.pointerDownOutside",rr="dismissableLayer.focusOutside",Lt,ht=M.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),sa=M.forwardRef((e,a)=>{let{disableOutsidePointerEvents:t=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:l,onInteractOutside:s,onDismiss:u,...f}=e,d=M.useContext(ht),[i,c]=M.useState(null),x=i?.ownerDocument??globalThis?.document,[,I]=M.useState({}),v=Z(a,C=>c(C)),n=Array.from(d.layers),[g]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),b=n.indexOf(g),S=i?n.indexOf(i):-1,y=d.layersWithOutsidePointerEventsDisabled.size>0,k=S>=b,P=sr(C=>{let m=C.target,B=[...d.branches].some(ae=>ae.contains(m));!k||B||(r?.(C),s?.(C),C.defaultPrevented||u?.())},x),D=dr(C=>{let m=C.target;[...d.branches].some(ae=>ae.contains(m))||(l?.(C),s?.(C),C.defaultPrevented||u?.())},x);return mt(C=>{S===d.layers.size-1&&(o?.(C),!C.defaultPrevented&&u&&(C.preventDefault(),u()))},x),M.useEffect(()=>{if(i)return t&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(Lt=x.body.style.pointerEvents,x.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(i)),d.layers.add(i),xt(),()=>{t&&(d.layersWithOutsidePointerEventsDisabled.delete(i),d.layersWithOutsidePointerEventsDisabled.size===0&&(x.body.style.pointerEvents=Lt))}},[i,x,t,d]),M.useEffect(()=>()=>{i&&(d.layers.delete(i),d.layersWithOutsidePointerEventsDisabled.delete(i),xt())},[i,d]),M.useEffect(()=>{let C=()=>I({});return document.addEventListener(ua,C),()=>document.removeEventListener(ua,C)},[]),It(W.div,{...f,ref:v,style:{pointerEvents:y?k?"auto":"none":void 0,...e.style},onFocusCapture:J(e.onFocusCapture,D.onFocusCapture),onBlurCapture:J(e.onBlurCapture,D.onBlurCapture),onPointerDownCapture:J(e.onPointerDownCapture,P.onPointerDownCapture)})});sa.displayName=tr;var lr="DismissableLayerBranch",ur=M.forwardRef((e,a)=>{let t=M.useContext(ht),o=M.useRef(null),r=Z(a,o);return M.useEffect(()=>{let l=o.current;if(l)return t.branches.add(l),()=>{t.branches.delete(l)}},[t.branches]),It(W.div,{...e,ref:r})});ur.displayName=lr;function sr(e,a=globalThis?.document){let t=te(e),o=M.useRef(!1),r=M.useRef(()=>{});return M.useEffect(()=>{let l=u=>{if(u.target&&!o.current){let d=function(){gt(or,t,i,{discrete:!0})};var f=d;let i={originalEvent:u};u.pointerType==="touch"?(a.removeEventListener("click",r.current),r.current=d,a.addEventListener("click",r.current,{once:!0})):d()}else a.removeEventListener("click",r.current);o.current=!1},s=window.setTimeout(()=>{a.addEventListener("pointerdown",l)},0);return()=>{window.clearTimeout(s),a.removeEventListener("pointerdown",l),a.removeEventListener("click",r.current)}},[a,t]),{onPointerDownCapture:()=>o.current=!0}}function dr(e,a=globalThis?.document){let t=te(e),o=M.useRef(!1);return M.useEffect(()=>{let r=l=>{l.target&&!o.current&>(rr,t,{originalEvent:l},{discrete:!1})};return a.addEventListener("focusin",r),()=>a.removeEventListener("focusin",r)},[a,t]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function xt(){let e=new CustomEvent(ua);document.dispatchEvent(e)}function gt(e,a,t,{discrete:o}){let r=t.originalEvent.target,l=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:t});a&&r.addEventListener(e,a,{once:!0}),o?lt(r,l):r.dispatchEvent(l)}import*as _ from"react";import{jsx as fr}from"react/jsx-runtime";var da="focusScope.autoFocusOnMount",fa="focusScope.autoFocusOnUnmount",Ct={bubbles:!1,cancelable:!0},nr="FocusScope",na=_.forwardRef((e,a)=>{let{loop:t=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:l,...s}=e,[u,f]=_.useState(null),d=te(r),i=te(l),c=_.useRef(null),x=Z(a,n=>f(n)),I=_.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;_.useEffect(()=>{if(o){let S=function(D){if(I.paused||!u)return;let C=D.target;u.contains(C)?c.current=C:oe(c.current,{select:!0})},y=function(D){if(I.paused||!u)return;let C=D.relatedTarget;C!==null&&(u.contains(C)||oe(c.current,{select:!0}))},k=function(D){if(document.activeElement===document.body)for(let m of D)m.removedNodes.length>0&&oe(u)};var n=S,g=y,b=k;document.addEventListener("focusin",S),document.addEventListener("focusout",y);let P=new MutationObserver(k);return u&&P.observe(u,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",y),P.disconnect()}}},[o,u,I.paused]),_.useEffect(()=>{if(u){wt.add(I);let n=document.activeElement;if(!u.contains(n)){let b=new CustomEvent(da,Ct);u.addEventListener(da,d),u.dispatchEvent(b),b.defaultPrevented||(ir(xr(vt(u)),{select:!0}),document.activeElement===n&&oe(u))}return()=>{u.removeEventListener(da,d),setTimeout(()=>{let b=new CustomEvent(fa,Ct);u.addEventListener(fa,i),u.dispatchEvent(b),b.defaultPrevented||oe(n??document.body,{select:!0}),u.removeEventListener(fa,i),wt.remove(I)},0)}}},[u,d,i,I]);let v=_.useCallback(n=>{if(!t&&!o||I.paused)return;let g=n.key==="Tab"&&!n.altKey&&!n.ctrlKey&&!n.metaKey,b=document.activeElement;if(g&&b){let S=n.currentTarget,[y,k]=cr(S);y&&k?!n.shiftKey&&b===k?(n.preventDefault(),t&&oe(y,{select:!0})):n.shiftKey&&b===y&&(n.preventDefault(),t&&oe(k,{select:!0})):b===S&&n.preventDefault()}},[t,o,I.paused]);return fr(W.div,{tabIndex:-1,...s,ref:x,onKeyDown:v})});na.displayName=nr;function ir(e,{select:a=!1}={}){let t=document.activeElement;for(let o of e)if(oe(o,{select:a}),document.activeElement!==t)return}function cr(e){let a=vt(e),t=St(a,e),o=St(a.reverse(),e);return[t,o]}function vt(e){let a=[],t=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{let r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;t.nextNode();)a.push(t.currentNode);return a}function St(e,a){for(let t of e)if(!pr(t,{upTo:a}))return t}function pr(e,{upTo:a}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(a!==void 0&&e===a)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function mr(e){return e instanceof HTMLInputElement&&"select"in e}function oe(e,{select:a=!1}={}){if(e&&e.focus){let t=document.activeElement;e.focus({preventScroll:!0}),e!==t&&mr(e)&&a&&e.select()}}var wt=Lr();function Lr(){let e=[];return{add(a){let t=e[0];a!==t&&t?.pause(),e=bt(e,a),e.unshift(a)},remove(a){e=bt(e,a),e[0]?.resume()}}}function bt(e,a){let t=[...e],o=t.indexOf(a);return o!==-1&&t.splice(o,1),t}function xr(e){return e.filter(a=>a.tagName!=="A")}import*as He from"react";import*as yt from"react-dom";import{jsx as Ir}from"react/jsx-runtime";var hr="Portal",ia=He.forwardRef((e,a)=>{let{container:t,...o}=e,[r,l]=He.useState(!1);Q(()=>l(!0),[]);let s=t||r&&globalThis?.document?.body;return s?yt.createPortal(Ir(W.div,{...o,ref:a}),s):null});ia.displayName=hr;import*as kt from"react";var Ge=0,he=null;function Rt(){kt.useEffect(()=>{he||(he={start:Pt(),end:Pt()});let{start:e,end:a}=he;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==a&&document.body.insertAdjacentElement("beforeend",a),Ge++,()=>{Ge===1&&(he?.start.remove(),he?.end.remove(),he=null),Ge=Math.max(0,Ge-1)}},[])}function Pt(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var N=function(){return N=Object.assign||function(a){for(var t,o=1,r=arguments.length;o"u")return Pr;var a=kr(e),t=document.documentElement.clientWidth,o=window.innerWidth;return{left:a[0],top:a[1],right:a[2],gap:Math.max(0,o-t+a[2]-a[0])}};var Rr=Pe(),ge="data-scroll-locked",Ar=function(e,a,t,o){var r=e.left,l=e.top,s=e.right,u=e.gap;return t===void 0&&(t="margin"),` + .`.concat(ca,` { + overflow: hidden `).concat(o,`; + padding-right: `).concat(u,"px ").concat(o,`; + } + body[`).concat(ge,`] { + overflow: hidden `).concat(o,`; + overscroll-behavior: contain; + `).concat([a&&"position: relative ".concat(o,";"),t==="margin"&&` + padding-left: `.concat(r,`px; + padding-top: `).concat(l,`px; + padding-right: `).concat(s,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(u,"px ").concat(o,`; + `),t==="padding"&&"padding-right: ".concat(u,"px ").concat(o,";")].filter(Boolean).join(""),` + } + + .`).concat(fe,` { + right: `).concat(u,"px ").concat(o,`; + } + + .`).concat(ne,` { + margin-right: `).concat(u,"px ").concat(o,`; + } + + .`).concat(fe," .").concat(fe,` { + right: 0 `).concat(o,`; + } + + .`).concat(ne," .").concat(ne,` { + margin-right: 0 `).concat(o,`; + } + + body[`).concat(ge,`] { + `).concat(pa,": ").concat(u,`px; + } +`)},qt=function(){var e=parseInt(document.body.getAttribute(ge)||"0",10);return isFinite(e)?e:0},Dr=function(){Ce.useEffect(function(){return document.body.setAttribute(ge,(qt()+1).toString()),function(){var e=qt()-1;e<=0?document.body.removeAttribute(ge):document.body.setAttribute(ge,e.toString())}},[])},wa=function(e){var a=e.noRelative,t=e.noImportant,o=e.gapMode,r=o===void 0?"margin":o;Dr();var l=Ce.useMemo(function(){return Sa(r)},[r]);return Ce.createElement(Rr,{styles:Ar(l,!a,r,t?"":"!important")})};var ba=!1;if(typeof window<"u")try{ke=Object.defineProperty({},"passive",{get:function(){return ba=!0,!0}}),window.addEventListener("test",ke,ke),window.removeEventListener("test",ke,ke)}catch{ba=!1}var ke,ie=ba?{passive:!1}:!1;var Mr=function(e){return e.tagName==="TEXTAREA"},Ut=function(e,a){if(!(e instanceof Element))return!1;var t=window.getComputedStyle(e);return t[a]!=="hidden"&&!(t.overflowY===t.overflowX&&!Mr(e)&&t[a]==="visible")},Fr=function(e){return Ut(e,"overflowY")},Br=function(e){return Ut(e,"overflowX")},va=function(e,a){var t=a.ownerDocument,o=a;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=Ht(e,o);if(r){var l=Gt(e,o),s=l[1],u=l[2];if(s>u)return!0}o=o.parentNode}while(o&&o!==t.body);return!1},Tr=function(e){var a=e.scrollTop,t=e.scrollHeight,o=e.clientHeight;return[a,t,o]},Or=function(e){var a=e.scrollLeft,t=e.scrollWidth,o=e.clientWidth;return[a,t,o]},Ht=function(e,a){return e==="v"?Fr(a):Br(a)},Gt=function(e,a){return e==="v"?Tr(a):Or(a)},Er=function(e,a){return e==="h"&&a==="rtl"?-1:1},Nt=function(e,a,t,o,r){var l=Er(e,window.getComputedStyle(a).direction),s=l*o,u=t.target,f=a.contains(u),d=!1,i=s>0,c=0,x=0;do{if(!u)break;var I=Gt(e,u),v=I[0],n=I[1],g=I[2],b=n-g-l*v;(v||b)&&Ht(e,u)&&(c+=b,x+=v);var S=u.parentNode;u=S&&S.nodeType===Node.DOCUMENT_FRAGMENT_NODE?S.host:S}while(!f&&u!==document.body||f&&(a.contains(u)||a===u));return(i&&(r&&Math.abs(c)<1||!r&&s>c)||!i&&(r&&Math.abs(x)<1||!r&&-s>x))&&(d=!0),d};var _e=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Wt=function(e){return[e.deltaX,e.deltaY]},zt=function(e){return e&&"current"in e?e.current:e},qr=function(e,a){return e[0]===a[0]&&e[1]===a[1]},Ur=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Hr=0,Se=[];function Vt(e){var a=A.useRef([]),t=A.useRef([0,0]),o=A.useRef(),r=A.useState(Hr++)[0],l=A.useState(Pe)[0],s=A.useRef(e);A.useEffect(function(){s.current=e},[e]),A.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var n=At([e.lockRef.current],(e.shards||[]).map(zt),!0).filter(Boolean);return n.forEach(function(g){return g.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),n.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var u=A.useCallback(function(n,g){if("touches"in n&&n.touches.length===2||n.type==="wheel"&&n.ctrlKey)return!s.current.allowPinchZoom;var b=_e(n),S=t.current,y="deltaX"in n?n.deltaX:S[0]-b[0],k="deltaY"in n?n.deltaY:S[1]-b[1],P,D=n.target,C=Math.abs(y)>Math.abs(k)?"h":"v";if("touches"in n&&C==="h"&&D.type==="range")return!1;var m=window.getSelection(),B=m&&m.anchorNode,ae=B?B===D||B.contains(D):!1;if(ae)return!1;var ue=va(C,D);if(!ue)return!0;if(ue?P=C:(P=C==="v"?"h":"v",ue=va(C,D)),!ue)return!1;if(!o.current&&"changedTouches"in n&&(y||k)&&(o.current=P),!P)return!0;var se=o.current||P;return Nt(se,g,n,se==="h"?y:k,!0)},[]),f=A.useCallback(function(n){var g=n;if(!(!Se.length||Se[Se.length-1]!==l)){var b="deltaY"in g?Wt(g):_e(g),S=a.current.filter(function(P){return P.name===g.type&&(P.target===g.target||g.target===P.shadowParent)&&qr(P.delta,b)})[0];if(S&&S.should){g.cancelable&&g.preventDefault();return}if(!S){var y=(s.current.shards||[]).map(zt).filter(Boolean).filter(function(P){return P.contains(g.target)}),k=y.length>0?u(g,y[0]):!s.current.noIsolation;k&&g.cancelable&&g.preventDefault()}}},[]),d=A.useCallback(function(n,g,b,S){var y={name:n,delta:g,target:b,should:S,shadowParent:Gr(b)};a.current.push(y),setTimeout(function(){a.current=a.current.filter(function(k){return k!==y})},1)},[]),i=A.useCallback(function(n){t.current=_e(n),o.current=void 0},[]),c=A.useCallback(function(n){d(n.type,Wt(n),n.target,u(n,e.lockRef.current))},[]),x=A.useCallback(function(n){d(n.type,_e(n),n.target,u(n,e.lockRef.current))},[]);A.useEffect(function(){return Se.push(l),e.setCallbacks({onScrollCapture:c,onWheelCapture:c,onTouchMoveCapture:x}),document.addEventListener("wheel",f,ie),document.addEventListener("touchmove",f,ie),document.addEventListener("touchstart",i,ie),function(){Se=Se.filter(function(n){return n!==l}),document.removeEventListener("wheel",f,ie),document.removeEventListener("touchmove",f,ie),document.removeEventListener("touchstart",i,ie)}},[]);var I=e.removeScrollBar,v=e.inert;return A.createElement(A.Fragment,null,v?A.createElement(l,{styles:Ur(r)}):null,I?A.createElement(wa,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Gr(e){for(var a=null;e!==null;)e instanceof ShadowRoot&&(a=e.host,e=e.host),e=e.parentNode;return a}var _t=xa(Ve,Vt);var Xt=Xe.forwardRef(function(e,a){return Xe.createElement(ye,N({},e,{ref:a,sideCar:_t}))});Xt.classNames=ye.classNames;var ya=Xt;var Nr=function(e){if(typeof document>"u")return null;var a=Array.isArray(e)?e[0]:e;return a.ownerDocument.body},we=new WeakMap,Ke=new WeakMap,je={},Pa=0,Kt=function(e){return e&&(e.host||Kt(e.parentNode))},Wr=function(e,a){return a.map(function(t){if(e.contains(t))return t;var o=Kt(t);return o&&e.contains(o)?o:(console.error("aria-hidden",t,"in not contained inside",e,". Doing nothing"),null)}).filter(function(t){return!!t})},zr=function(e,a,t,o){var r=Wr(a,Array.isArray(e)?e:[e]);je[t]||(je[t]=new WeakMap);var l=je[t],s=[],u=new Set,f=new Set(r),d=function(c){!c||u.has(c)||(u.add(c),d(c.parentNode))};r.forEach(d);var i=function(c){!c||f.has(c)||Array.prototype.forEach.call(c.children,function(x){if(u.has(x))i(x);else try{var I=x.getAttribute(o),v=I!==null&&I!=="false",n=(we.get(x)||0)+1,g=(l.get(x)||0)+1;we.set(x,n),l.set(x,g),s.push(x),n===1&&v&&Ke.set(x,!0),g===1&&x.setAttribute(t,"true"),v||x.setAttribute(o,"true")}catch(b){console.error("aria-hidden: cannot operate on ",x,b)}})};return i(a),u.clear(),Pa++,function(){s.forEach(function(c){var x=we.get(c)-1,I=l.get(c)-1;we.set(c,x),l.set(c,I),x||(Ke.has(c)||c.removeAttribute(o),Ke.delete(c)),I||c.removeAttribute(t)}),Pa--,Pa||(we=new WeakMap,we=new WeakMap,Ke=new WeakMap,je={})}},jt=function(e,a,t){t===void 0&&(t="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=a||Nr(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),zr(o,r,t,"aria-hidden")):function(){return null}};import{Fragment as Zt,jsx as F,jsxs as $t}from"react/jsx-runtime";var $e="Dialog",[Jt,Vr]=dt($e),[_r,$]=Jt($e),ka=e=>{let{__scopeDialog:a,children:t,open:o,defaultOpen:r,onOpenChange:l,modal:s=!0}=e,u=R.useRef(null),f=R.useRef(null),[d,i]=nt({prop:o,defaultProp:r??!1,onChange:l,caller:$e});return F(_r,{scope:a,triggerRef:u,contentRef:f,contentId:Ue(),titleId:Ue(),descriptionId:Ue(),open:d,onOpenChange:i,onOpenToggle:R.useCallback(()=>i(c=>!c),[i]),modal:s,children:t})};ka.displayName=$e;var Yt="DialogTrigger",Ra=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=$(Yt,t),l=Z(a,r.triggerRef);return F(W.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.open?r.contentId:void 0,"data-state":qa(r.open),...o,ref:l,onClick:J(e.onClick,r.onOpenToggle)})});Ra.displayName=Yt;var Aa="DialogPortal",[Xr,Qt]=Jt(Aa,{forceMount:void 0}),Da=e=>{let{__scopeDialog:a,forceMount:t,children:o,container:r}=e,l=$(Aa,a);return F(Xr,{scope:a,forceMount:t,children:R.Children.map(o,s=>F(ve,{present:t||l.open,children:F(ia,{asChild:!0,container:r,children:s})}))})};Da.displayName=Aa;var Ze="DialogOverlay",Ma=R.forwardRef((e,a)=>{let t=Qt(Ze,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,l=$(Ze,e.__scopeDialog);return l.modal?F(ve,{present:o||l.open,children:F(jr,{...r,ref:a})}):null});Ma.displayName=Ze;var Kr=Oe("DialogOverlay.RemoveScroll"),jr=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=$(Ze,t);return F(ya,{as:Kr,allowPinchZoom:!0,shards:[r.contentRef],children:F(W.div,{"data-state":qa(r.open),...o,ref:a,style:{pointerEvents:"auto",...o.style}})})}),ce="DialogContent",Fa=R.forwardRef((e,a)=>{let t=Qt(ce,e.__scopeDialog),{forceMount:o=t.forceMount,...r}=e,l=$(ce,e.__scopeDialog);return F(ve,{present:o||l.open,children:l.modal?F(Zr,{...r,ref:a}):F($r,{...r,ref:a})})});Fa.displayName=ce;var Zr=R.forwardRef((e,a)=>{let t=$(ce,e.__scopeDialog),o=R.useRef(null),r=Z(a,t.contentRef,o);return R.useEffect(()=>{let l=o.current;if(l)return jt(l)},[]),F(eo,{...e,ref:r,trapFocus:t.open,disableOutsidePointerEvents:t.open,onCloseAutoFocus:J(e.onCloseAutoFocus,l=>{l.preventDefault(),t.triggerRef.current?.focus()}),onPointerDownOutside:J(e.onPointerDownOutside,l=>{let s=l.detail.originalEvent,u=s.button===0&&s.ctrlKey===!0;(s.button===2||u)&&l.preventDefault()}),onFocusOutside:J(e.onFocusOutside,l=>l.preventDefault())})}),$r=R.forwardRef((e,a)=>{let t=$(ce,e.__scopeDialog),o=R.useRef(!1),r=R.useRef(!1);return F(eo,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:l=>{e.onCloseAutoFocus?.(l),l.defaultPrevented||(o.current||t.triggerRef.current?.focus(),l.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:l=>{e.onInteractOutside?.(l),l.defaultPrevented||(o.current=!0,l.detail.originalEvent.type==="pointerdown"&&(r.current=!0));let s=l.target;t.triggerRef.current?.contains(s)&&l.preventDefault(),l.detail.originalEvent.type==="focusin"&&r.current&&l.preventDefault()}})}),eo=R.forwardRef((e,a)=>{let{__scopeDialog:t,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:l,...s}=e,u=$(ce,t),f=R.useRef(null),d=Z(a,f);return Rt(),$t(Zt,{children:[F(na,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:l,children:F(sa,{role:"dialog",id:u.contentId,"aria-describedby":u.descriptionId,"aria-labelledby":u.titleId,"data-state":qa(u.open),...s,ref:d,onDismiss:()=>u.onOpenChange(!1)})}),$t(Zt,{children:[F(Yr,{titleId:u.titleId}),F(el,{contentRef:f,descriptionId:u.descriptionId})]})]})}),Ba="DialogTitle",Ta=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=$(Ba,t);return F(W.h2,{id:r.titleId,...o,ref:a})});Ta.displayName=Ba;var ao="DialogDescription",Oa=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=$(ao,t);return F(W.p,{id:r.descriptionId,...o,ref:a})});Oa.displayName=ao;var to="DialogClose",Ea=R.forwardRef((e,a)=>{let{__scopeDialog:t,...o}=e,r=$(to,t);return F(W.button,{type:"button",...o,ref:a,onClick:J(e.onClick,()=>r.onOpenChange(!1))})});Ea.displayName=to;function qa(e){return e?"open":"closed"}var oo="DialogTitleWarning",[Jr,ro]=st(oo,{contentName:ce,titleName:Ba,docsSlug:"dialog"}),Yr=({titleId:e})=>{let a=ro(oo),t=`\`${a.contentName}\` requires a \`${a.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${a.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${a.docsSlug}`;return R.useEffect(()=>{e&&(document.getElementById(e)||console.error(t))},[t,e]),null},Qr="DialogDescriptionWarning",el=({contentRef:e,descriptionId:a})=>{let o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${ro(Qr).contentName}}.`;return R.useEffect(()=>{let r=e.current?.getAttribute("aria-describedby");a&&r&&(document.getElementById(a)||console.warn(o))},[o,e,a]),null},al=ka,tl=Ra,ol=Da,rl=Ma,ll=Fa,ul=Ta,sl=Oa,dl=Ea;function lo(e){var a,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(a=0;a{let t=new Array(e.length+a.length);for(let o=0;o({classGroupId:e,validator:a}),mo=(e=new Map,a=null,t)=>({nextPart:e,validators:a,classGroupId:t}),Qe="-",so=[],il="arbitrary..",cl=e=>{let a=ml(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return pl(s);let u=s.split(Qe),f=u[0]===""&&u.length>1?1:0;return Lo(u,f,a)},getConflictingClassGroupIds:(s,u)=>{if(u){let f=o[s],d=t[s];return f?d?fl(d,f):f:d||so}return t[s]||so}}},Lo=(e,a,t)=>{if(e.length-a===0)return t.classGroupId;let r=e[a],l=t.nextPart.get(r);if(l){let d=Lo(e,a+1,l);if(d)return d}let s=t.validators;if(s===null)return;let u=a===0?e.join(Qe):e.slice(a).join(Qe),f=s.length;for(let d=0;de.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let a=e.slice(1,-1),t=a.indexOf(":"),o=a.slice(0,t);return o?il+o:void 0})(),ml=e=>{let{theme:a,classGroups:t}=e;return Ll(t,a)},Ll=(e,a)=>{let t=mo();for(let o in e){let r=e[o];Ga(r,t,o,a)}return t},Ga=(e,a,t,o)=>{let r=e.length;for(let l=0;l{if(typeof e=="string"){Il(e,a,t);return}if(typeof e=="function"){hl(e,a,t,o);return}gl(e,a,t,o)},Il=(e,a,t)=>{let o=e===""?a:xo(a,e);o.classGroupId=t},hl=(e,a,t,o)=>{if(Cl(e)){Ga(e(o),a,t,o);return}a.validators===null&&(a.validators=[]),a.validators.push(nl(t,e))},gl=(e,a,t,o)=>{let r=Object.entries(e),l=r.length;for(let s=0;s{let t=e,o=a.split(Qe),r=o.length;for(let l=0;l"isThemeGetter"in e&&e.isThemeGetter===!0,Sl=e=>{if(e<1)return{get:()=>{},set:()=>{}};let a=0,t=Object.create(null),o=Object.create(null),r=(l,s)=>{t[l]=s,a++,a>e&&(a=0,o=t,t=Object.create(null))};return{get(l){let s=t[l];if(s!==void 0)return s;if((s=o[l])!==void 0)return r(l,s),s},set(l,s){l in t?t[l]=s:r(l,s)}}},Ha="!",fo=":",wl=[],no=(e,a,t,o,r)=>({modifiers:e,hasImportantModifier:a,baseClassName:t,maybePostfixModifierPosition:o,isExternal:r}),bl=e=>{let{prefix:a,experimentalParseClassName:t}=e,o=r=>{let l=[],s=0,u=0,f=0,d,i=r.length;for(let n=0;nf?d-f:void 0;return no(l,I,x,v)};if(a){let r=a+fo,l=o;o=s=>s.startsWith(r)?l(s.slice(r.length)):no(wl,!1,s,void 0,!0)}if(t){let r=o;o=l=>t({className:l,parseClassName:r})}return o},vl=e=>{let a=new Map;return e.orderSensitiveModifiers.forEach((t,o)=>{a.set(t,1e6+o)}),t=>{let o=[],r=[];for(let l=0;l0&&(r.sort(),o.push(...r),r=[]),o.push(s)):r.push(s)}return r.length>0&&(r.sort(),o.push(...r)),o}},yl=e=>({cache:Sl(e.cacheSize),parseClassName:bl(e),sortModifiers:vl(e),postfixLookupClassGroupIds:Pl(e),...cl(e)}),Pl=e=>{let a=Object.create(null),t=e.postfixLookupClassGroups;if(t)for(let o=0;o{let{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:r,sortModifiers:l,postfixLookupClassGroupIds:s}=a,u=[],f=e.trim().split(kl),d="";for(let i=f.length-1;i>=0;i-=1){let c=f[i],{isExternal:x,modifiers:I,hasImportantModifier:v,baseClassName:n,maybePostfixModifierPosition:g}=t(c);if(x){d=c+(d.length>0?" "+d:d);continue}let b=!!g,S;if(b){let C=n.substring(0,g);S=o(C);let m=S&&s[S]?o(n):void 0;m&&m!==S&&(S=m,b=!1)}else S=o(n);if(!S){if(!b){d=c+(d.length>0?" "+d:d);continue}if(S=o(n),!S){d=c+(d.length>0?" "+d:d);continue}b=!1}let y=I.length===0?"":I.length===1?I[0]:l(I).join(":"),k=v?y+Ha:y,P=k+S;if(u.indexOf(P)>-1)continue;u.push(P);let D=r(S,b);for(let C=0;C0?" "+d:d)}return d},Al=(...e)=>{let a=0,t,o,r="";for(;a{if(typeof e=="string")return e;let a,t="";for(let o=0;o{let t,o,r,l,s=f=>{let d=a.reduce((i,c)=>c(i),e());return t=yl(d),o=t.cache.get,r=t.cache.set,l=u,u(f)},u=f=>{let d=o(f);if(d)return d;let i=Rl(f,t);return r(f,i),i};return l=s,(...f)=>l(Al(...f))},Ml=[],T=e=>{let a=t=>t[e]||Ml;return a.isThemeGetter=!0,a},ho=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,go=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Fl=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Bl=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Tl=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ol=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,El=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,ql=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,re=e=>Fl.test(e),w=e=>!!e&&!Number.isNaN(Number(e)),Y=e=>!!e&&Number.isInteger(Number(e)),Ua=e=>e.endsWith("%")&&w(e.slice(0,-1)),ee=e=>Bl.test(e),Co=()=>!0,Ul=e=>Tl.test(e)&&!Ol.test(e),Na=()=>!1,Hl=e=>El.test(e),Gl=e=>ql.test(e),Nl=e=>!p(e)&&!L(e),Wl=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),zl=e=>le(e,bo,Na),p=e=>ho.test(e),pe=e=>le(e,vo,Ul),io=e=>le(e,Jl,w),Vl=e=>le(e,Po,Co),_l=e=>le(e,yo,Na),co=e=>le(e,So,Na),Xl=e=>le(e,wo,Gl),Je=e=>le(e,ko,Hl),L=e=>go.test(e),Re=e=>me(e,vo),Kl=e=>me(e,yo),po=e=>me(e,So),jl=e=>me(e,bo),Zl=e=>me(e,wo),Ye=e=>me(e,ko,!0),$l=e=>me(e,Po,!0),le=(e,a,t)=>{let o=ho.exec(e);return o?o[1]?a(o[1]):t(o[2]):!1},me=(e,a,t=!1)=>{let o=go.exec(e);return o?o[1]?a(o[1]):t:!1},So=e=>e==="position"||e==="percentage",wo=e=>e==="image"||e==="url",bo=e=>e==="length"||e==="size"||e==="bg-size",vo=e=>e==="length",Jl=e=>e==="number",yo=e=>e==="family-name",Po=e=>e==="number"||e==="weight",ko=e=>e==="shadow";var Yl=()=>{let e=T("color"),a=T("font"),t=T("text"),o=T("font-weight"),r=T("tracking"),l=T("leading"),s=T("breakpoint"),u=T("container"),f=T("spacing"),d=T("radius"),i=T("shadow"),c=T("inset-shadow"),x=T("text-shadow"),I=T("drop-shadow"),v=T("blur"),n=T("perspective"),g=T("aspect"),b=T("ease"),S=T("animate"),y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],k=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],P=()=>[...k(),L,p],D=()=>["auto","hidden","clip","visible","scroll"],C=()=>["auto","contain","none"],m=()=>[L,p,f],B=()=>[re,"full","auto",...m()],ae=()=>[Y,"none","subgrid",L,p],ue=()=>["auto",{span:["full",Y,L,p]},Y,L,p],se=()=>[Y,"auto",L,p],za=()=>["auto","min","max","fr",L,p],ea=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],xe=()=>["start","end","center","stretch","center-safe","end-safe"],j=()=>["auto",...m()],de=()=>[re,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...m()],aa=()=>[re,"screen","full","dvw","lvw","svw","min","max","fit",...m()],ta=()=>[re,"screen","full","lh","dvh","lvh","svh","min","max","fit",...m()],h=()=>[e,L,p],Va=()=>[...k(),po,co,{position:[L,p]}],_a=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Xa=()=>["auto","cover","contain",jl,zl,{size:[L,p]}],oa=()=>[Ua,Re,pe],H=()=>["","none","full",d,L,p],G=()=>["",w,Re,pe],Ae=()=>["solid","dashed","dotted","double"],Ka=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],O=()=>[w,Ua,po,co],ja=()=>["","none",v,L,p],De=()=>["none",w,L,p],Me=()=>["none",w,L,p],ra=()=>[w,L,p],Fe=()=>[re,"full",...m()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ee],breakpoint:[ee],color:[Co],container:[ee],"drop-shadow":[ee],ease:["in","out","in-out"],font:[Nl],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ee],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ee],shadow:[ee],spacing:["px",w],text:[ee],"text-shadow":[ee],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",re,p,L,g]}],container:["container"],"container-type":[{"@container":["","normal","size",L,p]}],"container-named":[Wl],columns:[{columns:[w,p,L,u]}],"break-after":[{"break-after":y()}],"break-before":[{"break-before":y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:P()}],overflow:[{overflow:D()}],"overflow-x":[{"overflow-x":D()}],"overflow-y":[{"overflow-y":D()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:B()}],"inset-x":[{"inset-x":B()}],"inset-y":[{"inset-y":B()}],start:[{"inset-s":B(),start:B()}],end:[{"inset-e":B(),end:B()}],"inset-bs":[{"inset-bs":B()}],"inset-be":[{"inset-be":B()}],top:[{top:B()}],right:[{right:B()}],bottom:[{bottom:B()}],left:[{left:B()}],visibility:["visible","invisible","collapse"],z:[{z:[Y,"auto",L,p]}],basis:[{basis:[re,"full","auto",u,...m()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[w,re,"auto","initial","none",p]}],grow:[{grow:["",w,L,p]}],shrink:[{shrink:["",w,L,p]}],order:[{order:[Y,"first","last","none",L,p]}],"grid-cols":[{"grid-cols":ae()}],"col-start-end":[{col:ue()}],"col-start":[{"col-start":se()}],"col-end":[{"col-end":se()}],"grid-rows":[{"grid-rows":ae()}],"row-start-end":[{row:ue()}],"row-start":[{"row-start":se()}],"row-end":[{"row-end":se()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":za()}],"auto-rows":[{"auto-rows":za()}],gap:[{gap:m()}],"gap-x":[{"gap-x":m()}],"gap-y":[{"gap-y":m()}],"justify-content":[{justify:[...ea(),"normal"]}],"justify-items":[{"justify-items":[...xe(),"normal"]}],"justify-self":[{"justify-self":["auto",...xe()]}],"align-content":[{content:["normal",...ea()]}],"align-items":[{items:[...xe(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...xe(),{baseline:["","last"]}]}],"place-content":[{"place-content":ea()}],"place-items":[{"place-items":[...xe(),"baseline"]}],"place-self":[{"place-self":["auto",...xe()]}],p:[{p:m()}],px:[{px:m()}],py:[{py:m()}],ps:[{ps:m()}],pe:[{pe:m()}],pbs:[{pbs:m()}],pbe:[{pbe:m()}],pt:[{pt:m()}],pr:[{pr:m()}],pb:[{pb:m()}],pl:[{pl:m()}],m:[{m:j()}],mx:[{mx:j()}],my:[{my:j()}],ms:[{ms:j()}],me:[{me:j()}],mbs:[{mbs:j()}],mbe:[{mbe:j()}],mt:[{mt:j()}],mr:[{mr:j()}],mb:[{mb:j()}],ml:[{ml:j()}],"space-x":[{"space-x":m()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":m()}],"space-y-reverse":["space-y-reverse"],size:[{size:de()}],"inline-size":[{inline:["auto",...aa()]}],"min-inline-size":[{"min-inline":["auto",...aa()]}],"max-inline-size":[{"max-inline":["none",...aa()]}],"block-size":[{block:["auto",...ta()]}],"min-block-size":[{"min-block":["auto",...ta()]}],"max-block-size":[{"max-block":["none",...ta()]}],w:[{w:[u,"screen",...de()]}],"min-w":[{"min-w":[u,"screen","none",...de()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[s]},...de()]}],h:[{h:["screen","lh",...de()]}],"min-h":[{"min-h":["screen","lh","none",...de()]}],"max-h":[{"max-h":["screen","lh",...de()]}],"font-size":[{text:["base",t,Re,pe]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,$l,Vl]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ua,p]}],"font-family":[{font:[Kl,_l,a]}],"font-features":[{"font-features":[p]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,L,p]}],"line-clamp":[{"line-clamp":[w,"none",L,io]}],leading:[{leading:[l,...m()]}],"list-image":[{"list-image":["none",L,p]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",L,p]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:h()}],"text-color":[{text:h()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Ae(),"wavy"]}],"text-decoration-thickness":[{decoration:[w,"from-font","auto",L,pe]}],"text-decoration-color":[{decoration:h()}],"underline-offset":[{"underline-offset":[w,"auto",L,p]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:m()}],"tab-size":[{tab:[Y,L,p]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",L,p]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",L,p]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Va()}],"bg-repeat":[{bg:_a()}],"bg-size":[{bg:Xa()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Y,L,p],radial:["",L,p],conic:[Y,L,p]},Zl,Xl]}],"bg-color":[{bg:h()}],"gradient-from-pos":[{from:oa()}],"gradient-via-pos":[{via:oa()}],"gradient-to-pos":[{to:oa()}],"gradient-from":[{from:h()}],"gradient-via":[{via:h()}],"gradient-to":[{to:h()}],rounded:[{rounded:H()}],"rounded-s":[{"rounded-s":H()}],"rounded-e":[{"rounded-e":H()}],"rounded-t":[{"rounded-t":H()}],"rounded-r":[{"rounded-r":H()}],"rounded-b":[{"rounded-b":H()}],"rounded-l":[{"rounded-l":H()}],"rounded-ss":[{"rounded-ss":H()}],"rounded-se":[{"rounded-se":H()}],"rounded-ee":[{"rounded-ee":H()}],"rounded-es":[{"rounded-es":H()}],"rounded-tl":[{"rounded-tl":H()}],"rounded-tr":[{"rounded-tr":H()}],"rounded-br":[{"rounded-br":H()}],"rounded-bl":[{"rounded-bl":H()}],"border-w":[{border:G()}],"border-w-x":[{"border-x":G()}],"border-w-y":[{"border-y":G()}],"border-w-s":[{"border-s":G()}],"border-w-e":[{"border-e":G()}],"border-w-bs":[{"border-bs":G()}],"border-w-be":[{"border-be":G()}],"border-w-t":[{"border-t":G()}],"border-w-r":[{"border-r":G()}],"border-w-b":[{"border-b":G()}],"border-w-l":[{"border-l":G()}],"divide-x":[{"divide-x":G()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":G()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Ae(),"hidden","none"]}],"divide-style":[{divide:[...Ae(),"hidden","none"]}],"border-color":[{border:h()}],"border-color-x":[{"border-x":h()}],"border-color-y":[{"border-y":h()}],"border-color-s":[{"border-s":h()}],"border-color-e":[{"border-e":h()}],"border-color-bs":[{"border-bs":h()}],"border-color-be":[{"border-be":h()}],"border-color-t":[{"border-t":h()}],"border-color-r":[{"border-r":h()}],"border-color-b":[{"border-b":h()}],"border-color-l":[{"border-l":h()}],"divide-color":[{divide:h()}],"outline-style":[{outline:[...Ae(),"none","hidden"]}],"outline-offset":[{"outline-offset":[w,L,p]}],"outline-w":[{outline:["",w,Re,pe]}],"outline-color":[{outline:h()}],shadow:[{shadow:["","none",i,Ye,Je]}],"shadow-color":[{shadow:h()}],"inset-shadow":[{"inset-shadow":["none",c,Ye,Je]}],"inset-shadow-color":[{"inset-shadow":h()}],"ring-w":[{ring:G()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:h()}],"ring-offset-w":[{"ring-offset":[w,pe]}],"ring-offset-color":[{"ring-offset":h()}],"inset-ring-w":[{"inset-ring":G()}],"inset-ring-color":[{"inset-ring":h()}],"text-shadow":[{"text-shadow":["none",x,Ye,Je]}],"text-shadow-color":[{"text-shadow":h()}],opacity:[{opacity:[w,L,p]}],"mix-blend":[{"mix-blend":[...Ka(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ka()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[w]}],"mask-image-linear-from-pos":[{"mask-linear-from":O()}],"mask-image-linear-to-pos":[{"mask-linear-to":O()}],"mask-image-linear-from-color":[{"mask-linear-from":h()}],"mask-image-linear-to-color":[{"mask-linear-to":h()}],"mask-image-t-from-pos":[{"mask-t-from":O()}],"mask-image-t-to-pos":[{"mask-t-to":O()}],"mask-image-t-from-color":[{"mask-t-from":h()}],"mask-image-t-to-color":[{"mask-t-to":h()}],"mask-image-r-from-pos":[{"mask-r-from":O()}],"mask-image-r-to-pos":[{"mask-r-to":O()}],"mask-image-r-from-color":[{"mask-r-from":h()}],"mask-image-r-to-color":[{"mask-r-to":h()}],"mask-image-b-from-pos":[{"mask-b-from":O()}],"mask-image-b-to-pos":[{"mask-b-to":O()}],"mask-image-b-from-color":[{"mask-b-from":h()}],"mask-image-b-to-color":[{"mask-b-to":h()}],"mask-image-l-from-pos":[{"mask-l-from":O()}],"mask-image-l-to-pos":[{"mask-l-to":O()}],"mask-image-l-from-color":[{"mask-l-from":h()}],"mask-image-l-to-color":[{"mask-l-to":h()}],"mask-image-x-from-pos":[{"mask-x-from":O()}],"mask-image-x-to-pos":[{"mask-x-to":O()}],"mask-image-x-from-color":[{"mask-x-from":h()}],"mask-image-x-to-color":[{"mask-x-to":h()}],"mask-image-y-from-pos":[{"mask-y-from":O()}],"mask-image-y-to-pos":[{"mask-y-to":O()}],"mask-image-y-from-color":[{"mask-y-from":h()}],"mask-image-y-to-color":[{"mask-y-to":h()}],"mask-image-radial":[{"mask-radial":[L,p]}],"mask-image-radial-from-pos":[{"mask-radial-from":O()}],"mask-image-radial-to-pos":[{"mask-radial-to":O()}],"mask-image-radial-from-color":[{"mask-radial-from":h()}],"mask-image-radial-to-color":[{"mask-radial-to":h()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":k()}],"mask-image-conic-pos":[{"mask-conic":[w]}],"mask-image-conic-from-pos":[{"mask-conic-from":O()}],"mask-image-conic-to-pos":[{"mask-conic-to":O()}],"mask-image-conic-from-color":[{"mask-conic-from":h()}],"mask-image-conic-to-color":[{"mask-conic-to":h()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Va()}],"mask-repeat":[{mask:_a()}],"mask-size":[{mask:Xa()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",L,p]}],filter:[{filter:["","none",L,p]}],blur:[{blur:ja()}],brightness:[{brightness:[w,L,p]}],contrast:[{contrast:[w,L,p]}],"drop-shadow":[{"drop-shadow":["","none",I,Ye,Je]}],"drop-shadow-color":[{"drop-shadow":h()}],grayscale:[{grayscale:["",w,L,p]}],"hue-rotate":[{"hue-rotate":[w,L,p]}],invert:[{invert:["",w,L,p]}],saturate:[{saturate:[w,L,p]}],sepia:[{sepia:["",w,L,p]}],"backdrop-filter":[{"backdrop-filter":["","none",L,p]}],"backdrop-blur":[{"backdrop-blur":ja()}],"backdrop-brightness":[{"backdrop-brightness":[w,L,p]}],"backdrop-contrast":[{"backdrop-contrast":[w,L,p]}],"backdrop-grayscale":[{"backdrop-grayscale":["",w,L,p]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[w,L,p]}],"backdrop-invert":[{"backdrop-invert":["",w,L,p]}],"backdrop-opacity":[{"backdrop-opacity":[w,L,p]}],"backdrop-saturate":[{"backdrop-saturate":[w,L,p]}],"backdrop-sepia":[{"backdrop-sepia":["",w,L,p]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":m()}],"border-spacing-x":[{"border-spacing-x":m()}],"border-spacing-y":[{"border-spacing-y":m()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",L,p]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[w,"initial",L,p]}],ease:[{ease:["linear","initial",b,L,p]}],delay:[{delay:[w,L,p]}],animate:[{animate:["none",S,L,p]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[n,L,p]}],"perspective-origin":[{"perspective-origin":P()}],rotate:[{rotate:De()}],"rotate-x":[{"rotate-x":De()}],"rotate-y":[{"rotate-y":De()}],"rotate-z":[{"rotate-z":De()}],scale:[{scale:Me()}],"scale-x":[{"scale-x":Me()}],"scale-y":[{"scale-y":Me()}],"scale-z":[{"scale-z":Me()}],"scale-3d":["scale-3d"],skew:[{skew:ra()}],"skew-x":[{"skew-x":ra()}],"skew-y":[{"skew-y":ra()}],transform:[{transform:[L,p,"","none","gpu","cpu"]}],"transform-origin":[{origin:P()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Fe()}],"translate-x":[{"translate-x":Fe()}],"translate-y":[{"translate-y":Fe()}],"translate-z":[{"translate-z":Fe()}],"translate-none":["translate-none"],zoom:[{zoom:[Y,L,p]}],accent:[{accent:h()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:h()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",L,p]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":h()}],"scrollbar-track-color":[{"scrollbar-track":h()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":m()}],"scroll-mx":[{"scroll-mx":m()}],"scroll-my":[{"scroll-my":m()}],"scroll-ms":[{"scroll-ms":m()}],"scroll-me":[{"scroll-me":m()}],"scroll-mbs":[{"scroll-mbs":m()}],"scroll-mbe":[{"scroll-mbe":m()}],"scroll-mt":[{"scroll-mt":m()}],"scroll-mr":[{"scroll-mr":m()}],"scroll-mb":[{"scroll-mb":m()}],"scroll-ml":[{"scroll-ml":m()}],"scroll-p":[{"scroll-p":m()}],"scroll-px":[{"scroll-px":m()}],"scroll-py":[{"scroll-py":m()}],"scroll-ps":[{"scroll-ps":m()}],"scroll-pe":[{"scroll-pe":m()}],"scroll-pbs":[{"scroll-pbs":m()}],"scroll-pbe":[{"scroll-pbe":m()}],"scroll-pt":[{"scroll-pt":m()}],"scroll-pr":[{"scroll-pr":m()}],"scroll-pb":[{"scroll-pb":m()}],"scroll-pl":[{"scroll-pl":m()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",L,p]}],fill:[{fill:["none",...h()]}],"stroke-w":[{stroke:[w,Re,pe,io]}],stroke:[{stroke:["none",...h()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var Ro=Dl(Yl);function Le(...e){return Ro(uo(e))}import{jsx as K,jsxs as Wa}from"react/jsx-runtime";function Td({...e}){return K(X.Root,{"data-slot":"sheet",...e})}function Od({...e}){return K(X.Trigger,{"data-slot":"sheet-trigger",...e})}function Ed({...e}){return K(X.Close,{"data-slot":"sheet-close",...e})}function Ql({...e}){return K(X.Portal,{"data-slot":"sheet-portal",...e})}function eu({className:e,...a}){return K(X.Overlay,{"data-slot":"sheet-overlay",className:Le("fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",e),...a})}function qd({className:e,children:a,side:t="right",showCloseButton:o=!0,...r}){return Wa(Ql,{children:[K(eu,{}),Wa(X.Content,{"data-slot":"sheet-content",className:Le("fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500",t==="right"&&"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",t==="left"&&"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",t==="top"&&"inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",t==="bottom"&&"inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",e),...r,children:[a,o&&Wa(X.Close,{className:"absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary",children:[K(be,{className:"size-4"}),K("span",{className:"sr-only",children:"Close"})]})]})]})}function Ud({className:e,...a}){return K("div",{"data-slot":"sheet-header",className:Le("flex flex-col gap-1.5 p-4",e),...a})}function Hd({className:e,...a}){return K("div",{"data-slot":"sheet-footer",className:Le("mt-auto flex flex-col gap-2 p-4",e),...a})}function Gd({className:e,...a}){return K(X.Title,{"data-slot":"sheet-title",className:Le("font-semibold text-foreground",e),...a})}function Nd({className:e,...a}){return K(X.Description,{"data-slot":"sheet-description",className:Le("text-sm text-muted-foreground",e),...a})}export{Td as Sheet,Ed as SheetClose,qd as SheetContent,Nd as SheetDescription,Hd as SheetFooter,Ud as SheetHeader,Gd as SheetTitle,Od as SheetTrigger}; +/*! Bundled license information: + +lucide-react/dist/esm/shared/src/utils.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/defaultAttributes.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/Icon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/createLucideIcon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/x.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/lucide-react.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/b/39420af203d3c9cf48a409c4142592550d5b33c7efbf461ae949f844a45a6128 b/b/39420af203d3c9cf48a409c4142592550d5b33c7efbf461ae949f844a45a6128 new file mode 100644 index 0000000000000000000000000000000000000000..d03235519d09ea9cd954cf03a088244b69e3f542 --- /dev/null +++ b/b/39420af203d3c9cf48a409c4142592550d5b33c7efbf461ae949f844a45a6128 @@ -0,0 +1,43 @@ +import { + Field, + FieldDescription, + FieldLabel, + FieldSet, +} from "@/registry/new-york-v4/ui/field" +import { + RadioGroup, + RadioGroupItem, +} from "@/registry/new-york-v4/ui/radio-group" + +export default function FieldRadio() { + return ( +
+
+ Subscription Plan + + Yearly and lifetime plans offer significant savings. + + + + + + Monthly ($9.99/month) + + + + + + Yearly ($99.99/year) + + + + + + Lifetime ($299.99) + + + +
+
+ ) +} diff --git a/b/395a87a71a9476db2bcc641242958ebab2161ba5ce5fddf492b70b7c4a9d1b75 b/b/395a87a71a9476db2bcc641242958ebab2161ba5ce5fddf492b70b7c4a9d1b75 new file mode 100644 index 0000000000000000000000000000000000000000..b3f0d80d57492d84bc432946cc0ce96c74e67464 --- /dev/null +++ b/b/395a87a71a9476db2bcc641242958ebab2161ba5ce5fddf492b70b7c4a9d1b75 @@ -0,0 +1,101 @@ +#!/usr/bin/env node +// shard-holo.test.mjs — prove the sharder (shard-holo.mjs) splits a .holo into parts the REAL spanning +// reader (gpu/holo-pack-shards.mjs spanReader) stitches back BYTE-IDENTICAL, and that openHoloStream still +// L5-verifies every body across part boundaries. So a 9B .holo can ship as <2 GiB parts with zero loss. +// +// Checks (all must hold): +// 1 manifestShape — parts contiguous (start_i == start_{i-1}+len_{i-1}), Σlen == size, none > partSize, root = footer. +// 2 perPartSha256 — each part file re-hashes to its manifest sha256. +// 3 stitchByteEqual — spanReader(parts, readPartFromDisk) reconstructs the original .holo byte-for-byte. +// 4 streamAcrossParts — openHoloStream over the spanning reader: headerBytes + every body L5-OK (boundary-straddling reads). +// 5 tinyPartsStress — a deliberately tiny partSize (many parts, bodies split across several) still round-trips. +// +// Usage: node holo-apps/apps/q/forge/shard-holo.test.mjs + +import { writeFileSync, readFileSync, rmSync, mkdtempSync, openSync, readSync, closeSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import { dirname, join } from "node:path"; +import { tmpdir } from "node:os"; +import { sealHolo } from "./holo-forge-seal.mjs"; +import { shardHolo } from "./shard-holo.mjs"; +import { spanReader } from "./gpu/holo-pack-shards.mjs"; +import { openHoloStream } from "./holo-archive.mjs"; +import { sha256hex } from "../../../../holo-os/system/os/usr/lib/holo/holo-uor.mjs"; + +const here = dirname(fileURLToPath(import.meta.url)); +const enc = new TextEncoder(); +const eq = (a, b) => a.length === b.length && a.every((v, i) => v === b[i]); +const body = (seed, n) => { const b = new Uint8Array(n); for (let i = 0; i < n; i++) b[i] = (seed * 131 + i * 7) & 0xff; return b; }; + +// a synthetic .holo big enough to span several parts at a small partSize +const blocks = new Map(), tensors = []; +for (const [name, seed, len] of [["token_embd", 1, 9000], ["blk.0.attn", 2, 6000], ["blk.1.attn", 3, 6000], ["output.weight", 4, 5000]]) { + const b = body(seed, len), hex = sha256hex(b); blocks.set(hex, b); tensors.push({ name, kappa: "did:holo:sha256:" + hex, nbytes: len }); +} +const sealed = sealHolo({ arch: "qwen2", sourceRoot: "did:holo:sha256:" + sha256hex(enc.encode("root")), tensors, blocks, extKey: "gguf.header", extBytes: enc.encode("GGUF-HDR…") }); + +const dir = mkdtempSync(join(tmpdir(), "holo-shard-")); +const holoPath = join(dir, "thinking.holo"); +writeFileSync(holoPath, sealed.holo); + +// disk-backed readPart(i, withinOff, n) the spanReader drives +function readPartFromDisk(outDir, parts) { + return (i, off, n) => { + const fd = openSync(join(outDir, parts[i].name), "r"); + try { const buf = Buffer.alloc(n); let got = 0; while (got < n) { const r = readSync(fd, buf, got, n - got, off + got); if (!r) break; got += r; } return new Uint8Array(buf.buffer, buf.byteOffset, got); } + finally { closeSync(fd); } + }; +} + +const checks = {}; + +async function roundTrip(partSize, label) { + const outDir = join(dir, "out-" + label); + const { manifest } = await shardHolo({ inPath: holoPath, outDir, partSize, gateway: "https://ipfs.example/" }); + // 1 · manifest shape + let contiguous = manifest.parts[0].start === 0, sum = 0, withinCap = true; + for (let i = 0; i < manifest.parts.length; i++) { + const p = manifest.parts[i]; sum += p.len; if (p.len > manifest.partSize) withinCap = false; + if (i > 0 && p.start !== manifest.parts[i - 1].start + manifest.parts[i - 1].len) contiguous = false; + } + const shapeOk = contiguous && sum === manifest.size && withinCap && manifest.root === sealed.rootHolo; + // 2 · per-part sha256 + let partsOk = true; + for (const p of manifest.parts) { const bytes = new Uint8Array(readFileSync(join(outDir, p.name))); if (bytes.length !== p.len || sha256hex(bytes) !== p.sha256) partsOk = false; } + // 3 · stitch byte-equal via the REAL spanReader + const read = spanReader(manifest.parts, readPartFromDisk(outDir, manifest.parts)); + const stitched = await read(0, manifest.size); + const stitchOk = eq(stitched, sealed.holo); + // 4 · openHoloStream over the spanning reader L5-verifies every body + const h = await openHoloStream((off, len) => read(off, len)); + let bodiesOk = eq(h.headerBytes, new Uint8Array(enc.encode("GGUF-HDR…"))); + for (const [hex, b] of blocks) { const got = await h.getBody(hex); if (!eq(got, b)) bodiesOk = false; } + return { shapeOk, partsOk, stitchOk, streamOk: bodiesOk, nParts: manifest.parts.length }; +} + +// normal-ish part size → a few parts +{ + const r = await roundTrip(8192, "normal"); + checks.manifestShape = r.shapeOk; + checks.perPartSha256 = r.partsOk; + checks.stitchByteEqual = r.stitchOk; + checks.streamAcrossParts = r.streamOk; +} +// tiny part size → many parts, bodies split across several +{ + const r = await roundTrip(512, "tiny"); + checks.tinyPartsStress = r.shapeOk && r.partsOk && r.stitchOk && r.streamOk && r.nParts > 8; +} + +try { rmSync(dir, { recursive: true, force: true }); } catch {} + +const witnessed = Object.values(checks).every(Boolean); +writeFileSync(join(here, "shard-holo.test.result.json"), JSON.stringify({ + spec: "Sharder (shard-holo.mjs) splits a .holo into <2 GiB delivery parts + a manifest the REAL spanning reader (holo-pack-shards.mjs spanReader/openShardedPack) stitches back byte-identical; openHoloStream still L5-verifies every body across part boundaries. A 9B .holo ships as parts with zero loss and one logical address.", + authority: "holo-pack-shards.mjs spanReader · holo-archive openHoloStream L5 · GitHub 2 GiB asset cap", + witnessed, checks, +}, null, 2) + "\n"); + +for (const [k, v] of Object.entries(checks)) console.log(` ${v ? "ok " : "FAIL"} ${k}`); +console.log(`VERDICT : ${witnessed ? "WITNESSED ✓ shard → spanReader stitch is byte-identical and L5-verified across boundaries" : "NOT WITNESSED"}`); +process.exit(witnessed ? 0 : 1); diff --git a/b/39a3561ca918859f6907339f2cb2346968dbdd5b88f2a8e5cf9fe594670e9bb3 b/b/39a3561ca918859f6907339f2cb2346968dbdd5b88f2a8e5cf9fe594670e9bb3 new file mode 100644 index 0000000000000000000000000000000000000000..e641fad85035f2beee7c60fb03450f7b4231cd4f --- /dev/null +++ b/b/39a3561ca918859f6907339f2cb2346968dbdd5b88f2a8e5cf9fe594670e9bb3 @@ -0,0 +1 @@ +/*! 🌼 daisyUI 5.5.22 - MIT License */ @layer utilities{.loading{@layer daisyui.l1.l2.l3{&{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem)*6);background-color:currentColor;display:inline-block;mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-position:50%;mask-size:100%;mask-repeat:no-repeat}}}.loading-spinner{@layer daisyui.l1.l2{&{mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}}}.loading-dots{@layer daisyui.l1.l2{&{mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='4' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3C/circle%3E%3Ccircle cx='12' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.1s'/%3E%3C/circle%3E%3Ccircle cx='20' cy='12' r='3'%3E%3Canimate attributeName='cy' values='12;6;12;12' keyTimes='0;0.286;0.571;1' dur='1.05s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1' begin='0.2s'/%3E%3C/circle%3E%3C/svg%3E")}}}.loading-ring{@layer daisyui.l1.l2{&{mask-image:url("data:image/svg+xml,%3Csvg width='44' height='44' viewBox='0 0 44 44' xmlns='http://www.w3.org/2000/svg' stroke='white'%3E%3Cg fill='none' fill-rule='evenodd' stroke-width='2'%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='0s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='0s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3Ccircle cx='22' cy='22' r='1'%3E%3Canimate attributeName='r' begin='-0.9s' dur='1.8s' values='1;20' calcMode='spline' keyTimes='0;1' keySplines='0.165,0.84,0.44,1' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-opacity' begin='-0.9s' dur='1.8s' values='1;0' calcMode='spline' keyTimes='0;1' keySplines='0.3,0.61,0.355,1' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}}}.loading-ball{@layer daisyui.l1.l2{&{mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cellipse cx='12' cy='5' rx='4' ry='4'%3E%3Canimate attributeName='cy' values='5;20;20.5;20;5' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite' keySplines='.33,0,.66,.33;.33,.66,.66,1'/%3E%3Canimate attributeName='rx' values='4;4;4.8;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='ry' values='4;4;3;4;4' keyTimes='0;0.469;0.5;0.531;1' dur='.8s' repeatCount='indefinite'/%3E%3C/ellipse%3E%3C/svg%3E")}}}.loading-bars{@layer daisyui.l1.l2{&{mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='1' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite'/%3E%3C/rect%3E%3Crect x='9' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.65s'/%3E%3C/rect%3E%3Crect x='17' y='1' width='6' height='22'%3E%3Canimate attributeName='y' values='1;5;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='height' values='22;14;22' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3Canimate attributeName='opacity' values='1;0.2;1' keyTimes='0;0.938;1' dur='.8s' repeatCount='indefinite' begin='-0.5s'/%3E%3C/rect%3E%3C/svg%3E")}}}.loading-infinity{@layer daisyui.l1.l2{&{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' style='shape-rendering:auto;' width='200px' height='200px' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid'%3E%3Cpath fill='none' stroke='black' stroke-width='10' stroke-dasharray='205.271 51.318' d='M24.3 30C11.4 30 5 43.3 5 50s6.4 20 19.3 20c19.3 0 32.1-40 51.4-40C88.6 30 95 43.3 95 50s-6.4 20-19.3 20C56.4 70 43.6 30 24.3 30z' stroke-linecap='round' style='transform:scale(0.8);transform-origin:50px 50px'%3E%3Canimate attributeName='stroke-dashoffset' repeatCount='indefinite' dur='2s' keyTimes='0;1' values='0;256.589'/%3E%3C/path%3E%3C/svg%3E")}}}.loading-xs{@layer daisyui.l1.l2{&{width:calc(var(--size-selector,.25rem)*4)}}}.loading-sm{@layer daisyui.l1.l2{&{width:calc(var(--size-selector,.25rem)*5)}}}.loading-md{@layer daisyui.l1.l2{&{width:calc(var(--size-selector,.25rem)*6)}}}.loading-lg{@layer daisyui.l1.l2{&{width:calc(var(--size-selector,.25rem)*7)}}}.loading-xl{@layer daisyui.l1.l2{&{width:calc(var(--size-selector,.25rem)*8)}}}} \ No newline at end of file diff --git a/b/39be68ae6785095d545850b80f4ae472f486b6208afca82546d9e511417275f8 b/b/39be68ae6785095d545850b80f4ae472f486b6208afca82546d9e511417275f8 new file mode 100644 index 0000000000000000000000000000000000000000..52ef0c0ff8325b8ab7d9f1a3855d0cd052e900d6 --- /dev/null +++ b/b/39be68ae6785095d545850b80f4ae472f486b6208afca82546d9e511417275f8 @@ -0,0 +1,107 @@ +import * as React from "react" +import { Avatar as AvatarPrimitive } from "radix-ui" + +import { cn } from "@/lib/utils" + +function Avatar({ + className, + size = "default", + ...props +}: React.ComponentProps & { + size?: "default" | "sm" | "lg" +}) { + return ( + + ) +} + +function AvatarImage({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AvatarFallback({ + className, + ...props +}: React.ComponentProps) { + return ( + + ) +} + +function AvatarBadge({ className, ...props }: React.ComponentProps<"span">) { + return ( + svg]:hidden", + "group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2", + "group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2", + className + )} + {...props} + /> + ) +} + +function AvatarGroup({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function AvatarGroupCount({ + className, + ...props +}: React.ComponentProps<"div">) { + return ( +
svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3", + className + )} + {...props} + /> + ) +} + +export { + Avatar, + AvatarImage, + AvatarFallback, + AvatarBadge, + AvatarGroup, + AvatarGroupCount, +} diff --git a/b/39bf229a50fdf0c5a8d9d02d0b22eaa143f3d682445321c7c9ff5f34dc67628e b/b/39bf229a50fdf0c5a8d9d02d0b22eaa143f3d682445321c7c9ff5f34dc67628e new file mode 100644 index 0000000000000000000000000000000000000000..944f4478d38b43ee7926ce0ea1355213f579f42f --- /dev/null +++ b/b/39bf229a50fdf0c5a8d9d02d0b22eaa143f3d682445321c7c9ff5f34dc67628e @@ -0,0 +1,3 @@ +export default function TypographyLarge() { + return
Are you absolutely sure?
+} diff --git a/b/39f9240ce03eef3b0a1633bc1736b37922237d205960840fdec5d75e02ad278e b/b/39f9240ce03eef3b0a1633bc1736b37922237d205960840fdec5d75e02ad278e new file mode 100644 index 0000000000000000000000000000000000000000..80e23a544dfb470d7791e4859418b6dd06b8f587 --- /dev/null +++ b/b/39f9240ce03eef3b0a1633bc1736b37922237d205960840fdec5d75e02ad278e @@ -0,0 +1,64 @@ +"use client";var Dc=Object.defineProperty;var kr=(e,t)=>{for(var r in t)Dc(e,r,{get:t[r],enumerable:!0})};import R from"react";var zt=e=>e.type==="checkbox",et=e=>e instanceof Date,he=e=>e==null,Jo=e=>typeof e=="object",Q=e=>!he(e)&&!Array.isArray(e)&&Jo(e)&&!et(e),Sr=e=>Q(e)&&e.target?zt(e.target)?e.target.checked:e.target.value:e,Wo=(e,t)=>t.split(".").some((r,o,n)=>!isNaN(Number(r))&&e.has(n.slice(0,o).join("."))),Ho=e=>{let t=e.constructor&&e.constructor.prototype;return Q(t)&&t.hasOwnProperty("isPrototypeOf")},Ht=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function te(e){if(e instanceof Date)return new Date(e);let t=typeof FileList<"u"&&e instanceof FileList;if(Ht&&(e instanceof Blob||t))return e;let r=Array.isArray(e);if(!r&&!(Q(e)&&Ho(e)))return e;let o=r?[]:Object.create(Object.getPrototypeOf(e));for(let n in e)Object.prototype.hasOwnProperty.call(e,n)&&(o[n]=te(e[n]));return o}var Me={BLUR:"blur",FOCUS_OUT:"focusout",CHANGE:"change",SUBMIT:"submit",TRIGGER:"trigger",VALID:"valid"},Ee={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Ze={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},zr="form",Yo="root",Ko=["__proto__","constructor","prototype"],$t=e=>/^\w*$/.test(e),W=e=>e===void 0,Yt=e=>e.split(/[.[\]'"]/g).filter(Boolean),v=(e,t,r)=>{if(!t||!Q(e))return r;let o=$t(t)?[t]:Yt(t);if(o.some(s=>Ko.includes(s)))return r;let n=o.reduce((s,i)=>he(s)?void 0:s[i],e);return W(n)||n===e?W(e[t])?r:e[t]:n},_e=e=>typeof e=="boolean",be=e=>typeof e=="function",L=(e,t,r)=>{let o=-1,n=$t(t)?[t]:Yt(t),s=n.length,i=s-1;for(;++oR.useContext(qo),Xo=(e,t,r,o=!0)=>{let n={};for(let s in e)Object.defineProperty(n,s,{get:()=>{let i=s;return t._proxyFormState[i]!==Ee.all&&(t._proxyFormState[i]=!o||Ee.all),r&&(r[i]=!0),e[i]}});return n},Nr=Ht?R.useLayoutEffect:R.useEffect;function Mc(e){let t=Tr(),{control:r=t,disabled:o,name:n,exact:s}=e||{},[i,a]=R.useState(()=>({...r._formState,defaultValues:r._defaultValues})),l=R.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Nr(()=>r._subscribe({name:n,formState:l.current,exact:s,callback:u=>{!o&&a({...r._formState,...u,defaultValues:r._defaultValues})}}),[n,o,s]),R.useEffect(()=>{l.current.isValid&&r._setValid(!0)},[r]),R.useMemo(()=>Xo(i,r,l.current,!1),[i,r])}var ye=e=>typeof e=="string",Pr=(e,t,r,o,n)=>ye(e)?(o&&t.watch.add(e),v(r,e,n)):Array.isArray(e)?e.map(s=>(o&&t.watch.add(s),v(r,s))):(o&&(t.watchAll=!0),r),Zr=e=>he(e)||!Jo(e),Oo=(e,t)=>t.length===0&&!Array.isArray(e)&&!Ho(e);function we(e,t,r=new WeakSet){if(e===t)return!0;if(Zr(e)||Zr(t))return Object.is(e,t);if(et(e)&&et(t))return Object.is(e.getTime(),t.getTime());let o=Object.keys(e),n=Object.keys(t);if(o.length!==n.length)return!1;if(Oo(e,o)||Oo(t,n))return Object.is(e,t);if(r.has(e)||r.has(t))return!0;r.add(e),r.add(t);for(let s of o){let i=e[s];if(!(s in t))return!1;if(s!=="ref"){let a=t[s];if(et(i)&&et(a)||(Q(i)||Array.isArray(i))&&(Q(a)||Array.isArray(a))?!we(i,a,r):!Object.is(i,a))return!1}}return!0}function jc(e){let t=Tr(),{control:r=t,name:o,defaultValue:n,disabled:s,exact:i,compute:a}=e||{},l=R.useRef(n),u=R.useRef(a),g=R.useRef(void 0),p=R.useRef(r),b=R.useRef(o);u.current=a;let[m,$]=R.useState(()=>{let P=r._getWatch(o,l.current);return u.current?u.current(P):P}),C=R.useCallback(P=>{let Z=Pr(o,r._names,P||r._formValues,!1,l.current);return u.current?u.current(Z):Z},[r._formValues,r._names,o]),T=R.useCallback(P=>{if(!s){let Z=Pr(o,r._names,P||r._formValues,!1,l.current);if(u.current){let re=u.current(Z);we(re,g.current)||($(re),g.current=re)}else $(Z)}},[r._formValues,r._names,s,o]);Nr(()=>((p.current!==r||!we(b.current,o))&&(p.current=r,b.current=o,T()),r._subscribe({name:o,formState:{values:!0},exact:i,callback:P=>{T(P.values)}})),[r,i,o,T]),R.useEffect(()=>r._removeUnmounted());let j=p.current!==r,N=b.current,O=R.useMemo(()=>{if(s)return null;let P=!j&&!we(N,o);return j||P?C():null},[s,j,o,N,C]);return O!==null?O:m}function Lc(e){let t=Tr(),{name:r,disabled:o,control:n=t,shouldUnregister:s,defaultValue:i,exact:a=!0}=e,l=Wo(n._names.array,r),u=R.useMemo(()=>v(n._formValues,r,v(n._defaultValues,r,i)),[n,r,i]),g=jc({control:n,name:r,defaultValue:u,exact:a}),p=Mc({control:n,name:r,exact:a}),b=R.useRef(e),m=R.useRef(n.register(r,{...e.rules,value:g,..._e(e.disabled)?{disabled:e.disabled}:{}}));b.current=e;let $=R.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!v(p.errors,r)},isDirty:{enumerable:!0,get:()=>!!v(p.dirtyFields,r)},isTouched:{enumerable:!0,get:()=>!!v(p.touchedFields,r)},isValidating:{enumerable:!0,get:()=>!!v(p.validatingFields,r)},error:{enumerable:!0,get:()=>v(p.errors,r)}}),[p,r]),C=R.useCallback(O=>{let P=Sr(O);v(n._fields,r)||(m.current=n.register(r,{...b.current.rules,value:P})),m.current.onChange({target:{value:Sr(O),name:r},type:Me.CHANGE})},[r,n]),T=R.useCallback(()=>m.current.onBlur({target:{value:v(n._formValues,r),name:r},type:Me.BLUR}),[r,n._formValues]),j=R.useCallback(O=>{let P=v(n._fields,r);P&&P._f&&O&&(P._f.ref={focus:()=>be(O.focus)&&O.focus(),select:()=>be(O.select)&&O.select(),setCustomValidity:Z=>be(O.setCustomValidity)&&O.setCustomValidity(Z),reportValidity:()=>be(O.reportValidity)&&O.reportValidity()})},[n._fields,r]),N=R.useMemo(()=>({name:r,value:g,..._e(o)||p.disabled?{disabled:p.disabled||o}:{},onChange:C,onBlur:T,ref:j}),[r,o,p.disabled,C,T,j,g]);return R.useEffect(()=>{let O=n._options.shouldUnregister||s;n.register(r,{...b.current.rules,..._e(b.current.disabled)?{disabled:b.current.disabled}:{}});let P=(Z,re)=>{let ee=v(n._fields,Z);ee&&ee._f&&(ee._f.mount=re)};if(P(r,!0),O){let Z=te(v(s?n._defaultValues:n._options.values||n._defaultValues,r,v(n._options.defaultValues,r,b.current.defaultValue)));L(n._defaultValues,r,Z),W(v(n._formValues,r))&&L(n._formValues,r,Z)}return!l&&n.register(r),()=>{(l?O&&!n._state.action:O)?n.unregister(r):P(r,!1)}},[r,n,l,s]),R.useEffect(()=>{n._setDisabledField({disabled:o,name:r})},[o,r,n]),R.useMemo(()=>({field:N,formState:p,fieldState:$}),[N,p,$])}var Or=e=>e.render(Lc(e));var Uc=R.createContext(null);Uc.displayName="HookFormContext";var Kt=(e,t,r,o,n)=>t?{...r[e],types:{...r[e]&&r[e].types?r[e].types:{},[o]:n||!0}}:{},Qo=e=>Array.isArray(e)?e.filter(Boolean):[],Gt=e=>Array.isArray(e)?e:[e],Co=()=>{let e=[];return{get observers(){return e},next:n=>{for(let s of e)s.next&&s.next(n)},subscribe:n=>(e.push(n),{unsubscribe:()=>{e=e.filter(s=>s!==n)}}),unsubscribe:()=>{e=[]}}};function en(e,t){let r={};for(let o in e)if(e.hasOwnProperty(o)){let n=e[o],s=t[o];if(n&&Q(n)&&s){let i=en(n,s);Q(i)&&(r[o]=i)}else e[o]&&(r[o]=s)}return r}var fe=e=>Q(e)&&!Object.keys(e).length,Cr=e=>e.type==="file",Jt=e=>{if(!Ht)return!1;let t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},tn=e=>e.type==="select-multiple",Ir=e=>e.type==="radio",Bc=e=>Ir(e)||zt(e),$r=e=>Jt(e)&&e.isConnected;function Gc(e,t){let r=t.slice(0,-1).length,o=0;for(;o{for(let t in e)if(be(e[t]))return!0;return!1};function rn(e){return Array.isArray(e)||Q(e)&&!Wc(e)}function Er(e,t={}){for(let r in e){let o=e[r];rn(o)?(t[r]=Array.isArray(o)?[]:{},Er(o,t[r])):W(o)||(t[r]=!0)}return t}function Ar(e){if(e!==!1){if(e===!0)return!0;if(Array.isArray(e)){let t=e.map(r=>Ar(r));return t.some(r=>r!==void 0)?t:void 0}if(Q(e)){let t={};for(let r in e){let o=Ar(e[r]);W(o)||(t[r]=o)}return Object.keys(t).length?t:void 0}}}function Qe(e,t,r){r||(r=Er(t));for(let o in e){let n=e[o];if(rn(n))W(t)||Zr(r[o])?r[o]=Er(n,Array.isArray(n)?[]:{}):Qe(n,he(t)?{}:t[o],r[o]);else{let s=t[o];r[o]=!we(n,s)}}return Ar(r)||{}}var Io={value:!1,isValid:!1},Ro={value:!0,isValid:!0},on=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(r=>r&&r.checked&&!r.disabled).map(r=>r.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!W(e[0].attributes.value)?W(e[0].value)||e[0].value===""?Ro:{value:e[0].value,isValid:!0}:Ro:Io}return Io},nn=(e,{valueAsNumber:t,valueAsDate:r,setValueAs:o})=>W(e)?e:t?e===""?NaN:e&&+e:r&&ye(e)?new Date(e):o?o(e):e,Fo={isValid:!1,value:null},sn=e=>Array.isArray(e)?e.reduce((t,r)=>r&&r.checked&&!r.disabled?{isValid:!0,value:r.value}:t,Fo):Fo;function Vo(e){let t=e.ref;return Cr(t)?t.files:Ir(t)?sn(e.refs).value:tn(t)?[...t.selectedOptions].map(({value:r})=>r):zt(t)?on(e.refs).value:nn(W(t.value)?e.ref.value:t.value,e)}var Hc=(e,t,r,o)=>{let n={};for(let s of e){let i=v(t,s);i&&L(n,s,i._f)}return{criteriaMode:r,names:[...e],fields:n,shouldUseNativeValidation:o}},Wt=e=>e instanceof RegExp,wt=e=>W(e)?e:Wt(e)?e.source:Q(e)?Wt(e.value)?e.value.source:e.value:e,Do=e=>({isOnSubmit:!e||e===Ee.onSubmit,isOnBlur:e===Ee.onBlur,isOnChange:e===Ee.onChange,isOnAll:e===Ee.all,isOnTouch:e===Ee.onTouched}),Mo="AsyncFunction",Yc=e=>!!e&&!!e.validate&&!!(be(e.validate)&&e.validate.constructor.name===Mo||Q(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===Mo)),Kc=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),jo=(e,t,r)=>!r&&(t.watchAll||t.watch.has(e)||[...t.watch].some(o=>e.startsWith(`${o}.`))),kt=(e,t,r,o)=>{for(let n of r||Object.keys(e)){let s=v(e,n);if(s){let{_f:i,...a}=s;if(i){if(i.refs&&i.refs[0]&&t(i.refs[0],n)&&!o)return!0;if(i.ref&&t(i.ref,i.name)&&!o)return!0;if(kt(a,t))break}else if(Q(a)&&kt(a,t))break}}};function Lo(e,t,r){let o=v(e,r);if(o||$t(r))return{error:o,name:r};let n=r.split(".");for(;n.length;){let s=n.join("."),i=v(t,s),a=v(e,s);if(i&&!Array.isArray(i)&&r!==s)return{name:r};if(a&&a.type)return{name:s,error:a};if(a&&a.root&&a.root.type)return{name:`${s}.root`,error:a.root};n.pop()}return{name:r}}var qc=(e,t,r,o)=>{r(e);let{name:n,...s}=e;return fe(s)||o&&Object.keys(s).length>=Object.keys(t).length||Object.keys(s).find(i=>t[i]===(!o||Ee.all))},Xc=(e,t,r)=>!e||!t||e===t||Gt(e).some(o=>o&&(r?o===t:o.startsWith(t)||t.startsWith(o))),Qc=(e,t,r,o,n)=>n.isOnAll?!1:!r&&n.isOnTouch?!(t||e):(r?o.isOnBlur:n.isOnBlur)?!e:(r?o.isOnChange:n.isOnChange)?e:!0,eu=(e,t)=>!Qo(v(e,t)).length&&se(e,t),Uo=(e,t,r)=>{let o=v(e,r),n=Array.isArray(o)?o:[];return L(n,Yo,t[r]),L(e,r,n),e};function Bo(e,t,r="validate"){if(ye(e)||Array.isArray(e)&&e.every(ye)||_e(e)&&!e)return{type:r,message:ye(e)?e:"",ref:t}}var lt=e=>Q(e)&&!Wt(e)?e:{value:e,message:""},Go=async(e,t,r,o,n,s)=>{let{ref:i,refs:a,required:l,maxLength:u,minLength:g,min:p,max:b,pattern:m,validate:$,name:C,valueAsNumber:T,mount:j}=e._f,N=v(r,C);if(!j||t.has(C))return{};let O=a?a[0]:i,P=V=>{n&&O.reportValidity&&(O.setCustomValidity(_e(V)?"":V||""),O.reportValidity())},Z={},re=Ir(i),ee=zt(i),S=re||ee,oe=(T||Cr(i))&&W(i.value)&&W(N)||Jt(i)&&i.value===""||N===""||Array.isArray(N)&&!N.length,xe=Kt.bind(null,C,o,Z),We=(V,D,q,U=Ze.maxLength,Y=Ze.minLength)=>{let me=V?D:q;Z[C]={type:V?U:Y,message:me,ref:i,...xe(V?U:Y,me)}};if(s?!Array.isArray(N)||!N.length:l&&(!S&&(oe||he(N))||_e(N)&&!N||ee&&!on(a).isValid||re&&!sn(a).isValid)){let{value:V,message:D}=ye(l)?{value:!!l,message:l}:lt(l);if(V&&(Z[C]={type:Ze.required,message:D,ref:O,...xe(Ze.required,D)},!o))return P(D),Z}if(!oe&&(!he(p)||!he(b))){let V,D,q=lt(b),U=lt(p);if(!he(N)&&!isNaN(N)){let Y=i.valueAsNumber||N&&+N;he(q.value)||(V=Y>q.value),he(U.value)||(D=Ynew Date(new Date().toDateString()+" "+E),Te=i.type=="time",Ie=i.type=="week";ye(q.value)&&N&&(V=Te?me(N)>me(q.value):Ie?N>q.value:Y>new Date(q.value)),ye(U.value)&&N&&(D=Te?me(N)+V.value,U=!he(D.value)&&N.length<+D.value;if((q||U)&&(We(q,V.message,D.message),!o))return P(Z[C].message),Z}if(m&&!oe&&ye(N)){let{value:V,message:D}=lt(m);if(Wt(V)&&!N.match(V)&&(Z[C]={type:Ze.pattern,message:D,ref:i,...xe(Ze.pattern,D)},!o))return P(D),Z}if($){if(be($)){let V=await $(N,r),D=Bo(V,O);if(D&&(Z[C]={...D,...xe(Ze.validate,D.message)},!o))return P(D.message),Z}else if(Q($)){let V={};for(let D in $){if(!fe(V)&&!o)break;let q=Bo(await $[D](N,r),O,D);q&&(V={...q,...xe(D,q.message)},P(q.message),o&&(Z[C]=V))}if(!fe(V)&&(Z[C]={ref:O,...V},!o))return Z}}return P(!0),Z},tu={mode:Ee.onSubmit,reValidateMode:Ee.onChange,shouldFocusError:!0},an={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function ru(e={}){let t={...tu,...e},r={...te(an),isLoading:be(t.defaultValues),errors:t.errors||{},disabled:t.disabled||!1},o={},n=Q(t.defaultValues)||Q(t.values)?te(t.defaultValues||t.values)||{}:{},s=t.shouldUnregister?{}:te(n),i={action:!1,mount:!1,watch:!1,keepIsValid:!1},a={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},l,u=0,g={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},p={...g},b={...p},m={array:Co(),state:Co()},$=t.criteriaMode===Ee.all,C=c=>d=>{clearTimeout(u),u=setTimeout(c,d)},T=async c=>{if(!i.keepIsValid&&!t.disabled&&(p.isValid||b.isValid||c)){let d;t.resolver?(d=fe((await xe()).errors),j()):d=await D({fields:o,onlyCheckValid:!0,eventType:Me.VALID}),d!==r.isValid&&m.state.next({isValid:d})}},j=(c,d)=>{!t.disabled&&(p.isValidating||p.validatingFields||b.isValidating||b.validatingFields)&&((c||Array.from(a.mount)).forEach(f=>{f&&(d?L(r.validatingFields,f,d):se(r.validatingFields,f))}),m.state.next({validatingFields:r.validatingFields,isValidating:!fe(r.validatingFields)}))},N=()=>{r.dirtyFields=Qe(n,s)},O=(c,d=[],f,y,_=!0,w=!0)=>{if(y&&f&&!t.disabled){if(i.action=!0,w&&Array.isArray(v(o,c))){let x=f(v(o,c),y.argA,y.argB);_&&L(o,c,x)}if(w&&Array.isArray(v(r.errors,c))){let x=f(v(r.errors,c),y.argA,y.argB);_&&L(r.errors,c,x),eu(r.errors,c)}if((p.touchedFields||b.touchedFields)&&w&&Array.isArray(v(r.touchedFields,c))){let x=f(v(r.touchedFields,c),y.argA,y.argB);_&&L(r.touchedFields,c,x)}(p.dirtyFields||b.dirtyFields)&&N(),m.state.next({name:c,isDirty:U(c,d),dirtyFields:r.dirtyFields,errors:r.errors,isValid:r.isValid})}else L(s,c,d)},P=(c,d)=>{L(r.errors,c,d),m.state.next({errors:r.errors})},Z=c=>{r.errors=c,m.state.next({errors:r.errors,isValid:!1})},re=c=>{let d=$t(c)?[c]:Yt(c),f=s,y=n;for(let _=0;_{let _=v(o,c);if(_){if(re(c))return;let w=W(v(s,c)),x=v(s,c,W(f)?v(n,c):f);W(x)||y&&y.defaultChecked||d?L(s,c,d?x:Vo(_._f)):Te(c,x),i.mount&&!i.action&&(T(),w&&r.isDirty&&(p.isDirty||b.isDirty)&&(U()||(r.isDirty=!1,m.state.next({...r}))))}},S=(c,d,f,y,_)=>{let w=!1,x=!1,A={name:c};if(!t.disabled){if(!f||y){(p.isDirty||b.isDirty)&&(x=r.isDirty,r.isDirty=A.isDirty=U(),w=x!==A.isDirty);let M=we(v(n,c),d);x=!!v(r.dirtyFields,c),M!==r.isDirty?r.dirtyFields=Qe(n,s):M?se(r.dirtyFields,c):L(r.dirtyFields,c,!0),A.dirtyFields=r.dirtyFields,w=w||(p.dirtyFields||b.dirtyFields)&&x!==!M}if(f){let M=v(r.touchedFields,c);M||(L(r.touchedFields,c,f),A.touchedFields=r.touchedFields,w=w||(p.touchedFields||b.touchedFields)&&M!==f)}w&&_&&m.state.next(A)}return w?A:{}},oe=(c,d,f,y)=>{let _=v(r.errors,c),w=(p.isValid||b.isValid)&&_e(d)&&r.isValid!==d;if(t.delayError&&f?(l=C(()=>P(c,f)),l(t.delayError)):(clearTimeout(u),l=null,f?L(r.errors,c,f):se(r.errors,c)),(f?!we(_,f):_)||!fe(y)||w){let x={...y,...w&&_e(d)?{isValid:d}:{},errors:r.errors,name:c};r={...r,...x},m.state.next(x)}},xe=async c=>(j(c,!0),await t.resolver(s,t.context,Hc(c||a.mount,o,t.criteriaMode,t.shouldUseNativeValidation))),We=async c=>{let{errors:d}=await xe(c);if(j(c),c)for(let f of c){let y=v(d,f);y?a.array.has(f)&&Q(y)&&!Object.keys(y).some(_=>!Number.isNaN(Number(_)))?Uo(r.errors,{[f]:y},f):L(r.errors,f,y):se(r.errors,f)}else r.errors=d;return d},V=async({name:c,eventType:d})=>{if(e.validate){let f=await e.validate({formValues:s,formState:r,name:c,eventType:d});if(Q(f))for(let y in f){let _=f[y];_&&X(`${zr}.${y}`,{message:ye(_.message)?_.message:"",type:_.type||Ze.validate})}else ye(f)||!f?X(zr,{message:f||"",type:Ze.validate}):xt(zr);return f}return!0},D=async({fields:c,onlyCheckValid:d,name:f,eventType:y,context:_={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(_.runRootValidation=!0,!await V({name:f,eventType:y})&&(_.valid=!1,d)))return _.valid;for(let w in c){let x=c[w];if(x){let{_f:A,...M}=x;if(A){let ne=a.array.has(A.name),$e=x._f&&Yc(x._f),Pe=p.validatingFields||p.isValidating||b.validatingFields||b.isValidating;$e&&Pe&&j([A.name],!0);let Xe=await Go(x,a.disabled,s,$,t.shouldUseNativeValidation&&!d,ne);if($e&&Pe&&j([A.name]),Xe[A.name]&&(_.valid=!1,d)||(!d&&(v(Xe,A.name)?ne?Uo(r.errors,Xe,A.name):L(r.errors,A.name,Xe[A.name]):se(r.errors,A.name)),e.shouldUseNativeValidation&&Xe[A.name]))break}!fe(M)&&await D({context:_,onlyCheckValid:d,fields:M,name:w,eventType:y})}}return _.valid},q=()=>{for(let c of a.unMount){let d=v(o,c);d&&(d._f.refs?d._f.refs.every(f=>!$r(f)):!$r(d._f.ref))&&Ke(c)}a.unMount=new Set},U=(c,d)=>!t.disabled&&(c&&d&&L(s,c,d),!we(de(),n)),Y=(c,d,f)=>Pr(c,a,{...i.mount?s:W(d)?n:ye(c)?{[c]:d}:d},f,d),me=c=>Qo(v(i.mount?s:n,c,t.shouldUnregister?v(n,c,[]):[])),Te=(c,d,f={},y=!1)=>{let _=v(o,c),w=d;if(_){let x=_._f;x&&(!x.disabled&&L(s,c,nn(d,x)),w=Jt(x.ref)&&he(d)?"":d,tn(x.ref)?[...x.ref.options].forEach(A=>A.selected=w.includes(A.value)):x.refs?zt(x.ref)?x.refs.forEach(A=>{(!A.defaultChecked||!A.disabled)&&(Array.isArray(w)?A.checked=!!w.find(M=>M===A.value):A.checked=w===A.value||!!w)}):x.refs.forEach(A=>A.checked=A.value===w):Cr(x.ref)?x.ref.value="":(x.ref.value=w,x.ref.type||m.state.next({name:c,values:y?s:te(s)})))}(f.shouldDirty||f.shouldTouch)&&S(c,w,f.shouldTouch,f.shouldDirty,!0),f.shouldValidate&&ae(c)},Ie=(c,d,f,y=!1)=>{for(let _ in d){if(!d.hasOwnProperty(_))return;let w=d[_],x=c+"."+_,A=v(o,x);(a.array.has(c)||Q(w)||A&&!A._f)&&!et(w)?Ie(x,w,f,y):Te(x,w,f,y)}},E=(c,d,f,y)=>{let _=v(o,c),w=a.array.has(c),x=y?d:te(d),A=v(s,c),M=we(A,x);if(M||L(s,c,x),w)m.array.next({name:c,values:y?s:te(s)}),(p.isDirty||p.dirtyFields||b.isDirty||b.dirtyFields)&&f.shouldDirty&&(N(),m.state.next({name:c,dirtyFields:r.dirtyFields,isDirty:U(c,x)}));else{let ne=Array.isArray(x)&&!x.length||fe(x);!_||_._f||he(x)||ne?Te(c,x,f,y):Ie(c,x,f,y)}if(!M){let ne=jo(c,a),$e=y?s:te(s);m.state.next({...ne&&r,name:i.mount||ne?c:void 0,values:$e})}},De=(c,d,f={})=>E(c,d,f,!1),Ut=(c,d={})=>{let f=be(c)?c(s):c;if(!we(s,f)){s={...s,...f};for(let y of a.mount)E(y,v(f,y),d,!0);m.state.next({...r,name:void 0,type:void 0,values:s}),d.shouldValidate&&T()}},vt=async c=>{i.mount=!0;let d=c.target,f=d.name,y=!0,_=v(o,f),w=M=>{y=Number.isNaN(M)||et(M)&&isNaN(M.getTime())||we(M,v(s,f,M))},x=Do(t.mode),A=Do(t.reValidateMode);if(_){let M,ne,$e=d.type?Vo(_._f):Sr(c),Pe=c.type===Me.BLUR||c.type===Me.FOCUS_OUT,Xe=!Kc(_._f)&&!e.validate&&!t.resolver&&!v(r.errors,f)&&!_._f.deps||Qc(Pe,v(r.touchedFields,f),r.isSubmitted,A,x),wr=jo(f,a,Pe);L(s,f,$e),Pe?(!d||!d.readOnly)&&(_._f.onBlur&&_._f.onBlur(c),l&&l(0)):_._f.onChange&&_._f.onChange(c);let _t=S(f,$e,Pe),Fc=!fe(_t)||wr;if(!Pe&&m.state.next({name:f,type:c.type,values:te(s)}),Xe)return(p.isValid||b.isValid)&&(t.mode==="onBlur"?Pe&&T():Pe||T()),Fc&&m.state.next({name:f,...wr?{}:_t});if(!t.resolver&&e.validate&&await V({name:f,eventType:c.type}),!Pe&&wr&&m.state.next({...r}),t.resolver){let{errors:To}=await xe([f]);if(j([f]),w($e),!y){!fe(_t)&&m.state.next(_t);return}let Vc=Lo(r.errors,o,f),No=Lo(To,o,Vc.name||f);M=No.error,f=No.name,ne=fe(To)}else j([f],!0),M=(await Go(_,a.disabled,s,$,t.shouldUseNativeValidation))[f],j([f]),w($e),y&&(M?ne=!1:(p.isValid||b.isValid)&&(ne=await D({fields:o,onlyCheckValid:!0,name:f,eventType:c.type})));y&&(_._f.deps&&(!Array.isArray(_._f.deps)||_._f.deps.length>0)&&ae(_._f.deps),oe(f,ne,M,_t))}},ct=(c,d)=>{if(v(r.errors,d)&&c.focus)return c.focus(),1},ae=async(c,d={})=>{let f,y,_=Gt(c);if(t.resolver){let w=await We(W(c)?c:_);f=fe(w),y=c?!_.some(x=>v(w,x)):f}else c?(y=(await Promise.all(_.map(async w=>{let x=v(o,w);return await D({fields:x&&x._f?{[w]:x}:x,eventType:Me.TRIGGER})}))).every(Boolean),!(!y&&!r.isValid)&&T()):y=f=await D({fields:o,name:c,eventType:Me.TRIGGER});return m.state.next({...!ye(c)||(p.isValid||b.isValid)&&f!==r.isValid?{}:{name:c},...t.resolver||!c?{isValid:f}:{},errors:r.errors}),d.shouldFocus&&!y&&kt(o,ct,c?_:a.mount),y},de=(c,d)=>{let f={...i.mount?s:n};return d&&(f=en(d.dirtyFields?r.dirtyFields:r.touchedFields,f)),W(c)?f:ye(c)?v(f,c):c.map(y=>v(f,y))},He=(c,d)=>({invalid:!!v((d||r).errors,c),isDirty:!!v((d||r).dirtyFields,c),error:v((d||r).errors,c),isValidating:!!v(r.validatingFields,c),isTouched:!!v((d||r).touchedFields,c)}),xt=c=>{let d=c?Gt(c):void 0;d?.forEach(f=>se(r.errors,f)),d?d.forEach(f=>{m.state.next({name:f,errors:r.errors})}):m.state.next({errors:{}})},X=(c,d,f)=>{let y=(v(o,c,{_f:{}})._f||{}).ref,_=v(r.errors,c)||{},{ref:w,message:x,type:A,...M}=_;L(r.errors,c,{...M,...d,ref:y}),m.state.next({name:c,errors:r.errors,isValid:!1}),f&&f.shouldFocus&&y&&y.focus&&y.focus()},Bt=(c,d)=>be(c)?m.state.subscribe({next:f=>"values"in f&&c(f.values||Y(void 0,d),f)}):Y(c,d,!0),Ye=c=>m.state.subscribe({next:d=>{if(Xc(c.name,d.name,c.exact)&&qc(d,c.formState||p,Rc,c.reRenderRoot)){let f={...s};c.callback({values:f,...r,...d,defaultValues:n})}}}).unsubscribe,ut=c=>(i.mount=!0,b={...b,...c.formState},Ye({...c,formState:{...g,...c.formState}})),Ke=(c,d={})=>{for(let f of c?Gt(c):a.mount)a.mount.delete(f),a.array.delete(f),d.keepValue||(se(o,f),se(s,f)),!d.keepError&&se(r.errors,f),!d.keepDirty&&se(r.dirtyFields,f),!d.keepTouched&&se(r.touchedFields,f),!d.keepIsValidating&&se(r.validatingFields,f),!t.shouldUnregister&&!d.keepDefaultValue&&se(n,f);m.state.next({values:te(s)}),m.state.next({...r,...d.keepDirty?{isDirty:U()}:{}}),!d.keepIsValid&&T()},qe=({disabled:c,name:d})=>{if(_e(c)&&i.mount||c||a.disabled.has(d)){let _=a.disabled.has(d)!==!!c;c?a.disabled.add(d):a.disabled.delete(d),_&&i.mount&&!i.action&&T()}},xr=(c,d={})=>{let f=v(o,c),y=_e(d.disabled)||_e(t.disabled),_=!a.registerName.has(c)&&f&&f._f&&!f._f.mount;return L(o,c,{...f||{},_f:{...f&&f._f?f._f:{ref:{name:c}},name:c,mount:!0,...d}}),a.mount.add(c),f&&!_?qe({disabled:_e(d.disabled)?d.disabled:t.disabled,name:c}):ee(c,!0,d.value),{...y?{disabled:d.disabled||t.disabled}:{},...t.progressive?{required:!!d.required,min:wt(d.min),max:wt(d.max),minLength:wt(d.minLength),maxLength:wt(d.maxLength),pattern:wt(d.pattern)}:{},name:c,onChange:vt,onBlur:vt,ref:w=>{if(w){a.registerName.add(c),xr(c,d),a.registerName.delete(c),f=v(o,c);let x=W(w.value)&&w.querySelectorAll&&w.querySelectorAll("input,select,textarea")[0]||w,A=Bc(x),M=f._f.refs||[];if(A?M.find(ne=>ne===x):x===f._f.ref)return;L(o,c,{_f:{...f._f,...A?{refs:[...M.filter($r),x,...Array.isArray(v(n,c))?[{}]:[]],ref:{type:x.type,name:c}}:{ref:x}}}),ee(c,!1,void 0,x)}else f=v(o,c,{}),f._f&&(f._f.mount=!1),(t.shouldUnregister||d.shouldUnregister)&&!(Wo(a.array,c)&&i.action)&&a.unMount.add(c)}}},_r=()=>t.shouldFocusError&&!t.shouldUseNativeValidation&&kt(o,ct,a.mount),Oc=c=>{_e(c)&&(m.state.next({disabled:c}),kt(o,(d,f)=>{let y=v(o,f);y&&(d.disabled=y._f.disabled||c,Array.isArray(y._f.refs)&&y._f.refs.forEach(_=>{_.disabled=y._f.disabled||c}))},0,!1))},Po=(c,d)=>async f=>{let y;f&&(f.preventDefault&&f.preventDefault(),f.persist&&f.persist());let _=te(s);if(m.state.next({isSubmitting:!0}),t.resolver){let{errors:w,values:x}=await xe();j(),r.errors=w,_=te(x)}else await D({fields:o,eventType:Me.SUBMIT});if(a.disabled.size)for(let w of a.disabled)se(_,w);if(se(r.errors,Yo),fe(r.errors)){m.state.next({errors:{}});try{await c(_,f)}catch(w){y=w}}else d&&await d({...r.errors},f),_r(),setTimeout(_r);if(m.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:fe(r.errors)&&!y,submitCount:r.submitCount+1,errors:r.errors}),y)throw y},Cc=(c,d={})=>{v(o,c)&&(W(d.defaultValue)?De(c,te(v(n,c))):(De(c,d.defaultValue),L(n,c,te(d.defaultValue))),d.keepTouched||se(r.touchedFields,c),d.keepDirty||(se(r.dirtyFields,c),r.isDirty=d.defaultValue?U(c,te(v(n,c))):U()),d.keepError||(se(r.errors,c),p.isValid&&T()),m.state.next({...r}))},Zo=(c,d={})=>{let f=c?te(c):n,y=te(f),_=fe(c),w=y;if(d.keepDefaultValues||(n=f),!d.keepValues){if(d.keepDirtyValues){let x=new Set([...a.mount,...Object.keys(Qe(n,s))]);for(let A of Array.from(x)){let M=v(r.dirtyFields,A),ne=v(s,A),$e=v(w,A);M&&!W(ne)?L(w,A,ne):!M&&!W($e)&&De(A,$e)}}else{if(Ht&&W(c))for(let x of a.mount){let A=v(o,x);if(A&&A._f){let M=Array.isArray(A._f.refs)?A._f.refs[0]:A._f.ref;if(Jt(M)){let ne=M.closest("form");if(ne){ne.reset();break}}}}if(d.keepFieldsRef)for(let x of a.mount)De(x,v(w,x));else o={}}if(t.shouldUnregister){if(s=d.keepDefaultValues?te(n):{},d.keepFieldsRef)for(let x of a.mount)L(s,x,v(w,x))}else s=te(w);m.array.next({values:{...w}}),m.state.next({values:{...w}})}a={mount:d.keepDirtyValues?a.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},i.mount=!p.isValid||!!d.keepIsValid||!!d.keepDirtyValues||!t.shouldUnregister&&!fe(w),i.watch=!!t.shouldUnregister,i.keepIsValid=!!d.keepIsValid,i.action=!1,d.keepErrors||(r.errors={}),m.state.next({submitCount:d.keepSubmitCount?r.submitCount:0,isDirty:_?!1:d.keepDirty?r.isDirty:d.keepValues?U():!!(d.keepDefaultValues&&!we(c,n)),isSubmitted:d.keepIsSubmitted?r.isSubmitted:!1,dirtyFields:_?{}:d.keepDirtyValues?d.keepDefaultValues&&s?Qe(n,s):r.dirtyFields:d.keepDefaultValues&&c?Qe(n,c):d.keepDirty?r.dirtyFields:{},touchedFields:d.keepTouched?r.touchedFields:{},errors:d.keepErrors?r.errors:{},isSubmitSuccessful:d.keepIsSubmitSuccessful?r.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:n})},Eo=(c,d)=>Zo(be(c)?c(s):c,{...t.resetOptions,...d}),Ic=(c,d={})=>{let f=v(o,c),y=f&&f._f;if(y){let _=y.refs?y.refs[0]:y.ref;_.focus&&setTimeout(()=>{_.focus(),d.shouldSelect&&be(_.select)&&_.select()})}},Rc=c=>{r={...r,...c}},Ao={control:{register:xr,unregister:Ke,getFieldState:He,handleSubmit:Po,setError:X,_subscribe:Ye,_runSchema:xe,_updateIsValidating:j,_focusError:_r,_getWatch:Y,_getDirty:U,_setValid:T,_setFieldArray:O,_setDisabledField:qe,_setErrors:Z,_getFieldArray:me,_reset:Zo,_resetDefaultValues:()=>be(t.defaultValues)&&t.defaultValues().then(c=>{Eo(c,t.resetOptions),m.state.next({isLoading:!1})}),_removeUnmounted:q,_disableForm:Oc,_subjects:m,_proxyFormState:p,get _fields(){return o},get _formValues(){return s},get _state(){return i},set _state(c){i=c},get _defaultValues(){return n},get _names(){return a},set _names(c){a=c},get _formState(){return r},get _options(){return t},set _options(c){t={...t,...c}}},subscribe:ut,trigger:ae,register:xr,handleSubmit:Po,watch:Bt,setValue:De,setValues:Ut,getValues:de,reset:Eo,resetField:Cc,resetDefaultValues:(c,d={})=>{if(n=te(c),!d.keepDirty){let f=Qe(n,s);r.dirtyFields=f,r.isDirty=!fe(f)}d.keepIsValid||T(),m.state.next({...r,defaultValues:n})},clearErrors:xt,unregister:Ke,setError:X,setFocus:Ic,getFieldState:He};return{...Ao,formControl:Ao}}function cn(e={}){let t=R.useRef(void 0),r=R.useRef(void 0),[o,n]=R.useState(()=>({...te(an),isLoading:be(e.defaultValues),errors:e.errors||{},disabled:e.disabled||!1,defaultValues:be(e.defaultValues)?void 0:e.defaultValues}));if(!t.current)if(e.formControl)t.current={...e.formControl,formState:o},e.defaultValues&&!be(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{let{formControl:i,...a}=ru(e);t.current={...a,formState:o}}let s=t.current.control;return s._options=e,Nr(()=>{let i=s._subscribe({formState:s._proxyFormState,callback:()=>n({...s._formState,defaultValues:s._defaultValues}),reRenderRoot:!0});return n(a=>({...a,isReady:!0})),s._formState.isReady=!0,i},[s]),R.useEffect(()=>s._disableForm(e.disabled),[s,e.disabled]),R.useEffect(()=>{e.mode&&(s._options.mode=e.mode),e.reValidateMode&&(s._options.reValidateMode=e.reValidateMode)},[s,e.mode,e.reValidateMode]),R.useEffect(()=>{e.errors&&(s._setErrors(e.errors),s._focusError())},[s,e.errors]),R.useEffect(()=>{e.shouldUnregister&&s._subjects.state.next({values:s._getWatch()})},[s,e.shouldUnregister]),R.useEffect(()=>{if(s._proxyFormState.isDirty){let i=s._getDirty();i!==o.isDirty&&s._subjects.state.next({isDirty:i})}},[s,o.isDirty]),R.useEffect(()=>{var i;e.values&&!we(e.values,r.current)?(s._reset(e.values,{keepFieldsRef:!0,...s._options.resetOptions}),!((i=s._options.resetOptions)===null||i===void 0)&&i.keepIsValid||s._setValid(),r.current=e.values,n(a=>({...a}))):s._resetDefaultValues()},[s,e.values]),R.useEffect(()=>{s._state.mount||(s._setValid(),s._state.mount=!0),s._state.watch&&(s._state.watch=!1,s._subjects.state.next({...s._formState})),s._removeUnmounted()}),t.current.formState=R.useMemo(()=>Xo(o,s),[s,o]),t.current}var un=(e,t,r)=>{if(e&&"reportValidity"in e){let o=v(r,t);e.setCustomValidity(o&&o.message||""),e.reportValidity()}},qt=(e,t)=>{for(let r in t.fields){let o=t.fields[r];o&&o.ref&&"reportValidity"in o.ref?un(o.ref,r,e):o&&o.refs&&o.refs.forEach(n=>un(n,r,e))}},Rr=(e,t)=>{t.shouldUseNativeValidation&&qt(e,t);let r={};for(let o in e){let n=v(t.fields,o),s=Object.assign(e[o]||{},{ref:n&&n.ref});if(ou(t.names||Object.keys(e),o)){let i=Object.assign({},v(r,o));L(i,"root",s),L(r,o,i)}else L(r,o,s)}return r},ou=(e,t)=>{let r=ln(t).replace(/[.*+?^${}()|\\]/g,"\\$&");return e.some(o=>ln(o).match(`^${r}\\.\\d+`))};function ln(e){return e.replace(/[\[\]]/g,"")}var dn;function h(e,t,r){function o(a,l){if(a._zod||Object.defineProperty(a,"_zod",{value:{def:l,constr:i,traits:new Set},enumerable:!1}),a._zod.traits.has(e))return;a._zod.traits.add(e),t(a,l);let u=i.prototype,g=Object.keys(u);for(let p=0;pr?.Parent&&a instanceof r.Parent?!0:a?._zod?.traits?.has(e)}),Object.defineProperty(i,"name",{value:e}),i}var Af=Symbol("zod_brand"),Ne=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}},dt=class extends Error{constructor(t){super(`Encountered unidirectional transform during encode: ${t}`),this.name="ZodEncodeError"}};(dn=globalThis).__zod_globalConfig??(dn.__zod_globalConfig={});var ft=globalThis.__zod_globalConfig;function Re(e){return e&&Object.assign(ft,e),ft}var G={};kr(G,{BIGINT_FORMAT_RANGES:()=>yn,Class:()=>Vr,NUMBER_FORMAT_RANGES:()=>bn,aborted:()=>Le,allowsEval:()=>Mr,assert:()=>cu,assertEqual:()=>nu,assertIs:()=>iu,assertNever:()=>au,assertNotEqual:()=>su,assignProp:()=>je,base64ToUint8Array:()=>xn,base64urlToUint8Array:()=>Pu,cached:()=>Zt,captureStackTrace:()=>Qt,cleanEnum:()=>Su,cleanRegex:()=>At,clone:()=>Ae,cloneDef:()=>du,createTransparentProxy:()=>bu,defineLazy:()=>B,esc:()=>Xt,escapeRegex:()=>rt,explicitlyAborted:()=>Ur,extend:()=>xu,finalizeIssue:()=>Oe,floatSafeRemainder:()=>pn,getElementAtPath:()=>fu,getEnumValues:()=>Pt,getLengthableOrigin:()=>Nt,getParsedType:()=>gu,getSizableOrigin:()=>vn,hexToUint8Array:()=>Eu,isObject:()=>pt,isPlainObject:()=>tt,issue:()=>ht,joinValues:()=>uu,jsonStringifyReplacer:()=>mt,merge:()=>wu,mergeDefs:()=>Fe,normalizeParams:()=>I,nullish:()=>Et,numKeys:()=>hu,objectClone:()=>lu,omit:()=>vu,optionalKeys:()=>Lr,parsedType:()=>$u,partial:()=>ku,pick:()=>yu,prefixIssues:()=>Tt,primitiveTypes:()=>hn,promiseAllObject:()=>pu,propertyKeyTypes:()=>jr,randomString:()=>mu,required:()=>zu,safeExtend:()=>_u,shallowClone:()=>mn,slugify:()=>Dr,stringifyPrimitive:()=>gn,uint8ArrayToBase64:()=>_n,uint8ArrayToBase64url:()=>Zu,uint8ArrayToHex:()=>Au,unwrapMessage:()=>St});function nu(e){return e}function su(e){return e}function iu(e){}function au(e){throw new Error("Unexpected value in exhaustive check")}function cu(e){}function Pt(e){let t=Object.values(e).filter(o=>typeof o=="number");return Object.entries(e).filter(([o,n])=>t.indexOf(+o)===-1).map(([o,n])=>n)}function uu(e,t="|"){return e.map(r=>gn(r)).join(t)}function mt(e,t){return typeof t=="bigint"?t.toString():t}function Zt(e){return{get value(){{let r=e();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function Et(e){return e==null}function At(e){let t=e.startsWith("^")?1:0,r=e.endsWith("$")?e.length-1:e.length;return e.slice(t,r)}function pn(e,t){let r=e/t,o=Math.round(r),n=Number.EPSILON*Math.max(Math.abs(r),1);return Math.abs(r-o)r?.[o],e):e}function pu(e){let t=Object.keys(e),r=t.map(o=>e[o]);return Promise.all(r).then(o=>{let n={};for(let s=0;s{};function pt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Mr=Zt(()=>{if(ft.jitless||typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let e=Function;return new e(""),!0}catch{return!1}});function tt(e){if(pt(e)===!1)return!1;let t=e.constructor;if(t===void 0||typeof t!="function")return!0;let r=t.prototype;return!(pt(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function mn(e){return tt(e)?{...e}:Array.isArray(e)?[...e]:e instanceof Map?new Map(e):e instanceof Set?new Set(e):e}function hu(e){let t=0;for(let r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}var gu=e=>{let t=typeof e;switch(t){case"undefined":return"undefined";case"string":return"string";case"number":return Number.isNaN(e)?"nan":"number";case"boolean":return"boolean";case"function":return"function";case"bigint":return"bigint";case"symbol":return"symbol";case"object":return Array.isArray(e)?"array":e===null?"null":e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?"promise":typeof Map<"u"&&e instanceof Map?"map":typeof Set<"u"&&e instanceof Set?"set":typeof Date<"u"&&e instanceof Date?"date":typeof File<"u"&&e instanceof File?"file":"object";default:throw new Error(`Unknown data type: ${t}`)}},jr=new Set(["string","number","symbol"]),hn=new Set(["string","number","bigint","boolean","symbol","undefined"]);function rt(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ae(e,t,r){let o=new e._zod.constr(t??e._zod.def);return(!t||r?.parent)&&(o._zod.parent=e),o}function I(e){let t=e;if(!t)return{};if(typeof t=="string")return{error:()=>t};if(t?.message!==void 0){if(t?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");t.error=t.message}return delete t.message,typeof t.error=="string"?{...t,error:()=>t.error}:t}function bu(e){let t;return new Proxy({},{get(r,o,n){return t??(t=e()),Reflect.get(t,o,n)},set(r,o,n,s){return t??(t=e()),Reflect.set(t,o,n,s)},has(r,o){return t??(t=e()),Reflect.has(t,o)},deleteProperty(r,o){return t??(t=e()),Reflect.deleteProperty(t,o)},ownKeys(r){return t??(t=e()),Reflect.ownKeys(t)},getOwnPropertyDescriptor(r,o){return t??(t=e()),Reflect.getOwnPropertyDescriptor(t,o)},defineProperty(r,o,n){return t??(t=e()),Reflect.defineProperty(t,o,n)}})}function gn(e){return typeof e=="bigint"?e.toString()+"n":typeof e=="string"?`"${e}"`:`${e}`}function Lr(e){return Object.keys(e).filter(t=>e[t]._zod.optin==="optional"&&e[t]._zod.optout==="optional")}var bn={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]},yn={int64:[BigInt("-9223372036854775808"),BigInt("9223372036854775807")],uint64:[BigInt(0),BigInt("18446744073709551615")]};function yu(e,t){let r=e._zod.def,o=r.checks;if(o&&o.length>0)throw new Error(".pick() cannot be used on object schemas containing refinements");let s=Fe(e._zod.def,{get shape(){let i={};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&(i[a]=r.shape[a])}return je(this,"shape",i),i},checks:[]});return Ae(e,s)}function vu(e,t){let r=e._zod.def,o=r.checks;if(o&&o.length>0)throw new Error(".omit() cannot be used on object schemas containing refinements");let s=Fe(e._zod.def,{get shape(){let i={...e._zod.def.shape};for(let a in t){if(!(a in r.shape))throw new Error(`Unrecognized key: "${a}"`);t[a]&&delete i[a]}return je(this,"shape",i),i},checks:[]});return Ae(e,s)}function xu(e,t){if(!tt(t))throw new Error("Invalid input to extend: expected a plain object");let r=e._zod.def.checks;if(r&&r.length>0){let s=e._zod.def.shape;for(let i in t)if(Object.getOwnPropertyDescriptor(s,i)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let n=Fe(e._zod.def,{get shape(){let s={...e._zod.def.shape,...t};return je(this,"shape",s),s}});return Ae(e,n)}function _u(e,t){if(!tt(t))throw new Error("Invalid input to safeExtend: expected a plain object");let r=Fe(e._zod.def,{get shape(){let o={...e._zod.def.shape,...t};return je(this,"shape",o),o}});return Ae(e,r)}function wu(e,t){if(e._zod.def.checks?.length)throw new Error(".merge() cannot be used on object schemas containing refinements. Use .safeExtend() instead.");let r=Fe(e._zod.def,{get shape(){let o={...e._zod.def.shape,...t._zod.def.shape};return je(this,"shape",o),o},get catchall(){return t._zod.def.catchall},checks:t._zod.def.checks??[]});return Ae(e,r)}function ku(e,t,r){let n=t._zod.def.checks;if(n&&n.length>0)throw new Error(".partial() cannot be used on object schemas containing refinements");let i=Fe(t._zod.def,{get shape(){let a=t._zod.def.shape,l={...a};if(r)for(let u in r){if(!(u in a))throw new Error(`Unrecognized key: "${u}"`);r[u]&&(l[u]=e?new e({type:"optional",innerType:a[u]}):a[u])}else for(let u in a)l[u]=e?new e({type:"optional",innerType:a[u]}):a[u];return je(this,"shape",l),l},checks:[]});return Ae(t,i)}function zu(e,t,r){let o=Fe(t._zod.def,{get shape(){let n=t._zod.def.shape,s={...n};if(r)for(let i in r){if(!(i in s))throw new Error(`Unrecognized key: "${i}"`);r[i]&&(s[i]=new e({type:"nonoptional",innerType:n[i]}))}else for(let i in n)s[i]=new e({type:"nonoptional",innerType:n[i]});return je(this,"shape",s),s}});return Ae(t,o)}function Le(e,t=0){if(e.aborted===!0)return!0;for(let r=t;r{var o;return(o=r).path??(o.path=[]),r.path.unshift(e),r})}function St(e){return typeof e=="string"?e:e?.message}function Oe(e,t,r){let o=e.message?e.message:St(e.inst?._zod.def?.error?.(e))??St(t?.error?.(e))??St(r.customError?.(e))??St(r.localeError?.(e))??"Invalid input",{inst:n,continue:s,input:i,...a}=e;return a.path??(a.path=[]),a.message=o,t?.reportInput&&(a.input=i),a}function vn(e){return e instanceof Set?"set":e instanceof Map?"map":e instanceof File?"file":"unknown"}function Nt(e){return Array.isArray(e)?"array":typeof e=="string"?"string":"unknown"}function $u(e){let t=typeof e;switch(t){case"number":return Number.isNaN(e)?"nan":"number";case"object":{if(e===null)return"null";if(Array.isArray(e))return"array";let r=e;if(r&&Object.getPrototypeOf(r)!==Object.prototype&&"constructor"in r&&r.constructor)return r.constructor.name}}return t}function ht(...e){let[t,r,o]=e;return typeof t=="string"?{message:t,code:"custom",input:r,inst:o}:{...t}}function Su(e){return Object.entries(e).filter(([t,r])=>Number.isNaN(Number.parseInt(t,10))).map(t=>t[1])}function xn(e){let t=atob(e),r=new Uint8Array(t.length);for(let o=0;ot.toString(16).padStart(2,"0")).join("")}var Vr=class{constructor(...t){}};var wn=(e,t)=>{e.name="$ZodError",Object.defineProperty(e,"_zod",{value:e._zod,enumerable:!1}),Object.defineProperty(e,"issues",{value:t,enumerable:!1}),e.message=JSON.stringify(t,mt,2),Object.defineProperty(e,"toString",{value:()=>e.message,enumerable:!1})},gt=h("$ZodError",wn),Ot=h("$ZodError",wn,{Parent:Error});function kn(e,t=r=>r.message){let r={},o=[];for(let n of e.issues)n.path.length>0?(r[n.path[0]]=r[n.path[0]]||[],r[n.path[0]].push(t(n))):o.push(t(n));return{formErrors:o,fieldErrors:r}}function zn(e,t=r=>r.message){let r={_errors:[]},o=(n,s=[])=>{for(let i of n.issues)if(i.code==="invalid_union"&&i.errors.length)i.errors.map(a=>o({issues:a},[...s,...i.path]));else if(i.code==="invalid_key")o({issues:i.issues},[...s,...i.path]);else if(i.code==="invalid_element")o({issues:i.issues},[...s,...i.path]);else{let a=[...s,...i.path];if(a.length===0)r._errors.push(t(i));else{let l=r,u=0;for(;u(t,r,o,n)=>{let s=o?{...o,async:!1}:{async:!1},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise)throw new Ne;if(i.issues.length){let a=new(n?.Err??e)(i.issues.map(l=>Oe(l,s,Re())));throw Qt(a,n?.callee),a}return i.value},Br=Ct(Ot),It=e=>async(t,r,o,n)=>{let s=o?{...o,async:!0}:{async:!0},i=t._zod.run({value:r,issues:[]},s);if(i instanceof Promise&&(i=await i),i.issues.length){let a=new(n?.Err??e)(i.issues.map(l=>Oe(l,s,Re())));throw Qt(a,n?.callee),a}return i.value},Gr=It(Ot),Rt=e=>(t,r,o)=>{let n=o?{...o,async:!1}:{async:!1},s=t._zod.run({value:r,issues:[]},n);if(s instanceof Promise)throw new Ne;return s.issues.length?{success:!1,error:new(e??gt)(s.issues.map(i=>Oe(i,n,Re())))}:{success:!0,data:s.value}},$n=Rt(Ot),Ft=e=>async(t,r,o)=>{let n=o?{...o,async:!0}:{async:!0},s=t._zod.run({value:r,issues:[]},n);return s instanceof Promise&&(s=await s),s.issues.length?{success:!1,error:new e(s.issues.map(i=>Oe(i,n,Re())))}:{success:!0,data:s.value}},Sn=Ft(Ot),Pn=e=>(t,r,o)=>{let n=o?{...o,direction:"backward"}:{direction:"backward"};return Ct(e)(t,r,n)};var Zn=e=>(t,r,o)=>Ct(e)(t,r,o);var En=e=>async(t,r,o)=>{let n=o?{...o,direction:"backward"}:{direction:"backward"};return It(e)(t,r,n)};var An=e=>async(t,r,o)=>It(e)(t,r,o);var Tn=e=>(t,r,o)=>{let n=o?{...o,direction:"backward"}:{direction:"backward"};return Rt(e)(t,r,n)};var Nn=e=>(t,r,o)=>Rt(e)(t,r,o);var On=e=>async(t,r,o)=>{let n=o?{...o,direction:"backward"}:{direction:"backward"};return Ft(e)(t,r,n)};var Cn=e=>async(t,r,o)=>Ft(e)(t,r,o);var In=/^[cC][0-9a-z]{6,}$/,Rn=/^[0-9a-z]+$/,Fn=/^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/,Vn=/^[0-9a-vA-V]{20}$/,Dn=/^[A-Za-z0-9]{27}$/,Mn=/^[a-zA-Z0-9_-]{21}$/,jn=/^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;var Ln=/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/,Jr=e=>e?new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${e}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`):/^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;var Un=/^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$/;var Nu="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$";function Bn(){return new RegExp(Nu,"u")}var Gn=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Jn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$/;var Wn=/^((25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/([0-9]|[1-2][0-9]|3[0-2])$/,Hn=/^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|::|([0-9a-fA-F]{1,4})?::([0-9a-fA-F]{1,4}:?){0,6})\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Yn=/^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$/,Wr=/^[A-Za-z0-9_-]*$/;var Kn=/^https?$/,qn=/^\+[1-9]\d{6,14}$/,Xn="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",Qn=new RegExp(`^${Xn}$`);function es(e){let t="(?:[01]\\d|2[0-3]):[0-5]\\d";return typeof e.precision=="number"?e.precision===-1?`${t}`:e.precision===0?`${t}:[0-5]\\d`:`${t}:[0-5]\\d\\.\\d{${e.precision}}`:`${t}(?::[0-5]\\d(?:\\.\\d+)?)?`}function ts(e){return new RegExp(`^${es(e)}$`)}function rs(e){let t=es({precision:e.precision}),r=["Z"];e.local&&r.push(""),e.offset&&r.push("([+-](?:[01]\\d|2[0-3]):[0-5]\\d)");let o=`${t}(?:${r.join("|")})`;return new RegExp(`^${Xn}T(?:${o})$`)}var os=e=>{let t=e?`[\\s\\S]{${e?.minimum??0},${e?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${t}$`)};var ns=/^[^A-Z]*$/,ss=/^[^a-z]*$/;var ke=h("$ZodCheck",(e,t)=>{var r;e._zod??(e._zod={}),e._zod.def=t,(r=e._zod).onattach??(r.onattach=[])});var is=h("$ZodCheckMaxLength",(e,t)=>{var r;ke.init(e,t),(r=e._zod.def).when??(r.when=o=>{let n=o.value;return!Et(n)&&n.length!==void 0}),e._zod.onattach.push(o=>{let n=o._zod.bag.maximum??Number.POSITIVE_INFINITY;t.maximum{let n=o.value;if(n.length<=t.maximum)return;let i=Nt(n);o.issues.push({origin:i,code:"too_big",maximum:t.maximum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),as=h("$ZodCheckMinLength",(e,t)=>{var r;ke.init(e,t),(r=e._zod.def).when??(r.when=o=>{let n=o.value;return!Et(n)&&n.length!==void 0}),e._zod.onattach.push(o=>{let n=o._zod.bag.minimum??Number.NEGATIVE_INFINITY;t.minimum>n&&(o._zod.bag.minimum=t.minimum)}),e._zod.check=o=>{let n=o.value;if(n.length>=t.minimum)return;let i=Nt(n);o.issues.push({origin:i,code:"too_small",minimum:t.minimum,inclusive:!0,input:n,inst:e,continue:!t.abort})}}),cs=h("$ZodCheckLengthEquals",(e,t)=>{var r;ke.init(e,t),(r=e._zod.def).when??(r.when=o=>{let n=o.value;return!Et(n)&&n.length!==void 0}),e._zod.onattach.push(o=>{let n=o._zod.bag;n.minimum=t.length,n.maximum=t.length,n.length=t.length}),e._zod.check=o=>{let n=o.value,s=n.length;if(s===t.length)return;let i=Nt(n),a=s>t.length;o.issues.push({origin:i,...a?{code:"too_big",maximum:t.length}:{code:"too_small",minimum:t.length},inclusive:!0,exact:!0,input:o.value,inst:e,continue:!t.abort})}}),Vt=h("$ZodCheckStringFormat",(e,t)=>{var r,o;ke.init(e,t),e._zod.onattach.push(n=>{let s=n._zod.bag;s.format=t.format,t.pattern&&(s.patterns??(s.patterns=new Set),s.patterns.add(t.pattern))}),t.pattern?(r=e._zod).check??(r.check=n=>{t.pattern.lastIndex=0,!t.pattern.test(n.value)&&n.issues.push({origin:"string",code:"invalid_format",format:t.format,input:n.value,...t.pattern?{pattern:t.pattern.toString()}:{},inst:e,continue:!t.abort})}):(o=e._zod).check??(o.check=()=>{})}),us=h("$ZodCheckRegex",(e,t)=>{Vt.init(e,t),e._zod.check=r=>{t.pattern.lastIndex=0,!t.pattern.test(r.value)&&r.issues.push({origin:"string",code:"invalid_format",format:"regex",input:r.value,pattern:t.pattern.toString(),inst:e,continue:!t.abort})}}),ls=h("$ZodCheckLowerCase",(e,t)=>{t.pattern??(t.pattern=ns),Vt.init(e,t)}),ds=h("$ZodCheckUpperCase",(e,t)=>{t.pattern??(t.pattern=ss),Vt.init(e,t)}),fs=h("$ZodCheckIncludes",(e,t)=>{ke.init(e,t);let r=rt(t.includes),o=new RegExp(typeof t.position=="number"?`^.{${t.position}}${r}`:r);t.pattern=o,e._zod.onattach.push(n=>{let s=n._zod.bag;s.patterns??(s.patterns=new Set),s.patterns.add(o)}),e._zod.check=n=>{n.value.includes(t.includes,t.position)||n.issues.push({origin:"string",code:"invalid_format",format:"includes",includes:t.includes,input:n.value,inst:e,continue:!t.abort})}}),ps=h("$ZodCheckStartsWith",(e,t)=>{ke.init(e,t);let r=new RegExp(`^${rt(t.prefix)}.*`);t.pattern??(t.pattern=r),e._zod.onattach.push(o=>{let n=o._zod.bag;n.patterns??(n.patterns=new Set),n.patterns.add(r)}),e._zod.check=o=>{o.value.startsWith(t.prefix)||o.issues.push({origin:"string",code:"invalid_format",format:"starts_with",prefix:t.prefix,input:o.value,inst:e,continue:!t.abort})}}),ms=h("$ZodCheckEndsWith",(e,t)=>{ke.init(e,t);let r=new RegExp(`.*${rt(t.suffix)}$`);t.pattern??(t.pattern=r),e._zod.onattach.push(o=>{let n=o._zod.bag;n.patterns??(n.patterns=new Set),n.patterns.add(r)}),e._zod.check=o=>{o.value.endsWith(t.suffix)||o.issues.push({origin:"string",code:"invalid_format",format:"ends_with",suffix:t.suffix,input:o.value,inst:e,continue:!t.abort})}});var hs=h("$ZodCheckOverwrite",(e,t)=>{ke.init(e,t),e._zod.check=r=>{r.value=t.tx(r.value)}});var tr=class{constructor(t=[]){this.content=[],this.indent=0,this&&(this.args=t)}indented(t){this.indent+=1,t(this),this.indent-=1}write(t){if(typeof t=="function"){t(this,{execution:"sync"}),t(this,{execution:"async"});return}let o=t.split(` +`).filter(i=>i),n=Math.min(...o.map(i=>i.length-i.trimStart().length)),s=o.map(i=>i.slice(n)).map(i=>" ".repeat(this.indent*2)+i);for(let i of s)this.content.push(i)}compile(){let t=Function,r=this?.args,n=[...(this?.content??[""]).map(s=>` ${s}`)];return new t(...r,n.join(` +`))}};var bs={major:4,minor:4,patch:3};var ie=h("$ZodType",(e,t)=>{var r;e??(e={}),e._zod.def=t,e._zod.bag=e._zod.bag||{},e._zod.version=bs;let o=[...e._zod.def.checks??[]];e._zod.traits.has("$ZodCheck")&&o.unshift(e);for(let n of o)for(let s of n._zod.onattach)s(e);if(o.length===0)(r=e._zod).deferred??(r.deferred=[]),e._zod.deferred?.push(()=>{e._zod.run=e._zod.parse});else{let n=(i,a,l)=>{let u=Le(i),g;for(let p of a){if(p._zod.def.when){if(Ur(i)||!p._zod.def.when(i))continue}else if(u)continue;let b=i.issues.length,m=p._zod.check(i);if(m instanceof Promise&&l?.async===!1)throw new Ne;if(g||m instanceof Promise)g=(g??Promise.resolve()).then(async()=>{await m,i.issues.length!==b&&(u||(u=Le(i,b)))});else{if(i.issues.length===b)continue;u||(u=Le(i,b))}}return g?g.then(()=>i):i},s=(i,a,l)=>{if(Le(i))return i.aborted=!0,i;let u=n(a,o,l);if(u instanceof Promise){if(l.async===!1)throw new Ne;return u.then(g=>e._zod.parse(g,l))}return e._zod.parse(u,l)};e._zod.run=(i,a)=>{if(a.skipChecks)return e._zod.parse(i,a);if(a.direction==="backward"){let u=e._zod.parse({value:i.value,issues:[]},{...a,skipChecks:!0});return u instanceof Promise?u.then(g=>s(g,i,a)):s(u,i,a)}let l=e._zod.parse(i,a);if(l instanceof Promise){if(a.async===!1)throw new Ne;return l.then(u=>n(u,o,a))}return n(l,o,a)}}B(e,"~standard",()=>({validate:n=>{try{let s=$n(e,n);return s.success?{value:s.data}:{issues:s.error?.issues}}catch{return Sn(e,n).then(i=>i.success?{value:i.data}:{issues:i.error?.issues})}},vendor:"zod",version:1}))}),nr=h("$ZodString",(e,t)=>{ie.init(e,t),e._zod.pattern=[...e?._zod.bag?.patterns??[]].pop()??os(e._zod.bag),e._zod.parse=(r,o)=>{if(t.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:e}),r}}),H=h("$ZodStringFormat",(e,t)=>{Vt.init(e,t),nr.init(e,t)}),Ss=h("$ZodGUID",(e,t)=>{t.pattern??(t.pattern=Ln),H.init(e,t)}),Ps=h("$ZodUUID",(e,t)=>{if(t.version){let o={v1:1,v2:2,v3:3,v4:4,v5:5,v6:6,v7:7,v8:8}[t.version];if(o===void 0)throw new Error(`Invalid UUID version: "${t.version}"`);t.pattern??(t.pattern=Jr(o))}else t.pattern??(t.pattern=Jr());H.init(e,t)}),Zs=h("$ZodEmail",(e,t)=>{t.pattern??(t.pattern=Un),H.init(e,t)}),Es=h("$ZodURL",(e,t)=>{H.init(e,t),e._zod.check=r=>{try{let o=r.value.trim();if(!t.normalize&&t.protocol?.source===Kn.source&&!/^https?:\/\//i.test(o)){r.issues.push({code:"invalid_format",format:"url",note:"Invalid URL format",input:r.value,inst:e,continue:!t.abort});return}let n=new URL(o);t.hostname&&(t.hostname.lastIndex=0,t.hostname.test(n.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:t.hostname.source,input:r.value,inst:e,continue:!t.abort})),t.protocol&&(t.protocol.lastIndex=0,t.protocol.test(n.protocol.endsWith(":")?n.protocol.slice(0,-1):n.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:t.protocol.source,input:r.value,inst:e,continue:!t.abort})),t.normalize?r.value=n.href:r.value=o;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:e,continue:!t.abort})}}}),As=h("$ZodEmoji",(e,t)=>{t.pattern??(t.pattern=Bn()),H.init(e,t)}),Ts=h("$ZodNanoID",(e,t)=>{t.pattern??(t.pattern=Mn),H.init(e,t)}),Ns=h("$ZodCUID",(e,t)=>{t.pattern??(t.pattern=In),H.init(e,t)}),Os=h("$ZodCUID2",(e,t)=>{t.pattern??(t.pattern=Rn),H.init(e,t)}),Cs=h("$ZodULID",(e,t)=>{t.pattern??(t.pattern=Fn),H.init(e,t)}),Is=h("$ZodXID",(e,t)=>{t.pattern??(t.pattern=Vn),H.init(e,t)}),Rs=h("$ZodKSUID",(e,t)=>{t.pattern??(t.pattern=Dn),H.init(e,t)}),Fs=h("$ZodISODateTime",(e,t)=>{t.pattern??(t.pattern=rs(t)),H.init(e,t)}),Vs=h("$ZodISODate",(e,t)=>{t.pattern??(t.pattern=Qn),H.init(e,t)}),Ds=h("$ZodISOTime",(e,t)=>{t.pattern??(t.pattern=ts(t)),H.init(e,t)}),Ms=h("$ZodISODuration",(e,t)=>{t.pattern??(t.pattern=jn),H.init(e,t)}),js=h("$ZodIPv4",(e,t)=>{t.pattern??(t.pattern=Gn),H.init(e,t),e._zod.bag.format="ipv4"}),Ls=h("$ZodIPv6",(e,t)=>{t.pattern??(t.pattern=Jn),H.init(e,t),e._zod.bag.format="ipv6",e._zod.check=r=>{try{new URL(`http://[${r.value}]`)}catch{r.issues.push({code:"invalid_format",format:"ipv6",input:r.value,inst:e,continue:!t.abort})}}});var Us=h("$ZodCIDRv4",(e,t)=>{t.pattern??(t.pattern=Wn),H.init(e,t)}),Bs=h("$ZodCIDRv6",(e,t)=>{t.pattern??(t.pattern=Hn),H.init(e,t),e._zod.check=r=>{let o=r.value.split("/");try{if(o.length!==2)throw new Error;let[n,s]=o;if(!s)throw new Error;let i=Number(s);if(`${i}`!==s)throw new Error;if(i<0||i>128)throw new Error;new URL(`http://[${n}]`)}catch{r.issues.push({code:"invalid_format",format:"cidrv6",input:r.value,inst:e,continue:!t.abort})}}});function Gs(e){if(e==="")return!0;if(/\s/.test(e)||e.length%4!==0)return!1;try{return atob(e),!0}catch{return!1}}var Js=h("$ZodBase64",(e,t)=>{t.pattern??(t.pattern=Yn),H.init(e,t),e._zod.bag.contentEncoding="base64",e._zod.check=r=>{Gs(r.value)||r.issues.push({code:"invalid_format",format:"base64",input:r.value,inst:e,continue:!t.abort})}});function Ou(e){if(!Wr.test(e))return!1;let t=e.replace(/[-_]/g,o=>o==="-"?"+":"/"),r=t.padEnd(Math.ceil(t.length/4)*4,"=");return Gs(r)}var Ws=h("$ZodBase64URL",(e,t)=>{t.pattern??(t.pattern=Wr),H.init(e,t),e._zod.bag.contentEncoding="base64url",e._zod.check=r=>{Ou(r.value)||r.issues.push({code:"invalid_format",format:"base64url",input:r.value,inst:e,continue:!t.abort})}}),Hs=h("$ZodE164",(e,t)=>{t.pattern??(t.pattern=qn),H.init(e,t)});function Cu(e,t=null){try{let r=e.split(".");if(r.length!==3)return!1;let[o]=r;if(!o)return!1;let n=JSON.parse(atob(o));return!("typ"in n&&n?.typ!=="JWT"||!n.alg||t&&(!("alg"in n)||n.alg!==t))}catch{return!1}}var Ys=h("$ZodJWT",(e,t)=>{H.init(e,t),e._zod.check=r=>{Cu(r.value,t.alg)||r.issues.push({code:"invalid_format",format:"jwt",input:r.value,inst:e,continue:!t.abort})}});var Ks=h("$ZodUnknown",(e,t)=>{ie.init(e,t),e._zod.parse=r=>r}),qs=h("$ZodNever",(e,t)=>{ie.init(e,t),e._zod.parse=(r,o)=>(r.issues.push({expected:"never",code:"invalid_type",input:r.value,inst:e}),r)});function ys(e,t,r){e.issues.length&&t.issues.push(...Tt(r,e.issues)),t.value[r]=e.value}var Xs=h("$ZodArray",(e,t)=>{ie.init(e,t),e._zod.parse=(r,o)=>{let n=r.value;if(!Array.isArray(n))return r.issues.push({expected:"array",code:"invalid_type",input:n,inst:e}),r;r.value=Array(n.length);let s=[];for(let i=0;iys(u,r,i))):ys(l,r,i)}return s.length?Promise.all(s).then(()=>r):r}});function or(e,t,r,o,n,s){let i=r in o;if(e.issues.length){if(n&&s&&!i)return;t.issues.push(...Tt(r,e.issues))}if(!i&&!n){e.issues.length||t.issues.push({code:"invalid_type",expected:"nonoptional",input:void 0,path:[r]});return}e.value===void 0?i&&(t.value[r]=void 0):t.value[r]=e.value}function Qs(e){let t=Object.keys(e.shape);for(let o of t)if(!e.shape?.[o]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${o}": expected a Zod schema`);let r=Lr(e.shape);return{...e,keys:t,keySet:new Set(t),numKeys:t.length,optionalKeys:new Set(r)}}function ei(e,t,r,o,n,s){let i=[],a=n.keySet,l=n.catchall._zod,u=l.def.type,g=l.optin==="optional",p=l.optout==="optional";for(let b in t){if(b==="__proto__"||a.has(b))continue;if(u==="never"){i.push(b);continue}let m=l.run({value:t[b],issues:[]},o);m instanceof Promise?e.push(m.then($=>or($,r,b,t,g,p))):or(m,r,b,t,g,p)}return i.length&&r.issues.push({code:"unrecognized_keys",keys:i,input:t,inst:s}),e.length?Promise.all(e).then(()=>r):r}var Iu=h("$ZodObject",(e,t)=>{if(ie.init(e,t),!Object.getOwnPropertyDescriptor(t,"shape")?.get){let a=t.shape;Object.defineProperty(t,"shape",{get:()=>{let l={...a};return Object.defineProperty(t,"shape",{value:l}),l}})}let o=Zt(()=>Qs(t));B(e._zod,"propValues",()=>{let a=t.shape,l={};for(let u in a){let g=a[u]._zod;if(g.values){l[u]??(l[u]=new Set);for(let p of g.values)l[u].add(p)}}return l});let n=pt,s=t.catchall,i;e._zod.parse=(a,l)=>{i??(i=o.value);let u=a.value;if(!n(u))return a.issues.push({expected:"object",code:"invalid_type",input:u,inst:e}),a;a.value={};let g=[],p=i.shape;for(let b of i.keys){let m=p[b],$=m._zod.optin==="optional",C=m._zod.optout==="optional",T=m._zod.run({value:u[b],issues:[]},l);T instanceof Promise?g.push(T.then(j=>or(j,a,b,u,$,C))):or(T,a,b,u,$,C)}return s?ei(g,u,a,l,o.value,e):g.length?Promise.all(g).then(()=>a):a}}),ti=h("$ZodObjectJIT",(e,t)=>{Iu.init(e,t);let r=e._zod.parse,o=Zt(()=>Qs(t)),n=b=>{let m=new tr(["shape","payload","ctx"]),$=o.value,C=O=>{let P=Xt(O);return`shape[${P}]._zod.run({ value: input[${P}], issues: [] }, ctx)`};m.write("const input = payload.value;");let T=Object.create(null),j=0;for(let O of $.keys)T[O]=`key_${j++}`;m.write("const newResult = {};");for(let O of $.keys){let P=T[O],Z=Xt(O),re=b[O],ee=re?._zod?.optin==="optional",S=re?._zod?.optout==="optional";m.write(`const ${P} = ${C(O)};`),ee&&S?m.write(` + if (${P}.issues.length) { + if (${Z} in input) { + payload.issues = payload.issues.concat(${P}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${Z}, ...iss.path] : [${Z}] + }))); + } + } + + if (${P}.value === undefined) { + if (${Z} in input) { + newResult[${Z}] = undefined; + } + } else { + newResult[${Z}] = ${P}.value; + } + + `):ee?m.write(` + if (${P}.issues.length) { + payload.issues = payload.issues.concat(${P}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${Z}, ...iss.path] : [${Z}] + }))); + } + + if (${P}.value === undefined) { + if (${Z} in input) { + newResult[${Z}] = undefined; + } + } else { + newResult[${Z}] = ${P}.value; + } + + `):m.write(` + const ${P}_present = ${Z} in input; + if (${P}.issues.length) { + payload.issues = payload.issues.concat(${P}.issues.map(iss => ({ + ...iss, + path: iss.path ? [${Z}, ...iss.path] : [${Z}] + }))); + } + if (!${P}_present && !${P}.issues.length) { + payload.issues.push({ + code: "invalid_type", + expected: "nonoptional", + input: undefined, + path: [${Z}] + }); + } + + if (${P}_present) { + if (${P}.value === undefined) { + newResult[${Z}] = undefined; + } else { + newResult[${Z}] = ${P}.value; + } + } + + `)}m.write("payload.value = newResult;"),m.write("return payload;");let N=m.compile();return(O,P)=>N(b,O,P)},s,i=pt,a=!ft.jitless,u=a&&Mr.value,g=t.catchall,p;e._zod.parse=(b,m)=>{p??(p=o.value);let $=b.value;return i($)?a&&u&&m?.async===!1&&m.jitless!==!0?(s||(s=n(t.shape)),b=s(b,m),g?ei([],$,b,m,p,e):b):r(b,m):(b.issues.push({expected:"object",code:"invalid_type",input:$,inst:e}),b)}});function vs(e,t,r,o){for(let s of e)if(s.issues.length===0)return t.value=s.value,t;let n=e.filter(s=>!Le(s));return n.length===1?(t.value=n[0].value,n[0]):(t.issues.push({code:"invalid_union",input:t.value,inst:r,errors:e.map(s=>s.issues.map(i=>Oe(i,o,Re())))}),t)}var ri=h("$ZodUnion",(e,t)=>{ie.init(e,t),B(e._zod,"optin",()=>t.options.some(o=>o._zod.optin==="optional")?"optional":void 0),B(e._zod,"optout",()=>t.options.some(o=>o._zod.optout==="optional")?"optional":void 0),B(e._zod,"values",()=>{if(t.options.every(o=>o._zod.values))return new Set(t.options.flatMap(o=>Array.from(o._zod.values)))}),B(e._zod,"pattern",()=>{if(t.options.every(o=>o._zod.pattern)){let o=t.options.map(n=>n._zod.pattern);return new RegExp(`^(${o.map(n=>At(n.source)).join("|")})$`)}});let r=t.options.length===1?t.options[0]._zod.run:null;e._zod.parse=(o,n)=>{if(r)return r(o,n);let s=!1,i=[];for(let a of t.options){let l=a._zod.run({value:o.value,issues:[]},n);if(l instanceof Promise)i.push(l),s=!0;else{if(l.issues.length===0)return l;i.push(l)}}return s?Promise.all(i).then(a=>vs(a,o,e,n)):vs(i,o,e,n)}});var oi=h("$ZodIntersection",(e,t)=>{ie.init(e,t),e._zod.parse=(r,o)=>{let n=r.value,s=t.left._zod.run({value:n,issues:[]},o),i=t.right._zod.run({value:n,issues:[]},o);return s instanceof Promise||i instanceof Promise?Promise.all([s,i]).then(([l,u])=>xs(r,l,u)):xs(r,s,i)}});function Hr(e,t){if(e===t)return{valid:!0,data:e};if(e instanceof Date&&t instanceof Date&&+e==+t)return{valid:!0,data:e};if(tt(e)&&tt(t)){let r=Object.keys(t),o=Object.keys(e).filter(s=>r.indexOf(s)!==-1),n={...e,...t};for(let s of o){let i=Hr(e[s],t[s]);if(!i.valid)return{valid:!1,mergeErrorPath:[s,...i.mergeErrorPath]};n[s]=i.data}return{valid:!0,data:n}}if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return{valid:!1,mergeErrorPath:[]};let r=[];for(let o=0;oa.l&&a.r).map(([a])=>a);if(s.length&&n&&e.issues.push({...n,keys:s}),Le(e))return e;let i=Hr(t.value,r.value);if(!i.valid)throw new Error(`Unmergable intersection. Error path: ${JSON.stringify(i.mergeErrorPath)}`);return e.value=i.data,e}var ni=h("$ZodEnum",(e,t)=>{ie.init(e,t);let r=Pt(t.entries),o=new Set(r);e._zod.values=o,e._zod.pattern=new RegExp(`^(${r.filter(n=>jr.has(typeof n)).map(n=>typeof n=="string"?rt(n):n.toString()).join("|")})$`),e._zod.parse=(n,s)=>{let i=n.value;return o.has(i)||n.issues.push({code:"invalid_value",values:r,input:i,inst:e}),n}});var si=h("$ZodTransform",(e,t)=>{ie.init(e,t),e._zod.optin="optional",e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new dt(e.constructor.name);let n=t.transform(r.value,r);if(o.async)return(n instanceof Promise?n:Promise.resolve(n)).then(i=>(r.value=i,r.fallback=!0,r));if(n instanceof Promise)throw new Ne;return r.value=n,r.fallback=!0,r}});function _s(e,t){return t===void 0&&(e.issues.length||e.fallback)?{issues:[],value:void 0}:e}var Yr=h("$ZodOptional",(e,t)=>{ie.init(e,t),e._zod.optin="optional",e._zod.optout="optional",B(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,void 0]):void 0),B(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${At(r.source)})?$`):void 0}),e._zod.parse=(r,o)=>{if(t.innerType._zod.optin==="optional"){let n=r.value,s=t.innerType._zod.run(r,o);return s instanceof Promise?s.then(i=>_s(i,n)):_s(s,n)}return r.value===void 0?r:t.innerType._zod.run(r,o)}}),ii=h("$ZodExactOptional",(e,t)=>{Yr.init(e,t),B(e._zod,"values",()=>t.innerType._zod.values),B(e._zod,"pattern",()=>t.innerType._zod.pattern),e._zod.parse=(r,o)=>t.innerType._zod.run(r,o)}),ai=h("$ZodNullable",(e,t)=>{ie.init(e,t),B(e._zod,"optin",()=>t.innerType._zod.optin),B(e._zod,"optout",()=>t.innerType._zod.optout),B(e._zod,"pattern",()=>{let r=t.innerType._zod.pattern;return r?new RegExp(`^(${At(r.source)}|null)$`):void 0}),B(e._zod,"values",()=>t.innerType._zod.values?new Set([...t.innerType._zod.values,null]):void 0),e._zod.parse=(r,o)=>r.value===null?r:t.innerType._zod.run(r,o)}),ci=h("$ZodDefault",(e,t)=>{ie.init(e,t),e._zod.optin="optional",B(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,o)=>{if(o.direction==="backward")return t.innerType._zod.run(r,o);if(r.value===void 0)return r.value=t.defaultValue,r;let n=t.innerType._zod.run(r,o);return n instanceof Promise?n.then(s=>ws(s,t)):ws(n,t)}});function ws(e,t){return e.value===void 0&&(e.value=t.defaultValue),e}var ui=h("$ZodPrefault",(e,t)=>{ie.init(e,t),e._zod.optin="optional",B(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,o)=>(o.direction==="backward"||r.value===void 0&&(r.value=t.defaultValue),t.innerType._zod.run(r,o))}),li=h("$ZodNonOptional",(e,t)=>{ie.init(e,t),B(e._zod,"values",()=>{let r=t.innerType._zod.values;return r?new Set([...r].filter(o=>o!==void 0)):void 0}),e._zod.parse=(r,o)=>{let n=t.innerType._zod.run(r,o);return n instanceof Promise?n.then(s=>ks(s,e)):ks(n,e)}});function ks(e,t){return!e.issues.length&&e.value===void 0&&e.issues.push({code:"invalid_type",expected:"nonoptional",input:e.value,inst:t}),e}var di=h("$ZodCatch",(e,t)=>{ie.init(e,t),e._zod.optin="optional",B(e._zod,"optout",()=>t.innerType._zod.optout),B(e._zod,"values",()=>t.innerType._zod.values),e._zod.parse=(r,o)=>{if(o.direction==="backward")return t.innerType._zod.run(r,o);let n=t.innerType._zod.run(r,o);return n instanceof Promise?n.then(s=>(r.value=s.value,s.issues.length&&(r.value=t.catchValue({...r,error:{issues:s.issues.map(i=>Oe(i,o,Re()))},input:r.value}),r.issues=[],r.fallback=!0),r)):(r.value=n.value,n.issues.length&&(r.value=t.catchValue({...r,error:{issues:n.issues.map(s=>Oe(s,o,Re()))},input:r.value}),r.issues=[],r.fallback=!0),r)}});var fi=h("$ZodPipe",(e,t)=>{ie.init(e,t),B(e._zod,"values",()=>t.in._zod.values),B(e._zod,"optin",()=>t.in._zod.optin),B(e._zod,"optout",()=>t.out._zod.optout),B(e._zod,"propValues",()=>t.in._zod.propValues),e._zod.parse=(r,o)=>{if(o.direction==="backward"){let s=t.out._zod.run(r,o);return s instanceof Promise?s.then(i=>rr(i,t.in,o)):rr(s,t.in,o)}let n=t.in._zod.run(r,o);return n instanceof Promise?n.then(s=>rr(s,t.out,o)):rr(n,t.out,o)}});function rr(e,t,r){return e.issues.length?(e.aborted=!0,e):t._zod.run({value:e.value,issues:e.issues,fallback:e.fallback},r)}var pi=h("$ZodReadonly",(e,t)=>{ie.init(e,t),B(e._zod,"propValues",()=>t.innerType._zod.propValues),B(e._zod,"values",()=>t.innerType._zod.values),B(e._zod,"optin",()=>t.innerType?._zod?.optin),B(e._zod,"optout",()=>t.innerType?._zod?.optout),e._zod.parse=(r,o)=>{if(o.direction==="backward")return t.innerType._zod.run(r,o);let n=t.innerType._zod.run(r,o);return n instanceof Promise?n.then(zs):zs(n)}});function zs(e){return e.value=Object.freeze(e.value),e}var mi=h("$ZodCustom",(e,t)=>{ke.init(e,t),ie.init(e,t),e._zod.parse=(r,o)=>r,e._zod.check=r=>{let o=r.value,n=t.fn(o);if(n instanceof Promise)return n.then(s=>$s(s,r,o,e));$s(n,r,o,e)}});function $s(e,t,r,o){if(!e){let n={code:"custom",input:r,inst:o,path:[...o._zod.def.path??[]],continue:!o._zod.def.abort};o._zod.def.params&&(n.params=o._zod.def.params),t.issues.push(ht(n))}}var hi,Kf=Symbol("ZodOutput"),qf=Symbol("ZodInput"),Kr=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(t,...r){let o=r[0];return this._map.set(t,o),o&&typeof o=="object"&&"id"in o&&this._idmap.set(o.id,t),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(t){let r=this._map.get(t);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(t),this}get(t){let r=t._zod.parent;if(r){let o={...this.get(r)??{}};delete o.id;let n={...o,...this._map.get(t)};return Object.keys(n).length?n:void 0}return this._map.get(t)}has(t){return this._map.has(t)}};function Ru(){return new Kr}(hi=globalThis).__zod_globalRegistry??(hi.__zod_globalRegistry=Ru());var ot=globalThis.__zod_globalRegistry;function gi(e,t){return new e({type:"string",...I(t)})}function bi(e,t){return new e({type:"string",format:"email",check:"string_format",abort:!1,...I(t)})}function qr(e,t){return new e({type:"string",format:"guid",check:"string_format",abort:!1,...I(t)})}function yi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,...I(t)})}function vi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v4",...I(t)})}function xi(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v6",...I(t)})}function _i(e,t){return new e({type:"string",format:"uuid",check:"string_format",abort:!1,version:"v7",...I(t)})}function wi(e,t){return new e({type:"string",format:"url",check:"string_format",abort:!1,...I(t)})}function ki(e,t){return new e({type:"string",format:"emoji",check:"string_format",abort:!1,...I(t)})}function zi(e,t){return new e({type:"string",format:"nanoid",check:"string_format",abort:!1,...I(t)})}function $i(e,t){return new e({type:"string",format:"cuid",check:"string_format",abort:!1,...I(t)})}function Si(e,t){return new e({type:"string",format:"cuid2",check:"string_format",abort:!1,...I(t)})}function Pi(e,t){return new e({type:"string",format:"ulid",check:"string_format",abort:!1,...I(t)})}function Zi(e,t){return new e({type:"string",format:"xid",check:"string_format",abort:!1,...I(t)})}function Ei(e,t){return new e({type:"string",format:"ksuid",check:"string_format",abort:!1,...I(t)})}function Ai(e,t){return new e({type:"string",format:"ipv4",check:"string_format",abort:!1,...I(t)})}function Ti(e,t){return new e({type:"string",format:"ipv6",check:"string_format",abort:!1,...I(t)})}function Ni(e,t){return new e({type:"string",format:"cidrv4",check:"string_format",abort:!1,...I(t)})}function Oi(e,t){return new e({type:"string",format:"cidrv6",check:"string_format",abort:!1,...I(t)})}function Ci(e,t){return new e({type:"string",format:"base64",check:"string_format",abort:!1,...I(t)})}function Ii(e,t){return new e({type:"string",format:"base64url",check:"string_format",abort:!1,...I(t)})}function Ri(e,t){return new e({type:"string",format:"e164",check:"string_format",abort:!1,...I(t)})}function Fi(e,t){return new e({type:"string",format:"jwt",check:"string_format",abort:!1,...I(t)})}function Vi(e,t){return new e({type:"string",format:"datetime",check:"string_format",offset:!1,local:!1,precision:null,...I(t)})}function Di(e,t){return new e({type:"string",format:"date",check:"string_format",...I(t)})}function Mi(e,t){return new e({type:"string",format:"time",check:"string_format",precision:null,...I(t)})}function ji(e,t){return new e({type:"string",format:"duration",check:"string_format",...I(t)})}function Li(e){return new e({type:"unknown"})}function Ui(e,t){return new e({type:"never",...I(t)})}function sr(e,t){return new is({check:"max_length",...I(t),maximum:e})}function bt(e,t){return new as({check:"min_length",...I(t),minimum:e})}function ir(e,t){return new cs({check:"length_equals",...I(t),length:e})}function Xr(e,t){return new us({check:"string_format",format:"regex",...I(t),pattern:e})}function Qr(e){return new ls({check:"string_format",format:"lowercase",...I(e)})}function eo(e){return new ds({check:"string_format",format:"uppercase",...I(e)})}function to(e,t){return new fs({check:"string_format",format:"includes",...I(t),includes:e})}function ro(e,t){return new ps({check:"string_format",format:"starts_with",...I(t),prefix:e})}function oo(e,t){return new ms({check:"string_format",format:"ends_with",...I(t),suffix:e})}function Ue(e){return new hs({check:"overwrite",tx:e})}function no(e){return Ue(t=>t.normalize(e))}function so(){return Ue(e=>e.trim())}function io(){return Ue(e=>e.toLowerCase())}function ao(){return Ue(e=>e.toUpperCase())}function co(){return Ue(e=>Dr(e))}function Bi(e,t,r){return new e({type:"array",element:t,...I(r)})}function Gi(e,t,r){return new e({type:"custom",check:"custom",fn:t,...I(r)})}function Ji(e,t){let r=Fu(o=>(o.addIssue=n=>{if(typeof n=="string")o.issues.push(ht(n,o.value,r._zod.def));else{let s=n;s.fatal&&(s.continue=!1),s.code??(s.code="custom"),s.input??(s.input=o.value),s.inst??(s.inst=r),s.continue??(s.continue=!r._zod.def.abort),o.issues.push(ht(s))}},e(o.value,o)),t);return r}function Fu(e,t){let r=new ke({check:"custom",...I(t)});return r._zod.check=e,r}function uo(e){let t=e?.target??"draft-2020-12";return t==="draft-4"&&(t="draft-04"),t==="draft-7"&&(t="draft-07"),{processors:e.processors??{},metadataRegistry:e?.metadata??ot,target:t,unrepresentable:e?.unrepresentable??"throw",override:e?.override??(()=>{}),io:e?.io??"output",counter:0,seen:new Map,cycles:e?.cycles??"ref",reused:e?.reused??"inline",external:e?.external??void 0}}function pe(e,t,r={path:[],schemaPath:[]}){var o;let n=e._zod.def,s=t.seen.get(e);if(s)return s.count++,r.schemaPath.includes(e)&&(s.cycle=r.path),s.schema;let i={schema:{},count:1,cycle:void 0,path:r.path};t.seen.set(e,i);let a=e._zod.toJSONSchema?.();if(a)i.schema=a;else{let g={...r,schemaPath:[...r.schemaPath,e],path:r.path};if(e._zod.processJSONSchema)e._zod.processJSONSchema(t,i.schema,g);else{let b=i.schema,m=t.processors[n.type];if(!m)throw new Error(`[toJSONSchema]: Non-representable type encountered: ${n.type}`);m(e,t,b,g)}let p=e._zod.parent;p&&(i.ref||(i.ref=p),pe(p,t,g),t.seen.get(p).isParent=!0)}let l=t.metadataRegistry.get(e);return l&&Object.assign(i.schema,l),t.io==="input"&&ve(e)&&(delete i.schema.examples,delete i.schema.default),t.io==="input"&&"_prefault"in i.schema&&((o=i.schema).default??(o.default=i.schema._prefault)),delete i.schema._prefault,t.seen.get(e).schema}function lo(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=new Map;for(let i of e.seen.entries()){let a=e.metadataRegistry.get(i[0])?.id;if(a){let l=o.get(a);if(l&&l!==i[0])throw new Error(`Duplicate schema id "${a}" detected during JSON Schema conversion. Two different schemas cannot share the same id when converted together.`);o.set(a,i[0])}}let n=i=>{let a=e.target==="draft-2020-12"?"$defs":"definitions";if(e.external){let p=e.external.registry.get(i[0])?.id,b=e.external.uri??($=>$);if(p)return{ref:b(p)};let m=i[1].defId??i[1].schema.id??`schema${e.counter++}`;return i[1].defId=m,{defId:m,ref:`${b("__shared")}#/${a}/${m}`}}if(i[1]===r)return{ref:"#"};let u=`#/${a}/`,g=i[1].schema.id??`__schema${e.counter++}`;return{defId:g,ref:u+g}},s=i=>{if(i[1].schema.$ref)return;let a=i[1],{ref:l,defId:u}=n(i);a.def={...a.schema},u&&(a.defId=u);let g=a.schema;for(let p in g)delete g[p];g.$ref=l};if(e.cycles==="throw")for(let i of e.seen.entries()){let a=i[1];if(a.cycle)throw new Error(`Cycle detected: #/${a.cycle?.join("/")}/ + +Set the \`cycles\` parameter to \`"ref"\` to resolve cyclical schemas with defs.`)}for(let i of e.seen.entries()){let a=i[1];if(t===i[0]){s(i);continue}if(e.external){let u=e.external.registry.get(i[0])?.id;if(t!==i[0]&&u){s(i);continue}}if(e.metadataRegistry.get(i[0])?.id){s(i);continue}if(a.cycle){s(i);continue}if(a.count>1&&e.reused==="ref"){s(i);continue}}}function fo(e,t){let r=e.seen.get(t);if(!r)throw new Error("Unprocessed schema. This is a bug in Zod.");let o=a=>{let l=e.seen.get(a);if(l.ref===null)return;let u=l.def??l.schema,g={...u},p=l.ref;if(l.ref=null,p){o(p);let m=e.seen.get(p),$=m.schema;if($.$ref&&(e.target==="draft-07"||e.target==="draft-04"||e.target==="openapi-3.0")?(u.allOf=u.allOf??[],u.allOf.push($)):Object.assign(u,$),Object.assign(u,g),a._zod.parent===p)for(let T in u)T==="$ref"||T==="allOf"||T in g||delete u[T];if($.$ref&&m.def)for(let T in u)T==="$ref"||T==="allOf"||T in m.def&&JSON.stringify(u[T])===JSON.stringify(m.def[T])&&delete u[T]}let b=a._zod.parent;if(b&&b!==p){o(b);let m=e.seen.get(b);if(m?.schema.$ref&&(u.$ref=m.schema.$ref,m.def))for(let $ in u)$==="$ref"||$==="allOf"||$ in m.def&&JSON.stringify(u[$])===JSON.stringify(m.def[$])&&delete u[$]}e.override({zodSchema:a,jsonSchema:u,path:l.path??[]})};for(let a of[...e.seen.entries()].reverse())o(a[0]);let n={};if(e.target==="draft-2020-12"?n.$schema="https://json-schema.org/draft/2020-12/schema":e.target==="draft-07"?n.$schema="http://json-schema.org/draft-07/schema#":e.target==="draft-04"?n.$schema="http://json-schema.org/draft-04/schema#":e.target,e.external?.uri){let a=e.external.registry.get(t)?.id;if(!a)throw new Error("Schema is missing an `id` property");n.$id=e.external.uri(a)}Object.assign(n,r.def??r.schema);let s=e.metadataRegistry.get(t)?.id;s!==void 0&&n.id===s&&delete n.id;let i=e.external?.defs??{};for(let a of e.seen.entries()){let l=a[1];l.def&&l.defId&&(l.def.id===l.defId&&delete l.def.id,i[l.defId]=l.def)}e.external||Object.keys(i).length>0&&(e.target==="draft-2020-12"?n.$defs=i:n.definitions=i);try{let a=JSON.parse(JSON.stringify(n));return Object.defineProperty(a,"~standard",{value:{...t["~standard"],jsonSchema:{input:Dt(t,"input",e.processors),output:Dt(t,"output",e.processors)}},enumerable:!1,writable:!1}),a}catch{throw new Error("Error converting schema to JSON.")}}function ve(e,t){let r=t??{seen:new Set};if(r.seen.has(e))return!1;r.seen.add(e);let o=e._zod.def;if(o.type==="transform")return!0;if(o.type==="array")return ve(o.element,r);if(o.type==="set")return ve(o.valueType,r);if(o.type==="lazy")return ve(o.getter(),r);if(o.type==="promise"||o.type==="optional"||o.type==="nonoptional"||o.type==="nullable"||o.type==="readonly"||o.type==="default"||o.type==="prefault")return ve(o.innerType,r);if(o.type==="intersection")return ve(o.left,r)||ve(o.right,r);if(o.type==="record"||o.type==="map")return ve(o.keyType,r)||ve(o.valueType,r);if(o.type==="pipe")return e._zod.traits.has("$ZodCodec")?!0:ve(o.in,r)||ve(o.out,r);if(o.type==="object"){for(let n in o.shape)if(ve(o.shape[n],r))return!0;return!1}if(o.type==="union"){for(let n of o.options)if(ve(n,r))return!0;return!1}if(o.type==="tuple"){for(let n of o.items)if(ve(n,r))return!0;return!!(o.rest&&ve(o.rest,r))}return!1}var Wi=(e,t={})=>r=>{let o=uo({...r,processors:t});return pe(e,o),lo(o,e),fo(o,e)},Dt=(e,t,r={})=>o=>{let{libraryOptions:n,target:s}=o??{},i=uo({...n??{},target:s,io:t,processors:r});return pe(e,i),lo(i,e),fo(i,e)};var Vu={guid:"uuid",url:"uri",datetime:"date-time",json_string:"json-string",regex:""},Hi=(e,t,r,o)=>{let n=r;n.type="string";let{minimum:s,maximum:i,format:a,patterns:l,contentEncoding:u}=e._zod.bag;if(typeof s=="number"&&(n.minLength=s),typeof i=="number"&&(n.maxLength=i),a&&(n.format=Vu[a]??a,n.format===""&&delete n.format,a==="time"&&delete n.format),u&&(n.contentEncoding=u),l&&l.size>0){let g=[...l];g.length===1?n.pattern=g[0].source:g.length>1&&(n.allOf=[...g.map(p=>({...t.target==="draft-07"||t.target==="draft-04"||t.target==="openapi-3.0"?{type:"string"}:{},pattern:p.source}))])}};var Yi=(e,t,r,o)=>{r.not={}};var Ki=(e,t,r,o)=>{};var qi=(e,t,r,o)=>{let n=e._zod.def,s=Pt(n.entries);s.every(i=>typeof i=="number")&&(r.type="number"),s.every(i=>typeof i=="string")&&(r.type="string"),r.enum=s};var Xi=(e,t,r,o)=>{if(t.unrepresentable==="throw")throw new Error("Custom types cannot be represented in JSON Schema")};var Qi=(e,t,r,o)=>{if(t.unrepresentable==="throw")throw new Error("Transforms cannot be represented in JSON Schema")};var ea=(e,t,r,o)=>{let n=r,s=e._zod.def,{minimum:i,maximum:a}=e._zod.bag;typeof i=="number"&&(n.minItems=i),typeof a=="number"&&(n.maxItems=a),n.type="array",n.items=pe(s.element,t,{...o,path:[...o.path,"items"]})},ta=(e,t,r,o)=>{let n=r,s=e._zod.def;n.type="object",n.properties={};let i=s.shape;for(let u in i)n.properties[u]=pe(i[u],t,{...o,path:[...o.path,"properties",u]});let a=new Set(Object.keys(i)),l=new Set([...a].filter(u=>{let g=s.shape[u]._zod;return t.io==="input"?g.optin===void 0:g.optout===void 0}));l.size>0&&(n.required=Array.from(l)),s.catchall?._zod.def.type==="never"?n.additionalProperties=!1:s.catchall?s.catchall&&(n.additionalProperties=pe(s.catchall,t,{...o,path:[...o.path,"additionalProperties"]})):t.io==="output"&&(n.additionalProperties=!1)},ra=(e,t,r,o)=>{let n=e._zod.def,s=n.inclusive===!1,i=n.options.map((a,l)=>pe(a,t,{...o,path:[...o.path,s?"oneOf":"anyOf",l]}));s?r.oneOf=i:r.anyOf=i},oa=(e,t,r,o)=>{let n=e._zod.def,s=pe(n.left,t,{...o,path:[...o.path,"allOf",0]}),i=pe(n.right,t,{...o,path:[...o.path,"allOf",1]}),a=u=>"allOf"in u&&Object.keys(u).length===1,l=[...a(s)?s.allOf:[s],...a(i)?i.allOf:[i]];r.allOf=l};var na=(e,t,r,o)=>{let n=e._zod.def,s=pe(n.innerType,t,o),i=t.seen.get(e);t.target==="openapi-3.0"?(i.ref=n.innerType,r.nullable=!0):r.anyOf=[s,{type:"null"}]},sa=(e,t,r,o)=>{let n=e._zod.def;pe(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType},ia=(e,t,r,o)=>{let n=e._zod.def;pe(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType,r.default=JSON.parse(JSON.stringify(n.defaultValue))},aa=(e,t,r,o)=>{let n=e._zod.def;pe(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType,t.io==="input"&&(r._prefault=JSON.parse(JSON.stringify(n.defaultValue)))},ca=(e,t,r,o)=>{let n=e._zod.def;pe(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType;let i;try{i=n.catchValue(void 0)}catch{throw new Error("Dynamic catch values are not supported in JSON Schema")}r.default=i},ua=(e,t,r,o)=>{let n=e._zod.def,s=n.in._zod.traits.has("$ZodTransform"),i=t.io==="input"?s?n.out:n.in:n.out;pe(i,t,o);let a=t.seen.get(e);a.ref=i},la=(e,t,r,o)=>{let n=e._zod.def;pe(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType,r.readOnly=!0};var po=(e,t,r,o)=>{let n=e._zod.def;pe(n.innerType,t,o);let s=t.seen.get(e);s.ref=n.innerType};function mo(){return mo=Object.assign?Object.assign.bind():function(e){for(var t=1;t0){var l=n.errors[0][0];r[a]={message:l.message,type:l.code}}else r[a]={message:i,type:s};if(n.code==="invalid_union"&&n.errors.forEach(function(p){return p.forEach(function(b){return e.push(mo({},b,{path:[].concat(n.path,b.path)}))})}),t){var u=r[a].types,g=u&&u[n.code];r[a]=Kt(a,t,r,s,g?[].concat(g,n.message):n.message)}e.shift()};e.length;)o();return r}function fa(e,t,r){if(r===void 0&&(r={}),function(o){return"_def"in o&&typeof o._def=="object"&&"typeName"in o._def}(e))return function(o,n,s){try{return Promise.resolve(da(function(){return Promise.resolve(e[r.mode==="sync"?"parse":"parseAsync"](o,t)).then(function(i){return s.shouldUseNativeValidation&&qt({},s),{errors:{},values:r.raw?Object.assign({},o):i}})},function(i){if(function(a){return Array.isArray(a?.issues)}(i))return{values:{},errors:Rr(Mu(i.errors,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw i}))}catch(i){return Promise.reject(i)}};if(function(o){return"_zod"in o&&typeof o._zod=="object"}(e))return function(o,n,s){try{return Promise.resolve(da(function(){return Promise.resolve((r.mode==="sync"?Br:Gr)(e,o,t)).then(function(i){return s.shouldUseNativeValidation&&qt({},s),{errors:{},values:r.raw?Object.assign({},o):i}})},function(i){if(function(a){return a instanceof gt}(i))return{values:{},errors:Rr(ju(i.issues,!s.shouldUseNativeValidation&&s.criteriaMode==="all"),s)};throw i}))}catch(i){return Promise.reject(i)}};throw new Error("Invalid input: not a Zod schema")}import jt from"react";import Ep from"react-dom";function Lu(e){if(!e||typeof document>"u")return;let t=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",t.appendChild(r),r.styleSheet?r.styleSheet.cssText=e:r.appendChild(document.createTextNode(e))}var Ap=Array(12).fill(0);var ho=1,go=class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let r=this.subscribers.indexOf(t);this.subscribers.splice(r,1)}),this.publish=t=>{this.subscribers.forEach(r=>r(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var r;let{message:o,...n}=t,s=typeof t?.id=="number"||((r=t.id)==null?void 0:r.length)>0?t.id:ho++,i=this.toasts.find(l=>l.id===s),a=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(s)&&this.dismissedToasts.delete(s),i?this.toasts=this.toasts.map(l=>l.id===s?(this.publish({...l,...t,id:s,title:o}),{...l,...t,id:s,dismissible:a,title:o}):l):this.addToast({title:o,...n,dismissible:a,id:s}),s},this.dismiss=t=>(t?(this.dismissedToasts.add(t),requestAnimationFrame(()=>this.subscribers.forEach(r=>r({id:t,dismiss:!0})))):this.toasts.forEach(r=>{this.subscribers.forEach(o=>o({id:r.id,dismiss:!0}))}),t),this.message=(t,r)=>this.create({...r,message:t}),this.error=(t,r)=>this.create({...r,message:t,type:"error"}),this.success=(t,r)=>this.create({...r,type:"success",message:t}),this.info=(t,r)=>this.create({...r,type:"info",message:t}),this.warning=(t,r)=>this.create({...r,type:"warning",message:t}),this.loading=(t,r)=>this.create({...r,type:"loading",message:t}),this.promise=(t,r)=>{if(!r)return;let o;r.loading!==void 0&&(o=this.create({...r,promise:t,type:"loading",message:r.loading,description:typeof r.description!="function"?r.description:void 0}));let n=Promise.resolve(t instanceof Function?t():t),s=o!==void 0,i,a=n.then(async u=>{if(i=["resolve",u],jt.isValidElement(u))s=!1,this.create({id:o,type:"default",message:u});else if(Bu(u)&&!u.ok){s=!1;let p=typeof r.error=="function"?await r.error(`HTTP error! status: ${u.status}`):r.error,b=typeof r.description=="function"?await r.description(`HTTP error! status: ${u.status}`):r.description,$=typeof p=="object"&&!jt.isValidElement(p)?p:{message:p};this.create({id:o,type:"error",description:b,...$})}else if(u instanceof Error){s=!1;let p=typeof r.error=="function"?await r.error(u):r.error,b=typeof r.description=="function"?await r.description(u):r.description,$=typeof p=="object"&&!jt.isValidElement(p)?p:{message:p};this.create({id:o,type:"error",description:b,...$})}else if(r.success!==void 0){s=!1;let p=typeof r.success=="function"?await r.success(u):r.success,b=typeof r.description=="function"?await r.description(u):r.description,$=typeof p=="object"&&!jt.isValidElement(p)?p:{message:p};this.create({id:o,type:"success",description:b,...$})}}).catch(async u=>{if(i=["reject",u],r.error!==void 0){s=!1;let g=typeof r.error=="function"?await r.error(u):r.error,p=typeof r.description=="function"?await r.description(u):r.description,m=typeof g=="object"&&!jt.isValidElement(g)?g:{message:g};this.create({id:o,type:"error",description:p,...m})}}).finally(()=>{s&&(this.dismiss(o),o=void 0),r.finally==null||r.finally.call(r)}),l=()=>new Promise((u,g)=>a.then(()=>i[0]==="reject"?g(i[1]):u(i[1])).catch(g));return typeof o!="string"&&typeof o!="number"?{unwrap:l}:Object.assign(o,{unwrap:l})},this.custom=(t,r)=>{let o=r?.id||ho++;return this.create({jsx:t(o),id:o,...r}),o},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Se=new go,Uu=(e,t)=>{let r=t?.id||ho++;return Se.addToast({title:e,...t,id:r}),r},Bu=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",Gu=Uu,Ju=()=>Se.toasts,Wu=()=>Se.getActiveToasts(),pa=Object.assign(Gu,{success:Se.success,info:Se.info,warning:Se.warning,error:Se.error,custom:Se.custom,message:Se.message,promise:Se.promise,dismiss:Se.dismiss,loading:Se.loading},{getHistory:Ju,getToasts:Wu});Lu("[data-sonner-toaster][dir=ltr],html[dir=ltr]{--toast-icon-margin-start:-3px;--toast-icon-margin-end:4px;--toast-svg-margin-start:-1px;--toast-svg-margin-end:0px;--toast-button-margin-start:auto;--toast-button-margin-end:0;--toast-close-button-start:0;--toast-close-button-end:unset;--toast-close-button-transform:translate(-35%, -35%)}[data-sonner-toaster][dir=rtl],html[dir=rtl]{--toast-icon-margin-start:4px;--toast-icon-margin-end:-3px;--toast-svg-margin-start:0px;--toast-svg-margin-end:-1px;--toast-button-margin-start:0;--toast-button-margin-end:auto;--toast-close-button-start:unset;--toast-close-button-end:0;--toast-close-button-transform:translate(35%, -35%)}[data-sonner-toaster]{position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1:hsl(0, 0%, 99%);--gray2:hsl(0, 0%, 97.3%);--gray3:hsl(0, 0%, 95.1%);--gray4:hsl(0, 0%, 93%);--gray5:hsl(0, 0%, 90.9%);--gray6:hsl(0, 0%, 88.7%);--gray7:hsl(0, 0%, 85.8%);--gray8:hsl(0, 0%, 78%);--gray9:hsl(0, 0%, 56.1%);--gray10:hsl(0, 0%, 52.3%);--gray11:hsl(0, 0%, 43.5%);--gray12:hsl(0, 0%, 9%);--border-radius:8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:0;z-index:999999999;transition:transform .4s ease}@media (hover:none) and (pointer:coarse){[data-sonner-toaster][data-lifted=true]{transform:none}}[data-sonner-toaster][data-x-position=right]{right:var(--offset-right)}[data-sonner-toaster][data-x-position=left]{left:var(--offset-left)}[data-sonner-toaster][data-x-position=center]{left:50%;transform:translateX(-50%)}[data-sonner-toaster][data-y-position=top]{top:var(--offset-top)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--offset-bottom)}[data-sonner-toast]{--y:translateY(100%);--lift-amount:calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:0;overflow-wrap:anywhere}[data-sonner-toast][data-styled=true]{padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px rgba(0,0,0,.1);width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}[data-sonner-toast]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-y-position=top]{top:0;--y:translateY(-100%);--lift:1;--lift-amount:calc(1 * var(--gap))}[data-sonner-toast][data-y-position=bottom]{bottom:0;--y:translateY(100%);--lift:-1;--lift-amount:calc(var(--lift) * var(--gap))}[data-sonner-toast][data-styled=true] [data-description]{font-weight:400;line-height:1.4;color:#3f3f3f}[data-rich-colors=true][data-sonner-toast][data-styled=true] [data-description]{color:inherit}[data-sonner-toaster][data-sonner-theme=dark] [data-description]{color:#e8e8e8}[data-sonner-toast][data-styled=true] [data-title]{font-weight:500;line-height:1.5;color:inherit}[data-sonner-toast][data-styled=true] [data-icon]{display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}[data-sonner-toast][data-promise=true] [data-icon]>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}[data-sonner-toast][data-styled=true] [data-icon]>*{flex-shrink:0}[data-sonner-toast][data-styled=true] [data-icon] svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}[data-sonner-toast][data-styled=true] [data-content]{display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;font-weight:500;cursor:pointer;outline:0;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}[data-sonner-toast][data-styled=true] [data-button]:focus-visible{box-shadow:0 0 0 2px rgba(0,0,0,.4)}[data-sonner-toast][data-styled=true] [data-button]:first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}[data-sonner-toast][data-styled=true] [data-cancel]{color:var(--normal-text);background:rgba(0,0,0,.08)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-styled=true] [data-cancel]{background:rgba(255,255,255,.3)}[data-sonner-toast][data-styled=true] [data-close-button]{position:absolute;left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);background:var(--normal-bg);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast][data-styled=true] [data-close-button]:focus-visible{box-shadow:0 4px 12px rgba(0,0,0,.1),0 0 0 2px rgba(0,0,0,.2)}[data-sonner-toast][data-styled=true] [data-disabled=true]{cursor:not-allowed}[data-sonner-toast][data-styled=true]:hover [data-close-button]:hover{background:var(--gray2);border-color:var(--gray5)}[data-sonner-toast][data-swiping=true]::before{content:'';position:absolute;left:-100%;right:-100%;height:100%;z-index:-1}[data-sonner-toast][data-y-position=top][data-swiping=true]::before{bottom:50%;transform:scaleY(3) translateY(50%)}[data-sonner-toast][data-y-position=bottom][data-swiping=true]::before{top:50%;transform:scaleY(3) translateY(-50%)}[data-sonner-toast][data-swiping=false][data-removed=true]::before{content:'';position:absolute;inset:0;transform:scaleY(2)}[data-sonner-toast][data-expanded=true]::after{content:'';position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}[data-sonner-toast][data-mounted=true]{--y:translateY(0);opacity:1}[data-sonner-toast][data-expanded=false][data-front=false]{--scale:var(--toasts-before) * 0.05 + 1;--y:translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}[data-sonner-toast]>*{transition:opacity .4s}[data-sonner-toast][data-x-position=right]{right:0}[data-sonner-toast][data-x-position=left]{left:0}[data-sonner-toast][data-expanded=false][data-front=false][data-styled=true]>*{opacity:0}[data-sonner-toast][data-visible=false]{opacity:0;pointer-events:none}[data-sonner-toast][data-mounted=true][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}[data-sonner-toast][data-removed=true][data-front=true][data-swipe-out=false]{--y:translateY(calc(var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=true]{--y:translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}[data-sonner-toast][data-removed=true][data-front=false][data-swipe-out=false][data-expanded=false]{--y:translateY(40%);opacity:0;transition:transform .5s,opacity .2s}[data-sonner-toast][data-removed=true][data-front=false]::before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y,0)) translateX(var(--swipe-amount-x,0));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{from{transform:var(--y) translateX(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translateX(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{from{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width:600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-sonner-theme=light]{--normal-bg:#fff;--normal-border:var(--gray4);--normal-text:var(--gray12);--success-bg:hsl(143, 85%, 96%);--success-border:hsl(145, 92%, 87%);--success-text:hsl(140, 100%, 27%);--info-bg:hsl(208, 100%, 97%);--info-border:hsl(221, 91%, 93%);--info-text:hsl(210, 92%, 45%);--warning-bg:hsl(49, 100%, 97%);--warning-border:hsl(49, 91%, 84%);--warning-text:hsl(31, 92%, 45%);--error-bg:hsl(359, 100%, 97%);--error-border:hsl(359, 100%, 94%);--error-text:hsl(360, 100%, 45%)}[data-sonner-toaster][data-sonner-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg:#000;--normal-border:hsl(0, 0%, 20%);--normal-text:var(--gray1)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg:#fff;--normal-border:var(--gray3);--normal-text:var(--gray12)}[data-sonner-toaster][data-sonner-theme=dark]{--normal-bg:#000;--normal-bg-hover:hsl(0, 0%, 12%);--normal-border:hsl(0, 0%, 20%);--normal-border-hover:hsl(0, 0%, 25%);--normal-text:var(--gray1);--success-bg:hsl(150, 100%, 6%);--success-border:hsl(147, 100%, 12%);--success-text:hsl(150, 86%, 65%);--info-bg:hsl(215, 100%, 6%);--info-border:hsl(223, 43%, 17%);--info-text:hsl(216, 87%, 65%);--warning-bg:hsl(64, 100%, 6%);--warning-border:hsl(60, 100%, 9%);--warning-text:hsl(46, 87%, 65%);--error-bg:hsl(358, 76%, 10%);--error-border:hsl(357, 89%, 16%);--error-text:hsl(358, 100%, 81%)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-sonner-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size:16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:first-child{animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}100%{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}100%{opacity:.15}}@media (prefers-reduced-motion){.sonner-loading-bar,[data-sonner-toast],[data-sonner-toast]>*{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}");var nl=h("ZodISODateTime",(e,t)=>{Fs.init(e,t),K.init(e,t)});function ma(e){return Vi(nl,e)}var sl=h("ZodISODate",(e,t)=>{Vs.init(e,t),K.init(e,t)});function ha(e){return Di(sl,e)}var il=h("ZodISOTime",(e,t)=>{Ds.init(e,t),K.init(e,t)});function ga(e){return Mi(il,e)}var al=h("ZodISODuration",(e,t)=>{Ms.init(e,t),K.init(e,t)});function ba(e){return ji(al,e)}var ll=(e,t)=>{gt.init(e,t),e.name="ZodError",Object.defineProperties(e,{format:{value:r=>zn(e,r)},flatten:{value:r=>kn(e,r)},addIssue:{value:r=>{e.issues.push(r),e.message=JSON.stringify(e.issues,mt,2)}},addIssues:{value:r=>{e.issues.push(...r),e.message=JSON.stringify(e.issues,mt,2)}},isEmpty:{get(){return e.issues.length===0}}})};var ze=h("ZodError",ll,{Parent:Error});var ya=Ct(ze),va=It(ze),xa=Rt(ze),_a=Ft(ze),wa=Pn(ze),ka=Zn(ze),za=En(ze),$a=An(ze),Sa=Tn(ze),Pa=Nn(ze),Za=On(ze),Ea=Cn(ze);var Aa=new WeakMap;function cr(e,t,r){let o=Object.getPrototypeOf(e),n=Aa.get(o);if(n||(n=new Set,Aa.set(o,n)),!n.has(t)){n.add(t);for(let s in r){let i=r[s];Object.defineProperty(o,s,{configurable:!0,enumerable:!1,get(){let a=i.bind(this);return Object.defineProperty(this,s,{configurable:!0,writable:!0,enumerable:!0,value:a}),a},set(a){Object.defineProperty(this,s,{configurable:!0,writable:!0,enumerable:!0,value:a})}})}}}var ce=h("ZodType",(e,t)=>(ie.init(e,t),Object.assign(e["~standard"],{jsonSchema:{input:Dt(e,"input"),output:Dt(e,"output")}}),e.toJSONSchema=Wi(e,{}),e.def=t,e.type=t.type,Object.defineProperty(e,"_def",{value:t}),e.parse=(r,o)=>ya(e,r,o,{callee:e.parse}),e.safeParse=(r,o)=>xa(e,r,o),e.parseAsync=async(r,o)=>va(e,r,o,{callee:e.parseAsync}),e.safeParseAsync=async(r,o)=>_a(e,r,o),e.spa=e.safeParseAsync,e.encode=(r,o)=>wa(e,r,o),e.decode=(r,o)=>ka(e,r,o),e.encodeAsync=async(r,o)=>za(e,r,o),e.decodeAsync=async(r,o)=>$a(e,r,o),e.safeEncode=(r,o)=>Sa(e,r,o),e.safeDecode=(r,o)=>Pa(e,r,o),e.safeEncodeAsync=async(r,o)=>Za(e,r,o),e.safeDecodeAsync=async(r,o)=>Ea(e,r,o),cr(e,"ZodType",{check(...r){let o=this.def;return this.clone(G.mergeDefs(o,{checks:[...o.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]}),{parent:!0})},with(...r){return this.check(...r)},clone(r,o){return Ae(this,r,o)},brand(){return this},register(r,o){return r.add(this,o),this},refine(r,o){return this.check(od(r,o))},superRefine(r,o){return this.check(nd(r,o))},overwrite(r){return this.check(Ue(r))},optional(){return Oa(this)},exactOptional(){return Bl(this)},nullable(){return Ca(this)},nullish(){return Oa(Ca(this))},nonoptional(r){return Kl(this,r)},array(){return Cl(this)},or(r){return Fl([this,r])},and(r){return Dl(this,r)},transform(r){return Ia(this,Ll(r))},default(r){return Wl(this,r)},prefault(r){return Yl(this,r)},catch(r){return Xl(this,r)},pipe(r){return Ia(this,r)},readonly(){return td(this)},describe(r){let o=this.clone();return ot.add(o,{description:r}),o},meta(...r){if(r.length===0)return ot.get(this);let o=this.clone();return ot.add(o,r[0]),o},isOptional(){return this.safeParse(void 0).success},isNullable(){return this.safeParse(null).success},apply(r){return r(this)}}),Object.defineProperty(e,"description",{get(){return ot.get(e)?.description},configurable:!0}),e)),Ra=h("_ZodString",(e,t)=>{nr.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(o,n,s)=>Hi(e,o,n,s);let r=e._zod.bag;e.format=r.format??null,e.minLength=r.minimum??null,e.maxLength=r.maximum??null,cr(e,"_ZodString",{regex(...o){return this.check(Xr(...o))},includes(...o){return this.check(to(...o))},startsWith(...o){return this.check(ro(...o))},endsWith(...o){return this.check(oo(...o))},min(...o){return this.check(bt(...o))},max(...o){return this.check(sr(...o))},length(...o){return this.check(ir(...o))},nonempty(...o){return this.check(bt(1,...o))},lowercase(o){return this.check(Qr(o))},uppercase(o){return this.check(eo(o))},trim(){return this.check(so())},normalize(...o){return this.check(no(...o))},toLowerCase(){return this.check(io())},toUpperCase(){return this.check(ao())},slugify(){return this.check(co())}})}),fl=h("ZodString",(e,t)=>{nr.init(e,t),Ra.init(e,t),e.email=r=>e.check(bi(pl,r)),e.url=r=>e.check(wi(ml,r)),e.jwt=r=>e.check(Fi(El,r)),e.emoji=r=>e.check(ki(hl,r)),e.guid=r=>e.check(qr(Ta,r)),e.uuid=r=>e.check(yi(ar,r)),e.uuidv4=r=>e.check(vi(ar,r)),e.uuidv6=r=>e.check(xi(ar,r)),e.uuidv7=r=>e.check(_i(ar,r)),e.nanoid=r=>e.check(zi(gl,r)),e.guid=r=>e.check(qr(Ta,r)),e.cuid=r=>e.check($i(bl,r)),e.cuid2=r=>e.check(Si(yl,r)),e.ulid=r=>e.check(Pi(vl,r)),e.base64=r=>e.check(Ci(Sl,r)),e.base64url=r=>e.check(Ii(Pl,r)),e.xid=r=>e.check(Zi(xl,r)),e.ksuid=r=>e.check(Ei(_l,r)),e.ipv4=r=>e.check(Ai(wl,r)),e.ipv6=r=>e.check(Ti(kl,r)),e.cidrv4=r=>e.check(Ni(zl,r)),e.cidrv6=r=>e.check(Oi($l,r)),e.e164=r=>e.check(Ri(Zl,r)),e.datetime=r=>e.check(ma(r)),e.date=r=>e.check(ha(r)),e.time=r=>e.check(ga(r)),e.duration=r=>e.check(ba(r))});function yo(e){return gi(fl,e)}var K=h("ZodStringFormat",(e,t)=>{H.init(e,t),Ra.init(e,t)}),pl=h("ZodEmail",(e,t)=>{Zs.init(e,t),K.init(e,t)});var Ta=h("ZodGUID",(e,t)=>{Ss.init(e,t),K.init(e,t)});var ar=h("ZodUUID",(e,t)=>{Ps.init(e,t),K.init(e,t)});var ml=h("ZodURL",(e,t)=>{Es.init(e,t),K.init(e,t)});var hl=h("ZodEmoji",(e,t)=>{As.init(e,t),K.init(e,t)});var gl=h("ZodNanoID",(e,t)=>{Ts.init(e,t),K.init(e,t)});var bl=h("ZodCUID",(e,t)=>{Ns.init(e,t),K.init(e,t)});var yl=h("ZodCUID2",(e,t)=>{Os.init(e,t),K.init(e,t)});var vl=h("ZodULID",(e,t)=>{Cs.init(e,t),K.init(e,t)});var xl=h("ZodXID",(e,t)=>{Is.init(e,t),K.init(e,t)});var _l=h("ZodKSUID",(e,t)=>{Rs.init(e,t),K.init(e,t)});var wl=h("ZodIPv4",(e,t)=>{js.init(e,t),K.init(e,t)});var kl=h("ZodIPv6",(e,t)=>{Ls.init(e,t),K.init(e,t)});var zl=h("ZodCIDRv4",(e,t)=>{Us.init(e,t),K.init(e,t)});var $l=h("ZodCIDRv6",(e,t)=>{Bs.init(e,t),K.init(e,t)});var Sl=h("ZodBase64",(e,t)=>{Js.init(e,t),K.init(e,t)});var Pl=h("ZodBase64URL",(e,t)=>{Ws.init(e,t),K.init(e,t)});var Zl=h("ZodE164",(e,t)=>{Hs.init(e,t),K.init(e,t)});var El=h("ZodJWT",(e,t)=>{Ys.init(e,t),K.init(e,t)});var Al=h("ZodUnknown",(e,t)=>{Ks.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Ki(e,r,o,n)});function Na(){return Li(Al)}var Tl=h("ZodNever",(e,t)=>{qs.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Yi(e,r,o,n)});function Nl(e){return Ui(Tl,e)}var Ol=h("ZodArray",(e,t)=>{Xs.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>ea(e,r,o,n),e.element=t.element,cr(e,"ZodArray",{min(r,o){return this.check(bt(r,o))},nonempty(r){return this.check(bt(1,r))},max(r,o){return this.check(sr(r,o))},length(r,o){return this.check(ir(r,o))},unwrap(){return this.element}})});function Cl(e,t){return Bi(Ol,e,t)}var Il=h("ZodObject",(e,t)=>{ti.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>ta(e,r,o,n),G.defineLazy(e,"shape",()=>t.shape),cr(e,"ZodObject",{keyof(){return Ml(Object.keys(this._zod.def.shape))},catchall(r){return this.clone({...this._zod.def,catchall:r})},passthrough(){return this.clone({...this._zod.def,catchall:Na()})},loose(){return this.clone({...this._zod.def,catchall:Na()})},strict(){return this.clone({...this._zod.def,catchall:Nl()})},strip(){return this.clone({...this._zod.def,catchall:void 0})},extend(r){return G.extend(this,r)},safeExtend(r){return G.safeExtend(this,r)},merge(r){return G.merge(this,r)},pick(r){return G.pick(this,r)},omit(r){return G.omit(this,r)},partial(...r){return G.partial(Va,this,r[0])},required(...r){return G.required(Da,this,r[0])}})});function Fa(e,t){let r={type:"object",shape:e??{},...G.normalizeParams(t)};return new Il(r)}var Rl=h("ZodUnion",(e,t)=>{ri.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>ra(e,r,o,n),e.options=t.options});function Fl(e,t){return new Rl({type:"union",options:e,...G.normalizeParams(t)})}var Vl=h("ZodIntersection",(e,t)=>{oi.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>oa(e,r,o,n)});function Dl(e,t){return new Vl({type:"intersection",left:e,right:t})}var bo=h("ZodEnum",(e,t)=>{ni.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(o,n,s)=>qi(e,o,n,s),e.enum=t.entries,e.options=Object.values(t.entries);let r=new Set(Object.keys(t.entries));e.extract=(o,n)=>{let s={};for(let i of o)if(r.has(i))s[i]=t.entries[i];else throw new Error(`Key ${i} not found in enum`);return new bo({...t,checks:[],...G.normalizeParams(n),entries:s})},e.exclude=(o,n)=>{let s={...t.entries};for(let i of o)if(r.has(i))delete s[i];else throw new Error(`Key ${i} not found in enum`);return new bo({...t,checks:[],...G.normalizeParams(n),entries:s})}});function Ml(e,t){let r=Array.isArray(e)?Object.fromEntries(e.map(o=>[o,o])):e;return new bo({type:"enum",entries:r,...G.normalizeParams(t)})}var jl=h("ZodTransform",(e,t)=>{si.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Qi(e,r,o,n),e._zod.parse=(r,o)=>{if(o.direction==="backward")throw new dt(e.constructor.name);r.addIssue=s=>{if(typeof s=="string")r.issues.push(G.issue(s,r.value,t));else{let i=s;i.fatal&&(i.continue=!1),i.code??(i.code="custom"),i.input??(i.input=r.value),i.inst??(i.inst=e),r.issues.push(G.issue(i))}};let n=t.transform(r.value,r);return n instanceof Promise?n.then(s=>(r.value=s,r.fallback=!0,r)):(r.value=n,r.fallback=!0,r)}});function Ll(e){return new jl({type:"transform",transform:e})}var Va=h("ZodOptional",(e,t)=>{Yr.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>po(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function Oa(e){return new Va({type:"optional",innerType:e})}var Ul=h("ZodExactOptional",(e,t)=>{ii.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>po(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function Bl(e){return new Ul({type:"optional",innerType:e})}var Gl=h("ZodNullable",(e,t)=>{ai.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>na(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function Ca(e){return new Gl({type:"nullable",innerType:e})}var Jl=h("ZodDefault",(e,t)=>{ci.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>ia(e,r,o,n),e.unwrap=()=>e._zod.def.innerType,e.removeDefault=e.unwrap});function Wl(e,t){return new Jl({type:"default",innerType:e,get defaultValue(){return typeof t=="function"?t():G.shallowClone(t)}})}var Hl=h("ZodPrefault",(e,t)=>{ui.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>aa(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function Yl(e,t){return new Hl({type:"prefault",innerType:e,get defaultValue(){return typeof t=="function"?t():G.shallowClone(t)}})}var Da=h("ZodNonOptional",(e,t)=>{li.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>sa(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function Kl(e,t){return new Da({type:"nonoptional",innerType:e,...G.normalizeParams(t)})}var ql=h("ZodCatch",(e,t)=>{di.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>ca(e,r,o,n),e.unwrap=()=>e._zod.def.innerType,e.removeCatch=e.unwrap});function Xl(e,t){return new ql({type:"catch",innerType:e,catchValue:typeof t=="function"?t:()=>t})}var Ql=h("ZodPipe",(e,t)=>{fi.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>ua(e,r,o,n),e.in=t.in,e.out=t.out});function Ia(e,t){return new Ql({type:"pipe",in:e,out:t})}var ed=h("ZodReadonly",(e,t)=>{pi.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>la(e,r,o,n),e.unwrap=()=>e._zod.def.innerType});function td(e){return new ed({type:"readonly",innerType:e})}var rd=h("ZodCustom",(e,t)=>{mi.init(e,t),ce.init(e,t),e._zod.processJSONSchema=(r,o,n)=>Xi(e,r,o,n)});function od(e,t={}){return Gi(rd,e,t)}function nd(e,t){return Ji(e,t)}function Ma(e){var t,r,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var n=e.length;for(t=0;ttypeof e=="boolean"?`${e}`:e===0?"0":e,La=ur,nt=(e,t)=>r=>{var o;if(t?.variants==null)return La(e,r?.class,r?.className);let{variants:n,defaultVariants:s}=t,i=Object.keys(n).map(u=>{let g=r?.[u],p=s?.[u];if(g===null)return null;let b=ja(g)||ja(p);return n[u][b]}),a=r&&Object.entries(r).reduce((u,g)=>{let[p,b]=g;return b===void 0||(u[p]=b),u},{}),l=t==null||(o=t.compoundVariants)===null||o===void 0?void 0:o.reduce((u,g)=>{let{class:p,className:b,...m}=g;return Object.entries(m).every($=>{let[C,T]=$;return Array.isArray(T)?T.includes({...s,...a}[C]):{...s,...a}[C]===T})?[...u,p,b]:u},[]);return La(e,i,l,r?.class,r?.className)};import*as Ya from"react";import*as gd from"react-dom";var fr={};kr(fr,{Root:()=>id,Slot:()=>id,Slottable:()=>ad,createSlot:()=>dr,createSlottable:()=>Ha});import*as ge from"react";import*as Ba from"react";function Ua(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function sd(...e){return t=>{let r=!1,o=e.map(n=>{let s=Ua(n,t);return!r&&typeof s=="function"&&(r=!0),s});if(r)return()=>{for(let n=0;n{let{children:n,...s}=r,i=null,a=!1,l=[];Ja(n)&&typeof lr=="function"&&(n=lr(n._payload)),ge.Children.forEach(n,b=>{if(dd(b)){a=!0;let m=b,$="child"in m.props?m.props.child:m.props.children;Ja($)&&typeof lr=="function"&&($=lr($._payload)),i=cd(m,$),l.push(i?.props?.children)}else l.push(b)}),i?i=ge.cloneElement(i,void 0,l):!a&&ge.Children.count(n)===1&&ge.isValidElement(n)&&(i=n);let u=i?ld(i):void 0,g=Ga(o,u);if(!i){if(n||n===0)throw new Error(a?hd(e):md(e));return n}let p=ud(s,i.props??{});return i.type!==ge.Fragment&&(p.ref=o?g:u),ge.cloneElement(i,p)});return t.displayName=`${e}.Slot`,t}var id=dr("Slot"),Wa=Symbol.for("radix.slottable");function Ha(e){let t=r=>"child"in r?r.children(r.child):r.children;return t.displayName=`${e}.Slottable`,t.__radixId=Wa,t}var ad=Ha("Slottable"),cd=(e,t)=>{if("child"in e.props){let r=e.props.child;return ge.isValidElement(r)?ge.cloneElement(r,void 0,e.props.children(r.props.children)):null}return ge.isValidElement(t)?t:null};function ud(e,t){let r={...t};for(let o in t){let n=e[o],s=t[o];/^on[A-Z]/.test(o)?n&&s?r[o]=(...a)=>{let l=s(...a);return n(...a),l}:n&&(r[o]=n):o==="style"?r[o]={...n,...s}:o==="className"&&(r[o]=[n,s].filter(Boolean).join(" "))}return{...e,...r}}function ld(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning;return r?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,r=t&&"isReactWarning"in t&&t.isReactWarning,r?e.props.ref:e.props.ref||e.ref)}function dd(e){return ge.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Wa}var fd=Symbol.for("react.lazy");function Ja(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===fd&&"_payload"in e&&pd(e._payload)}function pd(e){return typeof e=="object"&&e!==null&&"then"in e}var md=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,hd=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,lr=ge[" use ".trim().toString()];import{jsx as bd}from"react/jsx-runtime";var yd=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ka=yd.reduce((e,t)=>{let r=dr(`Primitive.${t}`),o=Ya.forwardRef((n,s)=>{let{asChild:i,...a}=n,l=i?r:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),bd(l,{...a,ref:s})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});var pr={};kr(pr,{Label:()=>vo,Root:()=>_d});import*as qa from"react";import{jsx as vd}from"react/jsx-runtime";var xd="Label",vo=qa.forwardRef((e,t)=>vd(Ka.label,{...e,ref:t,onMouseDown:r=>{r.target.closest("button, input, select, textarea")||(e.onMouseDown?.(r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));vo.displayName=xd;var _d=vo;var wd=(e,t)=>{let r=new Array(e.length+t.length);for(let o=0;o({classGroupId:e,validator:t}),nc=(e=new Map,t=null,r)=>({nextPart:e,validators:t,classGroupId:r}),gr="-",Xa=[],zd="arbitrary..",$d=e=>{let t=Pd(e),{conflictingClassGroups:r,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:i=>{if(i.startsWith("[")&&i.endsWith("]"))return Sd(i);let a=i.split(gr),l=a[0]===""&&a.length>1?1:0;return sc(a,l,t)},getConflictingClassGroupIds:(i,a)=>{if(a){let l=o[i],u=r[i];return l?u?wd(u,l):l:u||Xa}return r[i]||Xa}}},sc=(e,t,r)=>{if(e.length-t===0)return r.classGroupId;let n=e[t],s=r.nextPart.get(n);if(s){let u=sc(e,t+1,s);if(u)return u}let i=r.validators;if(i===null)return;let a=t===0?e.join(gr):e.slice(t).join(gr),l=i.length;for(let u=0;ue.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let t=e.slice(1,-1),r=t.indexOf(":"),o=t.slice(0,r);return o?zd+o:void 0})(),Pd=e=>{let{theme:t,classGroups:r}=e;return Zd(r,t)},Zd=(e,t)=>{let r=nc();for(let o in e){let n=e[o];wo(n,r,o,t)}return r},wo=(e,t,r,o)=>{let n=e.length;for(let s=0;s{if(typeof e=="string"){Ad(e,t,r);return}if(typeof e=="function"){Td(e,t,r,o);return}Nd(e,t,r,o)},Ad=(e,t,r)=>{let o=e===""?t:ic(t,e);o.classGroupId=r},Td=(e,t,r,o)=>{if(Od(e)){wo(e(o),t,r,o);return}t.validators===null&&(t.validators=[]),t.validators.push(kd(r,e))},Nd=(e,t,r,o)=>{let n=Object.entries(e),s=n.length;for(let i=0;i{let r=e,o=t.split(gr),n=o.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,Cd=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,r=Object.create(null),o=Object.create(null),n=(s,i)=>{r[s]=i,t++,t>e&&(t=0,o=r,r=Object.create(null))};return{get(s){let i=r[s];if(i!==void 0)return i;if((i=o[s])!==void 0)return n(s,i),i},set(s,i){s in r?r[s]=i:n(s,i)}}},_o="!",Qa=":",Id=[],ec=(e,t,r,o,n)=>({modifiers:e,hasImportantModifier:t,baseClassName:r,maybePostfixModifierPosition:o,isExternal:n}),Rd=e=>{let{prefix:t,experimentalParseClassName:r}=e,o=n=>{let s=[],i=0,a=0,l=0,u,g=n.length;for(let C=0;Cl?u-l:void 0;return ec(s,m,b,$)};if(t){let n=t+Qa,s=o;o=i=>i.startsWith(n)?s(i.slice(n.length)):ec(Id,!1,i,void 0,!0)}if(r){let n=o;o=s=>r({className:s,parseClassName:n})}return o},Fd=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((r,o)=>{t.set(r,1e6+o)}),r=>{let o=[],n=[];for(let s=0;s0&&(n.sort(),o.push(...n),n=[]),o.push(i)):n.push(i)}return n.length>0&&(n.sort(),o.push(...n)),o}},Vd=e=>({cache:Cd(e.cacheSize),parseClassName:Rd(e),sortModifiers:Fd(e),postfixLookupClassGroupIds:Dd(e),...$d(e)}),Dd=e=>{let t=Object.create(null),r=e.postfixLookupClassGroups;if(r)for(let o=0;o{let{parseClassName:r,getClassGroupId:o,getConflictingClassGroupIds:n,sortModifiers:s,postfixLookupClassGroupIds:i}=t,a=[],l=e.trim().split(Md),u="";for(let g=l.length-1;g>=0;g-=1){let p=l[g],{isExternal:b,modifiers:m,hasImportantModifier:$,baseClassName:C,maybePostfixModifierPosition:T}=r(p);if(b){u=p+(u.length>0?" "+u:u);continue}let j=!!T,N;if(j){let ee=C.substring(0,T);N=o(ee);let S=N&&i[N]?o(C):void 0;S&&S!==N&&(N=S,j=!1)}else N=o(C);if(!N){if(!j){u=p+(u.length>0?" "+u:u);continue}if(N=o(C),!N){u=p+(u.length>0?" "+u:u);continue}j=!1}let O=m.length===0?"":m.length===1?m[0]:s(m).join(":"),P=$?O+_o:O,Z=P+N;if(a.indexOf(Z)>-1)continue;a.push(Z);let re=n(N,j);for(let ee=0;ee0?" "+u:u)}return u},Ld=(...e)=>{let t=0,r,o,n="";for(;t{if(typeof e=="string")return e;let t,r="";for(let o=0;o{let r,o,n,s,i=l=>{let u=t.reduce((g,p)=>p(g),e());return r=Vd(u),o=r.cache.get,n=r.cache.set,s=a,a(l)},a=l=>{let u=o(l);if(u)return u;let g=jd(l,r);return n(l,g),g};return s=i,(...l)=>s(Ld(...l))},Bd=[],ue=e=>{let t=r=>r[e]||Bd;return t.isThemeGetter=!0,t},cc=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,uc=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Gd=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Jd=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Wd=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Hd=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Yd=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Kd=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Be=e=>Gd.test(e),F=e=>!!e&&!Number.isNaN(Number(e)),Ce=e=>!!e&&Number.isInteger(Number(e)),xo=e=>e.endsWith("%")&&F(e.slice(0,-1)),Ve=e=>Jd.test(e),lc=()=>!0,qd=e=>Wd.test(e)&&!Hd.test(e),ko=()=>!1,Xd=e=>Yd.test(e),Qd=e=>Kd.test(e),ef=e=>!k(e)&&!z(e),tf=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),rf=e=>Ge(e,pc,ko),k=e=>cc.test(e),st=e=>Ge(e,mc,qd),tc=e=>Ge(e,df,F),of=e=>Ge(e,gc,lc),nf=e=>Ge(e,hc,ko),rc=e=>Ge(e,dc,ko),sf=e=>Ge(e,fc,Qd),mr=e=>Ge(e,bc,Xd),z=e=>uc.test(e),Lt=e=>it(e,mc),af=e=>it(e,hc),oc=e=>it(e,dc),cf=e=>it(e,pc),uf=e=>it(e,fc),hr=e=>it(e,bc,!0),lf=e=>it(e,gc,!0),Ge=(e,t,r)=>{let o=cc.exec(e);return o?o[1]?t(o[1]):r(o[2]):!1},it=(e,t,r=!1)=>{let o=uc.exec(e);return o?o[1]?t(o[1]):r:!1},dc=e=>e==="position"||e==="percentage",fc=e=>e==="image"||e==="url",pc=e=>e==="length"||e==="size"||e==="bg-size",mc=e=>e==="length",df=e=>e==="number",hc=e=>e==="family-name",gc=e=>e==="number"||e==="weight",bc=e=>e==="shadow";var ff=()=>{let e=ue("color"),t=ue("font"),r=ue("text"),o=ue("font-weight"),n=ue("tracking"),s=ue("leading"),i=ue("breakpoint"),a=ue("container"),l=ue("spacing"),u=ue("radius"),g=ue("shadow"),p=ue("inset-shadow"),b=ue("text-shadow"),m=ue("drop-shadow"),$=ue("blur"),C=ue("perspective"),T=ue("aspect"),j=ue("ease"),N=ue("animate"),O=()=>["auto","avoid","all","avoid-page","page","left","right","column"],P=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],Z=()=>[...P(),z,k],re=()=>["auto","hidden","clip","visible","scroll"],ee=()=>["auto","contain","none"],S=()=>[z,k,l],oe=()=>[Be,"full","auto",...S()],xe=()=>[Ce,"none","subgrid",z,k],We=()=>["auto",{span:["full",Ce,z,k]},Ce,z,k],V=()=>[Ce,"auto",z,k],D=()=>["auto","min","max","fr",z,k],q=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],U=()=>["start","end","center","stretch","center-safe","end-safe"],Y=()=>["auto",...S()],me=()=>[Be,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...S()],Te=()=>[Be,"screen","full","dvw","lvw","svw","min","max","fit",...S()],Ie=()=>[Be,"screen","full","lh","dvh","lvh","svh","min","max","fit",...S()],E=()=>[e,z,k],De=()=>[...P(),oc,rc,{position:[z,k]}],Ut=()=>["no-repeat",{repeat:["","x","y","space","round"]}],vt=()=>["auto","cover","contain",cf,rf,{size:[z,k]}],ct=()=>[xo,Lt,st],ae=()=>["","none","full",u,z,k],de=()=>["",F,Lt,st],He=()=>["solid","dashed","dotted","double"],xt=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],X=()=>[F,xo,oc,rc],Bt=()=>["","none",$,z,k],Ye=()=>["none",F,z,k],ut=()=>["none",F,z,k],Ke=()=>[F,z,k],qe=()=>[Be,"full",...S()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ve],breakpoint:[Ve],color:[lc],container:[Ve],"drop-shadow":[Ve],ease:["in","out","in-out"],font:[ef],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ve],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ve],shadow:[Ve],spacing:["px",F],text:[Ve],"text-shadow":[Ve],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Be,k,z,T]}],container:["container"],"container-type":[{"@container":["","normal","size",z,k]}],"container-named":[tf],columns:[{columns:[F,k,z,a]}],"break-after":[{"break-after":O()}],"break-before":[{"break-before":O()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:Z()}],overflow:[{overflow:re()}],"overflow-x":[{"overflow-x":re()}],"overflow-y":[{"overflow-y":re()}],overscroll:[{overscroll:ee()}],"overscroll-x":[{"overscroll-x":ee()}],"overscroll-y":[{"overscroll-y":ee()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:oe()}],"inset-x":[{"inset-x":oe()}],"inset-y":[{"inset-y":oe()}],start:[{"inset-s":oe(),start:oe()}],end:[{"inset-e":oe(),end:oe()}],"inset-bs":[{"inset-bs":oe()}],"inset-be":[{"inset-be":oe()}],top:[{top:oe()}],right:[{right:oe()}],bottom:[{bottom:oe()}],left:[{left:oe()}],visibility:["visible","invisible","collapse"],z:[{z:[Ce,"auto",z,k]}],basis:[{basis:[Be,"full","auto",a,...S()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[F,Be,"auto","initial","none",k]}],grow:[{grow:["",F,z,k]}],shrink:[{shrink:["",F,z,k]}],order:[{order:[Ce,"first","last","none",z,k]}],"grid-cols":[{"grid-cols":xe()}],"col-start-end":[{col:We()}],"col-start":[{"col-start":V()}],"col-end":[{"col-end":V()}],"grid-rows":[{"grid-rows":xe()}],"row-start-end":[{row:We()}],"row-start":[{"row-start":V()}],"row-end":[{"row-end":V()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":D()}],"auto-rows":[{"auto-rows":D()}],gap:[{gap:S()}],"gap-x":[{"gap-x":S()}],"gap-y":[{"gap-y":S()}],"justify-content":[{justify:[...q(),"normal"]}],"justify-items":[{"justify-items":[...U(),"normal"]}],"justify-self":[{"justify-self":["auto",...U()]}],"align-content":[{content:["normal",...q()]}],"align-items":[{items:[...U(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...U(),{baseline:["","last"]}]}],"place-content":[{"place-content":q()}],"place-items":[{"place-items":[...U(),"baseline"]}],"place-self":[{"place-self":["auto",...U()]}],p:[{p:S()}],px:[{px:S()}],py:[{py:S()}],ps:[{ps:S()}],pe:[{pe:S()}],pbs:[{pbs:S()}],pbe:[{pbe:S()}],pt:[{pt:S()}],pr:[{pr:S()}],pb:[{pb:S()}],pl:[{pl:S()}],m:[{m:Y()}],mx:[{mx:Y()}],my:[{my:Y()}],ms:[{ms:Y()}],me:[{me:Y()}],mbs:[{mbs:Y()}],mbe:[{mbe:Y()}],mt:[{mt:Y()}],mr:[{mr:Y()}],mb:[{mb:Y()}],ml:[{ml:Y()}],"space-x":[{"space-x":S()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":S()}],"space-y-reverse":["space-y-reverse"],size:[{size:me()}],"inline-size":[{inline:["auto",...Te()]}],"min-inline-size":[{"min-inline":["auto",...Te()]}],"max-inline-size":[{"max-inline":["none",...Te()]}],"block-size":[{block:["auto",...Ie()]}],"min-block-size":[{"min-block":["auto",...Ie()]}],"max-block-size":[{"max-block":["none",...Ie()]}],w:[{w:[a,"screen",...me()]}],"min-w":[{"min-w":[a,"screen","none",...me()]}],"max-w":[{"max-w":[a,"screen","none","prose",{screen:[i]},...me()]}],h:[{h:["screen","lh",...me()]}],"min-h":[{"min-h":["screen","lh","none",...me()]}],"max-h":[{"max-h":["screen","lh",...me()]}],"font-size":[{text:["base",r,Lt,st]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,lf,of]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",xo,k]}],"font-family":[{font:[af,nf,t]}],"font-features":[{"font-features":[k]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[n,z,k]}],"line-clamp":[{"line-clamp":[F,"none",z,tc]}],leading:[{leading:[s,...S()]}],"list-image":[{"list-image":["none",z,k]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",z,k]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:E()}],"text-color":[{text:E()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...He(),"wavy"]}],"text-decoration-thickness":[{decoration:[F,"from-font","auto",z,st]}],"text-decoration-color":[{decoration:E()}],"underline-offset":[{"underline-offset":[F,"auto",z,k]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:S()}],"tab-size":[{tab:[Ce,z,k]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",z,k]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",z,k]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:De()}],"bg-repeat":[{bg:Ut()}],"bg-size":[{bg:vt()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ce,z,k],radial:["",z,k],conic:[Ce,z,k]},uf,sf]}],"bg-color":[{bg:E()}],"gradient-from-pos":[{from:ct()}],"gradient-via-pos":[{via:ct()}],"gradient-to-pos":[{to:ct()}],"gradient-from":[{from:E()}],"gradient-via":[{via:E()}],"gradient-to":[{to:E()}],rounded:[{rounded:ae()}],"rounded-s":[{"rounded-s":ae()}],"rounded-e":[{"rounded-e":ae()}],"rounded-t":[{"rounded-t":ae()}],"rounded-r":[{"rounded-r":ae()}],"rounded-b":[{"rounded-b":ae()}],"rounded-l":[{"rounded-l":ae()}],"rounded-ss":[{"rounded-ss":ae()}],"rounded-se":[{"rounded-se":ae()}],"rounded-ee":[{"rounded-ee":ae()}],"rounded-es":[{"rounded-es":ae()}],"rounded-tl":[{"rounded-tl":ae()}],"rounded-tr":[{"rounded-tr":ae()}],"rounded-br":[{"rounded-br":ae()}],"rounded-bl":[{"rounded-bl":ae()}],"border-w":[{border:de()}],"border-w-x":[{"border-x":de()}],"border-w-y":[{"border-y":de()}],"border-w-s":[{"border-s":de()}],"border-w-e":[{"border-e":de()}],"border-w-bs":[{"border-bs":de()}],"border-w-be":[{"border-be":de()}],"border-w-t":[{"border-t":de()}],"border-w-r":[{"border-r":de()}],"border-w-b":[{"border-b":de()}],"border-w-l":[{"border-l":de()}],"divide-x":[{"divide-x":de()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":de()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...He(),"hidden","none"]}],"divide-style":[{divide:[...He(),"hidden","none"]}],"border-color":[{border:E()}],"border-color-x":[{"border-x":E()}],"border-color-y":[{"border-y":E()}],"border-color-s":[{"border-s":E()}],"border-color-e":[{"border-e":E()}],"border-color-bs":[{"border-bs":E()}],"border-color-be":[{"border-be":E()}],"border-color-t":[{"border-t":E()}],"border-color-r":[{"border-r":E()}],"border-color-b":[{"border-b":E()}],"border-color-l":[{"border-l":E()}],"divide-color":[{divide:E()}],"outline-style":[{outline:[...He(),"none","hidden"]}],"outline-offset":[{"outline-offset":[F,z,k]}],"outline-w":[{outline:["",F,Lt,st]}],"outline-color":[{outline:E()}],shadow:[{shadow:["","none",g,hr,mr]}],"shadow-color":[{shadow:E()}],"inset-shadow":[{"inset-shadow":["none",p,hr,mr]}],"inset-shadow-color":[{"inset-shadow":E()}],"ring-w":[{ring:de()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:E()}],"ring-offset-w":[{"ring-offset":[F,st]}],"ring-offset-color":[{"ring-offset":E()}],"inset-ring-w":[{"inset-ring":de()}],"inset-ring-color":[{"inset-ring":E()}],"text-shadow":[{"text-shadow":["none",b,hr,mr]}],"text-shadow-color":[{"text-shadow":E()}],opacity:[{opacity:[F,z,k]}],"mix-blend":[{"mix-blend":[...xt(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":xt()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[F]}],"mask-image-linear-from-pos":[{"mask-linear-from":X()}],"mask-image-linear-to-pos":[{"mask-linear-to":X()}],"mask-image-linear-from-color":[{"mask-linear-from":E()}],"mask-image-linear-to-color":[{"mask-linear-to":E()}],"mask-image-t-from-pos":[{"mask-t-from":X()}],"mask-image-t-to-pos":[{"mask-t-to":X()}],"mask-image-t-from-color":[{"mask-t-from":E()}],"mask-image-t-to-color":[{"mask-t-to":E()}],"mask-image-r-from-pos":[{"mask-r-from":X()}],"mask-image-r-to-pos":[{"mask-r-to":X()}],"mask-image-r-from-color":[{"mask-r-from":E()}],"mask-image-r-to-color":[{"mask-r-to":E()}],"mask-image-b-from-pos":[{"mask-b-from":X()}],"mask-image-b-to-pos":[{"mask-b-to":X()}],"mask-image-b-from-color":[{"mask-b-from":E()}],"mask-image-b-to-color":[{"mask-b-to":E()}],"mask-image-l-from-pos":[{"mask-l-from":X()}],"mask-image-l-to-pos":[{"mask-l-to":X()}],"mask-image-l-from-color":[{"mask-l-from":E()}],"mask-image-l-to-color":[{"mask-l-to":E()}],"mask-image-x-from-pos":[{"mask-x-from":X()}],"mask-image-x-to-pos":[{"mask-x-to":X()}],"mask-image-x-from-color":[{"mask-x-from":E()}],"mask-image-x-to-color":[{"mask-x-to":E()}],"mask-image-y-from-pos":[{"mask-y-from":X()}],"mask-image-y-to-pos":[{"mask-y-to":X()}],"mask-image-y-from-color":[{"mask-y-from":E()}],"mask-image-y-to-color":[{"mask-y-to":E()}],"mask-image-radial":[{"mask-radial":[z,k]}],"mask-image-radial-from-pos":[{"mask-radial-from":X()}],"mask-image-radial-to-pos":[{"mask-radial-to":X()}],"mask-image-radial-from-color":[{"mask-radial-from":E()}],"mask-image-radial-to-color":[{"mask-radial-to":E()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":P()}],"mask-image-conic-pos":[{"mask-conic":[F]}],"mask-image-conic-from-pos":[{"mask-conic-from":X()}],"mask-image-conic-to-pos":[{"mask-conic-to":X()}],"mask-image-conic-from-color":[{"mask-conic-from":E()}],"mask-image-conic-to-color":[{"mask-conic-to":E()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:De()}],"mask-repeat":[{mask:Ut()}],"mask-size":[{mask:vt()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",z,k]}],filter:[{filter:["","none",z,k]}],blur:[{blur:Bt()}],brightness:[{brightness:[F,z,k]}],contrast:[{contrast:[F,z,k]}],"drop-shadow":[{"drop-shadow":["","none",m,hr,mr]}],"drop-shadow-color":[{"drop-shadow":E()}],grayscale:[{grayscale:["",F,z,k]}],"hue-rotate":[{"hue-rotate":[F,z,k]}],invert:[{invert:["",F,z,k]}],saturate:[{saturate:[F,z,k]}],sepia:[{sepia:["",F,z,k]}],"backdrop-filter":[{"backdrop-filter":["","none",z,k]}],"backdrop-blur":[{"backdrop-blur":Bt()}],"backdrop-brightness":[{"backdrop-brightness":[F,z,k]}],"backdrop-contrast":[{"backdrop-contrast":[F,z,k]}],"backdrop-grayscale":[{"backdrop-grayscale":["",F,z,k]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[F,z,k]}],"backdrop-invert":[{"backdrop-invert":["",F,z,k]}],"backdrop-opacity":[{"backdrop-opacity":[F,z,k]}],"backdrop-saturate":[{"backdrop-saturate":[F,z,k]}],"backdrop-sepia":[{"backdrop-sepia":["",F,z,k]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":S()}],"border-spacing-x":[{"border-spacing-x":S()}],"border-spacing-y":[{"border-spacing-y":S()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",z,k]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[F,"initial",z,k]}],ease:[{ease:["linear","initial",j,z,k]}],delay:[{delay:[F,z,k]}],animate:[{animate:["none",N,z,k]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[C,z,k]}],"perspective-origin":[{"perspective-origin":Z()}],rotate:[{rotate:Ye()}],"rotate-x":[{"rotate-x":Ye()}],"rotate-y":[{"rotate-y":Ye()}],"rotate-z":[{"rotate-z":Ye()}],scale:[{scale:ut()}],"scale-x":[{"scale-x":ut()}],"scale-y":[{"scale-y":ut()}],"scale-z":[{"scale-z":ut()}],"scale-3d":["scale-3d"],skew:[{skew:Ke()}],"skew-x":[{"skew-x":Ke()}],"skew-y":[{"skew-y":Ke()}],transform:[{transform:[z,k,"","none","gpu","cpu"]}],"transform-origin":[{origin:Z()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:qe()}],"translate-x":[{"translate-x":qe()}],"translate-y":[{"translate-y":qe()}],"translate-z":[{"translate-z":qe()}],"translate-none":["translate-none"],zoom:[{zoom:[Ce,z,k]}],accent:[{accent:E()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:E()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",z,k]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":E()}],"scrollbar-track-color":[{"scrollbar-track":E()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":S()}],"scroll-mx":[{"scroll-mx":S()}],"scroll-my":[{"scroll-my":S()}],"scroll-ms":[{"scroll-ms":S()}],"scroll-me":[{"scroll-me":S()}],"scroll-mbs":[{"scroll-mbs":S()}],"scroll-mbe":[{"scroll-mbe":S()}],"scroll-mt":[{"scroll-mt":S()}],"scroll-mr":[{"scroll-mr":S()}],"scroll-mb":[{"scroll-mb":S()}],"scroll-ml":[{"scroll-ml":S()}],"scroll-p":[{"scroll-p":S()}],"scroll-px":[{"scroll-px":S()}],"scroll-py":[{"scroll-py":S()}],"scroll-ps":[{"scroll-ps":S()}],"scroll-pe":[{"scroll-pe":S()}],"scroll-pbs":[{"scroll-pbs":S()}],"scroll-pbe":[{"scroll-pbe":S()}],"scroll-pt":[{"scroll-pt":S()}],"scroll-pr":[{"scroll-pr":S()}],"scroll-pb":[{"scroll-pb":S()}],"scroll-pl":[{"scroll-pl":S()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",z,k]}],fill:[{fill:["none",...E()]}],"stroke-w":[{stroke:[F,Lt,st,tc]}],stroke:[{stroke:["none",...E()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var yc=Ud(ff);function J(...e){return yc(ur(e))}import{jsx as mf}from"react/jsx-runtime";var pf=nt("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function br({className:e,variant:t="default",size:r="default",asChild:o=!1,...n}){let s=o?fr.Root:"button";return mf(s,{"data-slot":"button","data-variant":t,"data-size":r,className:J(pf({variant:t,size:r,className:e})),...n})}import{jsx as yt}from"react/jsx-runtime";function vc({className:e,...t}){return yt("div",{"data-slot":"card",className:J("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm",e),...t})}function xc({className:e,...t}){return yt("div",{"data-slot":"card-header",className:J("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-2 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",e),...t})}function _c({className:e,...t}){return yt("div",{"data-slot":"card-title",className:J("leading-none font-semibold",e),...t})}function wc({className:e,...t}){return yt("div",{"data-slot":"card-description",className:J("text-sm text-muted-foreground",e),...t})}function kc({className:e,...t}){return yt("div",{"data-slot":"card-content",className:J("px-6",e),...t})}function zc({className:e,...t}){return yt("div",{"data-slot":"card-footer",className:J("flex items-center px-6 [.border-t]:pt-6",e),...t})}import{useMemo as gf}from"react";import{jsx as hf}from"react/jsx-runtime";function $c({className:e,...t}){return hf(pr.Root,{"data-slot":"label",className:J("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}import{jsx as Vh}from"react/jsx-runtime";import{jsx as at,jsxs as Wh}from"react/jsx-runtime";function Sc({className:e,...t}){return at("div",{"data-slot":"field-group",className:J("group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 [&>[data-slot=field-group]]:gap-4",e),...t})}var bf=nt("group/field flex w-full gap-3 data-[invalid=true]:text-destructive",{variants:{orientation:{vertical:["flex-col [&>*]:w-full [&>.sr-only]:w-auto"],horizontal:["flex-row items-center","[&>[data-slot=field-label]]:flex-auto","has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"],responsive:["flex-col @md/field-group:flex-row @md/field-group:items-center [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto","@md/field-group:[&>[data-slot=field-label]]:flex-auto","@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"]}},defaultVariants:{orientation:"vertical"}});function yr({className:e,orientation:t="vertical",...r}){return at("div",{role:"group","data-slot":"field","data-orientation":t,className:J(bf({orientation:t}),e),...r})}function zo({className:e,...t}){return at($c,{"data-slot":"field-label",className:J("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50","has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border [&>*]:data-[slot=field]:p-4","has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5 dark:has-data-[state=checked]:bg-primary/10",e),...t})}function Pc({className:e,...t}){return at("p",{"data-slot":"field-description",className:J("text-sm leading-normal font-normal text-muted-foreground group-has-[[data-orientation=horizontal]]/field:text-balance","last:mt-0 nth-last-2:-mt-1 [[data-variant=legend]+&]:-mt-1.5","[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",e),...t})}function $o({className:e,children:t,errors:r,...o}){let n=gf(()=>{if(t)return t;if(!r?.length)return null;let s=[...new Map(r.map(i=>[i?.message,i])).values()];return s?.length==1?s[0]?.message:at("ul",{className:"ml-4 flex list-disc flex-col gap-1",children:s.map((i,a)=>i?.message&&at("li",{children:i.message},a))})},[t,r]);return n?at("div",{role:"alert","data-slot":"field-error",className:J("text-sm font-normal text-destructive",e),...o,children:n}):null}import{jsx as yf}from"react/jsx-runtime";function So({className:e,type:t,...r}){return yf("input",{type:t,"data-slot":"input",className:J("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...r})}import{jsx as vf}from"react/jsx-runtime";function Zc({className:e,...t}){return vf("textarea",{"data-slot":"textarea",className:J("flex field-sizing-content min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",e),...t})}import{jsx as vr}from"react/jsx-runtime";function Ec({className:e,...t}){return vr("div",{"data-slot":"input-group",role:"group",className:J("group/input-group relative flex w-full items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none dark:bg-input/30","h-9 min-w-0 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",e),...t})}var xf=nt("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function Ac({className:e,align:t="inline-start",...r}){return vr("div",{role:"group","data-slot":"input-group-addon","data-align":t,className:J(xf({align:t}),e),onClick:o=>{o.target.closest("button")||o.currentTarget.parentElement?.querySelector("input")?.focus()},...r})}var ig=nt("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function Tc({className:e,...t}){return vr("span",{className:J("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",e),...t})}function Nc({className:e,...t}){return vr(Zc,{"data-slot":"input-group-control",className:J("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",e),...t})}import{jsx as le,jsxs as Je}from"react/jsx-runtime";var _f=Fa({title:yo().min(5,"Bug title must be at least 5 characters.").max(32,"Bug title must be at most 32 characters."),description:yo().min(20,"Description must be at least 20 characters.").max(100,"Description must be at most 100 characters.")});function wf(){let e=cn({resolver:fa(_f),defaultValues:{title:"",description:""}});function t(r){pa("You submitted the following values:",{description:le("pre",{className:"mt-2 w-[320px] overflow-x-auto rounded-md bg-code p-4 text-code-foreground",children:le("code",{children:JSON.stringify(r,null,2)})}),position:"bottom-right",classNames:{content:"flex flex-col gap-2"},style:{"--border-radius":"calc(var(--radius) + 4px)"}})}return Je(vc,{className:"w-full sm:max-w-md",children:[Je(xc,{children:[le(_c,{children:"Bug Report"}),le(wc,{children:"Help us improve by reporting bugs you encounter."})]}),le(kc,{children:le("form",{id:"form-rhf-demo",onSubmit:e.handleSubmit(t),children:Je(Sc,{children:[le(Or,{name:"title",control:e.control,render:({field:r,fieldState:o})=>Je(yr,{"data-invalid":o.invalid,children:[le(zo,{htmlFor:"form-rhf-demo-title",children:"Bug Title"}),le(So,{...r,id:"form-rhf-demo-title","aria-invalid":o.invalid,placeholder:"Login button not working on mobile",autoComplete:"off"}),o.invalid&&le($o,{errors:[o.error]})]})}),le(Or,{name:"description",control:e.control,render:({field:r,fieldState:o})=>Je(yr,{"data-invalid":o.invalid,children:[le(zo,{htmlFor:"form-rhf-demo-description",children:"Description"}),Je(Ec,{children:[le(Nc,{...r,id:"form-rhf-demo-description",placeholder:"I'm having an issue with the login button on mobile.",rows:6,className:"min-h-24 resize-none","aria-invalid":o.invalid}),le(Ac,{align:"block-end",children:Je(Tc,{className:"tabular-nums",children:[r.value.length,"/100 characters"]})})]}),le(Pc,{children:"Include steps to reproduce, expected behavior, and what actually happened."}),o.invalid&&le($o,{errors:[o.error]})]})})]})})}),le(zc,{children:Je(yr,{orientation:"horizontal",children:[le(br,{type:"button",variant:"outline",onClick:()=>e.reset(),children:"Reset"}),le(br,{type:"submit",form:"form-rhf-demo",children:"Submit"})]})})]})}export{wf as default}; diff --git a/b/3a71e709f66cbddb2836a84056f785d82a91a5ba5815872191556839a6cc5e73 b/b/3a71e709f66cbddb2836a84056f785d82a91a5ba5815872191556839a6cc5e73 new file mode 100644 index 0000000000000000000000000000000000000000..5f39f63fa295128f9f85abbe846cd645accf0172 --- /dev/null +++ b/b/3a71e709f66cbddb2836a84056f785d82a91a5ba5815872191556839a6cc5e73 @@ -0,0 +1,49 @@ +// gguf-forge-kstream witness — the LLM runs 100% from κ-bodies, loaded BY κ with L5, no re-forge. +// • open the REAL qwen2.5-0.5b .holo (per-tensor κ-bodies) → forge-compatible plan + L5 store +// • run the Tier-A forward sourcing EVERY weight by its κ (per-block L5 on first use, cached after) +// • argmax must equal the witnessed forge/llama.cpp result (3283) → parity preserved through κ-stream +// • a tampered archive is refused (footer L5) +// This is the substrate load path of the vision (no monolithic re-forge); the browser streams the SAME +// .holo over HTTP-Range / SW κ-route / IPFS via openGgufHoloStream — serverless + verified + warm-cached. +import { readFileSync } from "node:fs"; +import { openGgufHolo, kstreamLoad } from "./gguf-forge-kstream.mjs"; +import { readHolo } from "./holo-archive.mjs"; +import { synthesizeGraph } from "./gguf-forge-graph.mjs"; +import { forward } from "./gguf-forge-exec.mjs"; + +const HOLO = "./.models/qwen2.5-0.5b-instruct.holo"; +const TOKENS = [785, 6722, 374, 264]; // "The capital of France is" — witnessed argmax 3283 (== llama.cpp) +const EXPECT = 3283; +let pass = 0, fail = 0; const ok = (c, m) => { if (c) { console.log(` ok ${m}`); pass++; } else { console.log(` XX ${m}`); fail++; } }; +const t0 = Date.now(), el = () => ((Date.now() - t0) / 1000).toFixed(0) + "s"; + +const bytes = new Uint8Array(readFileSync(HOLO)); +console.log(`[${el()}] read ${(bytes.length / 1e6 | 0)}MB .holo`); + +// 1. open by κ — plan reconstructed from the embedded gguf.header + name→κ directory (no GGUF re-forge) +const cache = new Map(); +const { plan, store, rootHolo, meta } = openGgufHolo(bytes, { cache }); +console.log(`[${el()}] opened: arch=${plan.arch} tensors=${plan.tensors.length} rootHolo=${String(rootHolo).slice(0, 28)}…`); +ok(plan.arch === "qwen2" && plan.tensors.length === meta.nTensors && plan.tensors.every((t) => /sha256:[0-9a-f]{64}/.test(t.kappa)), + `opened from κ-bodies: ${plan.tensors.length} tensors each addressed by κ (no monolithic re-forge)`); + +// 2. L5 verify-on-receipt: every body re-derives to its κ on first get (store throws on mismatch) +const probe = plan.tensors[10].kappa.split(":").pop(); +let l5ok = false; try { const b = store.get(probe); l5ok = !!b; } catch { l5ok = false; } +ok(l5ok, `per-body L5: weight loaded by κ re-derives + is accepted`); +// tamper the archive → footer L5 refuses the whole thing +const tampered = bytes.slice(); tampered[Math.floor(bytes.length / 2)] ^= 0xff; +let refused = false; try { readHolo(tampered); } catch { refused = true; } +ok(refused, `tampered archive is REFUSED on receipt (footer L5)`); + +// 3. RUN the model from the κ-stream store — every matvec sources its weight by κ (cached after first L5) +const graph = synthesizeGraph(plan); +console.log(`[${el()}] graph: family=${graph.family} layers=${graph.stats.n_layer} — running forward from κ-bodies…`); +const logits = forward(plan, graph, store, TOKENS, { load: kstreamLoad }); +let am = 0; for (let j = 1; j < logits.length; j++) if (logits[j] > logits[am]) am = j; +console.log(`[${el()}] forward done: argmax=${am}, ${cache.size} κ-blocks cached (warm = O(1))`); +ok(am === EXPECT, `forward FROM κ-bodies → argmax ${am} == witnessed forge/llama.cpp (${EXPECT}) — parity preserved through the κ-stream`); +ok(cache.size === plan.tensors.length, `every weight loaded exactly once by κ then cached (${cache.size}/${plan.tensors.length}) — O(1) warm reuse`); + +console.log(`\n[${el()}] ${pass}/${pass + fail} green${fail ? " — FAIL" : " — WITNESSED: the LLM runs from κ-bodies by κ, L5, parity-exact"}`); +process.exit(fail ? 1 : 0); diff --git a/b/3a77c53fd63a6735015bb3c5ead2da91a673e5e58ee2066819720fa69140f911 b/b/3a77c53fd63a6735015bb3c5ead2da91a673e5e58ee2066819720fa69140f911 new file mode 100644 index 0000000000000000000000000000000000000000..94fcf556395df59995a3a429db5a477025155e70 --- /dev/null +++ b/b/3a77c53fd63a6735015bb3c5ead2da91a673e5e58ee2066819720fa69140f911 @@ -0,0 +1,33 @@ +import { useId, type ReactElement } from "react" + +type BacklightProps = { + children?: ReactElement + className?: string + blur?: number +} + +export function Backlight({ blur = 20, children, className }: BacklightProps) { + const id = useId() + + return ( +
+ + +
{children}
+
+ ) +} diff --git a/b/3a938e2c57784a1489082eb3188a29ef525c5494f104ff9b74e186ed282c64c4 b/b/3a938e2c57784a1489082eb3188a29ef525c5494f104ff9b74e186ed282c64c4 new file mode 100644 index 0000000000000000000000000000000000000000..0ae94e8e92c3f064dcd7834ef39e3630322bb780 --- /dev/null +++ b/b/3a938e2c57784a1489082eb3188a29ef525c5494f104ff9b74e186ed282c64c4 @@ -0,0 +1,32 @@ +import { GalleryVerticalEnd } from "lucide-react" + +import { SignupForm } from "@/registry/new-york-v4/blocks/signup-02/components/signup-form" + +export default function SignupPage() { + return ( +
+
+ +
+
+ +
+
+
+
+ Image +
+
+ ) +} diff --git a/b/3a99de9348ab7db10227bcce3069a7e9ca611828abf406eacacf7e090a974901 b/b/3a99de9348ab7db10227bcce3069a7e9ca611828abf406eacacf7e090a974901 new file mode 100644 index 0000000000000000000000000000000000000000..dd8826ac7ed70030e252529ca11ff0e7dd38a710 --- /dev/null +++ b/b/3a99de9348ab7db10227bcce3069a7e9ca611828abf406eacacf7e090a974901 @@ -0,0 +1,302 @@ +import { useId } from "react" + +import { cn } from "@/lib/utils" + +interface HexagonPatternProps extends React.SVGProps { + /** + * The radius of each hexagon (center to vertex). + * @default 40 + */ + radius?: number + /** + * Spacing in pixels between adjacent hexagons. + * The tile grows by this amount while the visual radius stays fixed, + * so the gap is evenly distributed on all sides of each hexagon. + * @default 0 + */ + gap?: number + /** + * Offset applied to the pattern origin on the x-axis. + * @default -1 + */ + x?: number + /** + * Offset applied to the pattern origin on the y-axis. + * @default -1 + */ + y?: number + /** + * Controls the orientation of the hexagons. + * - `"horizontal"` — flat-top hexagons tiled in a horizontal honeycomb grid. + * - `"vertical"` — pointy-top hexagons tiled in a vertical honeycomb grid. + * @default "horizontal" + */ + direction?: "horizontal" | "vertical" + /** + * SVG stroke-dasharray applied to each hexagon outline. + * @default "0" + */ + strokeDasharray?: string + /** + * Array of [col, row] coordinates for hexagons that should be highlighted + * (filled) on top of the repeating pattern — mirrors the `squares` prop of + * GridPattern. + */ + hexagons?: Array<[col: number, row: number]> + className?: string + [key: string]: unknown +} + +type HexPoint = readonly [number, number] + +function hexVertexList( + cx: number, + cy: number, + r: number, + direction: "horizontal" | "vertical" +): HexPoint[] { + const startAngle = direction === "horizontal" ? 0 : 30 + return Array.from({ length: 6 }, (_, i) => { + const angle = ((startAngle + i * 60) * Math.PI) / 180 + return [cx + r * Math.cos(angle), cy + r * Math.sin(angle)] as const + }) +} + +function hexPoints( + cx: number, + cy: number, + r: number, + direction: "horizontal" | "vertical" +): string { + return hexVertexList(cx, cy, r, direction) + .map(([px, py]) => `${px},${py}`) + .join(" ") +} + +function edgeLexKey(a: HexPoint, b: HexPoint): string { + const [p, q] = + a[0] < b[0] || (a[0] === b[0] && a[1] <= b[1]) ? [a, b] : [b, a] + return `${p[0].toFixed(6)},${p[1].toFixed(6)}|${q[0].toFixed(6)},${q[1].toFixed(6)}` +} + +function collectUniqueHexEdges( + centers: [number, number][], + r: number, + direction: "horizontal" | "vertical" +): [HexPoint, HexPoint][] { + const seen = new Set() + const edges: [HexPoint, HexPoint][] = [] + for (const [cx, cy] of centers) { + const verts = hexVertexList(cx, cy, r, direction) + for (let i = 0; i < 6; i++) { + const a = verts[i] + const b = verts[(i + 1) % 6] + const key = edgeLexKey(a, b) + if (!seen.has(key)) { + seen.add(key) + edges.push([a, b]) + } + } + } + return edges +} + +function isSolidStrokeDasharray(strokeDasharray: string): boolean { + const t = strokeDasharray.trim() + return t === "" || t === "none" || t === "0" +} + +function getHexSpacing( + r: number, + direction: "horizontal" | "vertical", + gap: number +): { + colStep: number + rowStep: number + tileW: number + tileH: number +} { + const sqrt3 = Math.sqrt(3) + + // `gap` should match the visible edge-to-edge spacing, so we add it along + // the shared-edge normal instead of directly on the raw x/y axes. + if (direction === "horizontal") { + const colStep = (3 * r) / 2 + (sqrt3 * gap) / 2 + const rowStep = sqrt3 * r + gap + + return { + colStep, + rowStep, + tileW: colStep * 2, + tileH: rowStep, + } + } + + const colStep = sqrt3 * r + gap + const rowStep = (3 * r) / 2 + (sqrt3 * gap) / 2 + + return { + colStep, + rowStep, + tileW: colStep, + tileH: rowStep * 2, + } +} + +function getTileGeometry( + r: number, + direction: "horizontal" | "vertical", + gap: number +): { + tileW: number + tileH: number + centers: [number, number][] +} { + if (direction === "horizontal") { + const { colStep, rowStep, tileW, tileH } = getHexSpacing(r, direction, gap) + + const canonical: [number, number][] = [ + [colStep / 2, rowStep / 2], + [(colStep * 3) / 2, rowStep], + ] + + const centers: [number, number][] = [] + for (const [cx, cy] of canonical) { + centers.push([cx, cy]) + if (cy - r < 0) centers.push([cx, cy + tileH]) + if (cy + r > tileH) centers.push([cx, cy - tileH]) + if (cx - r < 0) centers.push([cx + tileW, cy]) + if (cx + r > tileW) centers.push([cx - tileW, cy]) + if (cy - r < 0 && cx - r < 0) centers.push([cx + tileW, cy + tileH]) + if (cy - r < 0 && cx + r > tileW) centers.push([cx - tileW, cy + tileH]) + if (cy + r > tileH && cx - r < 0) centers.push([cx + tileW, cy - tileH]) + if (cy + r > tileH && cx + r > tileW) + centers.push([cx - tileW, cy - tileH]) + } + + return { tileW, tileH, centers } + } else { + const { colStep, rowStep, tileW, tileH } = getHexSpacing(r, direction, gap) + + const canonical: [number, number][] = [ + [colStep / 2, rowStep / 2], + [colStep, (rowStep * 3) / 2], + ] + + const centers: [number, number][] = [] + for (const [cx, cy] of canonical) { + centers.push([cx, cy]) + if (cy - r < 0) centers.push([cx, cy + tileH]) + if (cy + r > tileH) centers.push([cx, cy - tileH]) + if (cx - r < 0) centers.push([cx + tileW, cy]) + if (cx + r > tileW) centers.push([cx - tileW, cy]) + if (cy - r < 0 && cx - r < 0) centers.push([cx + tileW, cy + tileH]) + if (cy - r < 0 && cx + r > tileW) centers.push([cx - tileW, cy + tileH]) + if (cy + r > tileH && cx - r < 0) centers.push([cx + tileW, cy - tileH]) + if (cy + r > tileH && cx + r > tileW) + centers.push([cx - tileW, cy - tileH]) + } + + return { tileW, tileH, centers } + } +} + +function hexCenter( + col: number, + row: number, + r: number, + direction: "horizontal" | "vertical", + gap: number +): [number, number] { + if (direction === "horizontal") { + const { colStep, rowStep } = getHexSpacing(r, direction, gap) + const x = col * colStep + colStep / 2 + const y = row * rowStep + rowStep / 2 + (col % 2 !== 0 ? rowStep / 2 : 0) + return [x, y] + } else { + const { colStep, rowStep } = getHexSpacing(r, direction, gap) + const x = col * colStep + colStep / 2 + (row % 2 !== 0 ? colStep / 2 : 0) + const y = row * rowStep + rowStep / 2 + return [x, y] + } +} + +export function HexagonPattern({ + radius = 40, + gap = 0, + x = -1, + y = -1, + strokeDasharray = "0", + direction = "horizontal", + hexagons, + className, + ...props +}: HexagonPatternProps) { + const id = useId() + + const { tileW, tileH, centers } = getTileGeometry(radius, direction, gap) + const solidStroke = isSolidStrokeDasharray(strokeDasharray) + const dashedEdges = solidStroke + ? null + : collectUniqueHexEdges(centers, radius, direction) + + return ( + + ) +} diff --git a/b/3aa6fead7138f3b4274252b6825cb6931a779da3d7842087ac1cb7c99db4f736 b/b/3aa6fead7138f3b4274252b6825cb6931a779da3d7842087ac1cb7c99db4f736 new file mode 100644 index 0000000000000000000000000000000000000000..1cd4a31d5c70d280950e2ba893e2c034e517836d --- /dev/null +++ b/b/3aa6fead7138f3b4274252b6825cb6931a779da3d7842087ac1cb7c99db4f736 @@ -0,0 +1,21 @@ +{ + "id": "org.hologram.ui.chart.chart-line-label-custom", + "name": "chart-line-label-custom", + "tier": "chart", + "library": "shadcn", + "category": "Charts · Line", + "upstream": "https://ui.shadcn.com/r/styles/new-york-v4/chart-line-label-custom.json", + "did": "did:holo:sha256:e789387b957d5e223d6d02bd907401afaeb97cec41e7e91f5e147393265316a6", + "import": "holo://sha256:0a2f52114a32f2df4b1c52e7aa159553dc14c1e7b070b592cd9b7a17b1ca6d11", + "integrity": "sha256-Ci9SEUoy8t9LHFLnqhWVU9wUweewcLWSzZt6F7HKbRE=", + "kappa": "sha256:e789387b957d5e223d6d02bd907401afaeb97cec41e7e91f5e147393265316a6", + "moduleKappa": "sha256:0a2f52114a32f2df4b1c52e7aa159553dc14c1e7b070b592cd9b7a17b1ca6d11", + "renderExport": "ChartLineLabelCustom", + "source": "registry/new-york-v4/charts/chart-line-label-custom.tsx", + "module": "vendor/components/chart-line-label-custom.js", + "exports": [ + "description", + "ChartLineLabelCustom" + ], + "license": "MIT" +} diff --git a/b/3ab950487b0b6830bdd9f66051b963fe4be81ff80f8f06aebca95c9566435712 b/b/3ab950487b0b6830bdd9f66051b963fe4be81ff80f8f06aebca95c9566435712 new file mode 100644 index 0000000000000000000000000000000000000000..97efd268fdb0c2a5579135ce6815270835b9fbfa --- /dev/null +++ b/b/3ab950487b0b6830bdd9f66051b963fe4be81ff80f8f06aebca95c9566435712 @@ -0,0 +1,7 @@ +import svg from './object.js'; +import { addPrefix } from '../../functions/addPrefix.js'; + +export default ({ addBase, prefix = '' }) => { + const prefixedsvg = addPrefix(svg, prefix); + addBase({ ...prefixedsvg }); +}; diff --git a/b/3ae1b13c68cf22597fb05bf3be59ccb768880b06d4d9d6f16e56e9bd793b641c b/b/3ae1b13c68cf22597fb05bf3be59ccb768880b06d4d9d6f16e56e9bd793b641c new file mode 100644 index 0000000000000000000000000000000000000000..8a2a52d6e3fc10772f9346a099f46700939fcf11 --- /dev/null +++ b/b/3ae1b13c68cf22597fb05bf3be59ccb768880b06d4d9d6f16e56e9bd793b641c @@ -0,0 +1,39 @@ +// Witness the κ-route heal in holo-whisper-stream: when the .holo PATH is absent (static/IPFS deploy), +// the stream must fall back to /.holo/sha256/<κ> (SW heals from IPFS) and still parse + L5-verify. +// Deterministic via a stubbed fetch (path → 404, κ-route → the real bytes) — no IPFS needed. +import { readFileSync } from "node:fs"; +import { streamHolo } from "./holo-whisper-stream.mjs"; + +const HOLO = new URL("../.models/whisper-base.holo", import.meta.url); +const KAPPA = "9637ae57babfe22b1e08d013423856b44b060be7cf20204532b90250fbf04ea3"; +const raw = new Uint8Array(readFileSync(HOLO)); // the real .holo bytes (served only via the κ-route) + +let pathHits = 0, kHits = 0; +globalThis.fetch = async (u) => { + const url = String(u); + if (url.includes("/.holo/sha256/" + KAPPA)) { // healed route → whole body, 200 (no Range) + kHits++; + return { ok: true, status: 200, arrayBuffer: async () => raw.buffer }; + } + if (url.includes("whisper-base.holo")) { pathHits++; return { ok: false, status: 404, arrayBuffer: async () => new ArrayBuffer(0) }; } + return { ok: false, status: 404, arrayBuffer: async () => new ArrayBuffer(0) }; +}; + +let pass = 0, fail = 0; +const ok = (c, m) => { if (c) { pass++; console.log(" ok " + m); } else { fail++; console.log("FAIL " + m); } }; + +const H = await streamHolo("/apps/q/forge/.models/whisper-base.holo", { useOpfs: false, kappa: KAPPA }); +ok(H.stats.kappaRoute === true, "fell back to the κ-route after the path 404'd"); +ok(pathHits >= 1 && kHits >= 1, `tried path (${pathHits}) then healed by κ (${kHits})`); +ok(H.meta && H.meta.hparams && H.meta.hparams.n_audio_state > 0, "parsed meta from the κ-healed bytes"); + +// L5 still enforced on the healed bytes: fetch one tensor (re-derives its SHA-256 before accepting). +const name = H.meta.order[0].name; +const t = await H.getF32(name); +ok(t && t.length > 0 && Number.isFinite(t[0]), `getF32("${name}") L5-verifies from healed bytes (${t.length} f32)`); + +// header (vocab) reachable too — needed for detok +ok(H.headerBytes && H.headerBytes.length > 0, "vocab header present from healed bytes"); + +console.log(`\n${pass} passed, ${fail} failed`); +process.exit(fail ? 1 : 0); diff --git a/b/3b0216c890ec856dd3b874ecb4c08ce7903eafb337c4ab7f88f235919a2b44a4 b/b/3b0216c890ec856dd3b874ecb4c08ce7903eafb337c4ab7f88f235919a2b44a4 new file mode 100644 index 0000000000000000000000000000000000000000..9783d4f29c5cac97716c9e87c5cd3c47acc1a198 --- /dev/null +++ b/b/3b0216c890ec856dd3b874ecb4c08ce7903eafb337c4ab7f88f235919a2b44a4 @@ -0,0 +1,50 @@ +import { InfoIcon } from "lucide-react" + +import { + InputGroup, + InputGroupAddon, + InputGroupButton, + InputGroupInput, +} from "@/registry/new-york-v4/ui/input-group" +import { Label } from "@/registry/new-york-v4/ui/label" +import { + Tooltip, + TooltipContent, + TooltipTrigger, +} from "@/registry/new-york-v4/ui/tooltip" + +export default function InputGroupLabel() { + return ( +
+ + + + + + + + + + + + + + + + + +

We'll use this to send you notifications

+
+
+
+
+
+ ) +} diff --git a/b/3b2978f14804ef930d3852b78f91b2b57ffdd52a349e2a1d3f8ccda9b568e771 b/b/3b2978f14804ef930d3852b78f91b2b57ffdd52a349e2a1d3f8ccda9b568e771 new file mode 100644 index 0000000000000000000000000000000000000000..7f1fbca72f2214a10e569ce78d058f93a218a4f6 --- /dev/null +++ b/b/3b2978f14804ef930d3852b78f91b2b57ffdd52a349e2a1d3f8ccda9b568e771 @@ -0,0 +1,44 @@ +import { AppSidebar } from "@/registry/new-york-v4/blocks/sidebar-12/components/app-sidebar" +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbList, + BreadcrumbPage, +} from "@/registry/new-york-v4/ui/breadcrumb" +import { Separator } from "@/registry/new-york-v4/ui/separator" +import { + SidebarInset, + SidebarProvider, + SidebarTrigger, +} from "@/registry/new-york-v4/ui/sidebar" + +export default function Page() { + return ( + + + +
+ + + + + + October 2024 + + + +
+
+
+ {Array.from({ length: 20 }).map((_, i) => ( +
+ ))} +
+
+ + + ) +} diff --git a/b/3b72e9dfdb4e9003c0b00381344ac3e24d96abcb8a720996dd170313a65b5215 b/b/3b72e9dfdb4e9003c0b00381344ac3e24d96abcb8a720996dd170313a65b5215 new file mode 100644 index 0000000000000000000000000000000000000000..c527b8cb20156cfdf53f7dbc91a4e0b3533aff6e --- /dev/null +++ b/b/3b72e9dfdb4e9003c0b00381344ac3e24d96abcb8a720996dd170313a65b5215 @@ -0,0 +1,67 @@ +// S3 integration witness: QJL wired into the LIVE attention loop. Run a real forward with a +// TBQ3_0 K cache, with the QJL score-correction ON vs OFF, and vs the full-precision (f32) +// KV reference. QJL is an unbiased estimator of the stage-1-dropped — so the corrected +// logits must be CLOSER to the f32 reference than the uncorrected (decode-only) logits. V is +// f32 here to isolate the K-score correction. wk is correlated with wq (real attention has +// Q–K correlation — the regime where QJL matters; with independent Q⊥K there is no bias). +import assert from "node:assert"; +import { forgeGguf } from "./gguf-forge.mjs"; +import { synthesizeGraph } from "./gguf-forge-graph.mjs"; +import { forward } from "./gguf-forge-exec.mjs"; +import { GGML } from "./gguf-forge-dequant.mjs"; +import { KvMemory } from "./gguf-forge-kvmem.mjs"; + +let pass = 0, fail = 0; +const ok = (c, m) => { if (c) { console.log(` ok ${m}`); pass++; } else { console.log(` XX ${m}`); fail++; } }; +const L2 = (a, b) => { let s = 0; for (let i = 0; i < a.length; i++) s += (a[i] - b[i]) ** 2; return Math.sqrt(s); }; + +const D = 256, NH = 2, NHKV = 1, HD = 128, FF = 256, V = 16, NL = 1, EPS = 1e-5, FREQ = 10000; +const QD = NH * HD, KVDIM = NHKV * HD; +let s = 0x4242 >>> 0; const r = () => { s = (s * 1664525 + 1013904223) >>> 0; return (s / 4294967296) * 2 - 1; }; +const rf = (n, sc = 0.08) => Float32Array.from({ length: n }, () => r() * sc); +const nf = (n) => Float32Array.from({ length: n }, () => Math.abs(r()) + 0.5); + +const wq = rf(QD * D); +const wk = new Float32Array(KVDIM * D); for (let i = 0; i < KVDIM * D; i++) wk[i] = wq[i]; // wk = wq's first KVDIM rows → K correlates with Q +const W = { + "token_embd.weight": rf(V * D, 0.3), "output_norm.weight": nf(D), + "blk.0.attn_norm.weight": nf(D), "blk.0.ffn_norm.weight": nf(D), + "blk.0.attn_q.weight": wq, "blk.0.attn_k.weight": wk, "blk.0.attn_v.weight": rf(KVDIM * D), "blk.0.attn_output.weight": rf(D * QD), + "blk.0.ffn_gate.weight": rf(FF * D), "blk.0.ffn_up.weight": rf(FF * D), "blk.0.ffn_down.weight": rf(D * FF), +}; +const dimsFor = (n) => n === "token_embd.weight" ? [D, V] : /attn_q\.weight$/.test(n) ? [D, QD] : /attn_(k|v)\.weight$/.test(n) ? [D, KVDIM] : /attn_output\.weight$/.test(n) ? [QD, D] : /ffn_(gate|up)\.weight$/.test(n) ? [D, FF] : /ffn_down\.weight$/.test(n) ? [FF, D] : [D]; + +function buildGguf(meta, tensors) { + const ALIGN = 32; let off = 0; + const infos = tensors.map((t) => { const o = off; off = Math.ceil((o + t.bytes.length) / ALIGN) * ALIGN; return { ...t, offset: o }; }); + let parts = [], len = 0; const push = (b) => { parts.push(b); len += b.length; }; + const u32 = (v) => { const b = new Uint8Array(4); new DataView(b.buffer).setUint32(0, v >>> 0, true); push(b); }; + const u64 = (v) => { const b = new Uint8Array(8); const dv = new DataView(b.buffer); dv.setUint32(0, v >>> 0, true); dv.setUint32(4, Math.floor(v / 4294967296), true); push(b); }; + const str = (x) => { const e = new TextEncoder().encode(x); u64(e.length); push(e); }; + push(new TextEncoder().encode("GGUF")); u32(3); u64(tensors.length); u64(Object.keys(meta).length); + for (const [k, val] of Object.entries(meta)) { str(k); if (typeof val === "string") { u32(8); str(val); } else { u32(4); u32(val); } } + for (const ti of infos) { str(ti.name); u32(ti.dims.length); for (const d of ti.dims) u64(d); u32(ti.type); u64(ti.offset); } + if (len % ALIGN) push(new Uint8Array(ALIGN - (len % ALIGN))); + const dataStart = len; for (const ti of infos) { while (len < dataStart + ti.offset) push(new Uint8Array(1)); push(ti.bytes); } + const out = new Uint8Array(len); let o = 0; for (const p of parts) { out.set(p, o); o += p.length; } return out; +} +const f32b = (a) => new Uint8Array(a.buffer.slice(a.byteOffset, a.byteOffset + a.byteLength)); +const meta = { "general.architecture": "llama", "llama.block_count": NL, "llama.embedding_length": D, "llama.attention.head_count": NH, "llama.attention.head_count_kv": NHKV, "llama.feed_forward_length": FF, "llama.rope.dimension_count": HD, "llama.rope.freq_base": FREQ, "llama.attention.layer_norm_rms_epsilon": EPS }; +const f = forgeGguf(buildGguf(meta, Object.entries(W).map(([name, arr]) => ({ name, type: GGML.F32, dims: dimsFor(name), bytes: f32b(arr) })))); +const graph = synthesizeGraph(f.plan); +const store = { get: (h) => f.blocks.get(h) }; +const tokens = [3, 1, 4, 2, 0, 2]; + +const refLogits = Array.from(forward(f.plan, graph, store, tokens)); // f32 KV (no memory) +const kvOff = new KvMemory({ typeK: 42, typeV: 0, nLayer: NL }); kvOff.qjl = false; // TBQ K, correction OFF +const offLogits = Array.from(forward(f.plan, graph, store, tokens, { memory: kvOff })); +const kvOn = new KvMemory({ typeK: 42, typeV: 0, nLayer: NL }); // TBQ K, correction ON (default) +const onLogits = Array.from(forward(f.plan, graph, store, tokens, { memory: kvOn })); + +ok(kvOn.qjlActive() && !kvOff.qjlActive(), `qjlActive() gates on TBQ + this.qjl flag`); +ok(L2(onLogits, offLogits) > 1e-6, `QJL correction changes the forward (on ≠ off)`); +const dOff = L2(offLogits, refLogits), dOn = L2(onLogits, refLogits); +ok(dOn < dOff, `QJL-corrected logits closer to f32-KV reference: ‖off−ref‖=${dOff.toFixed(4)} → ‖on−ref‖=${dOn.toFixed(4)} (${(dOff / dOn).toFixed(2)}×)`); + +console.log(`\n${pass} passed, ${fail} failed`); +process.exit(fail ? 1 : 0); diff --git a/b/3b82c6b2c4d3398a9c47e8f61e2bf67c134bc71774f0d532d88808c01663d3c0 b/b/3b82c6b2c4d3398a9c47e8f61e2bf67c134bc71774f0d532d88808c01663d3c0 new file mode 100644 index 0000000000000000000000000000000000000000..1c7b0c3d39ac54202dc865cce7f1d4b7e3a2430f --- /dev/null +++ b/b/3b82c6b2c4d3398a9c47e8f61e2bf67c134bc71774f0d532d88808c01663d3c0 @@ -0,0 +1,21 @@ +{ + "id": "org.hologram.ui.chart.chart-bar-interactive", + "name": "chart-bar-interactive", + "tier": "chart", + "library": "shadcn", + "category": "Charts · Bar", + "upstream": "https://ui.shadcn.com/r/styles/new-york-v4/chart-bar-interactive.json", + "did": "did:holo:sha256:aa01c82fb2a4edc6ec458144422ed2a50403310b05c1d301ba6c3485bebbbf90", + "import": "holo://sha256:d71a0db4be1a9c1d1df0d9587c3fd438c06f6f0a2adb08c750655880e0d3db98", + "integrity": "sha256-1xoNtL4anB0d8NlYfD/UOMBvbwoq2wjHUGVYgODT25g=", + "kappa": "sha256:aa01c82fb2a4edc6ec458144422ed2a50403310b05c1d301ba6c3485bebbbf90", + "moduleKappa": "sha256:d71a0db4be1a9c1d1df0d9587c3fd438c06f6f0a2adb08c750655880e0d3db98", + "renderExport": "ChartBarInteractive", + "source": "registry/new-york-v4/charts/chart-bar-interactive.tsx", + "module": "vendor/components/chart-bar-interactive.js", + "exports": [ + "description", + "ChartBarInteractive" + ], + "license": "MIT" +} diff --git a/b/3baeb234bb75c51d16dd270cf9c47f48c1b14162dbcceb866d0f29c792032bbd b/b/3baeb234bb75c51d16dd270cf9c47f48c1b14162dbcceb866d0f29c792032bbd new file mode 100644 index 0000000000000000000000000000000000000000..0f1cdea0dad4b272c491a1ba92f96e7c3c07ae96 --- /dev/null +++ b/b/3baeb234bb75c51d16dd270cf9c47f48c1b14162dbcceb866d0f29c792032bbd @@ -0,0 +1,59 @@ +import{forwardRef as ra,createElement as da}from"react";var Fe=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),le=(...e)=>e.filter((t,a,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===a).join(" ").trim();import{forwardRef as ua,createElement as ve}from"react";var De={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Re=ua(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:r="",children:s,iconNode:f,...p},m)=>ve("svg",{ref:m,...De,width:t,height:t,stroke:e,strokeWidth:o?Number(a)*24/Number(t):a,className:le("lucide",r),...p},[...f.map(([i,L])=>ve(i,L)),...Array.isArray(s)?s:[s]]));var ue=(e,t)=>{let a=ra(({className:o,...r},s)=>da(Re,{ref:s,iconNode:t,className:le(`lucide-${Fe(e)}`,o),...r}));return a.displayName=`${e}`,a};var R=ue("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);var J=ue("Loader",[["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m16.2 7.8 2.9-2.9",key:"r700ao"}],["path",{d:"M18 12h4",key:"wj9ykh"}],["path",{d:"m16.2 16.2 2.9 2.9",key:"1bxg5t"}],["path",{d:"M12 18v4",key:"jadmvz"}],["path",{d:"m4.9 19.1 2.9-2.9",key:"bwix9q"}],["path",{d:"M2 12h4",key:"j09sii"}],["path",{d:"m4.9 4.9 2.9 2.9",key:"giyufr"}]]);function Te(e){var t,a,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;ttypeof e=="boolean"?`${e}`:e===0?"0":e,Ue=re,Q=(e,t)=>a=>{var o;if(t?.variants==null)return Ue(e,a?.class,a?.className);let{variants:r,defaultVariants:s}=t,f=Object.keys(r).map(i=>{let L=a?.[i],x=s?.[i];if(L===null)return null;let k=qe(L)||qe(x);return r[i][k]}),p=a&&Object.entries(a).reduce((i,L)=>{let[x,k]=L;return k===void 0||(i[x]=k),i},{}),m=t==null||(o=t.compoundVariants)===null||o===void 0?void 0:o.reduce((i,L)=>{let{class:x,className:k,...B}=L;return Object.entries(B).every(U=>{let[C,h]=U;return Array.isArray(h)?h.includes({...s,...p}[C]):{...s,...p}[C]===h})?[...i,x,k]:i},[]);return Ue(e,f,m,a?.class,a?.className)};var sa=(e,t)=>{let a=new Array(e.length+t.length);for(let o=0;o({classGroupId:e,validator:t}),Ee=(e=new Map,t=null,a)=>({nextPart:e,validators:t,classGroupId:a}),fe="-",Oe=[],ia="arbitrary..",na=e=>{let t=pa(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:f=>{if(f.startsWith("[")&&f.endsWith("]"))return ca(f);let p=f.split(fe),m=p[0]===""&&p.length>1?1:0;return Ne(p,m,t)},getConflictingClassGroupIds:(f,p)=>{if(p){let m=o[f],i=a[f];return m?i?sa(i,m):m:i||Oe}return a[f]||Oe}}},Ne=(e,t,a)=>{if(e.length-t===0)return a.classGroupId;let r=e[t],s=a.nextPart.get(r);if(s){let i=Ne(e,t+1,s);if(i)return i}let f=a.validators;if(f===null)return;let p=t===0?e.join(fe):e.slice(t).join(fe),m=f.length;for(let i=0;ie.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let t=e.slice(1,-1),a=t.indexOf(":"),o=t.slice(0,a);return o?ia+o:void 0})(),pa=e=>{let{theme:t,classGroups:a}=e;return ma(a,t)},ma=(e,t)=>{let a=Ee();for(let o in e){let r=e[o];Ce(r,a,o,t)}return a},Ce=(e,t,a,o)=>{let r=e.length;for(let s=0;s{if(typeof e=="string"){xa(e,t,a);return}if(typeof e=="function"){Ia(e,t,a,o);return}ga(e,t,a,o)},xa=(e,t,a)=>{let o=e===""?t:Xe(t,e);o.classGroupId=a},Ia=(e,t,a,o)=>{if(Ca(e)){Ce(e(o),t,a,o);return}t.validators===null&&(t.validators=[]),t.validators.push(fa(a,e))},ga=(e,t,a,o)=>{let r=Object.entries(e),s=r.length;for(let f=0;f{let a=e,o=t.split(fe),r=o.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,ha=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,a=Object.create(null),o=Object.create(null),r=(s,f)=>{a[s]=f,t++,t>e&&(t=0,o=a,a=Object.create(null))};return{get(s){let f=a[s];if(f!==void 0)return f;if((f=o[s])!==void 0)return r(s,f),f},set(s,f){s in a?a[s]=f:r(s,f)}}},ge="!",He=":",Sa=[],Ge=(e,t,a,o,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:a,maybePostfixModifierPosition:o,isExternal:r}),wa=e=>{let{prefix:t,experimentalParseClassName:a}=e,o=r=>{let s=[],f=0,p=0,m=0,i,L=r.length;for(let C=0;Cm?i-m:void 0;return Ge(s,B,k,U)};if(t){let r=t+He,s=o;o=f=>f.startsWith(r)?s(f.slice(r.length)):Ge(Sa,!1,f,void 0,!0)}if(a){let r=o;o=s=>a({className:s,parseClassName:r})}return o},ka=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((a,o)=>{t.set(a,1e6+o)}),a=>{let o=[],r=[];for(let s=0;s0&&(r.sort(),o.push(...r),r=[]),o.push(f)):r.push(f)}return r.length>0&&(r.sort(),o.push(...r)),o}},ba=e=>({cache:ha(e.cacheSize),parseClassName:wa(e),sortModifiers:ka(e),postfixLookupClassGroupIds:Pa(e),...na(e)}),Pa=e=>{let t=Object.create(null),a=e.postfixLookupClassGroups;if(a)for(let o=0;o{let{parseClassName:a,getClassGroupId:o,getConflictingClassGroupIds:r,sortModifiers:s,postfixLookupClassGroupIds:f}=t,p=[],m=e.trim().split(Aa),i="";for(let L=m.length-1;L>=0;L-=1){let x=m[L],{isExternal:k,modifiers:B,hasImportantModifier:U,baseClassName:C,maybePostfixModifierPosition:h}=a(x);if(k){i=x+(i.length>0?" "+i:i);continue}let O=!!h,P;if(O){let D=C.substring(0,h);P=o(D);let d=P&&f[P]?o(C):void 0;d&&d!==P&&(P=d,O=!1)}else P=o(C);if(!P){if(!O){i=x+(i.length>0?" "+i:i);continue}if(P=o(C),!P){i=x+(i.length>0?" "+i:i);continue}O=!1}let Z=B.length===0?"":B.length===1?B[0]:s(B).join(":"),V=U?Z+ge:Z,W=V+P;if(p.indexOf(W)>-1)continue;p.push(W);let E=r(P,O);for(let D=0;D0?" "+i:i)}return i},ya=(...e)=>{let t=0,a,o,r="";for(;t{if(typeof e=="string")return e;let t,a="";for(let o=0;o{let a,o,r,s,f=m=>{let i=t.reduce((L,x)=>x(L),e());return a=ba(i),o=a.cache.get,r=a.cache.set,s=p,p(m)},p=m=>{let i=o(m);if(i)return i;let L=Ba(m,a);return r(m,L),L};return s=f,(...m)=>s(ya(...m))},Fa=[],I=e=>{let t=a=>a[e]||Fa;return t.isThemeGetter=!0,t},Ze=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Je=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Da=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,va=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ra=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Ta=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,qa=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Ua=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,T=e=>Da.test(e),c=e=>!!e&&!Number.isNaN(Number(e)),F=e=>!!e&&Number.isInteger(Number(e)),Ie=e=>e.endsWith("%")&&c(e.slice(0,-1)),v=e=>va.test(e),Qe=()=>!0,Oa=e=>Ra.test(e)&&!Ta.test(e),he=()=>!1,Ha=e=>qa.test(e),Ga=e=>Ua.test(e),za=e=>!l(e)&&!u(e),Va=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Wa=e=>q(e,Ye,he),l=e=>Ze.test(e),G=e=>q(e,$e,Oa),ze=e=>q(e,ja,c),Ea=e=>q(e,aa,Qe),Na=e=>q(e,ea,he),Ve=e=>q(e,je,he),Xa=e=>q(e,_e,Ga),de=e=>q(e,ta,Ha),u=e=>Je.test(e),j=e=>z(e,$e),Ka=e=>z(e,ea),We=e=>z(e,je),Za=e=>z(e,Ye),Ja=e=>z(e,_e),se=e=>z(e,ta,!0),Qa=e=>z(e,aa,!0),q=(e,t,a)=>{let o=Ze.exec(e);return o?o[1]?t(o[1]):a(o[2]):!1},z=(e,t,a=!1)=>{let o=Je.exec(e);return o?o[1]?t(o[1]):a:!1},je=e=>e==="position"||e==="percentage",_e=e=>e==="image"||e==="url",Ye=e=>e==="length"||e==="size"||e==="bg-size",$e=e=>e==="length",ja=e=>e==="number",ea=e=>e==="family-name",aa=e=>e==="number"||e==="weight",ta=e=>e==="shadow";var _a=()=>{let e=I("color"),t=I("font"),a=I("text"),o=I("font-weight"),r=I("tracking"),s=I("leading"),f=I("breakpoint"),p=I("container"),m=I("spacing"),i=I("radius"),L=I("shadow"),x=I("inset-shadow"),k=I("text-shadow"),B=I("drop-shadow"),U=I("blur"),C=I("perspective"),h=I("aspect"),O=I("ease"),P=I("animate"),Z=()=>["auto","avoid","all","avoid-page","page","left","right","column"],V=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],W=()=>[...V(),u,l],E=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto","contain","none"],d=()=>[u,l,m],A=()=>[T,"full","auto",...d()],we=()=>[F,"none","subgrid",u,l],ke=()=>["auto",{span:["full",F,u,l]},F,u,l],$=()=>[F,"auto",u,l],be=()=>["auto","min","max","fr",u,l],ce=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],N=()=>["start","end","center","stretch","center-safe","end-safe"],y=()=>["auto",...d()],H=()=>[T,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...d()],pe=()=>[T,"screen","full","dvw","lvw","svw","min","max","fit",...d()],me=()=>[T,"screen","full","lh","dvh","lvh","svh","min","max","fit",...d()],n=()=>[e,u,l],Pe=()=>[...V(),We,Ve,{position:[u,l]}],Ae=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Be=()=>["auto","cover","contain",Za,Wa,{size:[u,l]}],Le=()=>[Ie,j,G],S=()=>["","none","full",i,u,l],w=()=>["",c,j,G],ee=()=>["solid","dashed","dotted","double"],ye=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],g=()=>[c,Ie,We,Ve],Me=()=>["","none",U,u,l],ae=()=>["none",c,u,l],te=()=>["none",c,u,l],xe=()=>[c,u,l],oe=()=>[T,"full",...d()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[v],breakpoint:[v],color:[Qe],container:[v],"drop-shadow":[v],ease:["in","out","in-out"],font:[za],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[v],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[v],shadow:[v],spacing:["px",c],text:[v],"text-shadow":[v],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",T,l,u,h]}],container:["container"],"container-type":[{"@container":["","normal","size",u,l]}],"container-named":[Va],columns:[{columns:[c,l,u,p]}],"break-after":[{"break-after":Z()}],"break-before":[{"break-before":Z()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:W()}],overflow:[{overflow:E()}],"overflow-x":[{"overflow-x":E()}],"overflow-y":[{"overflow-y":E()}],overscroll:[{overscroll:D()}],"overscroll-x":[{"overscroll-x":D()}],"overscroll-y":[{"overscroll-y":D()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:A()}],"inset-x":[{"inset-x":A()}],"inset-y":[{"inset-y":A()}],start:[{"inset-s":A(),start:A()}],end:[{"inset-e":A(),end:A()}],"inset-bs":[{"inset-bs":A()}],"inset-be":[{"inset-be":A()}],top:[{top:A()}],right:[{right:A()}],bottom:[{bottom:A()}],left:[{left:A()}],visibility:["visible","invisible","collapse"],z:[{z:[F,"auto",u,l]}],basis:[{basis:[T,"full","auto",p,...d()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[c,T,"auto","initial","none",l]}],grow:[{grow:["",c,u,l]}],shrink:[{shrink:["",c,u,l]}],order:[{order:[F,"first","last","none",u,l]}],"grid-cols":[{"grid-cols":we()}],"col-start-end":[{col:ke()}],"col-start":[{"col-start":$()}],"col-end":[{"col-end":$()}],"grid-rows":[{"grid-rows":we()}],"row-start-end":[{row:ke()}],"row-start":[{"row-start":$()}],"row-end":[{"row-end":$()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":be()}],"auto-rows":[{"auto-rows":be()}],gap:[{gap:d()}],"gap-x":[{"gap-x":d()}],"gap-y":[{"gap-y":d()}],"justify-content":[{justify:[...ce(),"normal"]}],"justify-items":[{"justify-items":[...N(),"normal"]}],"justify-self":[{"justify-self":["auto",...N()]}],"align-content":[{content:["normal",...ce()]}],"align-items":[{items:[...N(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...N(),{baseline:["","last"]}]}],"place-content":[{"place-content":ce()}],"place-items":[{"place-items":[...N(),"baseline"]}],"place-self":[{"place-self":["auto",...N()]}],p:[{p:d()}],px:[{px:d()}],py:[{py:d()}],ps:[{ps:d()}],pe:[{pe:d()}],pbs:[{pbs:d()}],pbe:[{pbe:d()}],pt:[{pt:d()}],pr:[{pr:d()}],pb:[{pb:d()}],pl:[{pl:d()}],m:[{m:y()}],mx:[{mx:y()}],my:[{my:y()}],ms:[{ms:y()}],me:[{me:y()}],mbs:[{mbs:y()}],mbe:[{mbe:y()}],mt:[{mt:y()}],mr:[{mr:y()}],mb:[{mb:y()}],ml:[{ml:y()}],"space-x":[{"space-x":d()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":d()}],"space-y-reverse":["space-y-reverse"],size:[{size:H()}],"inline-size":[{inline:["auto",...pe()]}],"min-inline-size":[{"min-inline":["auto",...pe()]}],"max-inline-size":[{"max-inline":["none",...pe()]}],"block-size":[{block:["auto",...me()]}],"min-block-size":[{"min-block":["auto",...me()]}],"max-block-size":[{"max-block":["none",...me()]}],w:[{w:[p,"screen",...H()]}],"min-w":[{"min-w":[p,"screen","none",...H()]}],"max-w":[{"max-w":[p,"screen","none","prose",{screen:[f]},...H()]}],h:[{h:["screen","lh",...H()]}],"min-h":[{"min-h":["screen","lh","none",...H()]}],"max-h":[{"max-h":["screen","lh",...H()]}],"font-size":[{text:["base",a,j,G]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,Qa,Ea]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ie,l]}],"font-family":[{font:[Ka,Na,t]}],"font-features":[{"font-features":[l]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,u,l]}],"line-clamp":[{"line-clamp":[c,"none",u,ze]}],leading:[{leading:[s,...d()]}],"list-image":[{"list-image":["none",u,l]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",u,l]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:n()}],"text-color":[{text:n()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ee(),"wavy"]}],"text-decoration-thickness":[{decoration:[c,"from-font","auto",u,G]}],"text-decoration-color":[{decoration:n()}],"underline-offset":[{"underline-offset":[c,"auto",u,l]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:d()}],"tab-size":[{tab:[F,u,l]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",u,l]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",u,l]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Pe()}],"bg-repeat":[{bg:Ae()}],"bg-size":[{bg:Be()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},F,u,l],radial:["",u,l],conic:[F,u,l]},Ja,Xa]}],"bg-color":[{bg:n()}],"gradient-from-pos":[{from:Le()}],"gradient-via-pos":[{via:Le()}],"gradient-to-pos":[{to:Le()}],"gradient-from":[{from:n()}],"gradient-via":[{via:n()}],"gradient-to":[{to:n()}],rounded:[{rounded:S()}],"rounded-s":[{"rounded-s":S()}],"rounded-e":[{"rounded-e":S()}],"rounded-t":[{"rounded-t":S()}],"rounded-r":[{"rounded-r":S()}],"rounded-b":[{"rounded-b":S()}],"rounded-l":[{"rounded-l":S()}],"rounded-ss":[{"rounded-ss":S()}],"rounded-se":[{"rounded-se":S()}],"rounded-ee":[{"rounded-ee":S()}],"rounded-es":[{"rounded-es":S()}],"rounded-tl":[{"rounded-tl":S()}],"rounded-tr":[{"rounded-tr":S()}],"rounded-br":[{"rounded-br":S()}],"rounded-bl":[{"rounded-bl":S()}],"border-w":[{border:w()}],"border-w-x":[{"border-x":w()}],"border-w-y":[{"border-y":w()}],"border-w-s":[{"border-s":w()}],"border-w-e":[{"border-e":w()}],"border-w-bs":[{"border-bs":w()}],"border-w-be":[{"border-be":w()}],"border-w-t":[{"border-t":w()}],"border-w-r":[{"border-r":w()}],"border-w-b":[{"border-b":w()}],"border-w-l":[{"border-l":w()}],"divide-x":[{"divide-x":w()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":w()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ee(),"hidden","none"]}],"divide-style":[{divide:[...ee(),"hidden","none"]}],"border-color":[{border:n()}],"border-color-x":[{"border-x":n()}],"border-color-y":[{"border-y":n()}],"border-color-s":[{"border-s":n()}],"border-color-e":[{"border-e":n()}],"border-color-bs":[{"border-bs":n()}],"border-color-be":[{"border-be":n()}],"border-color-t":[{"border-t":n()}],"border-color-r":[{"border-r":n()}],"border-color-b":[{"border-b":n()}],"border-color-l":[{"border-l":n()}],"divide-color":[{divide:n()}],"outline-style":[{outline:[...ee(),"none","hidden"]}],"outline-offset":[{"outline-offset":[c,u,l]}],"outline-w":[{outline:["",c,j,G]}],"outline-color":[{outline:n()}],shadow:[{shadow:["","none",L,se,de]}],"shadow-color":[{shadow:n()}],"inset-shadow":[{"inset-shadow":["none",x,se,de]}],"inset-shadow-color":[{"inset-shadow":n()}],"ring-w":[{ring:w()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:n()}],"ring-offset-w":[{"ring-offset":[c,G]}],"ring-offset-color":[{"ring-offset":n()}],"inset-ring-w":[{"inset-ring":w()}],"inset-ring-color":[{"inset-ring":n()}],"text-shadow":[{"text-shadow":["none",k,se,de]}],"text-shadow-color":[{"text-shadow":n()}],opacity:[{opacity:[c,u,l]}],"mix-blend":[{"mix-blend":[...ye(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":ye()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[c]}],"mask-image-linear-from-pos":[{"mask-linear-from":g()}],"mask-image-linear-to-pos":[{"mask-linear-to":g()}],"mask-image-linear-from-color":[{"mask-linear-from":n()}],"mask-image-linear-to-color":[{"mask-linear-to":n()}],"mask-image-t-from-pos":[{"mask-t-from":g()}],"mask-image-t-to-pos":[{"mask-t-to":g()}],"mask-image-t-from-color":[{"mask-t-from":n()}],"mask-image-t-to-color":[{"mask-t-to":n()}],"mask-image-r-from-pos":[{"mask-r-from":g()}],"mask-image-r-to-pos":[{"mask-r-to":g()}],"mask-image-r-from-color":[{"mask-r-from":n()}],"mask-image-r-to-color":[{"mask-r-to":n()}],"mask-image-b-from-pos":[{"mask-b-from":g()}],"mask-image-b-to-pos":[{"mask-b-to":g()}],"mask-image-b-from-color":[{"mask-b-from":n()}],"mask-image-b-to-color":[{"mask-b-to":n()}],"mask-image-l-from-pos":[{"mask-l-from":g()}],"mask-image-l-to-pos":[{"mask-l-to":g()}],"mask-image-l-from-color":[{"mask-l-from":n()}],"mask-image-l-to-color":[{"mask-l-to":n()}],"mask-image-x-from-pos":[{"mask-x-from":g()}],"mask-image-x-to-pos":[{"mask-x-to":g()}],"mask-image-x-from-color":[{"mask-x-from":n()}],"mask-image-x-to-color":[{"mask-x-to":n()}],"mask-image-y-from-pos":[{"mask-y-from":g()}],"mask-image-y-to-pos":[{"mask-y-to":g()}],"mask-image-y-from-color":[{"mask-y-from":n()}],"mask-image-y-to-color":[{"mask-y-to":n()}],"mask-image-radial":[{"mask-radial":[u,l]}],"mask-image-radial-from-pos":[{"mask-radial-from":g()}],"mask-image-radial-to-pos":[{"mask-radial-to":g()}],"mask-image-radial-from-color":[{"mask-radial-from":n()}],"mask-image-radial-to-color":[{"mask-radial-to":n()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":V()}],"mask-image-conic-pos":[{"mask-conic":[c]}],"mask-image-conic-from-pos":[{"mask-conic-from":g()}],"mask-image-conic-to-pos":[{"mask-conic-to":g()}],"mask-image-conic-from-color":[{"mask-conic-from":n()}],"mask-image-conic-to-color":[{"mask-conic-to":n()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Pe()}],"mask-repeat":[{mask:Ae()}],"mask-size":[{mask:Be()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",u,l]}],filter:[{filter:["","none",u,l]}],blur:[{blur:Me()}],brightness:[{brightness:[c,u,l]}],contrast:[{contrast:[c,u,l]}],"drop-shadow":[{"drop-shadow":["","none",B,se,de]}],"drop-shadow-color":[{"drop-shadow":n()}],grayscale:[{grayscale:["",c,u,l]}],"hue-rotate":[{"hue-rotate":[c,u,l]}],invert:[{invert:["",c,u,l]}],saturate:[{saturate:[c,u,l]}],sepia:[{sepia:["",c,u,l]}],"backdrop-filter":[{"backdrop-filter":["","none",u,l]}],"backdrop-blur":[{"backdrop-blur":Me()}],"backdrop-brightness":[{"backdrop-brightness":[c,u,l]}],"backdrop-contrast":[{"backdrop-contrast":[c,u,l]}],"backdrop-grayscale":[{"backdrop-grayscale":["",c,u,l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[c,u,l]}],"backdrop-invert":[{"backdrop-invert":["",c,u,l]}],"backdrop-opacity":[{"backdrop-opacity":[c,u,l]}],"backdrop-saturate":[{"backdrop-saturate":[c,u,l]}],"backdrop-sepia":[{"backdrop-sepia":["",c,u,l]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":d()}],"border-spacing-x":[{"border-spacing-x":d()}],"border-spacing-y":[{"border-spacing-y":d()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",u,l]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[c,"initial",u,l]}],ease:[{ease:["linear","initial",O,u,l]}],delay:[{delay:[c,u,l]}],animate:[{animate:["none",P,u,l]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[C,u,l]}],"perspective-origin":[{"perspective-origin":W()}],rotate:[{rotate:ae()}],"rotate-x":[{"rotate-x":ae()}],"rotate-y":[{"rotate-y":ae()}],"rotate-z":[{"rotate-z":ae()}],scale:[{scale:te()}],"scale-x":[{"scale-x":te()}],"scale-y":[{"scale-y":te()}],"scale-z":[{"scale-z":te()}],"scale-3d":["scale-3d"],skew:[{skew:xe()}],"skew-x":[{"skew-x":xe()}],"skew-y":[{"skew-y":xe()}],transform:[{transform:[u,l,"","none","gpu","cpu"]}],"transform-origin":[{origin:W()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:oe()}],"translate-x":[{"translate-x":oe()}],"translate-y":[{"translate-y":oe()}],"translate-z":[{"translate-z":oe()}],"translate-none":["translate-none"],zoom:[{zoom:[F,u,l]}],accent:[{accent:n()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:n()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",u,l]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":n()}],"scrollbar-track-color":[{"scrollbar-track":n()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":d()}],"scroll-mx":[{"scroll-mx":d()}],"scroll-my":[{"scroll-my":d()}],"scroll-ms":[{"scroll-ms":d()}],"scroll-me":[{"scroll-me":d()}],"scroll-mbs":[{"scroll-mbs":d()}],"scroll-mbe":[{"scroll-mbe":d()}],"scroll-mt":[{"scroll-mt":d()}],"scroll-mr":[{"scroll-mr":d()}],"scroll-mb":[{"scroll-mb":d()}],"scroll-ml":[{"scroll-ml":d()}],"scroll-p":[{"scroll-p":d()}],"scroll-px":[{"scroll-px":d()}],"scroll-py":[{"scroll-py":d()}],"scroll-ps":[{"scroll-ps":d()}],"scroll-pe":[{"scroll-pe":d()}],"scroll-pbs":[{"scroll-pbs":d()}],"scroll-pbe":[{"scroll-pbe":d()}],"scroll-pt":[{"scroll-pt":d()}],"scroll-pr":[{"scroll-pr":d()}],"scroll-pb":[{"scroll-pb":d()}],"scroll-pl":[{"scroll-pl":d()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",u,l]}],fill:[{fill:["none",...n()]}],"stroke-w":[{stroke:[c,j,G,ze]}],stroke:[{stroke:["none",...n()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var oa=Ma(_a);function M(...e){return oa(re(e))}import{jsx as Ft}from"react/jsx-runtime";var yt=Q("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});import{jsx as Ya}from"react/jsx-runtime";function la({className:e,type:t,...a}){return Ya("input",{type:t,"data-slot":"input",className:M("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...a})}import{jsx as Ot}from"react/jsx-runtime";import{jsx as ie}from"react/jsx-runtime";function _({className:e,...t}){return ie("div",{"data-slot":"input-group",role:"group",className:M("group/input-group relative flex w-full items-center rounded-md border border-input shadow-xs transition-[color,box-shadow] outline-none dark:bg-input/30","h-9 min-w-0 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",e),...t})}var $a=Q("flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium text-muted-foreground select-none group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function X({className:e,align:t="inline-start",...a}){return ie("div",{role:"group","data-slot":"input-group-addon","data-align":t,className:M($a({align:t}),e),onClick:o=>{o.target.closest("button")||o.currentTarget.parentElement?.querySelector("input")?.focus()},...a})}var Kt=Q("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function Se({className:e,...t}){return ie("span",{className:M("flex items-center gap-2 text-sm text-muted-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4",e),...t})}function Y({className:e,...t}){return ie(la,{"data-slot":"input-group-control",className:M("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",e),...t})}import{jsx as et}from"react/jsx-runtime";function ne({className:e,...t}){return et(R,{role:"status","aria-label":"Loading",className:M("size-4 animate-spin",e),...t})}import{jsx as b,jsxs as K}from"react/jsx-runtime";function at(){return K("div",{className:"grid w-full max-w-sm gap-4",children:[K(_,{"data-disabled":!0,children:[b(Y,{placeholder:"Searching...",disabled:!0}),b(X,{align:"inline-end",children:b(ne,{})})]}),K(_,{"data-disabled":!0,children:[b(Y,{placeholder:"Processing...",disabled:!0}),b(X,{children:b(ne,{})})]}),K(_,{"data-disabled":!0,children:[b(Y,{placeholder:"Saving changes...",disabled:!0}),K(X,{align:"inline-end",children:[b(Se,{children:"Saving..."}),b(ne,{})]})]}),K(_,{"data-disabled":!0,children:[b(Y,{placeholder:"Refreshing data...",disabled:!0}),b(X,{children:b(J,{className:"animate-spin"})}),b(X,{align:"inline-end",children:b(Se,{className:"text-muted-foreground",children:"Please wait..."})})]})]})}export{at as default}; +/*! Bundled license information: + +lucide-react/dist/esm/shared/src/utils.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/defaultAttributes.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/Icon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/createLucideIcon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/loader-circle.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/loader.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/lucide-react.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/b/3baf4b24268932961da72555b45247a4b4cd52a16079a2e57c1a67caa2f3520d b/b/3baf4b24268932961da72555b45247a4b4cd52a16079a2e57c1a67caa2f3520d new file mode 100644 index 0000000000000000000000000000000000000000..191a49460cbebcff9990fd4e94004add7b5960e4 --- /dev/null +++ b/b/3baf4b24268932961da72555b45247a4b4cd52a16079a2e57c1a67caa2f3520d @@ -0,0 +1,20 @@ +{ + "id": "org.hologram.ui.dotted-map", + "name": "dotted-map", + "tier": "component", + "library": "magicui", + "category": "Components", + "upstream": "https://magicui.design/r/dotted-map.json", + "did": "did:holo:sha256:9cf9a7edbed239b6e8cfdad588a97400d059ccf8f391d94f3cf033261a5ef7d9", + "import": "holo://sha256:6fd3fad4b6dfa4cc21751514274f8a1d97e35ade138fe3d0b1f8dcf7eacb8558", + "integrity": "sha256-b9P61LbfpMwhdRUUJ0+KHZfjWt4Tj+PQsfjc9+rLhVg=", + "kappa": "sha256:9cf9a7edbed239b6e8cfdad588a97400d059ccf8f391d94f3cf033261a5ef7d9", + "moduleKappa": "sha256:6fd3fad4b6dfa4cc21751514274f8a1d97e35ade138fe3d0b1f8dcf7eacb8558", + "renderExport": "DottedMap", + "source": "components/ui/dotted-map.tsx", + "module": "vendor/components/dotted-map.js", + "exports": [ + "DottedMap" + ], + "license": "MIT" +} diff --git a/b/3c01058a7b2cd35c5bc17cf081a12c18ee551fdac469ecf2f163a18861286b1a b/b/3c01058a7b2cd35c5bc17cf081a12c18ee551fdac469ecf2f163a18861286b1a new file mode 100644 index 0000000000000000000000000000000000000000..1c331d7476a9a33e4d1736145538d95f7d91d845 --- /dev/null +++ b/b/3c01058a7b2cd35c5bc17cf081a12c18ee551fdac469ecf2f163a18861286b1a @@ -0,0 +1,20 @@ +{ + "id": "org.hologram.ui.example.resizable-handle", + "name": "resizable-handle", + "tier": "example", + "library": "shadcn", + "category": "Examples", + "upstream": "https://ui.shadcn.com/r/styles/new-york-v4/resizable-handle.json", + "did": "did:holo:sha256:e6e99081ec5793a2af957a79d7037888ad379404d2688ec02584c6108d2e1f36", + "import": "holo://sha256:ca1684f7d7c889e7a83eee4618b90cb5108e7af1634246aa287312e0750d5280", + "integrity": "sha256-yhaE99fIieeoPu5GGLkMtRCOevFjQkaqKHMS4HUNUoA=", + "kappa": "sha256:e6e99081ec5793a2af957a79d7037888ad379404d2688ec02584c6108d2e1f36", + "moduleKappa": "sha256:ca1684f7d7c889e7a83eee4618b90cb5108e7af1634246aa287312e0750d5280", + "renderExport": "default", + "source": "registry/new-york-v4/examples/resizable-handle.tsx", + "module": "vendor/components/resizable-handle.js", + "exports": [ + "default" + ], + "license": "MIT" +} diff --git a/b/3c07da3aeed53379a12fa1de0ac1e8fbe0c024c8da3350665970db3e8cdd1806 b/b/3c07da3aeed53379a12fa1de0ac1e8fbe0c024c8da3350665970db3e8cdd1806 new file mode 100644 index 0000000000000000000000000000000000000000..69f53e3599609ad8723c685e46c59b91bc80770c --- /dev/null +++ b/b/3c07da3aeed53379a12fa1de0ac1e8fbe0c024c8da3350665970db3e8cdd1806 @@ -0,0 +1,19 @@ +import { GalleryVerticalEnd } from "lucide-react" + +import { LoginForm } from "@/registry/new-york-v4/blocks/login-03/components/login-form" + +export default function LoginPage() { + return ( + + ) +} diff --git a/b/3c0c152ee38fe0c24d35193ba1d6ebc014f4fda96bd3ef023576bde66bfdf18c b/b/3c0c152ee38fe0c24d35193ba1d6ebc014f4fda96bd3ef023576bde66bfdf18c new file mode 100644 index 0000000000000000000000000000000000000000..a0e07f4aac9c02535f5611ed328c67747e0fc97e --- /dev/null +++ b/b/3c0c152ee38fe0c24d35193ba1d6ebc014f4fda96bd3ef023576bde66bfdf18c @@ -0,0 +1,20 @@ +{ + "id": "org.hologram.ui.example.checkbox-disabled", + "name": "checkbox-disabled", + "tier": "example", + "library": "shadcn", + "category": "Examples", + "upstream": "https://ui.shadcn.com/r/styles/new-york-v4/checkbox-disabled.json", + "did": "did:holo:sha256:0fcdbbbda71dc4577a291a0e0c58c4566148dfb03a1ae1ef825a57e30c694cbf", + "import": "holo://sha256:0e1afa91eb3cf26e0f9ed906a11d3a051850b9a9d713bd78c188d24ddcd73806", + "integrity": "sha256-Dhr6kes88m4PntkGoR06BRhQuanXE714wYjSTdzXOAY=", + "kappa": "sha256:0fcdbbbda71dc4577a291a0e0c58c4566148dfb03a1ae1ef825a57e30c694cbf", + "moduleKappa": "sha256:0e1afa91eb3cf26e0f9ed906a11d3a051850b9a9d713bd78c188d24ddcd73806", + "renderExport": "default", + "source": "registry/new-york-v4/examples/checkbox-disabled.tsx", + "module": "vendor/components/checkbox-disabled.js", + "exports": [ + "default" + ], + "license": "MIT" +} diff --git a/b/3c19f4fd45eb79c163ccb76b249c062ab101eb1916e4cbf7588071d5a809a027 b/b/3c19f4fd45eb79c163ccb76b249c062ab101eb1916e4cbf7588071d5a809a027 new file mode 100644 index 0000000000000000000000000000000000000000..fc2bd2dff2ea0a286d0b3949c2e2d82321b24ac6 --- /dev/null +++ b/b/3c19f4fd45eb79c163ccb76b249c062ab101eb1916e4cbf7588071d5a809a027 @@ -0,0 +1,9 @@ +import { SettingsDialog } from "@/registry/new-york-v4/blocks/sidebar-13/components/settings-dialog" + +export default function Page() { + return ( +
+ +
+ ) +} diff --git a/b/3c2bc5e17d7866b7b15177d649570e0467833f0523da7aae9cd0d45f25fa98c1 b/b/3c2bc5e17d7866b7b15177d649570e0467833f0523da7aae9cd0d45f25fa98c1 new file mode 100644 index 0000000000000000000000000000000000000000..fd3e88f3a05584ac4645e4ad04e6071838469ca0 --- /dev/null +++ b/b/3c2bc5e17d7866b7b15177d649570e0467833f0523da7aae9cd0d45f25fa98c1 @@ -0,0 +1,27 @@ +{ + "id": "org.hologram.ui.daisyui.fab", + "name": "daisyui-fab", + "tier": "component", + "library": "daisyui", + "category": "Buttons & Actions", + "upstream": "https://cdn.jsdelivr.net/npm/daisyui@5.5.23/components/fab.css", + "docs": "https://daisyui.com/components/fab/", + "did": "did:holo:sha256:da9c86613b8a02faf2c6ba22b7eed8aa474ab0f88d5c41e2141b5d75d537ee04", + "import": "holo://sha256:da9c86613b8a02faf2c6ba22b7eed8aa474ab0f88d5c41e2141b5d75d537ee04", + "integrity": "sha256-2pyGYTuKAvryxroit+7YqkdKsPiNXEHiFBtdddU37gQ=", + "kappa": "sha256:da9c86613b8a02faf2c6ba22b7eed8aa474ab0f88d5c41e2141b5d75d537ee04", + "moduleKappa": "sha256:da9c86613b8a02faf2c6ba22b7eed8aa474ab0f88d5c41e2141b5d75d537ee04", + "renderExport": null, + "format": "css", + "source": "components/fab.css", + "module": "vendor/daisyui/components/fab.css", + "exports": [], + "bytes": 14805, + "provenance": { + "package": "daisyui", + "version": "5.5.23", + "integrity": "sha512-xuheNUSL4T6ZVtWXoioqcNkjoyGX85QTDz4HTw2aBPfqk4fuMjax5HDo8qCmpV6M1YN8bGvfx5BpYCoDeRlt+A==", + "file": "components/fab.css" + }, + "license": "MIT" +} diff --git a/b/3c7ea8a4f2d65871c0a910ab2c50b4e1bebaf1b5ada25e54e21d7c1f800bf3fc b/b/3c7ea8a4f2d65871c0a910ab2c50b4e1bebaf1b5ada25e54e21d7c1f800bf3fc new file mode 100644 index 0000000000000000000000000000000000000000..592bf03e2898a1bd2300676ff54ebc931faba5cb --- /dev/null +++ b/b/3c7ea8a4f2d65871c0a910ab2c50b4e1bebaf1b5ada25e54e21d7c1f800bf3fc @@ -0,0 +1,12 @@ +{ + "spec": "Sharder (shard-holo.mjs) splits a .holo into <2 GiB delivery parts + a manifest the REAL spanning reader (holo-pack-shards.mjs spanReader/openShardedPack) stitches back byte-identical; openHoloStream still L5-verifies every body across part boundaries. A 9B .holo ships as parts with zero loss and one logical address.", + "authority": "holo-pack-shards.mjs spanReader · holo-archive openHoloStream L5 · GitHub 2 GiB asset cap", + "witnessed": true, + "checks": { + "manifestShape": true, + "perPartSha256": true, + "stitchByteEqual": true, + "streamAcrossParts": true, + "tinyPartsStress": true + } +} diff --git a/b/3cad2be54d46e4825c0a4ba5d9c5c627f4713f6a5a878c21d2373668360460a3 b/b/3cad2be54d46e4825c0a4ba5d9c5c627f4713f6a5a878c21d2373668360460a3 new file mode 100644 index 0000000000000000000000000000000000000000..a1a8684cb61abad0627bc2338d628ee7bf41bb71 --- /dev/null +++ b/b/3cad2be54d46e4825c0a4ba5d9c5c627f4713f6a5a878c21d2373668360460a3 @@ -0,0 +1,7 @@ +import diff from './object.js'; +import { addPrefix } from '../../functions/addPrefix.js'; + +export default ({ addComponents, prefix = '' }) => { + const prefixeddiff = addPrefix(diff, prefix); + addComponents({ ...prefixeddiff }); +}; diff --git a/b/3cca77f6bf23ffdd4cbfd227320e36ee9ebf5776ba6d7d3339b43ff1aad75934 b/b/3cca77f6bf23ffdd4cbfd227320e36ee9ebf5776ba6d7d3339b43ff1aad75934 new file mode 100644 index 0000000000000000000000000000000000000000..0792c2c1cee8ff021cafb2a68a41844928b882a9 --- /dev/null +++ b/b/3cca77f6bf23ffdd4cbfd227320e36ee9ebf5776ba6d7d3339b43ff1aad75934 @@ -0,0 +1,16 @@ +"use client" + +import * as React from "react" + +import { Progress } from "@/registry/new-york-v4/ui/progress" + +export default function ProgressDemo() { + const [progress, setProgress] = React.useState(13) + + React.useEffect(() => { + const timer = setTimeout(() => setProgress(66), 500) + return () => clearTimeout(timer) + }, []) + + return +} diff --git a/b/3cef3d8c84e5e929e390a2398be0cb680bd54edcb5e1739ac3289794b1fd3918 b/b/3cef3d8c84e5e929e390a2398be0cb680bd54edcb5e1739ac3289794b1fd3918 new file mode 100644 index 0000000000000000000000000000000000000000..f4823234875118a84152d0c61a67ad90a9a389b1 --- /dev/null +++ b/b/3cef3d8c84e5e929e390a2398be0cb680bd54edcb5e1739ac3289794b1fd3918 @@ -0,0 +1,21 @@ +{ + "id": "org.hologram.ui.chart.chart-pie-simple", + "name": "chart-pie-simple", + "tier": "chart", + "library": "shadcn", + "category": "Charts · Pie", + "upstream": "https://ui.shadcn.com/r/styles/new-york-v4/chart-pie-simple.json", + "did": "did:holo:sha256:9298f436da5adc7288c7b6ae10fb52bbcbcb99ea9c0d324bb47da61c5b8af518", + "import": "holo://sha256:0356d455bc0d9f409d058347073c4862ecd38e48b899a1aa7f11c53a47694068", + "integrity": "sha256-A1bUVbwNn0CdBYNHBzxIYuzTjki4maGqfxHFOkdpQGg=", + "kappa": "sha256:9298f436da5adc7288c7b6ae10fb52bbcbcb99ea9c0d324bb47da61c5b8af518", + "moduleKappa": "sha256:0356d455bc0d9f409d058347073c4862ecd38e48b899a1aa7f11c53a47694068", + "renderExport": "ChartPieSimple", + "source": "registry/new-york-v4/charts/chart-pie-simple.tsx", + "module": "vendor/components/chart-pie-simple.js", + "exports": [ + "description", + "ChartPieSimple" + ], + "license": "MIT" +} diff --git a/b/3cf585136558017667faf6f83bdb6ebb6200b27b8f8b61b9f666221f57213404 b/b/3cf585136558017667faf6f83bdb6ebb6200b27b8f8b61b9f666221f57213404 new file mode 100644 index 0000000000000000000000000000000000000000..d995a24e26d3741981eb05715d1d979194399729 --- /dev/null +++ b/b/3cf585136558017667faf6f83bdb6ebb6200b27b8f8b61b9f666221f57213404 @@ -0,0 +1,31 @@ +:root:has(input.theme-controller[value=fantasy]:checked),[data-theme="fantasy"] { +color-scheme: light; +--color-base-100: oklch(100% 0 0); +--color-base-200: oklch(93% 0 0); +--color-base-300: oklch(86% 0 0); +--color-base-content: oklch(27.807% 0.029 256.847); +--color-primary: oklch(37.45% 0.189 325.02); +--color-primary-content: oklch(87.49% 0.037 325.02); +--color-secondary: oklch(53.92% 0.162 241.36); +--color-secondary-content: oklch(90.784% 0.032 241.36); +--color-accent: oklch(75.98% 0.204 56.72); +--color-accent-content: oklch(15.196% 0.04 56.72); +--color-neutral: oklch(27.807% 0.029 256.847); +--color-neutral-content: oklch(85.561% 0.005 256.847); +--color-info: oklch(72.06% 0.191 231.6); +--color-info-content: oklch(0% 0 0); +--color-success: oklch(64.8% 0.15 160); +--color-success-content: oklch(0% 0 0); +--color-warning: oklch(84.71% 0.199 83.87); +--color-warning-content: oklch(0% 0 0); +--color-error: oklch(71.76% 0.221 22.18); +--color-error-content: oklch(0% 0 0); +--radius-selector: 1rem; +--radius-field: 0.5rem; +--radius-box: 1rem; +--size-selector: 0.25rem; +--size-field: 0.25rem; +--border: 1px; +--depth: 1; +--noise: 0; +} diff --git a/b/3d180b871508162e821f5629e471174097841744a458d4d72c8bdd4b3b98b1bd b/b/3d180b871508162e821f5629e471174097841744a458d4d72c8bdd4b3b98b1bd new file mode 100644 index 0000000000000000000000000000000000000000..f89c34d8ebc0631cd72301216d997bcd0d69f02d --- /dev/null +++ b/b/3d180b871508162e821f5629e471174097841744a458d4d72c8bdd4b3b98b1bd @@ -0,0 +1,70 @@ +import*as Pa from"react";import*as m from"react";import*as De from"react";import*as W from"react";var Ra=Object.defineProperty,va=Object.defineProperties,Ta=Object.getOwnPropertyDescriptors,Fe=Object.getOwnPropertySymbols,Je=Object.prototype.hasOwnProperty,_e=Object.prototype.propertyIsEnumerable,Ze=(e,t,a)=>t in e?Ra(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a,qa=(e,t)=>{for(var a in t||(t={}))Je.call(t,a)&&Ze(e,a,t[a]);if(Fe)for(var a of Fe(t))_e.call(t,a)&&Ze(e,a,t[a]);return e},Oa=(e,t)=>va(e,Ta(t)),Ua=(e,t)=>{var a={};for(var o in e)Je.call(e,o)&&t.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&Fe)for(var o of Fe(e))t.indexOf(o)<0&&_e.call(e,o)&&(a[o]=e[o]);return a};function Ha(e){let t=setTimeout(e,0),a=setTimeout(e,10),o=setTimeout(e,50);return[t,a,o]}function Ga(e){let t=De.useRef();return De.useEffect(()=>{t.current=e}),t.current}var za=18,je=40,Ea=`${je}px`,Wa=["[data-lastpass-icon-root]","com-1password-button","[data-dashlanecreated]",'[style$="2147483647 !important;"]'].join(",");function Va({containerRef:e,inputRef:t,pushPasswordManagerStrategy:a,isFocused:o}){let[r,l]=W.useState(!1),[s,p]=W.useState(!1),[L,n]=W.useState(!1),h=W.useMemo(()=>a==="none"?!1:(a==="increase-width"||a==="experimental-no-flickering")&&r&&s,[r,s,a]),k=W.useCallback(()=>{let A=e.current,M=t.current;if(!A||!M||L||a==="none")return;let v=A,S=v.getBoundingClientRect().left+v.offsetWidth,D=v.getBoundingClientRect().top+v.offsetHeight/2,g=S-za,y=D;document.querySelectorAll(Wa).length===0&&document.elementFromPoint(g,y)===A||(l(!0),n(!0))},[e,t,L,a]);return W.useEffect(()=>{let A=e.current;if(!A||a==="none")return;function M(){let S=window.innerWidth-A.getBoundingClientRect().right;p(S>=je)}M();let v=setInterval(M,1e3);return()=>{clearInterval(v)}},[e,a]),W.useEffect(()=>{let A=o||document.activeElement===t.current;if(a==="none"||!A)return;let M=setTimeout(k,0),v=setTimeout(k,2e3),S=setTimeout(k,5e3),D=setTimeout(()=>{n(!0)},6e3);return()=>{clearTimeout(M),clearTimeout(v),clearTimeout(S),clearTimeout(D)}},[t,o,a,k]),{hasPWMBadge:r,willPushPWMBadge:h,PWM_BADGE_SPACE_WIDTH:Ea}}var Ue=m.createContext({}),He=m.forwardRef((e,t)=>{var a=e,{value:o,onChange:r,maxLength:l,textAlign:s="left",pattern:p,placeholder:L,inputMode:n="numeric",onComplete:h,pushPasswordManagerStrategy:k="increase-width",pasteTransformer:A,containerClassName:M,noScriptCSSFallback:v=Na,render:S,children:D}=a,g=Ua(a,["value","onChange","maxLength","textAlign","pattern","placeholder","inputMode","onComplete","pushPasswordManagerStrategy","pasteTransformer","containerClassName","noScriptCSSFallback","render","children"]),y,te,J,_,j;let[z,f]=m.useState(typeof g.defaultValue=="string"?g.defaultValue:""),C=o??z,V=Ga(C),oe=m.useCallback(c=>{r?.(c),f(c)},[r]),q=m.useMemo(()=>p?typeof p=="string"?new RegExp(p):p:null,[p]),b=m.useRef(null),ie=m.useRef(null),N=m.useRef({value:C,onChange:oe,isIOS:typeof window<"u"&&((te=(y=window?.CSS)==null?void 0:y.supports)==null?void 0:te.call(y,"-webkit-touch-callout","none"))}),T=m.useRef({prev:[(J=b.current)==null?void 0:J.selectionStart,(_=b.current)==null?void 0:_.selectionEnd,(j=b.current)==null?void 0:j.selectionDirection]});m.useImperativeHandle(t,()=>b.current,[]),m.useEffect(()=>{let c=b.current,I=ie.current;if(!c||!I)return;N.current.value!==c.value&&N.current.onChange(c.value),T.current.prev=[c.selectionStart,c.selectionEnd,c.selectionDirection];function O(){if(document.activeElement!==c){le(null),Y(null);return}let w=c.selectionStart,U=c.selectionEnd,ye=c.selectionDirection,E=c.maxLength,ce=c.value,ee=T.current.prev,re=-1,de=-1,pe;if(ce.length!==0&&w!==null&&U!==null){let ya=w===U,Fa=w===ce.length&&ce.length1&&ce.length>1){let Oe=0;if(ee[0]!==null&&ee[1]!==null){pe=me{I&&I.style.setProperty("--root-height",`${c.clientHeight}px`)};H();let G=new ResizeObserver(H);return G.observe(c),()=>{document.removeEventListener("selectionchange",O,{capture:!0}),G.disconnect()}},[]);let[X,ge]=m.useState(!1),[Q,i]=m.useState(!1),[K,le]=m.useState(null),[$,Y]=m.useState(null);m.useEffect(()=>{Ha(()=>{var c,I,O,H;(c=b.current)==null||c.dispatchEvent(new Event("input"));let G=(I=b.current)==null?void 0:I.selectionStart,w=(O=b.current)==null?void 0:O.selectionEnd,U=(H=b.current)==null?void 0:H.selectionDirection;G!==null&&w!==null&&(le(G),Y(w),T.current.prev=[G,w,U])})},[C,Q]),m.useEffect(()=>{V!==void 0&&C!==V&&V.length{let I=c.currentTarget.value.slice(0,l);if(I.length>0&&q&&!q.test(I)){c.preventDefault();return}typeof V=="string"&&I.length{var c;if(b.current){let I=Math.min(b.current.value.length,l-1),O=b.current.value.length;(c=b.current)==null||c.setSelectionRange(I,O),le(I),Y(O)}i(!0)},[l]),we=m.useCallback(c=>{var I,O;let H=b.current;if(!A&&(!N.current.isIOS||!c.clipboardData||!H))return;let G=c.clipboardData.getData("text/plain"),w=A?A(G):G;c.preventDefault();let U=(I=b.current)==null?void 0:I.selectionStart,ye=(O=b.current)==null?void 0:O.selectionEnd,E=(U!==ye?C.slice(0,U)+w+C.slice(ye):C.slice(0,U)+w+C.slice(U)).slice(0,l);if(E.length>0&&q&&!q.test(E))return;H.value=E,oe(E);let ce=Math.min(E.length,l-1),ee=E.length;H.setSelectionRange(ce,ee),le(ce),Y(ee)},[l,oe,q,C]),B=m.useMemo(()=>({position:"relative",cursor:g.disabled?"default":"text",userSelect:"none",WebkitUserSelect:"none",pointerEvents:"none"}),[g.disabled]),ke=m.useMemo(()=>({position:"absolute",inset:0,width:P.willPushPWMBadge?`calc(100% + ${P.PWM_BADGE_SPACE_WIDTH})`:"100%",clipPath:P.willPushPWMBadge?`inset(0 ${P.PWM_BADGE_SPACE_WIDTH} 0 0)`:void 0,height:"100%",display:"flex",textAlign:s,opacity:"1",color:"transparent",pointerEvents:"all",background:"transparent",caretColor:"transparent",border:"0 solid transparent",outline:"0 solid transparent",boxShadow:"none",lineHeight:"1",letterSpacing:"-.5em",fontSize:"var(--root-height)",fontFamily:"monospace",fontVariantNumeric:"tabular-nums"}),[P.PWM_BADGE_SPACE_WIDTH,P.willPushPWMBadge,s]),he=m.useMemo(()=>m.createElement("input",Oa(qa({autoComplete:g.autoComplete||"one-time-code"},g),{"data-input-otp":!0,"data-input-otp-placeholder-shown":C.length===0||void 0,"data-input-otp-mss":K,"data-input-otp-mse":$,inputMode:n,pattern:q?.source,"aria-placeholder":L,style:ke,maxLength:l,value:C,ref:b,onPaste:c=>{var I;we(c),(I=g.onPaste)==null||I.call(g,c)},onChange:R,onMouseOver:c=>{var I;ge(!0),(I=g.onMouseOver)==null||I.call(g,c)},onMouseLeave:c=>{var I;ge(!1),(I=g.onMouseLeave)==null||I.call(g,c)},onFocus:c=>{var I;ne(),(I=g.onFocus)==null||I.call(g,c)},onBlur:c=>{var I;i(!1),(I=g.onBlur)==null||I.call(g,c)}})),[R,ne,we,n,ke,l,$,K,g,q?.source,C]),ue=m.useMemo(()=>({slots:Array.from({length:l}).map((c,I)=>{var O;let H=Q&&K!==null&&$!==null&&(K===$&&I===K||I>=K&&I<$),G=C[I]!==void 0?C[I]:null,w=C[0]!==void 0?null:(O=L?.[I])!=null?O:null;return{char:G,placeholderChar:w,isActive:H,hasFakeCaret:H&&G===null}}),isFocused:Q,isHovering:!g.disabled&&X}),[Q,X,l,$,K,g.disabled,C]),be=m.useMemo(()=>S?S(ue):m.createElement(Ue.Provider,{value:ue},D),[D,ue,S]);return m.createElement(m.Fragment,null,v!==null&&m.createElement("noscript",null,m.createElement("style",null,v)),m.createElement("div",{ref:ie,"data-input-otp-container":!0,style:B,className:M},be,m.createElement("div",{style:{position:"absolute",inset:0,pointerEvents:"none"}},he)))});He.displayName="Input";function Pe(e,t){try{e.insertRule(t)}catch{console.error("input-otp could not insert CSS rule:",t)}}var Na=` +[data-input-otp] { + --nojs-bg: white !important; + --nojs-fg: black !important; + + background-color: var(--nojs-bg) !important; + color: var(--nojs-fg) !important; + caret-color: var(--nojs-fg) !important; + letter-spacing: .25em !important; + text-align: center !important; + border: 1px solid var(--nojs-fg) !important; + border-radius: 4px !important; + width: 100% !important; +} +@media (prefers-color-scheme: dark) { + [data-input-otp] { + --nojs-bg: black !important; + --nojs-fg: white !important; + } +}`;import{forwardRef as Ka,createElement as Za}from"react";var Qe=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Re=(...e)=>e.filter((t,a,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===a).join(" ").trim();import{forwardRef as Xa,createElement as Ye}from"react";var $e={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var ea=Xa(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:r="",children:l,iconNode:s,...p},L)=>Ye("svg",{ref:L,...$e,width:t,height:t,stroke:e,strokeWidth:o?Number(a)*24/Number(t):a,className:Re("lucide",r),...p},[...s.map(([n,h])=>Ye(n,h)),...Array.isArray(l)?l:[l]]));var aa=(e,t)=>{let a=Ka(({className:o,...r},l)=>Za(ea,{ref:l,iconNode:t,className:Re(`lucide-${Qe(e)}`,o),...r}));return a.displayName=`${e}`,a};var Ae=aa("Minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);function ta(e){var t,a,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t{let a=new Array(e.length+t.length);for(let o=0;o({classGroupId:e,validator:t}),ia=(e=new Map,t=null,a)=>({nextPart:e,validators:t,classGroupId:a}),qe="-",la=[],ja="arbitrary..",Qa=e=>{let t=Ya(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return $a(s);let p=s.split(qe),L=p[0]===""&&p.length>1?1:0;return na(p,L,t)},getConflictingClassGroupIds:(s,p)=>{if(p){let L=o[s],n=a[s];return L?n?Ja(n,L):L:n||la}return a[s]||la}}},na=(e,t,a)=>{if(e.length-t===0)return a.classGroupId;let r=e[t],l=a.nextPart.get(r);if(l){let n=na(e,t+1,l);if(n)return n}let s=a.validators;if(s===null)return;let p=t===0?e.join(qe):e.slice(t).join(qe),L=s.length;for(let n=0;ne.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let t=e.slice(1,-1),a=t.indexOf(":"),o=t.slice(0,a);return o?ja+o:void 0})(),Ya=e=>{let{theme:t,classGroups:a}=e;return et(a,t)},et=(e,t)=>{let a=ia();for(let o in e){let r=e[o];Ee(r,a,o,t)}return a},Ee=(e,t,a,o)=>{let r=e.length;for(let l=0;l{if(typeof e=="string"){tt(e,t,a);return}if(typeof e=="function"){ot(e,t,a,o);return}lt(e,t,a,o)},tt=(e,t,a)=>{let o=e===""?t:ca(t,e);o.classGroupId=a},ot=(e,t,a,o)=>{if(ut(e)){Ee(e(o),t,a,o);return}t.validators===null&&(t.validators=[]),t.validators.push(_a(a,e))},lt=(e,t,a,o)=>{let r=Object.entries(e),l=r.length;for(let s=0;s{let a=e,o=t.split(qe),r=o.length;for(let l=0;l"isThemeGetter"in e&&e.isThemeGetter===!0,rt=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,a=Object.create(null),o=Object.create(null),r=(l,s)=>{a[l]=s,t++,t>e&&(t=0,o=a,a=Object.create(null))};return{get(l){let s=a[l];if(s!==void 0)return s;if((s=o[l])!==void 0)return r(l,s),s},set(l,s){l in a?a[l]=s:r(l,s)}}},ze="!",ua=":",dt=[],ra=(e,t,a,o,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:a,maybePostfixModifierPosition:o,isExternal:r}),st=e=>{let{prefix:t,experimentalParseClassName:a}=e,o=r=>{let l=[],s=0,p=0,L=0,n,h=r.length;for(let S=0;SL?n-L:void 0;return ra(l,M,A,v)};if(t){let r=t+ua,l=o;o=s=>s.startsWith(r)?l(s.slice(r.length)):ra(dt,!1,s,void 0,!0)}if(a){let r=o;o=l=>a({className:l,parseClassName:r})}return o},ft=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((a,o)=>{t.set(a,1e6+o)}),a=>{let o=[],r=[];for(let l=0;l0&&(r.sort(),o.push(...r),r=[]),o.push(s)):r.push(s)}return r.length>0&&(r.sort(),o.push(...r)),o}},it=e=>({cache:rt(e.cacheSize),parseClassName:st(e),sortModifiers:ft(e),postfixLookupClassGroupIds:nt(e),...Qa(e)}),nt=e=>{let t=Object.create(null),a=e.postfixLookupClassGroups;if(a)for(let o=0;o{let{parseClassName:a,getClassGroupId:o,getConflictingClassGroupIds:r,sortModifiers:l,postfixLookupClassGroupIds:s}=t,p=[],L=e.trim().split(ct),n="";for(let h=L.length-1;h>=0;h-=1){let k=L[h],{isExternal:A,modifiers:M,hasImportantModifier:v,baseClassName:S,maybePostfixModifierPosition:D}=a(k);if(A){n=k+(n.length>0?" "+n:n);continue}let g=!!D,y;if(g){let z=S.substring(0,D);y=o(z);let f=y&&s[y]?o(S):void 0;f&&f!==y&&(y=f,g=!1)}else y=o(S);if(!y){if(!g){n=k+(n.length>0?" "+n:n);continue}if(y=o(S),!y){n=k+(n.length>0?" "+n:n);continue}g=!1}let te=M.length===0?"":M.length===1?M[0]:l(M).join(":"),J=v?te+ze:te,_=J+y;if(p.indexOf(_)>-1)continue;p.push(_);let j=r(y,g);for(let z=0;z0?" "+n:n)}return n},mt=(...e)=>{let t=0,a,o,r="";for(;t{if(typeof e=="string")return e;let t,a="";for(let o=0;o{let a,o,r,l,s=L=>{let n=t.reduce((h,k)=>k(h),e());return a=it(n),o=a.cache.get,r=a.cache.set,l=p,p(L)},p=L=>{let n=o(L);if(n)return n;let h=pt(L,a);return r(L,h),h};return l=s,(...L)=>l(mt(...L))},It=[],F=e=>{let t=a=>a[e]||It;return t.isThemeGetter=!0,t},ma=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,La=/^\((?:(\w[\w-]*):)?(.+)\)$/i,xt=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Ct=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,gt=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ht=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,St=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,wt=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,se=e=>xt.test(e),x=e=>!!e&&!Number.isNaN(Number(e)),Z=e=>!!e&&Number.isInteger(Number(e)),Ge=e=>e.endsWith("%")&&x(e.slice(0,-1)),ae=e=>Ct.test(e),Ia=()=>!0,kt=e=>gt.test(e)&&!ht.test(e),We=()=>!1,bt=e=>St.test(e),Pt=e=>wt.test(e),At=e=>!u(e)&&!d(e),Bt=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Mt=e=>fe(e,ga,We),u=e=>ma.test(e),Le=e=>fe(e,ha,kt),da=e=>fe(e,Ot,x),yt=e=>fe(e,wa,Ia),Ft=e=>fe(e,Sa,We),sa=e=>fe(e,xa,We),Dt=e=>fe(e,Ca,Pt),ve=e=>fe(e,ka,bt),d=e=>La.test(e),Be=e=>Ie(e,ha),Rt=e=>Ie(e,Sa),fa=e=>Ie(e,xa),vt=e=>Ie(e,ga),Tt=e=>Ie(e,Ca),Te=e=>Ie(e,ka,!0),qt=e=>Ie(e,wa,!0),fe=(e,t,a)=>{let o=ma.exec(e);return o?o[1]?t(o[1]):a(o[2]):!1},Ie=(e,t,a=!1)=>{let o=La.exec(e);return o?o[1]?t(o[1]):a:!1},xa=e=>e==="position"||e==="percentage",Ca=e=>e==="image"||e==="url",ga=e=>e==="length"||e==="size"||e==="bg-size",ha=e=>e==="length",Ot=e=>e==="number",Sa=e=>e==="family-name",wa=e=>e==="number"||e==="weight",ka=e=>e==="shadow";var Ut=()=>{let e=F("color"),t=F("font"),a=F("text"),o=F("font-weight"),r=F("tracking"),l=F("leading"),s=F("breakpoint"),p=F("container"),L=F("spacing"),n=F("radius"),h=F("shadow"),k=F("inset-shadow"),A=F("text-shadow"),M=F("drop-shadow"),v=F("blur"),S=F("perspective"),D=F("aspect"),g=F("ease"),y=F("animate"),te=()=>["auto","avoid","all","avoid-page","page","left","right","column"],J=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],_=()=>[...J(),d,u],j=()=>["auto","hidden","clip","visible","scroll"],z=()=>["auto","contain","none"],f=()=>[d,u,L],C=()=>[se,"full","auto",...f()],V=()=>[Z,"none","subgrid",d,u],oe=()=>["auto",{span:["full",Z,d,u]},Z,d,u],q=()=>[Z,"auto",d,u],b=()=>["auto","min","max","fr",d,u],ie=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],N=()=>["start","end","center","stretch","center-safe","end-safe"],T=()=>["auto",...f()],X=()=>[se,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...f()],ge=()=>[se,"screen","full","dvw","lvw","svw","min","max","fit",...f()],Q=()=>[se,"screen","full","lh","dvh","lvh","svh","min","max","fit",...f()],i=()=>[e,d,u],K=()=>[...J(),fa,sa,{position:[d,u]}],le=()=>["no-repeat",{repeat:["","x","y","space","round"]}],$=()=>["auto","cover","contain",vt,Mt,{size:[d,u]}],Y=()=>[Ge,Be,Le],P=()=>["","none","full",n,d,u],R=()=>["",x,Be,Le],ne=()=>["solid","dashed","dotted","double"],we=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],B=()=>[x,Ge,fa,sa],ke=()=>["","none",v,d,u],he=()=>["none",x,d,u],ue=()=>["none",x,d,u],be=()=>[x,d,u],c=()=>[se,"full",...f()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ae],breakpoint:[ae],color:[Ia],container:[ae],"drop-shadow":[ae],ease:["in","out","in-out"],font:[At],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ae],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ae],shadow:[ae],spacing:["px",x],text:[ae],"text-shadow":[ae],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",se,u,d,D]}],container:["container"],"container-type":[{"@container":["","normal","size",d,u]}],"container-named":[Bt],columns:[{columns:[x,u,d,p]}],"break-after":[{"break-after":te()}],"break-before":[{"break-before":te()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:_()}],overflow:[{overflow:j()}],"overflow-x":[{"overflow-x":j()}],"overflow-y":[{"overflow-y":j()}],overscroll:[{overscroll:z()}],"overscroll-x":[{"overscroll-x":z()}],"overscroll-y":[{"overscroll-y":z()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:C()}],"inset-x":[{"inset-x":C()}],"inset-y":[{"inset-y":C()}],start:[{"inset-s":C(),start:C()}],end:[{"inset-e":C(),end:C()}],"inset-bs":[{"inset-bs":C()}],"inset-be":[{"inset-be":C()}],top:[{top:C()}],right:[{right:C()}],bottom:[{bottom:C()}],left:[{left:C()}],visibility:["visible","invisible","collapse"],z:[{z:[Z,"auto",d,u]}],basis:[{basis:[se,"full","auto",p,...f()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[x,se,"auto","initial","none",u]}],grow:[{grow:["",x,d,u]}],shrink:[{shrink:["",x,d,u]}],order:[{order:[Z,"first","last","none",d,u]}],"grid-cols":[{"grid-cols":V()}],"col-start-end":[{col:oe()}],"col-start":[{"col-start":q()}],"col-end":[{"col-end":q()}],"grid-rows":[{"grid-rows":V()}],"row-start-end":[{row:oe()}],"row-start":[{"row-start":q()}],"row-end":[{"row-end":q()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":b()}],"auto-rows":[{"auto-rows":b()}],gap:[{gap:f()}],"gap-x":[{"gap-x":f()}],"gap-y":[{"gap-y":f()}],"justify-content":[{justify:[...ie(),"normal"]}],"justify-items":[{"justify-items":[...N(),"normal"]}],"justify-self":[{"justify-self":["auto",...N()]}],"align-content":[{content:["normal",...ie()]}],"align-items":[{items:[...N(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...N(),{baseline:["","last"]}]}],"place-content":[{"place-content":ie()}],"place-items":[{"place-items":[...N(),"baseline"]}],"place-self":[{"place-self":["auto",...N()]}],p:[{p:f()}],px:[{px:f()}],py:[{py:f()}],ps:[{ps:f()}],pe:[{pe:f()}],pbs:[{pbs:f()}],pbe:[{pbe:f()}],pt:[{pt:f()}],pr:[{pr:f()}],pb:[{pb:f()}],pl:[{pl:f()}],m:[{m:T()}],mx:[{mx:T()}],my:[{my:T()}],ms:[{ms:T()}],me:[{me:T()}],mbs:[{mbs:T()}],mbe:[{mbe:T()}],mt:[{mt:T()}],mr:[{mr:T()}],mb:[{mb:T()}],ml:[{ml:T()}],"space-x":[{"space-x":f()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":f()}],"space-y-reverse":["space-y-reverse"],size:[{size:X()}],"inline-size":[{inline:["auto",...ge()]}],"min-inline-size":[{"min-inline":["auto",...ge()]}],"max-inline-size":[{"max-inline":["none",...ge()]}],"block-size":[{block:["auto",...Q()]}],"min-block-size":[{"min-block":["auto",...Q()]}],"max-block-size":[{"max-block":["none",...Q()]}],w:[{w:[p,"screen",...X()]}],"min-w":[{"min-w":[p,"screen","none",...X()]}],"max-w":[{"max-w":[p,"screen","none","prose",{screen:[s]},...X()]}],h:[{h:["screen","lh",...X()]}],"min-h":[{"min-h":["screen","lh","none",...X()]}],"max-h":[{"max-h":["screen","lh",...X()]}],"font-size":[{text:["base",a,Be,Le]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,qt,yt]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ge,u]}],"font-family":[{font:[Rt,Ft,t]}],"font-features":[{"font-features":[u]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,d,u]}],"line-clamp":[{"line-clamp":[x,"none",d,da]}],leading:[{leading:[l,...f()]}],"list-image":[{"list-image":["none",d,u]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",d,u]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:i()}],"text-color":[{text:i()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...ne(),"wavy"]}],"text-decoration-thickness":[{decoration:[x,"from-font","auto",d,Le]}],"text-decoration-color":[{decoration:i()}],"underline-offset":[{"underline-offset":[x,"auto",d,u]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:f()}],"tab-size":[{tab:[Z,d,u]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",d,u]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",d,u]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:K()}],"bg-repeat":[{bg:le()}],"bg-size":[{bg:$()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Z,d,u],radial:["",d,u],conic:[Z,d,u]},Tt,Dt]}],"bg-color":[{bg:i()}],"gradient-from-pos":[{from:Y()}],"gradient-via-pos":[{via:Y()}],"gradient-to-pos":[{to:Y()}],"gradient-from":[{from:i()}],"gradient-via":[{via:i()}],"gradient-to":[{to:i()}],rounded:[{rounded:P()}],"rounded-s":[{"rounded-s":P()}],"rounded-e":[{"rounded-e":P()}],"rounded-t":[{"rounded-t":P()}],"rounded-r":[{"rounded-r":P()}],"rounded-b":[{"rounded-b":P()}],"rounded-l":[{"rounded-l":P()}],"rounded-ss":[{"rounded-ss":P()}],"rounded-se":[{"rounded-se":P()}],"rounded-ee":[{"rounded-ee":P()}],"rounded-es":[{"rounded-es":P()}],"rounded-tl":[{"rounded-tl":P()}],"rounded-tr":[{"rounded-tr":P()}],"rounded-br":[{"rounded-br":P()}],"rounded-bl":[{"rounded-bl":P()}],"border-w":[{border:R()}],"border-w-x":[{"border-x":R()}],"border-w-y":[{"border-y":R()}],"border-w-s":[{"border-s":R()}],"border-w-e":[{"border-e":R()}],"border-w-bs":[{"border-bs":R()}],"border-w-be":[{"border-be":R()}],"border-w-t":[{"border-t":R()}],"border-w-r":[{"border-r":R()}],"border-w-b":[{"border-b":R()}],"border-w-l":[{"border-l":R()}],"divide-x":[{"divide-x":R()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":R()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...ne(),"hidden","none"]}],"divide-style":[{divide:[...ne(),"hidden","none"]}],"border-color":[{border:i()}],"border-color-x":[{"border-x":i()}],"border-color-y":[{"border-y":i()}],"border-color-s":[{"border-s":i()}],"border-color-e":[{"border-e":i()}],"border-color-bs":[{"border-bs":i()}],"border-color-be":[{"border-be":i()}],"border-color-t":[{"border-t":i()}],"border-color-r":[{"border-r":i()}],"border-color-b":[{"border-b":i()}],"border-color-l":[{"border-l":i()}],"divide-color":[{divide:i()}],"outline-style":[{outline:[...ne(),"none","hidden"]}],"outline-offset":[{"outline-offset":[x,d,u]}],"outline-w":[{outline:["",x,Be,Le]}],"outline-color":[{outline:i()}],shadow:[{shadow:["","none",h,Te,ve]}],"shadow-color":[{shadow:i()}],"inset-shadow":[{"inset-shadow":["none",k,Te,ve]}],"inset-shadow-color":[{"inset-shadow":i()}],"ring-w":[{ring:R()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:i()}],"ring-offset-w":[{"ring-offset":[x,Le]}],"ring-offset-color":[{"ring-offset":i()}],"inset-ring-w":[{"inset-ring":R()}],"inset-ring-color":[{"inset-ring":i()}],"text-shadow":[{"text-shadow":["none",A,Te,ve]}],"text-shadow-color":[{"text-shadow":i()}],opacity:[{opacity:[x,d,u]}],"mix-blend":[{"mix-blend":[...we(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":we()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[x]}],"mask-image-linear-from-pos":[{"mask-linear-from":B()}],"mask-image-linear-to-pos":[{"mask-linear-to":B()}],"mask-image-linear-from-color":[{"mask-linear-from":i()}],"mask-image-linear-to-color":[{"mask-linear-to":i()}],"mask-image-t-from-pos":[{"mask-t-from":B()}],"mask-image-t-to-pos":[{"mask-t-to":B()}],"mask-image-t-from-color":[{"mask-t-from":i()}],"mask-image-t-to-color":[{"mask-t-to":i()}],"mask-image-r-from-pos":[{"mask-r-from":B()}],"mask-image-r-to-pos":[{"mask-r-to":B()}],"mask-image-r-from-color":[{"mask-r-from":i()}],"mask-image-r-to-color":[{"mask-r-to":i()}],"mask-image-b-from-pos":[{"mask-b-from":B()}],"mask-image-b-to-pos":[{"mask-b-to":B()}],"mask-image-b-from-color":[{"mask-b-from":i()}],"mask-image-b-to-color":[{"mask-b-to":i()}],"mask-image-l-from-pos":[{"mask-l-from":B()}],"mask-image-l-to-pos":[{"mask-l-to":B()}],"mask-image-l-from-color":[{"mask-l-from":i()}],"mask-image-l-to-color":[{"mask-l-to":i()}],"mask-image-x-from-pos":[{"mask-x-from":B()}],"mask-image-x-to-pos":[{"mask-x-to":B()}],"mask-image-x-from-color":[{"mask-x-from":i()}],"mask-image-x-to-color":[{"mask-x-to":i()}],"mask-image-y-from-pos":[{"mask-y-from":B()}],"mask-image-y-to-pos":[{"mask-y-to":B()}],"mask-image-y-from-color":[{"mask-y-from":i()}],"mask-image-y-to-color":[{"mask-y-to":i()}],"mask-image-radial":[{"mask-radial":[d,u]}],"mask-image-radial-from-pos":[{"mask-radial-from":B()}],"mask-image-radial-to-pos":[{"mask-radial-to":B()}],"mask-image-radial-from-color":[{"mask-radial-from":i()}],"mask-image-radial-to-color":[{"mask-radial-to":i()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":J()}],"mask-image-conic-pos":[{"mask-conic":[x]}],"mask-image-conic-from-pos":[{"mask-conic-from":B()}],"mask-image-conic-to-pos":[{"mask-conic-to":B()}],"mask-image-conic-from-color":[{"mask-conic-from":i()}],"mask-image-conic-to-color":[{"mask-conic-to":i()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:K()}],"mask-repeat":[{mask:le()}],"mask-size":[{mask:$()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",d,u]}],filter:[{filter:["","none",d,u]}],blur:[{blur:ke()}],brightness:[{brightness:[x,d,u]}],contrast:[{contrast:[x,d,u]}],"drop-shadow":[{"drop-shadow":["","none",M,Te,ve]}],"drop-shadow-color":[{"drop-shadow":i()}],grayscale:[{grayscale:["",x,d,u]}],"hue-rotate":[{"hue-rotate":[x,d,u]}],invert:[{invert:["",x,d,u]}],saturate:[{saturate:[x,d,u]}],sepia:[{sepia:["",x,d,u]}],"backdrop-filter":[{"backdrop-filter":["","none",d,u]}],"backdrop-blur":[{"backdrop-blur":ke()}],"backdrop-brightness":[{"backdrop-brightness":[x,d,u]}],"backdrop-contrast":[{"backdrop-contrast":[x,d,u]}],"backdrop-grayscale":[{"backdrop-grayscale":["",x,d,u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[x,d,u]}],"backdrop-invert":[{"backdrop-invert":["",x,d,u]}],"backdrop-opacity":[{"backdrop-opacity":[x,d,u]}],"backdrop-saturate":[{"backdrop-saturate":[x,d,u]}],"backdrop-sepia":[{"backdrop-sepia":["",x,d,u]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":f()}],"border-spacing-x":[{"border-spacing-x":f()}],"border-spacing-y":[{"border-spacing-y":f()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",d,u]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[x,"initial",d,u]}],ease:[{ease:["linear","initial",g,d,u]}],delay:[{delay:[x,d,u]}],animate:[{animate:["none",y,d,u]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[S,d,u]}],"perspective-origin":[{"perspective-origin":_()}],rotate:[{rotate:he()}],"rotate-x":[{"rotate-x":he()}],"rotate-y":[{"rotate-y":he()}],"rotate-z":[{"rotate-z":he()}],scale:[{scale:ue()}],"scale-x":[{"scale-x":ue()}],"scale-y":[{"scale-y":ue()}],"scale-z":[{"scale-z":ue()}],"scale-3d":["scale-3d"],skew:[{skew:be()}],"skew-x":[{"skew-x":be()}],"skew-y":[{"skew-y":be()}],transform:[{transform:[d,u,"","none","gpu","cpu"]}],"transform-origin":[{origin:_()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:c()}],"translate-x":[{"translate-x":c()}],"translate-y":[{"translate-y":c()}],"translate-z":[{"translate-z":c()}],"translate-none":["translate-none"],zoom:[{zoom:[Z,d,u]}],accent:[{accent:i()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:i()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",d,u]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":i()}],"scrollbar-track-color":[{"scrollbar-track":i()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":f()}],"scroll-mx":[{"scroll-mx":f()}],"scroll-my":[{"scroll-my":f()}],"scroll-ms":[{"scroll-ms":f()}],"scroll-me":[{"scroll-me":f()}],"scroll-mbs":[{"scroll-mbs":f()}],"scroll-mbe":[{"scroll-mbe":f()}],"scroll-mt":[{"scroll-mt":f()}],"scroll-mr":[{"scroll-mr":f()}],"scroll-mb":[{"scroll-mb":f()}],"scroll-ml":[{"scroll-ml":f()}],"scroll-p":[{"scroll-p":f()}],"scroll-px":[{"scroll-px":f()}],"scroll-py":[{"scroll-py":f()}],"scroll-ps":[{"scroll-ps":f()}],"scroll-pe":[{"scroll-pe":f()}],"scroll-pbs":[{"scroll-pbs":f()}],"scroll-pbe":[{"scroll-pbe":f()}],"scroll-pt":[{"scroll-pt":f()}],"scroll-pr":[{"scroll-pr":f()}],"scroll-pb":[{"scroll-pb":f()}],"scroll-pl":[{"scroll-pl":f()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",d,u]}],fill:[{fill:["none",...i()]}],"stroke-w":[{stroke:[x,Be,Le,da]}],stroke:[{stroke:["none",...i()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var ba=Lt(Ut);function Me(...e){return ba(oa(e))}import{jsx as Se,jsxs as Ht}from"react/jsx-runtime";function Aa({className:e,containerClassName:t,...a}){return Se(He,{"data-slot":"input-otp",containerClassName:Me("flex items-center gap-2 has-disabled:opacity-50",t),className:Me("disabled:cursor-not-allowed",e),...a})}function Ve({className:e,...t}){return Se("div",{"data-slot":"input-otp-group",className:Me("flex items-center",e),...t})}function xe({index:e,className:t,...a}){let o=Pa.useContext(Ue),{char:r,hasFakeCaret:l,isActive:s}=o?.slots[e]??{};return Ht("div",{"data-slot":"input-otp-slot","data-active":s,className:Me("relative flex h-9 w-9 items-center justify-center border-y border-r border-input text-sm shadow-xs transition-all outline-none first:rounded-l-md first:border-l last:rounded-r-md aria-invalid:border-destructive data-[active=true]:z-10 data-[active=true]:border-ring data-[active=true]:ring-[3px] data-[active=true]:ring-ring/50 data-[active=true]:aria-invalid:border-destructive data-[active=true]:aria-invalid:ring-destructive/20 dark:bg-input/30 dark:data-[active=true]:aria-invalid:ring-destructive/40",t),...a,children:[r,l&&Se("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:Se("div",{className:"h-4 w-px animate-caret-blink bg-foreground duration-1000"})})]})}function Ba({...e}){return Se("div",{"data-slot":"input-otp-separator",role:"separator",...e,children:Se(Ae,{})})}import{jsx as Ce,jsxs as Ne}from"react/jsx-runtime";function Gt(){return Ne(Aa,{maxLength:6,children:[Ne(Ve,{children:[Ce(xe,{index:0}),Ce(xe,{index:1}),Ce(xe,{index:2})]}),Ce(Ba,{}),Ne(Ve,{children:[Ce(xe,{index:3}),Ce(xe,{index:4}),Ce(xe,{index:5})]})]})}export{Gt as default}; +/*! Bundled license information: + +lucide-react/dist/esm/shared/src/utils.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/defaultAttributes.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/Icon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/createLucideIcon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/minus.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/lucide-react.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/b/3d96c879795f0b52d0222fa6080809a8671cb67ffe2e18059374482467240ca4 b/b/3d96c879795f0b52d0222fa6080809a8671cb67ffe2e18059374482467240ca4 new file mode 100644 index 0000000000000000000000000000000000000000..11bd134bfa24bceaa5d41b3d405678de83048c0f --- /dev/null +++ b/b/3d96c879795f0b52d0222fa6080809a8671cb67ffe2e18059374482467240ca4 @@ -0,0 +1 @@ +export default {".range":{"@layer daisyui.l1.l2.l3":{"appearance":"none","webkit-appearance":"none","--range-thumb":"var(--color-base-100)","--range-thumb-size":"calc(var(--size-selector, 0.25rem) * 6)","--range-progress":"currentColor","--range-fill":"1","--range-p":"0.25rem","--range-bg":"color-mix(in oklab, currentColor 10%, #0000)","cursor":"pointer","overflow":"hidden","background-color":"transparent","vertical-align":"middle","width":"clamp(3rem, 20rem, 100%)","--radius-selector-max":"calc(\n var(--radius-selector) + var(--radius-selector) + var(--radius-selector)\n )","border-radius":"calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)))","border":"none","height":"var(--range-thumb-size)","[dir=\"rtl\"] &":{"--range-dir":"-1"},"&:focus":{"outline":"none"},"&:focus-visible":{"outline":"2px solid","outline-offset":"2px"},"&::-webkit-slider-runnable-track":{"width":"100%","background-color":"var(--range-bg)","border-radius":"var(--radius-selector)","height":"calc(var(--range-thumb-size) * 0.5)"},"@media (forced-colors: active)":[{"&::-webkit-slider-runnable-track":{"border":"1px solid"}},{"&::-moz-range-track":{"border":"1px solid"}}],"&::-webkit-slider-thumb":{"position":"relative","box-sizing":"border-box","border-radius":"calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)))","background-color":"var(--range-thumb)","height":"var(--range-thumb-size)","width":"var(--range-thumb-size)","border":"var(--range-p) solid","appearance":"none","webkit-appearance":"none","top":"50%","color":"var(--range-progress)","transform":"translateY(-50%)","box-shadow":"0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100cqw) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))"},"&::-moz-range-track":{"width":"100%","background-color":"var(--range-bg)","border-radius":"var(--radius-selector)","height":"calc(var(--range-thumb-size) * 0.5)"},"&::-moz-range-thumb":{"position":"relative","box-sizing":"border-box","border-radius":"calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)))","background-color":"currentColor","height":"var(--range-thumb-size)","width":"var(--range-thumb-size)","border":"var(--range-p) solid","top":"50%","color":"var(--range-progress)","box-shadow":"0 -1px oklch(0% 0 0 / calc(var(--depth) * 0.1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * 0.1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir, 1) * -100cqw) - (var(--range-dir, 1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))"},"&:disabled":{"cursor":"not-allowed","opacity":"30%"}}},".range-primary":{"@layer daisyui.l1.l2":{"color":"var(--color-primary)","--range-thumb":"var(--color-primary-content)"}},".range-secondary":{"@layer daisyui.l1.l2":{"color":"var(--color-secondary)","--range-thumb":"var(--color-secondary-content)"}},".range-accent":{"@layer daisyui.l1.l2":{"color":"var(--color-accent)","--range-thumb":"var(--color-accent-content)"}},".range-neutral":{"@layer daisyui.l1.l2":{"color":"var(--color-neutral)","--range-thumb":"var(--color-neutral-content)"}},".range-success":{"@layer daisyui.l1.l2":{"color":"var(--color-success)","--range-thumb":"var(--color-success-content)"}},".range-warning":{"@layer daisyui.l1.l2":{"color":"var(--color-warning)","--range-thumb":"var(--color-warning-content)"}},".range-info":{"@layer daisyui.l1.l2":{"color":"var(--color-info)","--range-thumb":"var(--color-info-content)"}},".range-error":{"@layer daisyui.l1.l2":{"color":"var(--color-error)","--range-thumb":"var(--color-error-content)"}},".range-xs":{"@layer daisyui.l1.l2":{"--range-thumb-size":"calc(var(--size-selector, 0.25rem) * 4)"}},".range-sm":{"@layer daisyui.l1.l2":{"--range-thumb-size":"calc(var(--size-selector, 0.25rem) * 5)"}},".range-md":{"@layer daisyui.l1.l2":{"--range-thumb-size":"calc(var(--size-selector, 0.25rem) * 6)"}},".range-lg":{"@layer daisyui.l1.l2":{"--range-thumb-size":"calc(var(--size-selector, 0.25rem) * 7)"}},".range-xl":{"@layer daisyui.l1.l2":{"--range-thumb-size":"calc(var(--size-selector, 0.25rem) * 8)"}}}; \ No newline at end of file diff --git a/b/3d9cc8aadb8392a27c1ff187d99f672e71632d6f56696c24749de3dd92acf51f b/b/3d9cc8aadb8392a27c1ff187d99f672e71632d6f56696c24749de3dd92acf51f new file mode 100644 index 0000000000000000000000000000000000000000..9645f1c806bcac9aa264835ad7949adf7ba184ad --- /dev/null +++ b/b/3d9cc8aadb8392a27c1ff187d99f672e71632d6f56696c24749de3dd92acf51f @@ -0,0 +1,2622 @@ +// QVAC WebGPU decode engine — GPU-resident inference for the int8 Llama model. +// +// "type-1" lean path: int8 weights + KV cache live on the GPU; each token is ONE +// command buffer chaining every kernel (intermediates stay in GPU buffers, no +// per-op CPU round-trip), with a single async readback of the logits. The wasm +// hands over the weights via qvac_gpu_export(); JS keeps only the embedding table +// for the host-side lookup. Mirrors the CPU DecodeSession op-for-op so its output +// matches (greedy decode → identical tokens). + +// Per-block GEMV (Q8: int8 1B/weight, or Q4: nibble 2 weights/byte), weights in +// [out,in] layout (K-split reads are contiguous → coalesced), with a scale per +// 32-weight block (GGUF-native precision). One workgroup per output row, 64 +// threads reduce over K. `add` fuses a residual: o = x·dequant(qw,sc) [+ r]. +import { requant2bit, signsFor } from "./qvac-2bit.mjs"; + +const mmKernel = (bits, add, q3f = false) => ` +@group(0) @binding(0) var x: array; +@group(0) @binding(1) var qw: array; +@group(0) @binding(2) var sc: array; +${add + ? "@group(0) @binding(3) var r: array;\n@group(0) @binding(4) var o: array;\n@group(0) @binding(5) var P: vec4;" + : "@group(0) @binding(3) var o: array;\n@group(0) @binding(4) var P: vec4;"} +var red: array; +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let n=wg.y*65535u+wg.x; let K=P.x; let nblk=P.z; let t=lid.x; + if(n>=P.y){return;} // 2D grid for N>65535 (big vocab) + var acc=0.0; +${bits === 2 + ? ` let words=K>>4u; let rowW=n*words; let rowS=n*nblk; var w=t; // 2-bit: 16 weights/u32 + loop{ if(w>=words){break;} let packed=qw[rowW+w]; let kb=w<<4u; let sca=sc[rowS+(kb>>5u)]; + for(var j=0u;j<16u;j=j+1u){ acc=acc+x[kb+j]*f32(i32((packed>>(j*2u))&3u)*2-3)*sca; } w=w+64u; + }` + : bits === 3 && q3f + ? ` let rowB=n*nblk; var blk=t; // Q3 FIELDS: 10×3-bit per u32 (+ the 3 spare 2-bit stubs = w30/w31); 1 shift+and per weight + loop{ if(blk>=nblk){break;} let bp=(rowB+blk)*3u; let p0=qw[bp]; let p1=qw[bp+1u]; let p2=qw[bp+2u]; let kb=blk<<5u; var bacc=0.0; + for(var j=0u;j<10u;j=j+1u){ bacc=bacc+x[kb+j]*f32(i32((p0>>(j*3u))&7u)-3); } + for(var j=0u;j<10u;j=j+1u){ bacc=bacc+x[kb+10u+j]*f32(i32((p1>>(j*3u))&7u)-3); } + for(var j=0u;j<10u;j=j+1u){ bacc=bacc+x[kb+20u+j]*f32(i32((p2>>(j*3u))&7u)-3); } + let sp=(p0>>30u)|((p1>>30u)<<2u)|((p2>>30u)<<4u); + bacc=bacc+x[kb+30u]*f32(i32(sp&7u)-3)+x[kb+31u]*f32(i32((sp>>3u)&7u)-3); + acc=acc+bacc*sc[rowB+blk]; blk=blk+64u; + }` + : bits === 3 + ? ` let rowB=n*nblk; var blk=t; // Q3: bit-planes — 3 u32 per 32-block, level {−7…7} + loop{ if(blk>=nblk){break;} let bp=(rowB+blk)*3u; let p0=qw[bp]; let p1=qw[bp+1u]; let p2=qw[bp+2u]; let sca=sc[rowB+blk]; let kb=blk<<5u; + for(var j=0u;j<32u;j=j+1u){ let q=((p0>>j)&1u)|(((p1>>j)&1u)<<1u)|(((p2>>j)&1u)<<2u); acc=acc+x[kb+j]*f32(i32(q)-3)*sca; } blk=blk+64u; + }` + : bits === 4 + ? ` let words=K>>3u; let rowW=n*words; let rowS=n*nblk; var w=t; // Q4: 8 nibbles/u32, hoisted block scale (word-oriented) + loop{ if(w>=words){break;} let packed=qw[rowW+w]; let kb=w<<3u; let sca=sc[rowS+(kb>>5u)]; + for(var j=0u;j<8u;j=j+1u){ acc=acc+x[kb+j]*f32(i32((packed>>(j*4u))&0xfu)-8)*sca; } w=w+64u; + }` + : ` var k=t; + loop{ if(k>=K){break;} + let g=n*K+k; + let q=f32(i32(((qw[g/4u]>>((g%4u)*8u))&0xffu)<<24u)>>24u); + acc=acc+x[k]*q*sc[n*nblk + (k>>5u)]; + k=k+64u; + }`} + red[t]=acc; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(t x: array; +@group(0) @binding(1) var sgn: array; +@group(0) @binding(2) var xr: array; +@group(0) @binding(3) var P: vec4; // K (real), Kp (padded) +@compute @workgroup_size(256) +fn main(@builtin(global_invocation_id) gid: vec3){ let i=gid.x; let K=P.x; let Kp=P.y; if(i>=Kp){return;} var xi=0.0; if(i xr: array; +@group(0) @binding(1) var P: vec4; // Kp, len +@compute @workgroup_size(256) +fn main(@builtin(global_invocation_id) gid: vec3){ let i=gid.x; let Kp=P.x; let len=P.y; if(i>=(Kp>>1u)){return;} let blk=i/len; let j=i%len; let a=blk*(len<<1u)+j; let b=a+len; let u=xr[a]; let v=xr[b]; xr[a]=u+v; xr[b]=u-v; }`; +const FWHT_NORM = ` +@group(0) @binding(0) var xr: array; +@group(0) @binding(1) var P: vec4; // Kp +@compute @workgroup_size(256) +fn main(@builtin(global_invocation_id) gid: vec3){ let i=gid.x; let Kp=P.x; if(i>=Kp){return;} xr[i]=xr[i]*(1.0/sqrt(f32(Kp))); }`; + +const RMS = ` +@group(0) @binding(0) var x: array; +@group(0) @binding(1) var gamma: array; +@group(0) @binding(2) var o: array; +@group(0) @binding(3) var P: vec4; // d +var sh: array; +@compute @workgroup_size(256) +fn main(@builtin(local_invocation_id) lid:vec3){ + let d=P.x; let t=lid.x; + var s=0.0; var i=t; loop{ if(i>=d){break;} s=s+x[i]*x[i]; i=i+256u; } + sh[t]=s; workgroupBarrier(); + var stride=128u; loop{ if(stride==0u){break;} if(t=d){break;} o[j]=x[j]*inv*gamma[j]; j=j+256u; } +}`; + +// Qwen3 QK-Norm: per-head RMSNorm over head_dim (≤128), one workgroup per head. +const QKNORM = ` +@group(0) @binding(0) var x: array; // [nh*hd] in place +@group(0) @binding(1) var w: array; // [hd] +@group(0) @binding(2) var P: vec4; // nh, hd, _, _ +var sh: array; +@compute @workgroup_size(128) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let h=wg.x; let hd=P.y; let t=lid.x; let base=h*hd; + var v=0.0; if(t c: array>; +@group(0) @binding(1) var o: array; +@group(0) @binding(2) var P: vec4; +var wm: array; var wi: array; +@compute @workgroup_size(256) +fn main(@builtin(local_invocation_id) lid:vec3){ + let t=lid.x; let e=c[t]; wm[t]=bitcast(e.x); wi[t]=e.y; workgroupBarrier(); + var s=128u; loop{ if(s==0u){break;} if(twm[t]||(wm[t+s]==wm[t]&&wi[t+s](wm[0]); } +}`; +const ARGMAX2K = ` +@group(0) @binding(0) var c: array>; +@group(0) @binding(1) var o: array; +@group(0) @binding(2) var P: vec4; +var wm: array; var wi: array; +@compute @workgroup_size(256) +fn main(@builtin(local_invocation_id) lid:vec3){ + let t=lid.x; let e=c[t]; wm[t]=bitcast(e.x); wi[t]=e.y; workgroupBarrier(); + var s=128u; loop{ if(s==0u){break;} if(twm[t]||(wm[t+s]==wm[t]&&wi[t+s] ` +@group(0) @binding(0) var q: array; // [k][nh*hd] +@group(0) @binding(1) var kc: array; +@group(0) @binding(2) var vc: array; +@group(0) @binding(3) var o: array; // [k][nh*hd] +@group(0) @binding(4) var P: vec4; // nh, nkv, hd, basePos (wg.y = row; pos = basePos+row) +var sc: array; +var red: array; +const S: u32 = ${kvd / 8 + kvd / 32}u; +const CW: u32 = ${kvd / 8}u; +fn kval(j:u32, c:u32) -> f32 { let w=kc[j*S+(c>>3u)]; return (f32((w>>((c&7u)*4u))&15u)-7.0)*bitcast(kc[j*S+CW+(c>>5u)]); } +fn vval(j:u32, c:u32) -> f32 { let w=vc[j*S+(c>>3u)]; return (f32((w>>((c&7u)*4u))&15u)-7.0)*bitcast(vc[j*S+CW+(c>>5u)]); } +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let h=wg.x; let nh=P.x; let nkv=P.y; let hd=P.z; let pos=P.w+wg.y; + let group=nh/nkv; let kh=h/group; let rb=wg.y*nh*hd; + let scale=1.0/sqrt(f32(hd)); let qb=rb+h*hd; let kb=kh*hd; let t=lid.x; + var j=t; loop{ if(j>pos){break;} var d=0.0; for(var c=0u;cpos){break;} lm=max(lm,sc[j]); j=j+64u; } + red[t]=lm; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(tpos){break;} let e=exp(sc[j]-mx); sc[j]=e; ld=ld+e; j=j+64u; } + red[t]=ld; workgroupBarrier(); + s=32u; loop{ if(s==0u){break;} if(t=hd){break;} var acc=0.0; for(var jj=0u;jj<=pos;jj++){ acc=acc+sc[jj]*vval(jj,kb+c); } o[qb+c]=acc/dn; c=c+64u; } +}`; +const ATTNK = (cap) => ` +@group(0) @binding(0) var q: array; // [k][nh*hd] +@group(0) @binding(1) var kc: array; // f32 cache (layer 0) +@group(0) @binding(2) var vc: array; +@group(0) @binding(3) var o: array; +@group(0) @binding(4) var P: vec4; // nh, nkv, hd, basePos (wg.y = row) +var sc: array; +var red: array; +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let h=wg.x; let nh=P.x; let nkv=P.y; let hd=P.z; let pos=P.w+wg.y; + let group=nh/nkv; let kh=h/group; let kvdim=nkv*hd; let rb=wg.y*nh*hd; + let scale=1.0/sqrt(f32(hd)); let qb=rb+h*hd; let kb=kh*hd; let t=lid.x; + var j=t; loop{ if(j>pos){break;} var d=0.0; for(var c=0u;cpos){break;} lm=max(lm,sc[j]); j=j+64u; } + red[t]=lm; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(tpos){break;} let e=exp(sc[j]-mx); sc[j]=e; ld=ld+e; j=j+64u; } + red[t]=ld; workgroupBarrier(); + s=32u; loop{ if(s==0u){break;} if(t=hd){break;} var acc=0.0; for(var jj=0u;jj<=pos;jj++){ acc=acc+sc[jj]*vc[jj*kvdim+kb+c]; } o[qb+c]=acc/dn; c=c+64u; } +}`; +const RMSK = ` +@group(0) @binding(0) var x: array; +@group(0) @binding(1) var gamma: array; +@group(0) @binding(2) var o: array; +@group(0) @binding(3) var P: vec4; // d (wg.y = row) +var sh: array; +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let d=P.x; let t=lid.x; let b=wg.y*d; + var s=0.0; var i=t; loop{ if(i>=d){break;} s=s+x[b+i]*x[b+i]; i=i+256u; } + sh[t]=s; workgroupBarrier(); + var stride=128u; loop{ if(stride==0u){break;} if(t=d){break;} o[b+j]=x[b+j]*inv*gamma[j]; j=j+256u; } +}`; +const ROPEK = (theta) => ` +@group(0) @binding(0) var x: array; // [k][stride] in place +@group(0) @binding(1) var P: vec4; // nh, hd, basePos, stride (wg.y = row) +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let nh=P.x; let hd=P.y; let pos=f32(P.z+wg.y); let half=hd/2u; + let id=wg.x*64u+lid.x; if(id>=nh*half){return;} + let head=id/half; let i=id%half; let base=wg.y*P.w+head*hd; + let freq=pow(${theta}, -2.0*f32(i)/f32(hd)); + let ang=pos*freq; let c=cos(ang); let s=sin(ang); + let a=x[base+i]; let b=x[base+i+half]; + x[base+i]=a*c-b*s; + x[base+i+half]=b*c+a*s; +}`; +const KVQK = (kvd) => ` +@group(0) @binding(0) var x: array; // [k][kvd] +@group(0) @binding(1) var out: array; +@group(0) @binding(2) var P: vec4; // .w = basePos (wg.y = row) +const S: u32 = ${kvd / 8 + kvd / 32}u; +const CW: u32 = ${kvd / 8}u; +const NG: u32 = ${kvd / 32}u; +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let base=(P.w+wg.y)*S; let xb=wg.y*${kvd}u; var g=lid.x; + loop{ if(g>=NG){break;} + var mx=0.0; for(var i=0u;i<32u;i++){ let a=abs(x[xb+g*32u+i]); if(a>mx){mx=a;} } + let s=max(mx/7.0, 1e-12); + out[base+CW+g]=bitcast(s); + for(var w=0u;w<4u;w++){ + var word=0u; + for(var i=0u;i<8u;i++){ let qv=clamp(i32(round(x[xb+g*32u+w*8u+i]/s)),-7,7); word=word|(u32(qv+7)<<(i*4u)); } + out[base+g*4u+w]=word; + } + g=g+64u; } +}`; +// batched-x ternary GEMM: weights read once for all KX rows. o[c*N+n]; optional residual r same layout. +const mmT2KK = (add, KX) => ` +@group(0) @binding(0) var x: array>; // [KX][K/4] +@group(0) @binding(1) var qw: array; +${add + ? "@group(0) @binding(2) var r: array;\n@group(0) @binding(3) var o: array;\n@group(0) @binding(4) var P: vec4;" + : "@group(0) @binding(2) var o: array;\n@group(0) @binding(3) var P: vec4;"} +var red: array; +${"" /* dot16 via shared fn */} +fn dot16(word:u32, v:u32) -> f32 { + var s4=vec4(0.0); + var x0=x[v]; s4=s4+x0*(vec4(f32(word&3u),f32((word>>2u)&3u),f32((word>>4u)&3u),f32((word>>6u)&3u))-vec4(1.0)); + x0=x[v+1u]; s4=s4+x0*(vec4(f32((word>>8u)&3u),f32((word>>10u)&3u),f32((word>>12u)&3u),f32((word>>14u)&3u))-vec4(1.0)); + x0=x[v+2u]; s4=s4+x0*(vec4(f32((word>>16u)&3u),f32((word>>18u)&3u),f32((word>>20u)&3u),f32((word>>22u)&3u))-vec4(1.0)); + x0=x[v+3u]; s4=s4+x0*(vec4(f32((word>>24u)&3u),f32((word>>26u)&3u),f32((word>>28u)&3u),f32((word>>30u)&3u))-vec4(1.0)); + return s4.x+s4.y+s4.z+s4.w; +} +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let K=P.x; let nw=K>>4u; let rr=lid.x/64u; let t=lid.x%64u; + let n0=(wg.y*65535u+wg.x)*4u+rr; let n=min(n0, P.y-1u); + let rowW=n*nw; var acc: array; + for(var c=0u;c<${KX}u;c++){ acc[c]=0.0; } + var w=t; + loop{ if(w>=nw){break;} + let word=qw[rowW+w]; let v=w<<2u; + ${Array.from({ length: 8 }, (_, c) => `if(${c}u<${KX}u){ acc[${c}]=acc[${c}]+dot16(word, ${c}u*(K>>2u)+v); }`).slice(0, KX).join("\n ")} + w=w+64u; } + for(var c=0u;c<${KX}u;c++){ + red[lid.x]=acc[c]; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(t(P.w)${add ? "+r[c*P.y+n0]" : ""}; } + workgroupBarrier(); + } +}`; +// t2r batched (per-256-block scales) — binding order mirrors mmT2RKernel: x,qw,sc,(r),o,P +const mmT2RKK = (add, KX) => ` +@group(0) @binding(0) var x: array>; // [KX][K/4] +@group(0) @binding(1) var qw: array; +@group(0) @binding(2) var sc: array; +${add + ? "@group(0) @binding(3) var r: array;\n@group(0) @binding(4) var o: array;\n@group(0) @binding(5) var P: vec4;" + : "@group(0) @binding(3) var o: array;\n@group(0) @binding(4) var P: vec4;"} +var red: array; +${t2Dot16} +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let K=P.x; let nw=K>>4u; let rr=lid.x/64u; let t=lid.x%64u; + let n0=(wg.y*65535u+wg.x)*4u+rr; let n=min(n0, P.y-1u); + let rowW=n*nw; let rowB=n*(K>>8u); var acc: array; + for(var c=0u;c<${KX}u;c++){ acc[c]=0.0; } + var w=t; + loop{ if(w>=nw){break;} + let word=qw[rowW+w]; let v=w<<2u; let s=sc[rowB+(w>>4u)]; + ${Array.from({ length: KX }, (_, c) => `acc[${c}]=acc[${c}]+dot16(word, ${c}u*(K>>2u)+v)*s;`).join("\n ")} + w=w+64u; } + for(var c=0u;c<${KX}u;c++){ + red[lid.x]=acc[c]; workgroupBarrier(); + var s2=32u; loop{ if(s2==0u){break;} if(t ` +@group(0) @binding(0) var x: array; // [KX][K] +@group(0) @binding(1) var qw: array; +@group(0) @binding(2) var sc: array; +@group(0) @binding(3) var o: array; +@group(0) @binding(4) var P: vec4; +var red: array; +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let K=P.x; let nblk=P.z; let rr=lid.x/64u; let t=lid.x%64u; + let n0=(wg.y*65535u+wg.x)*4u+rr; let n=min(n0, P.y-1u); + let rowB=n*nblk; var acc: array; + for(var c=0u;c<${KX}u;c++){ acc[c]=0.0; } + var blk=t; + loop{ if(blk>=nblk){break;} + let bp=(rowB+blk)*3u; let p0=qw[bp]; let p1=qw[bp+1u]; let p2=qw[bp+2u]; let kb=blk<<5u; let sca=sc[rowB+blk]; + for(var c=0u;c<${KX}u;c++){ let xb=c*K+kb; var bacc=0.0; + for(var j=0u;j<10u;j=j+1u){ bacc=bacc+x[xb+j]*f32(i32((p0>>(j*3u))&7u)-3); } + for(var j=0u;j<10u;j=j+1u){ bacc=bacc+x[xb+10u+j]*f32(i32((p1>>(j*3u))&7u)-3); } + for(var j=0u;j<10u;j=j+1u){ bacc=bacc+x[xb+20u+j]*f32(i32((p2>>(j*3u))&7u)-3); } + let sp=(p0>>30u)|((p1>>30u)<<2u)|((p2>>30u)<<4u); + bacc=bacc+x[xb+30u]*f32(i32(sp&7u)-3)+x[xb+31u]*f32(i32((sp>>3u)&7u)-3); + acc[c]=acc[c]+bacc*sca; + } + blk=blk+64u; + } + for(var c=0u;c<${KX}u;c++){ + red[lid.x]=acc[c]; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(t x: array; // [m][K] +@group(0) @binding(1) var aq: array; // [m][K/4] int8x4 +@group(0) @binding(2) var asc: array; // [m][K/32] +@group(0) @binding(3) var P: vec4; // K +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let K=P.x; let col=wg.y; let base=col*K; let nb=K>>5u; let kq=K>>2u; let t=lid.x; + var b=t; + loop{ if(b>=nb){break;} + let bb=base+b*32u; + var mx=0.0; for(var i=0u;i<32u;i++){ mx=max(mx, abs(x[bb+i])); } + let scale=mx/127.0+1e-12; asc[col*nb+b]=scale; + for(var u=0u;u<8u;u++){ var word=0u; + for(var q=0u;q<4u;q++){ let val=clamp(i32(round(x[bb+u*4u+q]/scale)),-127,127); word=word|((u32(val)&0xffu)<<(q*8u)); } + aq[col*kq + b*8u + u]=word; } + b=b+256u; } +}`; +// mmT2DP4A: batched ternary GEMV via dot4I8Packed with per-block activation scales. Accumulate in f32: +// a 2-bit word (16 acts) is HALF a 32-block → block=w>>1; acc += f32(word_int_dot)·asc[block]. +// o[c*N+n] = wscale·Σ_words (blockscale · int_dot) (+ r[c*N+n]). +const mmT2DP4A = (add, KX) => ` +@group(0) @binding(0) var aq: array; // [KX][K/4] int8x4 +@group(0) @binding(1) var qw: array; // [N][K/16] 2-bit +@group(0) @binding(2) var asc: array; // [KX][K/32] +${add + ? "@group(0) @binding(3) var r: array;\n@group(0) @binding(4) var o: array;\n@group(0) @binding(5) var P: vec4;" + : "@group(0) @binding(3) var o: array;\n@group(0) @binding(4) var P: vec4;"} +var red: array; +fn pk(byte:u32) -> u32 { + let v0=byte&3u; let v1=(byte>>2u)&3u; let v2=(byte>>4u)&3u; let v3=(byte>>6u)&3u; + return ((v0-1u)&0xffu)|(((v1-1u)&0xffu)<<8u)|(((v2-1u)&0xffu)<<16u)|(((v3-1u)&0xffu)<<24u); +} +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let K=P.x; let nw=K>>4u; let kq=K>>2u; let nb=K>>5u; let rr=lid.x/64u; let t=lid.x%64u; + let n0=(wg.y*65535u+wg.x)*4u+rr; let n=min(n0,P.y-1u); let rowW=n*nw; + var acc: array; for(var c=0u;c<${KX}u;c++){ acc[c]=0.0; } + var w=t; + loop{ if(w>=nw){break;} + let word=qw[rowW+w]; let blk=w>>1u; + let wi0=pk(word&0xffu); let wi1=pk((word>>8u)&0xffu); let wi2=pk((word>>16u)&0xffu); let wi3=pk((word>>24u)&0xffu); + ${Array.from({length:KX},(_,c)=>`{ let bz=${c}u*kq + w*4u; let id=dot4I8Packed(wi0,aq[bz])+dot4I8Packed(wi1,aq[bz+1u])+dot4I8Packed(wi2,aq[bz+2u])+dot4I8Packed(wi3,aq[bz+3u]); acc[${c}]=acc[${c}]+f32(id)*asc[${c}u*nb+blk]; }`).join("\n ")} + w=w+64u; } + for(var c=0u;c<${KX}u;c++){ + red[lid.x]=acc[c]; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(t(P.w)${add?"+r[c*P.y+n0]":""}; } + workgroupBarrier(); + } +}`; + +const ROPE = (theta) => ` +@group(0) @binding(0) var x: array; // [nh*hd] in place +@group(0) @binding(1) var P: vec4; // nh, hd, pos, _ +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ + let nh=P.x; let hd=P.y; let pos=f32(P.z); let half=hd/2u; + let id=g.x; if(id>=nh*half){return;} + let head=id/half; let i=id%half; let base=head*hd; + let freq=pow(${theta}, -2.0*f32(i)/f32(hd)); + let ang=pos*freq; let c=cos(ang); let s=sin(ang); + let a=x[base+i]; let b=x[base+i+half]; + x[base+i]=a*c-b*s; + x[base+i+half]=b*c+a*s; +}`; + +// One workgroup per head; 64 threads cooperate on scores → softmax → weighted V. +// The score tile is sized to the KV allocation (the old fixed 1024 silently broke ctx > 1024); +// workgroup storage caps this at ~4000 positions (cap·4B + reductions ≤ 16 KB). +const ATTN = (cap) => ` +@group(0) @binding(0) var q: array; // [nh*hd] +@group(0) @binding(1) var kc: array; // [cap*kvdim] position-major +@group(0) @binding(2) var vc: array; +@group(0) @binding(3) var o: array; // [nh*hd] +@group(0) @binding(4) var P: vec4; // nh, nkv, hd, pos(attend 0..pos) +var sc: array; // score tile = full KV allocation +var red: array; +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let h=wg.x; let nh=P.x; let nkv=P.y; let hd=P.z; let pos=P.w; + let group=nh/nkv; let kh=h/group; let kvdim=nkv*hd; + let scale=1.0/sqrt(f32(hd)); let qb=h*hd; let kb=kh*hd; let t=lid.x; + var j=t; loop{ if(j>pos){break;} var d=0.0; for(var c=0u;cpos){break;} lm=max(lm,sc[j]); j=j+64u; } + red[t]=lm; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(tpos){break;} let e=exp(sc[j]-mx); sc[j]=e; ld=ld+e; j=j+64u; } + red[t]=ld; workgroupBarrier(); + s=32u; loop{ if(s==0u){break;} if(t=hd){break;} var acc=0.0; for(var jj=0u;jj<=pos;jj++){ acc=acc+sc[jj]*vc[jj*kvdim+kb+c]; } o[qb+c]=acc/dn; c=c+64u; } +}`; + +// ── SPLIT-KV attention (flash-decoding): the single-dispatch ATTN runs ONE workgroup per head +// (20 wgs on a 2B model) with a serial loop over every KV position — occupancy collapses as the +// context grows (measured: 1.9 → 19.5 ms/token from pos≈70 to pos≈420). Split the position axis: +// P1 computes per-TILE partial softmax (tile max, exp-sum, unnormalized V-accum) on a (heads × +// tiles) grid; P2 combines the ≤cap/TILE partials with the standard max-rescale. Deterministic +// (fixed summation order) — within-engine greedy identity holds on every path via layerBody. +const ATILE = 64; +// P1 v3: SMALL tiles (64 positions) so the tile grid grows with context (occupancy scales) and the +// serial V slab loop inside each workgroup stays short (makespan, not throughput, is what a decode +// attention dispatch pays). THREADS = max(tile, hd): one position per thread in the score phase, +// one channel per thread in the V phase; V staged through shared memory in 8-row slabs (coalesced). +const ATTNP1 = (maxTiles, tile, hdL) => { const TH = Math.max(tile, hdL); return ` +@group(0) @binding(0) var q: array>; // [nh*hd/4] +@group(0) @binding(1) var kc: array>; +@group(0) @binding(2) var vc: array>; +@group(0) @binding(3) var pt: array; // [nh*${maxTiles}*(hd+2)] +@group(0) @binding(4) var P: vec4; // nh, nkv, hd, pos +var e: array; +var red: array; +var vsh: array; +@compute @workgroup_size(${TH}) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let h=wg.x; let t=wg.y; let nh=P.x; let nkv=P.y; let hd=P.z; let pos=P.w; + let j0=t*${tile}u; + let jn=min(pos+1u-j0, ${tile}u); + let group=nh/nkv; let kh=h/group; let kvd4=(nkv*hd)>>2u; + let scale=1.0/sqrt(f32(hd)); let qb4=(h*hd)>>2u; let kb4=(kh*hd)>>2u; let tid=lid.x; + var sc=-1.0e30; + if(tid(0.0); + let rb=(j0+tid)*kvd4+kb4; + for(var c=0u;c<(hd>>2u);c++){ s4=s4+q[qb4+c]*kc[rb+c]; } + sc=(s4.x+s4.y+s4.z+s4.w)*scale; + } + if(tid<${tile}u){ e[tid]=sc; } + red[tid]=sc; workgroupBarrier(); + var s=${TH / 2}u; loop{ if(s==0u){break;} if(tid=jn){break;} + let rows=min(8u, jn-jc); + workgroupBarrier(); + var idx=tid; loop{ if(idx>=rows*hd){break;} let r=idx/hd; let c=idx%hd; let v4=vc[(j0+jc+r)*kvd4+kb4+(c>>2u)]; vsh[idx]=v4[c&3u]; idx=idx+${TH}u; } + workgroupBarrier(); + if(tid { const TH = Math.max(tile, hdL); return ` +@group(0) @binding(0) var q: array; // [nh*hd] +@group(0) @binding(1) var kc: array; +@group(0) @binding(2) var vc: array; +@group(0) @binding(3) var pt: array; // [nh*${maxTiles}*(hd+2)] +@group(0) @binding(4) var P: vec4; // nh, nkv, hd, pos +const S: u32 = ${kvd / 8 + kvd / 32}u; +const CW: u32 = ${kvd / 8}u; +var e: array; +var red: array; +var vsh: array; +fn vval(j:u32, c:u32) -> f32 { let w=vc[j*S+(c>>3u)]; return (f32((w>>((c&7u)*4u))&15u)-7.0)*bitcast(vc[j*S+CW+(c>>5u)]); } +@compute @workgroup_size(${TH}) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let h=wg.x; let t=wg.y; let nh=P.x; let nkv=P.y; let hd=P.z; let pos=P.w; + let j0=t*${tile}u; + let jn=min(pos+1u-j0, ${tile}u); + let group=nh/nkv; let kh=h/group; + let scale=1.0/sqrt(f32(hd)); let qb=h*hd; let kb=kh*hd; let tid=lid.x; + var sc=-1.0e30; + if(tid>3u);w++){ // word-wise: 8 codes/u32, scale per 32 + let word=kc[jr+((kb>>3u)+w)]; let sca=bitcast(kc[jr+CW+((kb>>5u)+(w>>2u))]); + var ws=0.0; + for(var i=0u;i<8u;i++){ ws=ws+q[qb+(w<<3u)+i]*(f32((word>>(i*4u))&15u)-7.0); } + dd=dd+ws*sca; + } + sc=dd*scale; + } + if(tid<${tile}u){ e[tid]=sc; } + red[tid]=sc; workgroupBarrier(); + var s=${TH / 2}u; loop{ if(s==0u){break;} if(tid=jn){break;} + let rows=min(8u, jn-jc); + workgroupBarrier(); + var idx=tid; loop{ if(idx>=rows*hd){break;} let r=idx/hd; let c=idx%hd; vsh[idx]=vval(j0+jc+r, kb+c); idx=idx+${TH}u; } + workgroupBarrier(); + if(tid ` +@group(0) @binding(0) var pt: array; +@group(0) @binding(1) var o: array; // [nh*hd] +@group(0) @binding(2) var P: vec4; // nh, nkv, hd, pos +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let h=wg.x; let hd=P.z; let nt=(P.w/${tile}u)+1u; let bh=h*${maxTiles}u*(hd+2u); let tid=lid.x; + var M=-1e30; for(var t=0u;t=hd){break;} var acc=0.0; for(var t=0u;t ` +@group(0) @binding(0) var q: array; +@group(0) @binding(1) var kc: array; +@group(0) @binding(2) var vc: array; +@group(0) @binding(3) var o: array; +@group(0) @binding(4) var P: vec4; // nh, nkv, hd, pos +var sc: array; +var red: array; +const S: u32 = ${kvd / 8 + kvd / 32}u; +const CW: u32 = ${kvd / 8}u; +fn kval(j:u32, c:u32) -> f32 { let w=kc[j*S+(c>>3u)]; return (f32((w>>((c&7u)*4u))&15u)-7.0)*bitcast(kc[j*S+CW+(c>>5u)]); } +fn vval(j:u32, c:u32) -> f32 { let w=vc[j*S+(c>>3u)]; return (f32((w>>((c&7u)*4u))&15u)-7.0)*bitcast(vc[j*S+CW+(c>>5u)]); } +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let h=wg.x; let nh=P.x; let nkv=P.y; let hd=P.z; let pos=P.w; + let group=nh/nkv; let kh=h/group; + let scale=1.0/sqrt(f32(hd)); let qb=h*hd; let kb=kh*hd; let t=lid.x; + var j=t; loop{ if(j>pos){break;} var d=0.0; for(var c=0u;cpos){break;} lm=max(lm,sc[j]); j=j+64u; } + red[t]=lm; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(tpos){break;} let e=exp(sc[j]-mx); sc[j]=e; ld=ld+e; j=j+64u; } + red[t]=ld; workgroupBarrier(); + s=32u; loop{ if(s==0u){break;} if(t=hd){break;} var acc=0.0; for(var jj=0u;jj<=pos;jj++){ acc=acc+sc[jj]*vval(jj,kb+c); } o[qb+c]=acc/dn; c=c+64u; } +}`; + +// quantize+pack ONE token's K or V row into the int4 cache record at position P.w (binds the +// attention uniform — its .w is already the position on every path, step and batched decode) +const KVQ = (kvd) => ` +@group(0) @binding(0) var x: array; +@group(0) @binding(1) var out: array; +@group(0) @binding(2) var P: vec4; // .w = pos +const S: u32 = ${kvd / 8 + kvd / 32}u; +const CW: u32 = ${kvd / 8}u; +const NG: u32 = ${kvd / 32}u; +@compute @workgroup_size(64) +fn main(@builtin(local_invocation_id) lid:vec3){ + let base=P.w*S; var g=lid.x; + loop{ if(g>=NG){break;} + var mx=0.0; for(var i=0u;i<32u;i++){ let a=abs(x[g*32u+i]); if(a>mx){mx=a;} } + let s=max(mx/7.0, 1e-12); + out[base+CW+g]=bitcast(s); + for(var w=0u;w<4u;w++){ + var word=0u; + for(var i=0u;i<8u;i++){ let qv=clamp(i32(round(x[g*32u+w*8u+i]/s)),-7,7); word=word|(u32(qv+7)<<(i*4u)); } + out[base+g*4u+w]=word; + } + g=g+64u; } +}`; + +const SILUMUL = ` +@group(0) @binding(0) var gate: array; +@group(0) @binding(1) var up: array; +@group(0) @binding(2) var o: array; +@group(0) @binding(3) var P: vec4; // ff +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ + let i=g.x; if(i>=P.x){return;} + let v=gate[i]; o[i]=(v/(1.0+exp(-v)))*up[i]; +}`; + +const ADD = ` +@group(0) @binding(0) var a: array; +@group(0) @binding(1) var b: array; +@group(0) @binding(2) var o: array; +@group(0) @binding(3) var P: vec4; // n +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ let i=g.x; if(i>=P.x){return;} o[i]=a[i]+b[i]; }`; + +// MoE accumulate: o += w · x (w = router weight, passed as f32 bits in P.y). Sums +// each active expert's contribution into the residual without a separate add. +const AXPY = ` +@group(0) @binding(0) var o: array; +@group(0) @binding(1) var x: array; +@group(0) @binding(2) var P: vec4; // n, f32bits(w) +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ let i=g.x; if(i>=P.x){return;} o[i]=o[i]+bitcast(P.y)*x[i]; }`; + +// ── BATCHED-EXPERT MoE kernels (G5c): collapse the per-expert dispatch storm into ONE dispatch per +// stage by looping the nUsed chosen experts INSIDE the kernel, indexing each expert's slab via an +// id table. 640 tiny dispatches/token → ~64. The expert slab is ONE resident buffer (all nExp experts +// contiguous: expert e at u32 offset e·(N·K/8) for q, e·(N·K/32) for f32 scales). q4 decode, verbatim. ── +const MOE_GU = ` +@group(0) @binding(0) var x: array; // [K=d] shared input (normed2) +@group(0) @binding(1) var qw: array; // WHOLE gate|up slab (all experts) +@group(0) @binding(2) var sc: array; +@group(0) @binding(3) var o: array; // [nUsed·ff] +@group(0) @binding(4) var P: vec4; // K=d, ff(rows/expert), nblk=d/32, nUsed +@group(0) @binding(5) var idx: array,2>; // chosen expert ids (≤8) +var red: array; +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let r=wg.y*65535u+wg.x; let K=P.x; let ff=P.y; let nblk=P.z; let t=lid.x; + if(r>=P.w*ff){return;} // row r → expert slot s, local row i + let s=r/ff; let i=r-s*ff; let e=idx[s>>2u][s&3u]; + let qStride=(ff*K)>>3u; let sStride=(ff*K)>>5u; let words=K>>3u; + let rowW=e*qStride+i*words; let rowS=e*sStride+i*nblk; + var acc=0.0; var w=t; + loop{ if(w>=words){break;} let packed=qw[rowW+w]; let kb=w<<3u; let sca=sc[rowS+(kb>>5u)]; + for(var j=0u;j<8u;j=j+1u){ acc=acc+x[kb+j]*f32(i32((packed>>(j*4u))&0xfu)-8)*sca; } w=w+64u; } + red[t]=acc; workgroupBarrier(); + var st=32u; loop{ if(st==0u){break;} if(t hid: array; // [nUsed·ff] (silu(gate)·up per expert) +@group(0) @binding(1) var qw: array; // WHOLE down slab +@group(0) @binding(2) var sc: array; +@group(0) @binding(3) var res: array; // residual [N=d] +@group(0) @binding(4) var o: array; // [N=d] = res + Σ_s w_s·down_s +@group(0) @binding(5) var P: vec4; // K=ff, N=d, nblk=ff/32, nUsed +@group(0) @binding(6) var idx: array,2>; +@group(0) @binding(7) var wts: array,2>; // router weights +var red: array; +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let n=wg.y*65535u+wg.x; let K=P.x; let N=P.y; let nblk=P.z; let nUsed=P.w; let t=lid.x; + if(n>=N){return;} + let qStride=(K*N)>>3u; let sStride=(K*N)>>5u; let words=K>>3u; + var acc=0.0; + for(var s=0u;s>2u][s&3u]; let wv=wts[s>>2u][s&3u]; let hb=s*K; + let rowW=e*qStride+n*words; let rowS=e*sStride+n*nblk; var ww=t; + loop{ if(ww>=words){break;} let packed=qw[rowW+ww]; let kb=ww<<3u; let sca=sc[rowS+(kb>>5u)]; + for(var j=0u;j<8u;j=j+1u){ acc=acc+wv*hid[hb+kb+j]*f32(i32((packed>>(j*4u))&0xfu)-8)*sca; } ww=ww+64u; } + } + red[t]=acc; workgroupBarrier(); + var st=32u; loop{ if(st==0u){break;} if(t l: array; +@group(0) @binding(1) var ids: array; +@group(0) @binding(2) var P: vec4; // count, f32bits(rp) +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ let i=g.x; if(i>=P.x){return;} let id=ids[i]; let rp=bitcast(P.y); let v=l[id]; if(v>0.0){ l[id]=v/rp; } else { l[id]=v*rp; } }`; +// two-stage argmax; tie-break = smallest index on equal value (matches the JS first-max scan exactly) +const ARGMAX1 = ` +@group(0) @binding(0) var l: array; +@group(0) @binding(1) var o: array>; // (f32bits(max), idx) per workgroup +@group(0) @binding(2) var P: vec4; // vocab +var wm: array; var wi: array; +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let V=P.x; let t=lid.x; var bm=-3.0e38; var bi=0xffffffffu; var i=wg.x*256u+t; + loop{ if(i>=V){break;} let v=l[i]; if(v>bm||(v==bm&&iwm[t]||(wm[t+s]==wm[t]&&wi[t+s](bitcast(wm[0]),wi[0]); } +}`; +const ARGMAX2 = ` +@group(0) @binding(0) var c: array>; +@group(0) @binding(1) var o: array; +var wm: array; var wi: array; +@compute @workgroup_size(256) +fn main(@builtin(local_invocation_id) lid:vec3){ + let t=lid.x; let e=c[t]; wm[t]=bitcast(e.x); wi[t]=e.y; workgroupBarrier(); + var s=128u; loop{ if(s==0u){break;} if(twm[t]||(wm[t+s]==wm[t]&&wi[t+s] ` +@group(0) @binding(0) var x: array; +@group(0) @binding(1) var qw: array; +@group(0) @binding(2) var sc: array; +@group(0) @binding(3) var lut: array; +${add + ? "@group(0) @binding(4) var r: array;\n@group(0) @binding(5) var o: array;\n@group(0) @binding(6) var P: vec4;" + : "@group(0) @binding(4) var o: array;\n@group(0) @binding(5) var P: vec4;"} +var red: array; +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let n=wg.y*65535u+wg.x; let K=P.x; let nblk=P.z; let t=lid.x; + if(n>=P.y){return;} + var acc=0.0; + let rowC=n*nblk*2u; let rowS=n*nblk; var blk=t; + loop{ if(blk>=nblk){break;} + let si=rowS+blk; let s2=sc[si>>1u]; let sca=select(unpack2x16float(s2).x, unpack2x16float(s2).y, (si&1u)==1u); + let kb=blk<<5u; var bacc=0.0; + for(var c=0u;c<2u;c=c+1u){ + let w2=qw[rowC+blk*2u+c]; + for(var h2=0u;h2<2u;h2=h2+1u){ + let code=(w2>>(h2*16u))&0xffffu; let shp=(code&0xffu)<<3u; let sgn=code>>8u; + let kk=kb+(c*2u+h2)*8u; + for(var j=0u;j<8u;j=j+1u){ let mag=lut[shp+j]; bacc=bacc+x[kk+j]*select(mag,-mag,((sgn>>j)&1u)==1u); } + } + } + acc=acc+bacc*sca; blk=blk+64u; + } + red[t]=acc; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(t ` +@group(0) @binding(0) var x: array; +@group(0) @binding(1) var qw: array; +@group(0) @binding(2) var sc: array; +@group(0) @binding(3) var o: array; +@group(0) @binding(4) var P: vec4; +var red: array; +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let nblk=P.z; let rr=lid.x/${L}u; let t=lid.x%${L}u; + let n0=(wg.y*65535u+wg.x)*${R}u+rr; let n=min(n0, P.y-1u); + let rowB=n*nblk; var acc=0.0; var blk=t; + loop{ if(blk>=nblk){break;} + let bp=(rowB+blk)*3u; let p0=qw[bp]; let p1=qw[bp+1u]; let p2=qw[bp+2u]; let kb=blk<<5u; var bacc=0.0; + for(var j=0u;j<10u;j=j+1u){ bacc=bacc+x[kb+j]*f32(i32((p0>>(j*3u))&7u)-3); } + for(var j=0u;j<10u;j=j+1u){ bacc=bacc+x[kb+10u+j]*f32(i32((p1>>(j*3u))&7u)-3); } + for(var j=0u;j<10u;j=j+1u){ bacc=bacc+x[kb+20u+j]*f32(i32((p2>>(j*3u))&7u)-3); } + let sp=(p0>>30u)|((p1>>30u)<<2u)|((p2>>30u)<<4u); + bacc=bacc+x[kb+30u]*f32(i32(sp&7u)-3)+x[kb+31u]*f32(i32((sp>>3u)&7u)-3); + acc=acc+bacc*sc[rowB+blk]; blk=blk+${L}u; + } + red[lid.x]=acc; workgroupBarrier(); + var s=${L >> 1}u; loop{ if(s==0u){break;} if(t f32 { + var s4=vec4(0.0); + var x0=x[v]; s4=s4+x0*(vec4(f32(word&3u),f32((word>>2u)&3u),f32((word>>4u)&3u),f32((word>>6u)&3u))-vec4(1.0)); + x0=x[v+1u]; s4=s4+x0*(vec4(f32((word>>8u)&3u),f32((word>>10u)&3u),f32((word>>12u)&3u),f32((word>>14u)&3u))-vec4(1.0)); + x0=x[v+2u]; s4=s4+x0*(vec4(f32((word>>16u)&3u),f32((word>>18u)&3u),f32((word>>20u)&3u),f32((word>>22u)&3u))-vec4(1.0)); + x0=x[v+3u]; s4=s4+x0*(vec4(f32((word>>24u)&3u),f32((word>>26u)&3u),f32((word>>28u)&3u),f32((word>>30u)&3u))-vec4(1.0)); + return s4.x+s4.y+s4.z+s4.w; +}`; +const mmT2Kernel = (add, R = 4, L = 64, U = 1) => ` +@group(0) @binding(0) var x: array>; +@group(0) @binding(1) var qw: array; +${add + ? "@group(0) @binding(2) var r: array;\n@group(0) @binding(3) var o: array;\n@group(0) @binding(4) var P: vec4;" + : "@group(0) @binding(2) var o: array;\n@group(0) @binding(3) var P: vec4;"} +var red: array; +${t2Dot16} +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let K=P.x; let nw=K>>4u; let rr=lid.x/${L}u; let t=lid.x%${L}u; + let n0=(wg.y*65535u+wg.x)*${R}u+rr; let n=min(n0, P.y-1u); // clamp keeps barriers uniform + let rowW=n*nw; var acc=0.0; var w=t*${U}u; + loop{ if(w>=nw){break;} + ${Array.from({ length: U }, (_, u) => `if(w+${u}u> 1}u; loop{ if(s==0u){break;} if(t(P.w)${add ? "+r[n0]" : ""}; } +}`; + +// Ternary GEMV with PER-256-BLOCK scales (fmt t2r — exact TQ2_0 re-layout for models whose trained +// scale structure is per-row/per-channel, e.g. TriLM): same V2 shape as mmT2Kernel, ONE extra scale +// read per 16 weights (a u32 word never straddles a 256-block). 2.125 bpw traffic. +const mmT2RKernel = (add, R = 4, L = 64, U = 1) => ` +@group(0) @binding(0) var x: array>; +@group(0) @binding(1) var qw: array; +@group(0) @binding(2) var sc: array; +${add + ? "@group(0) @binding(3) var r: array;\n@group(0) @binding(4) var o: array;\n@group(0) @binding(5) var P: vec4;" + : "@group(0) @binding(3) var o: array;\n@group(0) @binding(4) var P: vec4;"} +var red: array; +${t2Dot16} +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let K=P.x; let nw=K>>4u; let rr=lid.x/${L}u; let t=lid.x%${L}u; + let n0=(wg.y*65535u+wg.x)*${R}u+rr; let n=min(n0, P.y-1u); + let rowW=n*nw; let rowB=n*(K>>8u); var acc=0.0; var w=t*${U}u; + loop{ if(w>=nw){break;} + ${Array.from({ length: U }, (_, u) => `if(w+${u}u>4u)]; }`).join("\n ")} + w=w+${L * U}u; } + red[lid.x]=acc; workgroupBarrier(); + var s=${L >> 1}u; loop{ if(s==0u){break;} if(t ` +@group(0) @binding(0) var x: array>; +@group(0) @binding(1) var qw1: array; +@group(0) @binding(2) var qw2: array; +@group(0) @binding(3) var qw3: array; +@group(0) @binding(4) var o: array; +@group(0) @binding(5) var P: vec4; // K, Ntotal, N1, N2 +@group(0) @binding(6) var S: vec4; // f32bits(s1), f32bits(s2), f32bits(s3) +var red: array; +${t2Dot16} +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let K=P.x; let nw=K>>4u; let rr=lid.x/${L}u; let t=lid.x%${L}u; + let n0=(wg.y*65535u+wg.x)*${R}u+rr; let n=min(n0, P.y-1u); + var rowW=n*nw; var sc=bitcast(S.x); var src=0u; + if(n>=P.z+P.w){ rowW=(n-P.z-P.w)*nw; sc=bitcast(S.z); src=2u; } + else if(n>=P.z){ rowW=(n-P.z)*nw; sc=bitcast(S.y); src=1u; } + var acc=0.0; var w=t*${U}u; + loop{ if(w>=nw){break;} + ${Array.from({ length: U }, (_, u) => `if(w+${u}u> 1}u; loop{ if(s==0u){break;} if(t ` +@group(0) @binding(0) var gu: array>; // [gate(ff) ‖ up(ff)] +@group(0) @binding(1) var qw: array; +@group(0) @binding(2) var r: array; +@group(0) @binding(3) var o: array; +@group(0) @binding(4) var P: vec4; // K(=ff), N, ff/4 (vec4 offset of up), f32bits(s) +var red: array; +@compute @workgroup_size(256) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let K=P.x; let nw=K>>4u; let rr=lid.x>>6u; let t=lid.x&63u; + let n0=(wg.y*65535u+wg.x)*4u+rr; let n=min(n0, P.y-1u); + let rowW=n*nw; let uo=P.z; var acc=0.0; var w=t; + loop{ if(w>=nw){break;} + let word=qw[rowW+w]; let v=w<<2u; + var s4=vec4(0.0); + for(var c=0u;c<4u;c=c+1u){ + let g4=gu[v+c]; let u4=gu[uo+v+c]; + ${relu2 ? "let a4=max(g4,vec4(0.0)); let x0=a4*a4*u4;" : "let x0=(g4/(vec4(1.0)+exp(-g4)))*u4;"} + let sh=c*8u; + s4=s4+x0*(vec4(f32((word>>(sh*1u))&3u),f32((word>>(sh+2u))&3u),f32((word>>(sh+4u))&3u),f32((word>>(sh+6u))&3u))-vec4(1.0)); + } + acc=acc+s4.x+s4.y+s4.z+s4.w; + w=w+64u; } + red[lid.x]=acc; workgroupBarrier(); + var s=32u; loop{ if(s==0u){break;} if(t(P.w)+r[n0]; } +}`; + +// Fused RoPE: q and k rotated in ONE pass (k heads tail the grid). +const ROPE2 = (theta) => ` +@group(0) @binding(0) var q: array; +@group(0) @binding(1) var k: array; +@group(0) @binding(2) var P: vec4; // nh, hd, pos, nkv +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ + let nh=P.x; let hd=P.y; let pos=f32(P.z); let nkv=P.w; let half=hd/2u; + let id=g.x; if(id>=(nh+nkv)*half){return;} + let head=id/half; let i=id%half; + let freq=pow(${theta}, -2.0*f32(i)/f32(hd)); + let ang=pos*freq; let c=cos(ang); let s=sin(ang); + if(head ` +@group(0) @binding(0) var gu: array; // [gate(ff) ‖ up(ff)] +@group(0) @binding(1) var gamma: array; +@group(0) @binding(2) var o: array; +@group(0) @binding(3) var P: vec4; // ff +var sh: array; +@compute @workgroup_size(256) +fn main(@builtin(local_invocation_id) lid:vec3){ + let ff=P.x; let t=lid.x; + var ss=0.0; + var j=t; loop{ if(j>=ff){break;} + let g=gu[j]; let u=gu[ff+j]; + ${relu2 ? "let a=max(g,0.0); let h=a*a*u;" : "let h=(g/(1.0+exp(-g)))*u;"} + o[j]=h; ss=ss+h*h; j=j+256u; } + sh[t]=ss; workgroupBarrier(); + var s=128u; loop{ if(s==0u){break;} if(t=ff){break;} o[j]=o[j]*inv*gamma[j]; j=j+256u; } +}`; + +// BitNet FFN activation: h = relu(gate)² ⊙ up (squared ReLU — b1.58 2B4T uses this instead of SiLU) +const RELU2MUL = ` +@group(0) @binding(0) var gate: array; +@group(0) @binding(1) var up: array; +@group(0) @binding(2) var o: array; +@group(0) @binding(3) var P: vec4; // ff +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ + let i=g.x; if(i>=P.x){return;} + let v=max(gate[i],0.0); o[i]=v*v*up[i]; +}`; + +// batched decode: embed lookup ON the GPU (token id read from the seq ring) → B.x, no CPU per token +const EMBED = (bits, q3f) => ` +@group(0) @binding(0) var ring: array; +@group(0) @binding(1) var eq: array; +@group(0) @binding(2) var es: array; +@group(0) @binding(3) var x: array; +@group(0) @binding(4) var P: vec4; // ringIdx, d +@compute @workgroup_size(256) +fn main(@builtin(global_invocation_id) g:vec3){ + let i=g.x; let d=P.y; if(i>=d){return;} let tok=ring[P.x]; let sb=tok*(d/32u)+(i>>5u); +${bits === 3 && q3f ? ` let bp=sb*3u; let j=i&31u; var q:u32; + if(j<10u){ q=(eq[bp]>>(j*3u))&7u; } else if(j<20u){ q=(eq[bp+1u]>>((j-10u)*3u))&7u; } else if(j<30u){ q=(eq[bp+2u]>>((j-20u)*3u))&7u; } + else { let sp=(eq[bp]>>30u)|((eq[bp+1u]>>30u)<<2u)|((eq[bp+2u]>>30u)<<4u); if(j==30u){ q=sp&7u; } else { q=(sp>>3u)&7u; } } + x[i]=f32(i32(q)-3)*es[sb];` + : bits === 4 ? ` let gg=tok*d+i; let nib=(eq[gg>>3u]>>((gg&7u)*4u))&0xfu; x[i]=f32(i32(nib)-8)*es[sb];` + : ` let gg=tok*d+i; let b=(eq[gg>>2u]>>((gg&3u)*8u))&0xffu; x[i]=f32(i32(b<<24u)>>24u)*es[sb];`} +}`; +// dedup-aware repetition penalty over the ring's last-64 window (exact Set semantics: first occurrence only) +const PENALTY2 = ` +@group(0) @binding(0) var l: array; +@group(0) @binding(1) var ring: array; +@group(0) @binding(2) var P: vec4; // seqLen, f32bits(rp) +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ + let t=g.x; let n=P.x; if(t>=min(64u,n)){return;} let id=ring[n-1u-t]; + for(var j=0u;j(P.y); let v=l[id]; if(v>0.0){ l[id]=v/rp; } else { l[id]=v*rp; } +}`; +const APPEND = ` +@group(0) @binding(0) var ring: array; +@group(0) @binding(1) var w: array; +@group(0) @binding(2) var P: vec4; // ringIdx +@compute @workgroup_size(1) +fn main(){ ring[P.x]=w[0]; }`; + +// f32 KV-cache save as a KERNEL (not copyBufferToBuffer) so the whole token can run inside ONE +// compute pass (a copy would force a pass break — pass boundaries are the measured dispatch tax). +// Fused variant reads the packed qkv buffer at compile-time offsets; split variant reads B.k/B.v. +const KVSAVE_F = (qOff, kvd) => ` +@group(0) @binding(0) var src: array; // B.qkv [q|k|v] +@group(0) @binding(1) var kc: array; +@group(0) @binding(2) var vc: array; +@group(0) @binding(3) var P: vec4; // .w = pos (the attn uniform) +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ + let i=g.x; if(i>=${kvd}u){return;} + kc[P.w*${kvd}u+i]=src[${qOff}u+i]; + vc[P.w*${kvd}u+i]=src[${qOff + kvd}u+i]; +}`; +const KVSAVE_S = (kvd) => ` +@group(0) @binding(0) var k: array; +@group(0) @binding(1) var v: array; +@group(0) @binding(2) var kc: array; +@group(0) @binding(3) var vc: array; +@group(0) @binding(4) var P: vec4; // .w = pos +@compute @workgroup_size(64) +fn main(@builtin(global_invocation_id) g:vec3){ + let i=g.x; if(i>=${kvd}u){return;} + kc[P.w*${kvd}u+i]=k[i]; + vc[P.w*${kvd}u+i]=v[i]; +}`; + + +// ── DIFFUSION KERNELS (Dream-class mask-denoising; bidirectional attention over a resident batch) ── +// The causal flag (P.w bit 31) exists ONLY as the parity gate: causal diffuse(block=1) must equal +// the sequential engine token-for-token, which validates every other pass; Dream runs bidirectional. +const ATTNB = (maxN) => ` +@group(0) @binding(0) var q: array; +@group(0) @binding(1) var k: array; +@group(0) @binding(2) var v: array; +@group(0) @binding(3) var o: array; +@group(0) @binding(4) var P: vec4; // nh, nkv, hd, n | causal<<31 +var sc: array; +var red: array; +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let h=wg.x; let i=wg.y; let nh=P.x; let nkv=P.y; let hd=P.z; + let n=P.w&0x7fffffffu; let lim=select(n-1u, i, (P.w>>31u)==1u); + let group=nh/nkv; let kh=h/group; let kvd=nkv*hd; let qd=nh*hd; + let scale=1.0/sqrt(f32(hd)); let qb=i*qd+h*hd; let kb=kh*hd; let t=lid.x; + var j=t; loop{ if(j>lim){break;} var dd=0.0; for(var c=0u;clim){break;} lm=max(lm,sc[j]); j=j+64u; } + red[t]=lm; workgroupBarrier(); + var st=32u; loop{ if(st==0u){break;} if(tlim){break;} let e=exp(sc[j]-mx); sc[j]=e; ld=ld+e; j=j+64u; } + red[t]=ld; workgroupBarrier(); + st=32u; loop{ if(st==0u){break;} if(t=hd){break;} var acc=0.0; for(var jj=0u;jj<=lim;jj++){ acc=acc+sc[jj]*v[jj*kvd+kb+c]; } o[qb+c]=acc/dn; c=c+64u; } +}`; +const BIASK = ` +@group(0) @binding(0) var o: array; // [rows][N] +@group(0) @binding(1) var bias: array; // [N] +@group(0) @binding(2) var P: vec4; // N (wg.y = row) +@compute @workgroup_size(64) +fn main(@builtin(workgroup_id) wg:vec3, @builtin(local_invocation_id) lid:vec3){ + let i=wg.x*64u+lid.x; if(i>=P.x){return;} + o[wg.y*P.x+i]=o[wg.y*P.x+i]+bias[i]; +}`; +const fbits = (f) => new Uint32Array(new Float32Array([f]).buffer)[0]; +const s8 = (b) => (b << 24) >> 24; + +// STREAMING constructor: `manifest` is the parsed dims+tensor list; `fetchTensor(name)` +// returns ONE tensor's bytes ([q][f32 scales] or [f32]) on demand. The converted +// ~1 GB of weights is never held whole in wasm — each tensor is fetched, uploaded +// to the GPU, then freed — so 1.7 B+ fits under the wasm memory ceiling. +// ── OPFS frame store: the model's frames live on DISK, paged in on demand ── +// Converts once (downloads + dequant), writes every frame to a single OPFS file +// keyed by content, and persists it. On later loads, if the file already exists +// at the right size, conversion is SKIPPED — the model is read straight off disk. +// This is the RAM-wall break: the bytes never sit in JS heap; only the slice +// being played touches RAM (the browser's own page cache is the bounded cache). +async function openFrameStore(key, totalBytes) { + const root = await navigator.storage.getDirectory(); + const fh = await root.getFileHandle(key, { create: true }); + let file = await fh.getFile(); + const ready = file.size === totalBytes; // already converted + on disk? + return { + ready, fh, file, + async beginWrite() { this._w = await fh.createWritable(); }, + async write(pos, bytes) { await this._w.write({ type: "write", position: pos, data: bytes }); }, + async endWrite() { await this._w.close(); this.file = await fh.getFile(); }, + async read(off, len) { return new Uint8Array(await this.file.slice(off, off + len).arrayBuffer()); }, + }; +} + +export async function createQvacGPU(manifest, fetchTensor, cap = 64, eos = 2, stream = false, onProgress = null, frameStore = null, cacheBudget = 0) { + if (!navigator.gpu) throw new Error("no WebGPU"); + const prog = (done, total, label) => { try { onProgress && onProgress(done, total, label); } catch {} }; + // ── cold-load phase timing (near-zero cost; read via window.__qvacLoadStats) ── + // The resident weight upload was the one serialized stretch of cold boot: each tensor's + // fetch+gunzip (parts) blocked the next before its GPU write even ran. QLOAD lets a bench + // A/B the SAME code path at conc=1 (old serial behaviour) vs conc>1 (overlapped) and see the + // fetch/gunzip-vs-GPU-write split, so we optimize the half that actually costs. + const _now = () => (globalThis.performance ? performance.now() : 0); + const QLOAD = { residentMs: 0, partsMs: 0, gpuMs: 0, nTensors: 0, conc: 0 }; + const tmap = {}; for (const t of manifest.tensors) tmap[t.name] = t; + const { d, n_heads, n_kv_heads, ff, vocab, n_layers, hd } = manifest; + const bits = manifest.bits || 8; + const q3f = bits === 3 && manifest.layout === "q3f"; // Q3 FIELD layout (10×3-bit/u32 + spare stubs): ~½ the unpack ALU of bit-planes, same 12 B/block + const kv_dim = n_kv_heads * hd; + const ropeBase = manifest.rope_base || 10000; // Llama 10000, Qwen2/3 1e6 + const ropeLit = Number.isInteger(ropeBase) ? ropeBase + ".0" : "" + ropeBase; + const attnBias = !!manifest.attn_bias; // Qwen2 has q/k/v bias + const qkNorm = !!manifest.qk_norm; // Qwen3/OLMoE have q/k RMSNorm + const qkFull = qkNorm && manifest.qk_norm_dim === d; // OLMoE: RMSNorm over the FULL q/k vector (not per-head) + const subNorm = !!manifest.sub_norm; // BitNet: RMSNorm before wo (attn_sub_norm) + before w_down (ffn_sub_norm) + const bitlinear = !!manifest.bitlinear; // HF-BitNet (BitLinear): WEIGHTLESS RMSNorm on the input of EVERY ternary linear (qkv/wo/gate-up/down) + const relu2 = manifest.ffn_act === "relu2"; // BitNet: squared-ReLU gated FFN (else SiLU) + const moe = !!manifest.moe; // mixture-of-experts (router + per-token expert subset) + const nExp = moe ? manifest.moe.n_experts : 0, nUsed = moe ? manifest.moe.n_used : 0; + const remote = stream === "remote"; // "remote": packed layers stream from a served .qvf via HTTP Range (bound by disk, not RAM/quota) + const opfs = stream === "opfs" || remote; // both use the packed-layer disk path; only the store differs + const frameGran = stream === "frame"; // legacy: play ONE matrix at a time (JS, per-matrix) + stream = !!stream; let streamBuf = 0; // streamBuf = the streamed-weight working set + // NATIVE 2-bit (ADR-0054): weights re-quantized to incoherent 2-bit at load, matmuls read 2-bit DIRECTLY + // on the GPU + a per-matmul input Hadamard. Resident-dense only for now (streaming/MoE keep Q8/Q4). + const twoBit = !!manifest.twoBit && !stream && !moe && !frameGran; + const rotate = twoBit && manifest.incoherent !== false; // incoherence path rotates inputs; LDLQ κ-objects (incoherent:false) do not + const preQuant = twoBit && !!manifest.preQuantized; // load-direct: weights arrive ALREADY 2-bit (compiled offline) — no re-quant at load + const nextP2 = (n) => { let p = 1; while (p < n) p <<= 1; return p; }; + const maxKp = rotate ? nextP2(Math.max(d, ff, kv_dim, n_heads * hd)) : 0; + const qlenOf = (t) => bits === 3 ? (t.N * (t.K / 32)) * 12 : bits === 4 ? (t.N * t.K) / 2 : t.N * t.K; // Q3 = 3 u32 (12 bytes) per 32-block + const slenOf = (t) => t.N * (t.K / 32) * 4; + + const adapter = await navigator.gpu.requestAdapter(); + // Big-vocab models (Qwen: 151 k × d int8 ≈ 136 MB) exceed the default 128 MB + // storage-buffer binding limit — request the adapter's max so the bind succeeds. + const L = adapter.limits; + const canTs = adapter.features.has("timestamp-query"); // per-pass GPU profiling (dev: window.__profile) + const dev = await adapter.requestDevice({ + requiredFeatures: canTs ? ["timestamp-query"] : [], + requiredLimits: { + maxStorageBufferBindingSize: L.maxStorageBufferBindingSize, + maxBufferSize: L.maxBufferSize, + maxComputeWorkgroupsPerDimension: L.maxComputeWorkgroupsPerDimension, + }, + }); + // track total GPU memory allocated (weights + KV cache + scratch) so the system + // monitor can show — and free — exactly what this model holds on the GPU. + let gpuBytes = 0; + const _createBuffer = dev.createBuffer.bind(dev); + dev.createBuffer = (desc) => { gpuBytes += desc.size || 0; return _createBuffer(desc); }; + const U = GPUBufferUsage; + let pid = 0; + const pipe = (code, name) => { const p = dev.createComputePipeline({ layout: "auto", compute: { module: dev.createShaderModule({ code }), entryPoint: "main" } }); p._id = ++pid; p._name = name || "p" + pid; return p; }; + if (cap > 4000) throw new Error("cap " + cap + " exceeds the attention score tile (workgroup storage)"); + const kv4 = !!manifest.kv4 && !stream && !moe && !frameGran; // int4 KV cache for layers 1+ (E6) + const P_mm = pipe(mmKernel(twoBit ? 2 : bits, false, q3f), "mm"), P_mmadd = pipe(mmKernel(twoBit ? 2 : bits, true, q3f), "mmadd"), P_rms = pipe(RMS, "rms"), P_rope = pipe(ROPE(ropeLit), "rope"), P_attn = pipe(ATTN(cap), "attn"), P_sm = pipe(relu2 ? RELU2MUL : SILUMUL, relu2 ? "relu2" : "silu"), P_qkn = pipe(QKNORM, "qkn"); + const P_attnQ = kv4 ? pipe(ATTNQ(cap, kv_dim), "attnQ") : null, P_kvq = kv4 ? pipe(KVQ(kv_dim), "kvq") : null; + const P_fwL = twoBit ? pipe(FWHT_LOAD, "fwht") : null, P_fwB = twoBit ? pipe(FWHT_BFLY, "fwht") : null, P_fwN = twoBit ? pipe(FWHT_NORM, "fwht") : null; + const P_axpy = moe ? pipe(AXPY, "axpy") : null; + const moeBatch = moe && !frameStore; // resident κ-object MoE → batched-expert kernels + const P_moeGU = moeBatch ? pipe(MOE_GU, "moeGU") : null, P_moeDn = moeBatch ? pipe(MOE_DN, "moeDn") : null; + // E₈ codebook tensors (fmt e8q): own pipelines + the sealed 256×8 LUT as a GPU buffer + const hasE8 = manifest.tensors.some((t) => t.fmt === "e8q"); + const P_mmE8 = hasE8 ? pipe(mmE8Kernel(false), "mmE8") : null, P_mmE8add = hasE8 ? pipe(mmE8Kernel(true), "mmE8add") : null; + // BitNet ternary tensors (fmt t2): own pipelines; per-tensor scale rides each weight-set's uniform + const hasT2 = manifest.tensors.some((t) => t.fmt === "t2"); + const P_mmT2 = hasT2 ? pipe(mmT2Kernel(false), "mmT2") : null, P_mmT2add = hasT2 ? pipe(mmT2Kernel(true), "mmT2add") : null; + const hasT2R = manifest.tensors.some((t) => t.fmt === "t2r"); + const P_mmT2R = hasT2R ? pipe(mmT2RKernel(false), "mmT2R") : null, P_mmT2Radd = hasT2R ? pipe(mmT2RKernel(true), "mmT2Radd") : null; + // big-tensor geometry (≥16M weights): 16 rows × 16 lanes × unroll-4 — measured 1.6-2× on FFN shapes + const T2BIG = 16e6; + const P_mmQ3B = bits === 3 && q3f ? pipe(mmQ3BigKernel(), "mmQ3B") : null; // big q3f (lm_head) + const P_mmT2B = hasT2 ? pipe(mmT2Kernel(false, 16, 16, 4), "mmT2B") : null, P_mmT2Badd = hasT2 ? pipe(mmT2Kernel(true, 16, 16, 4), "mmT2Badd") : null; + const P_mmT2RB = hasT2R ? pipe(mmT2RKernel(false, 16, 16, 4), "mmT2RB") : null, P_mmT2RBadd = hasT2R ? pipe(mmT2RKernel(true, 16, 16, 4), "mmT2RBadd") : null; + // DRAFT: dense sub-norm (BitNet) STREAMING is enabled — the unfused layerBody applies attn/ffn sub-norm + // (rms over the resident Nrm weights) with ws(role) from R[role], and mmW dispatches t2 (Falcon-E proves it); + // combined with the t2 stream packing (t2stream), dense sub-norm streams. MoE sub-norm stays resident-only. + if (subNorm && manifest.moe) throw new Error("bitnet sub-norm MoE path is resident-only for now"); + // fused ternary layer (resident only): qkv 3→1 pass, gate/up 2→1, both ropes 1, act⊕sub-norm 1 + // measured policy (A/B walls, 5-run medians): fusion wins on the sub-norm (BitNet) family + // (12.3 vs 13.2 ms/tok on bitnet-2b) and LOSES on llama-arch ternary (24.5 vs 19.5 on + // falcon-e-3b — t2ad recomputes act per workgroup; short-K shapes punish the stacked t2f). + const fusedT2 = !globalThis.__noFuse && hasT2 && subNorm && !stream && !moe && !frameGran; + const P_t2f = fusedT2 ? pipe(mmT2FusedKernel(), "t2f") : null; + const P_t2fB = fusedT2 ? pipe(mmT2FusedKernel(16, 16, 4), "t2fB") : null; // big-geometry for the gate/up fusion + const P_rope2 = fusedT2 ? pipe(ROPE2(ropeLit), "rope2") : null; + const P_actn = fusedT2 && subNorm ? pipe(ACTNORM(relu2), "actn") : null; + const P_t2ad = fusedT2 && !subNorm ? pipe(mmT2ActAddKernel(relu2), "t2ad") : null; + let lutBuf = null; + if (hasE8) { + const lu = manifest.e8lutData; if (!lu || lu.length !== 2048) throw new Error("e8q tensors but no/bad e8lutData (need 256×8 f32)"); + lutBuf = dev.createBuffer({ size: lu.byteLength, usage: U.STORAGE | U.COPY_DST }); dev.queue.writeBuffer(lutBuf, 0, lu); + } + // ── per-pass GPU timestamps (dev-only; armed per-step by window.__profile, zero cost when off) ── + let PROF = null; + const profInit = () => { if (PROF || !canTs) return; PROF = { qs: dev.createQuerySet({ type: "timestamp", count: 4096 }), buf: dev.createBuffer({ size: 4096 * 8, usage: U.QUERY_RESOLVE | U.COPY_SRC }), stg: dev.createBuffer({ size: 4096 * 8, usage: U.MAP_READ | U.COPY_DST }), i: 0, tags: [], active: false }; }; + + const sbuf = (n) => dev.createBuffer({ size: Math.max(16, n * 4), usage: U.STORAGE | U.COPY_DST | U.COPY_SRC }); + const ubuf = (arr) => { const b = dev.createBuffer({ size: 16, usage: U.UNIFORM | U.COPY_DST }); dev.queue.writeBuffer(b, 0, arr); return b; }; + + // ── weights → GPU ── + // Resident: every layer's matrices get their own GPU buffer (all live on-GPU). + // Stream (store-as-memory): keep the layer matrices in JS and page each layer + // into ONE reusable buffer set per token — only the working set (1 layer) is + // ever GPU-resident, so GPU memory is O(1 layer), not O(depth). + // MoE packs only the attention matrices per layer; the FFN is per-expert frames + // streamed on demand. Dense packs attention + the FFN trio. + const ROLES = moe ? ["wq", "wk", "wv", "wo"] : ["wq", "wk", "wv", "wo", "w_gate", "w_up", "w_down"]; + const W = {}, Wb = {}, R = {}, FB = {}; + let RM = null, RMscale = null; // single reusable "frame" buffer (frame mode) + const padQ = (q) => { if (q.length % 4) { const p = new Uint8Array(Math.ceil(q.length / 4) * 4); p.set(q); return p; } return q; }; + // fetchTensor may be sync (wasm) or async (disk-streamed ingestion); `await` + // handles both (await on a plain value returns it). So all of setup is async. + const parts = async (name) => { + const t = tmap[name], bytes = await fetchTensor(name); + if (t.fmt === "e8q") { // E₈ codebook tensor: [u16 codewords N·K/4 B (4 u16 per 32 weights)][f16 scales N·K/16 B] + const ql = t.N * t.K / 4; + return { q: padQ(bytes.subarray(0, ql)), sRaw: bytes.subarray(ql).slice(), N: t.N, K: t.K, e8: true }; + } + if (t.fmt === "t2r") { // ternary + per-256-block f32 scales (blob = [codes][scales]) + const ql = t.N * t.K / 4; + const lim = Math.min(ql, 65536); + for (let i = 0; i < lim; i++) { const b = bytes[i]; if ((b & 3) === 3 || ((b >> 2) & 3) === 3 || ((b >> 4) & 3) === 3 || (b >> 6) === 3) throw new Error(`t2r alphabet violation in ${name} @byte ${i}`); } + return { q: bytes.subarray(0, ql), sRaw: bytes.subarray(ql).slice(), N: t.N, K: t.K, t2r: true }; + } + if (t.fmt === "t2") { // ternary: blob = codes only; scale lives in the manifest rec + // geometric validity (Law L5 beyond bytes): ternary fields must decode in {0,1,2} — sampled + // 64 KB/tensor at load; the full-census proof is the sealed atlas-bridge witness receipt. + const lim = Math.min(bytes.length, 65536); + for (let i = 0; i < lim; i++) { const b = bytes[i]; if ((b & 3) === 3 || ((b >> 2) & 3) === 3 || ((b >> 4) & 3) === 3 || (b >> 6) === 3) throw new Error(`t2 alphabet violation in ${name} @byte ${i}`); } + return { q: bytes, N: t.N, K: t.K, t2: true, ts: t.s }; + } + if (preQuant) { // load-direct: bytes ARE [2-bit packed (N·Kp/4)][f32 scales] + const Kp = rotate ? nextP2(t.K) : t.K, q2 = (t.N * Kp) / 4; + return { q: padQ(bytes.subarray(0, q2)), s: new Float32Array(bytes.buffer, bytes.byteOffset + q2, t.N * (Kp / 32)), N: t.N, K: t.K, Kp }; + } + const qlen = qlenOf(t), slen = slenOf(t); + const q = padQ(bytes.subarray(0, qlen)), s = new Float32Array(bytes.subarray(qlen, qlen + slen).slice().buffer); + if (twoBit) { const r = requant2bit(q, s, t.N, t.K); return { q: r.q, s: r.s, N: t.N, K: t.K, Kp: r.Kp }; } // requant-at-load = incoherence (LDLQ needs pre-compile) + return { q, s, N: t.N, K: t.K }; + }; + // GPU-side of a resident weight: create buffers + writeBuffer from already-decoded parts `p`. + // Split out of upW so the fetch+gunzip half (parts, CPU/native-async) can be overlapped across + // tensors while these device calls stay serialized on the one JS thread (they must be). + const writeW = (name, p) => { + if (p.t2) { // ternary: no scale buffer; s → P.w as f32 bits + const qbuf = dev.createBuffer({ size: p.q.byteLength, usage: U.STORAGE | U.COPY_DST }); dev.queue.writeBuffer(qbuf, 0, p.q); + W[name] = { qbuf, sbuf: null, uni: ubuf(new Uint32Array([p.K, p.N, p.K / 16, fbits(p.ts)])), N: p.N, K: p.K, Kp: p.K, t2: true, s: p.ts }; + return; + } + if (p.t2r) { // ternary + per-256-block scale buffer + const qbuf = dev.createBuffer({ size: p.q.byteLength, usage: U.STORAGE | U.COPY_DST }); dev.queue.writeBuffer(qbuf, 0, p.q); + const sb = dev.createBuffer({ size: Math.max(16, p.sRaw.byteLength), usage: U.STORAGE | U.COPY_DST }); dev.queue.writeBuffer(sb, 0, p.sRaw); + W[name] = { qbuf, sbuf: sb, uni: ubuf(new Uint32Array([p.K, p.N, p.K / 16, 0])), N: p.N, K: p.K, Kp: p.K, t2r: true }; + return; + } + const sBytes = p.sRaw || p.s; // e8q scales stay raw f16 bytes; others are f32 arrays + const qbuf = dev.createBuffer({ size: p.q.byteLength, usage: U.STORAGE | U.COPY_DST }); dev.queue.writeBuffer(qbuf, 0, p.q); + const sbuf2 = dev.createBuffer({ size: Math.max(16, sBytes.byteLength), usage: U.STORAGE | U.COPY_DST }); dev.queue.writeBuffer(sbuf2, 0, sBytes); + const Kp = twoBit ? p.Kp : p.K; + W[name] = { qbuf, sbuf: sbuf2, uni: ubuf(new Uint32Array([Kp, p.N, Kp / 32, 0])), N: p.N, K: p.K, Kp, e8: !!p.e8 }; + }; + const upW = async (name) => writeW(name, await parts(name)); + if (!frameGran) await upW("lm_head"); // resident in resident/layer modes; TILED (played) in frame mode + let RQ = null, RS = null, packLayout = null, packStride = 0, packQbytes = 0; + // DRAFT (t2 layer-streaming — needs WebGPU verification): BitNet/Falcon t2 has a SCALAR scale per matrix + // (baked into the matmul uniform via fbits), not a per-block scale buffer. So a t2 streamed layer packs + // q ONLY (no scale blob), and each layer's per-role scalar is written into the reusable R[role].uni before + // that layer's matmul. t2scales[l][role] = fbits(scale) is precomputed from the manifest (no fetch). + const t2stream = !!stream && !moe && !frameGran && ROLES.every((r) => (tmap[`l0.${r}`] || {}).fmt === "t2"); + let t2scales = null; + let opfsStore = null; + const frameMan = {}; // name → {off, qlen, slen, N, K} (frame layout) + if (frameGran) { + // FRAME PLAYER: each weight matrix is a "frame", played through ONE reusable + // buffer sized to the largest single matrix. The frames live either in JS + // (frame mode) or on DISK in OPFS (opfs mode — the RAM-wall break). + const names = []; + for (let l = 0; l < n_layers; l++) for (const role of ROLES) names.push(`l${l}.${role}`); + names.push("lm_head"); + let mq = 0, ms = 0, off = 0; + for (const name of names) { // deterministic layout (sizes from the manifest, no fetch) + const t = tmap[name], ql = Math.ceil(qlenOf(t) / 4) * 4, sl = slenOf(t); + frameMan[name] = { off, qlen: ql, slen: sl, N: t.N, K: t.K }; + off += ql + sl; + if (name !== "lm_head") { mq = Math.max(mq, ql); ms = Math.max(ms, sl); } + } + RM = dev.createBuffer({ size: mq, usage: U.STORAGE | U.COPY_DST }); + RMscale = dev.createBuffer({ size: Math.max(16, ms), usage: U.STORAGE | U.COPY_DST }); + streamBuf = mq + Math.max(16, ms); + if (opfs) { + opfsStore = await openFrameStore(`qvac-${vocab}-${n_layers}-${d}-b${bits}.frames`, off); + if (!opfsStore.ready) { // not on disk yet → convert + write (once) + await opfsStore.beginWrite(); + for (const name of names) { const p = await parts(name), m = frameMan[name]; await opfsStore.write(m.off, p.q); await opfsStore.write(m.off + m.qlen, new Uint8Array(p.s.buffer, p.s.byteOffset, p.s.byteLength)); } + await opfsStore.endWrite(); + } + } else { // frame mode: frames in JS + for (let l = 0; l < n_layers; l++) for (const role of ROLES) { const p = await parts(`l${l}.${role}`); FB[`l${l}.${role}`] = { q: p.q, s: p.s, uni: ubuf(new Uint32Array([p.K, p.N, p.K / 32, 0])), N: p.N }; } + FB["lm_head"] = await parts("lm_head"); + } + } else if (stream) { + // Pack each layer's 7 matrices into ONE q-blob + ONE scale-blob (roles laid + // out at 256-aligned offsets — the storage-buffer binding-offset granularity). + // Then the per-token upload is just 2 big writeBuffers/layer instead of 14 + // small ones (cuts 392 calls → 56 and makes each copy a fat, fast DMA), and + // each role's matmul binds its sub-range. Only one layer is GPU-resident. + // The packed bytes live in JS ("layer") or on DISK in OPFS ("opfs" — the + // RAM-wall break); EITHER way the per-layer body is the SAME proven layerBody(). + const al = (n) => Math.ceil(n / 256) * 256; + // t2 (BitNet/Falcon): q is codes only (N·K/4 B, 4 trits/byte) + a SCALAR scale (→ uniform); no scale blob. + // Every other stream fmt (q3f/q4/e8/t2r): q (padded) + a per-block scale blob at soff. Same packLayer shape. + const qbl = (t) => t2stream ? Math.ceil((t.N * t.K / 4) / 4) * 4 : Math.ceil(qlenOf(t) / 4) * 4; + const sbl = (t) => t2stream ? 0 : slenOf(t); + packLayout = {}; let qo = 0, so = 0; + for (const role of ROLES) { const t = tmap[`l0.${role}`]; qo = al(qo); so = al(so); packLayout[role] = { qoff: qo, qsize: qbl(t), soff: so, ssize: sbl(t), N: t.N, K: t.K }; qo += qbl(t); so += sbl(t); } + const packQ = al(qo), packS = al(so); + RQ = dev.createBuffer({ size: packQ, usage: U.STORAGE | U.COPY_DST }); + RS = dev.createBuffer({ size: Math.max(16, packS), usage: U.STORAGE | U.COPY_DST }); + streamBuf = packQ + Math.max(16, packS); + // t2: per-layer-per-role scalar (fbits), refreshed into R[role].uni each layer in the forward. Manifest-only. + if (t2stream) { t2scales = []; for (let l = 0; l < n_layers; l++) { const row = {}; for (const role of ROLES) row[role] = fbits((tmap[`l${l}.${role}`] || {}).s ?? 1); t2scales.push(row); } } + for (const role of ROLES) { + const L = packLayout[role]; + R[role] = t2stream + ? { qbuf: { buffer: RQ, offset: L.qoff, size: L.qsize }, uni: ubuf(new Uint32Array([L.K, L.N, L.K / 16, 0])), N: L.N, K: L.K, t2: true } // scale.w set per layer + : { qbuf: { buffer: RQ, offset: L.qoff, size: L.qsize }, sbuf: { buffer: RS, offset: L.soff, size: L.ssize }, uni: ubuf(new Uint32Array([L.K, L.N, L.K / 32, 0])), N: L.N }; + } + const packLayer = async (l) => { // build one layer's packed (q[,s]) from the κ-object + const q = new Uint8Array(packQ), s = new Uint8Array(packS); + for (const role of ROLES) { const p = await parts(`l${l}.${role}`); q.set(p.q, packLayout[role].qoff); if (!t2stream) s.set(new Uint8Array(p.s.buffer, p.s.byteOffset, p.s.byteLength), packLayout[role].soff); } + return { q, s }; + }; + if (opfs) { // DISK-backed: page each layer's packed blob in per token + packQbytes = packQ; packStride = packQ + packS; + if (remote) { // already on the server's disk as a .qvf → just read it via Range + opfsStore = frameStore; prog(n_layers, n_layers, "layers"); + } else { + opfsStore = await openFrameStore(`qvac-packed-${vocab}-${n_layers}-${d}-b${bits}.frames`, packStride * n_layers); + if (!opfsStore.ready) { // not on disk yet → convert + write (once) + await opfsStore.beginWrite(); + for (let l = 0; l < n_layers; l++) { const pk = await packLayer(l); await opfsStore.write(l * packStride, pk.q); await opfsStore.write(l * packStride + packQ, pk.s); prog(l + 1, n_layers, "layers"); } + await opfsStore.endWrite(); + } else prog(n_layers, n_layers, "layers"); + } + } else { // JS-backed: packed blobs stay in the heap, paged in per token + for (let l = 0; l < n_layers; l++) { Wb[l] = await packLayer(l); prog(l + 1, n_layers, "layers"); } + } + } else { + // RESIDENT (default dense path — chat/voice/messenger/diffusion all land here). + // A bounded pool CAN run parts() (fetch+gunzip+κ-verify) concurrently, but MEASUREMENT + // (forge/gpu/coldload-bench.html, BitNet-2B on RDNA-3) says default it OFF (conc=1 = the + // original strictly-serial path): warm the phase is ~4.3s and does NOT parallelize — gunzip + // + per-block SHA-256 are contention-bound, so conc>1 only trades wall-time for per-op + // slowdown (conc=8 was ~4% slower). GPU-write is ~0.35s of the whole phase, so there is no + // upload-overlap win to get. The cold network fetch is already parallelized by + // prefetchBlocks(conc=12) upstream. Kept opt-in (window.__qUploadConc>1) only for the cold + // window where the resident loop can outrun prefetch and stall on a serial network miss. + const names = []; + for (let l = 0; l < n_layers; l++) for (const role of ROLES) names.push(`l${l}.${role}`); + const conc = Math.max(1, (globalThis.__qUploadConc | 0) || 1); + QLOAD.conc = conc; QLOAD.nTensors = names.length; + const t0 = _now(); + let i = 0; + const worker = async () => { + while (i < names.length) { + const name = names[i++]; + const ta = _now(); const p = await parts(name); QLOAD.partsMs += _now() - ta; + const tb = _now(); writeW(name, p); QLOAD.gpuMs += _now() - tb; + prog(i, names.length, "weights"); + } + }; + await Promise.all(Array.from({ length: Math.min(conc, names.length || 1) }, worker)); + QLOAD.residentMs = _now() - t0; + try { globalThis.__qvacLoadStats = QLOAD; } catch {} + } + + const Nrm = {}; + const upN = async (name) => { const f = new Float32Array((await fetchTensor(name)).slice().buffer); const buf = dev.createBuffer({ size: Math.max(16, f.byteLength), usage: U.STORAGE | U.COPY_DST }); dev.queue.writeBuffer(buf, 0, f); Nrm[name] = buf; }; + await upN("final_norm"); + for (let l = 0; l < n_layers; l++) { await upN(`l${l}.attn_norm`); await upN(`l${l}.ffn_norm`); } + // BitNet sub-norm weights (attn: [q_dim], ffn: [ff]) + if (subNorm) for (let l = 0; l < n_layers; l++) { await upN(`l${l}.attn_sub_norm`); await upN(`l${l}.ffn_sub_norm`); } + // Qwen2 q/k/v projection biases (f32 vectors, same store as norms) + if (attnBias) for (let l = 0; l < n_layers; l++) { await upN(`l${l}.bq`); await upN(`l${l}.bk`); await upN(`l${l}.bv`); } + // Qwen3 per-head q/k RMSNorm weights ([hd] f32) + if (qkNorm) for (let l = 0; l < n_layers; l++) { await upN(`l${l}.q_norm`); await upN(`l${l}.k_norm`); } + + // embed: per-block int8/nibbles + scales, kept in JS for the host-side lookup + const eT = tmap["embed"], eb = await fetchTensor("embed"), eqlen = qlenOf(eT); + const embedQ = eb.subarray(0, eqlen); + const embedS = new Float32Array(eb.subarray(eqlen, eqlen + slenOf(eT)).slice().buffer); + + // ── scratch + KV cache (GPU-resident) ── + // The query/attention dim is n_heads·hd, which can EXCEED the hidden d (e.g. + // Qwen3-30B-A3B: 32·128=4096 vs d=2048). q and the attn output (wo's input) must + // be sized by q_dim, not d — else the wq matmul overflows a too-small buffer. + const q_dim = n_heads * hd; + const B = { x: sbuf(d), normed: sbuf(d), q: sbuf(q_dim), k: sbuf(kv_dim), v: sbuf(kv_dim), attn: sbuf(q_dim), attn_out: sbuf(d), h: sbuf(d), normed2: sbuf(d), gate: sbuf(ff), up: sbuf(ff), hid: sbuf(ff), mlp: sbuf(d), cur: sbuf(d), logits: sbuf(vocab) }; + if (subNorm || bitlinear) { B.attn2 = sbuf(q_dim); B.hid2 = sbuf(ff); } // BitNet sub-norm / BitLinear outputs (RMS must not run in place on this driver) + if (bitlinear) { // unit gammas for the weightless BitLinear input norms + const unit = (n, name) => { const f = new Float32Array(n).fill(1); const b = dev.createBuffer({ size: f.byteLength, usage: U.STORAGE | U.COPY_DST }); dev.queue.writeBuffer(b, 0, f); Nrm[name] = b; }; + unit(d, "__unit_d"); unit(q_dim, "__unit_qd"); unit(ff, "__unit_ff"); + } + // fused-ternary concat outputs: q‖k‖v and gate‖up; downstream passes bind 256-aligned sub-ranges + let qR = null, kR = null, vR = null; + if (fusedT2) { + B.qkv = sbuf(q_dim + 2 * kv_dim); B.gu = sbuf(2 * ff); + if ((q_dim * 4) % 256 || ((q_dim + kv_dim) * 4) % 256 || (ff * 4) % 256) throw new Error("fusedT2 needs 256B-aligned sub-ranges"); + qR = { buffer: B.qkv, offset: 0, size: q_dim * 4 }; + kR = { buffer: B.qkv, offset: q_dim * 4, size: kv_dim * 4 }; + vR = { buffer: B.qkv, offset: (q_dim + kv_dim) * 4, size: kv_dim * 4 }; + } + const staging = dev.createBuffer({ size: vocab * 4, usage: U.MAP_READ | U.COPY_DST }); + const kcache = [], vcache = []; + const kvS = kv_dim / 8 + kv_dim / 32; // int4 record: u32s per token per side + for (let l = 0; l < n_layers; l++) { + const q4 = kv4 && l > 0; // layer 0 stays f32 (measured pathological at int4) + kcache.push(sbuf(q4 ? cap * kvS : cap * kv_dim)); vcache.push(sbuf(q4 ? cap * kvS : cap * kv_dim)); + } + const uDim = ubuf(new Uint32Array([d, 0, 0, 0])), uFF = ubuf(new Uint32Array([ff, 0, 0, 0])); + const uRopeQ = ubuf(new Uint32Array([n_heads, hd, 0, 0])), uRopeK = ubuf(new Uint32Array([n_kv_heads, hd, 0, 0])), uAttn = ubuf(new Uint32Array([n_heads, n_kv_heads, hd, 0])); + const uQkn = ubuf(new Uint32Array([n_heads, hd, 0, 0])); // QK-Norm (P.y=hd; head count from dispatch) + const uQd = (subNorm || bitlinear) ? ubuf(new Uint32Array([q_dim, 0, 0, 0])) : null; // attn_sub_norm runs over q_dim (= n_heads·hd) + // per-layer fused-ternary uniform packs (dims + the three per-tensor scales per fusion) + const T2F = []; + if (fusedT2) for (let l = 0; l < n_layers; l++) { + const g = (r) => W[`l${l}.${r}`]; + const ok = ["wq", "wk", "wv", "w_gate", "w_up", "w_down"].every((r) => g(r) && g(r).t2); + T2F.push(ok ? { + qkvP: ubuf(new Uint32Array([d, q_dim + 2 * kv_dim, q_dim, kv_dim])), + qkvS: ubuf(new Uint32Array([fbits(g("wq").s), fbits(g("wk").s), fbits(g("wv").s), 0])), + guP: ubuf(new Uint32Array([d, 2 * ff, ff, ff])), + guS: ubuf(new Uint32Array([fbits(g("w_gate").s), fbits(g("w_up").s), fbits(g("w_up").s), 0])), + dP: subNorm ? null : ubuf(new Uint32Array([ff, d, ff / 4, fbits(g("w_down").s)])), + } : null); + } + const uLm = frameGran ? ubuf(new Uint32Array([d, 0, d / 32, 0])) : null; // tiled lm_head: [K=d, rows, nblk, base] + const uFr = opfs ? ubuf(new Uint32Array([0, 0, 0, 0])) : null; // shared per-frame uniform (rewritten per matrix) + + // ── MoE: router (CPU), per-expert GPU buffers, expert streamer + cache ── + // The router picks n_used of n_experts per token (CPU top-k off a tiny matmul); + // only those experts' weights are streamed (frameStore.readExpert) and uploaded + // into ONE reusable gate/up/down buffer set. Bytes/token ≈ n_used/n_experts of FFN. + let routerCPU = null, stagingD = null, ExpQ = null, ExpS = null, uMoeIn = null, uMoeDn = null; + const expCache = new Map(); let expBytesCached = 0; const expInflight = new Map(); + // κ-object MoE (G5): no frame stream → experts come from fetchTensor (`l{l}.e{e}.{role}`, the + // compiled q4 slab, L5-verified by the loader). They live RESIDENT IN VRAM (below) so the forward + // never re-uploads weights. Streaming path (frameStore) keeps the bounded per-token RAM cache. + const residentExperts = moe && !frameStore; + const EQ = (bits === 4 ? (ff * d) / 2 : ff * d), ES = (ff * d / 32) * 4; // one expert matrix: q bytes / scale bytes (N·K = ff·d for gate/up/down alike) + let ExpVRAM = null; const vramSet = new Set(); + if (moe) { + routerCPU = []; + for (let l = 0; l < n_layers; l++) routerCPU.push(new Float32Array((await fetchTensor(`l${l}.router`)).slice().buffer)); // [nExp*d] per layer + stagingD = dev.createBuffer({ size: d * 4, usage: U.MAP_READ | U.COPY_DST }); + uMoeIn = ubuf(new Uint32Array([d, ff, d / 32, 0])); // gate/up: K=d, N=ff + uMoeDn = ubuf(new Uint32Array([ff, d, ff / 32, 0])); // down: K=ff, N=d + var uAxpy = ubuf(new Uint32Array([d, 0, 0, 0])); // AXPY: [n=d, f32bits(weight)] (streaming: rewritten per expert) + // resident: one AXPY uniform PER expert slot → all nUsed experts' FFN passes ride ONE command + // encoder / ONE submit per layer (was one submit per expert = 8× the dispatch tax). + var uAxpyN = Array.from({ length: nUsed }, () => ubuf(new Uint32Array([d, 0, 0, 0]))); + if (residentExperts) { + // ALL experts RESIDENT IN VRAM: one (q,s) buffer per (layer,role) holding all nExp experts. + // The forward binds expert e's 256-aligned sub-range (e·EQ / e·ES — EQ,ES are 256-multiples) ⇒ + // ZERO per-token weight upload (the win over the per-token CPU→GPU copy). ≈ nExp·EQ·3·n_layers + // VRAM (OLMoE ≈ 3.8 GB); attention stays layer-paged so total fits a ~4 GB GPU. + ExpVRAM = []; + for (let l = 0; l < n_layers; l++) { const r = {}; for (const role of ["gate", "up", "down"]) r[role] = { q: dev.createBuffer({ size: nExp * EQ, usage: U.STORAGE | U.COPY_DST }), s: dev.createBuffer({ size: nExp * ES, usage: U.STORAGE | U.COPY_DST }) }; ExpVRAM.push(r); } + // batched-expert scratch + uniforms (all nUsed experts in ONE dispatch per stage) + B.gate8 = sbuf(nUsed * ff); B.up8 = sbuf(nUsed * ff); B.hid8 = sbuf(nUsed * ff); + var uMoeGU = ubuf(new Uint32Array([d, ff, d / 32, nUsed])); // gate/up: K=d, ff rows/expert + var uMoeDnB = ubuf(new Uint32Array([ff, d, ff / 32, nUsed])); // down: K=ff, N=d + var uFFb = ubuf(new Uint32Array([nUsed * ff, 0, 0, 0])); // silu over all experts + var uIdx = ubuf(new Uint32Array(8)), uWts = ubuf(new Float32Array(8)); + } else { // streaming: ONE reusable expert buffer set, re-uploaded per token + ExpQ = { gate: sbuf(EQ / 4), up: sbuf(EQ / 4), down: sbuf(EQ / 4) }; // sbuf takes element count → *4 bytes + ExpS = { gate: sbuf(ES / 4), up: sbuf(ES / 4), down: sbuf(ES / 4) }; + } + } + // lazy-upload one expert into its VRAM slab (once, on first activation); bind-only thereafter. + const ensureVram = async (l, e, role) => { + const key = (l * nExp + e) * 3 + { gate: 0, up: 1, down: 2 }[role]; + if (vramSet.has(key)) return; + const b = await fetchTensor(`l${l}.e${e}.${role}`); // L5-verified q4 slab [q][f32 scales] + const slab = ExpVRAM[l][role]; + dev.queue.writeBuffer(slab.q, e * EQ, b.subarray(0, EQ)); + dev.queue.writeBuffer(slab.s, e * ES, b.subarray(EQ, EQ + ES)); + vramSet.add(key); + }; + // Stream + cache one expert role frame ([q][scales]); returns {q,s} (streaming path only). + const readExpert = async (l, e, role) => { + const key = (l * nExp + e) * 3 + { gate: 0, up: 1, down: 2 }[role]; + if (expCache.has(key)) return expCache.get(key); + if (expInflight.has(key)) return expInflight.get(key); + const eq = (bits === 4 ? (ff * d) / 2 : ff * d); + const src = residentExperts ? fetchTensor(`l${l}.e${e}.${role}`) : frameStore.readExpert(l, e, role); + const p = Promise.resolve(src).then((b) => { + expInflight.delete(key); + const v = { q: b.subarray(0, eq), s: b.subarray(eq) }; + expCache.set(key, v); expBytesCached += b.byteLength; + if (!residentExperts) { // streaming: bound the cache; resident: keep every expert + const budget = Math.max(cacheBudget, (nUsed * 3 + 4) * b.byteLength); + if (expBytesCached > budget) for (const k of expCache.keys()) { if (expBytesCached <= budget) break; const old = expCache.get(k); expBytesCached -= old.q.byteLength + old.s.byteLength; expCache.delete(k); } + } + return v; + }); + expInflight.set(key, p); return p; + }; + + // bind groups are stable across steps (same buffers) → build once, cache by key + let bid = 0; + const tag = (b) => { if (b._id === undefined) b._id = ++bid; return b; }; + const bgCache = new Map(); + // ── ONE-PASS dataflow mode: a single open compute pass spans a whole token (or batch of tokens) ── + // Kills the per-kernel pass-boundary tax (measured: ~300 passes/token is what holds decode at ~13% + // of the device roofline). Opt-out: window.__onepass = false. KV saves become kernels (KVSAVE_*) + // because copyBufferToBuffer cannot ride inside a compute pass. + let openPass = null, P_kvsF = null, P_kvsS = null; + const ONEPASS = () => (typeof window === "undefined" ? true : window.__onepass !== false); + // split-KV attention state (f32 + int4 caches): partials buffer + lazily-compiled P1/P2 pipelines + const A_TILES = Math.ceil(cap / ATILE); + let P_at1 = null, P_atq1 = null, P_at2 = null, attnPT = null; + const SPLITATTN = () => (typeof window === "undefined" ? true : window.__splitattn !== false); + const pass = (enc, pipeline, bufs, groups) => { + // hot path (~300 passes/token): zero-allocation key build; the entries array (and its + // resource objects) is constructed ONLY on a bind-group cache miss. + let key = ""; + for (let i = 0; i < bufs.length; i++) { const b = bufs[i]; key += (b.buffer ? tag(b.buffer)._id + "@" + (b.offset || 0) : tag(b)._id) + ","; } + let pm = bgCache.get(pipeline._id); + if (!pm) { pm = new Map(); bgCache.set(pipeline._id, pm); } + let bg = pm.get(key); + if (!bg) { + const entries = bufs.map((b, i) => b.buffer + ? { binding: i, resource: { buffer: b.buffer, offset: b.offset || 0, size: b.size } } + : { binding: i, resource: { buffer: b } }); + bg = dev.createBindGroup({ layout: pipeline.getBindGroupLayout(0), entries }); + pm.set(key, bg); + } + // ONE-PASS mode (the dataflow loop): when a compute pass is already open, dispatch into it — + // no per-kernel pass begin/end. WebGPU gives each dispatch its own usage scope inside a pass, + // so write-then-read ordering between chained kernels is preserved; only the pass-boundary tax goes. + if (openPass) { + openPass.setPipeline(pipeline); + openPass.setBindGroup(0, bg); + if (Array.isArray(groups)) openPass.dispatchWorkgroups(groups[0], groups[1]); else openPass.dispatchWorkgroups(groups); + return; + } + let desc; // profiling: timestamp this pass (lm_head's 2D grid tagged apart) + if (PROF && PROF.active && PROF.i + 2 <= 4096) { desc = { timestampWrites: { querySet: PROF.qs, beginningOfPassWriteIndex: PROF.i, endOfPassWriteIndex: PROF.i + 1 } }; PROF.tags.push(pipeline._name + (Array.isArray(groups) ? ":lm" : "")); PROF.i += 2; } + const p = enc.beginComputePass(desc); + p.setPipeline(pipeline); + p.setBindGroup(0, bg); + if (Array.isArray(groups)) p.dispatchWorkgroups(groups[0], groups[1]); else p.dispatchWorkgroups(groups); + p.end(); + }; + // N output rows → 2D grid (x ≤ 65535, the WebGPU per-dimension limit); the + // kernel reconstructs n = y*65535 + x. Needed for Qwen's 151 k vocab lm_head. + const grid = (N) => N > 65535 ? [65535, Math.ceil(N / 65535)] : N; + // native-2-bit: rotate the matmul input into `rot` (FWHT over Kp), then the 2-bit GEMV reads `rot`. + let rot = null; const signBufs = new Map(), fwhtUnis = new Map(); + const wgN = (n) => Math.ceil(n / 256); + const fwUni = (key, arr) => { let u = fwhtUnis.get(key); if (!u) { u = ubuf(arr); fwhtUnis.set(key, u); } return u; }; + const fwhtRotate = (enc, xb, K, Kp) => { // x′ = FWHT(sign ⊙ pad(x)) → rot, in place over Kp + if (!rot) rot = sbuf(maxKp); + let sg = signBufs.get(Kp); if (!sg) { const a = signsFor(Kp); sg = dev.createBuffer({ size: a.byteLength, usage: U.STORAGE | U.COPY_DST }); dev.queue.writeBuffer(sg, 0, a); signBufs.set(Kp, sg); } + pass(enc, P_fwL, [xb, sg, rot, fwUni("L" + K + "_" + Kp, new Uint32Array([K, Kp, 0, 0]))], wgN(Kp)); + for (let len = 1; len < Kp; len <<= 1) pass(enc, P_fwB, [rot, fwUni("B" + Kp + "_" + len, new Uint32Array([Kp, len, 0, 0]))], wgN(Kp >> 1)); + pass(enc, P_fwN, [rot, fwUni("N" + Kp, new Uint32Array([Kp, 0, 0, 0]))], wgN(Kp)); + return rot; + }; + const t2big = (ws) => ws.N * ws.K >= T2BIG; // geometry pick: fat workgroups for big tensors + const mmW = (enc, xb, ws, ob) => ws.t2 + ? (t2big(ws) + ? pass(enc, P_mmT2B, [xb, ws.qbuf, ob, ws.uni], grid(Math.ceil(ws.N / 16))) + : pass(enc, P_mmT2, [xb, ws.qbuf, ob, ws.uni], grid(Math.ceil(ws.N / 4)))) + : ws.t2r + ? (t2big(ws) + ? pass(enc, P_mmT2RB, [xb, ws.qbuf, ws.sbuf, ob, ws.uni], grid(Math.ceil(ws.N / 16))) + : pass(enc, P_mmT2R, [xb, ws.qbuf, ws.sbuf, ob, ws.uni], grid(Math.ceil(ws.N / 4)))) + : ws.e8 + ? pass(enc, P_mmE8, [xb, ws.qbuf, ws.sbuf, lutBuf, ob, ws.uni], grid(ws.N)) + : (P_mmQ3B && !rotate && ws.N * ws.K >= T2BIG) + ? pass(enc, P_mmQ3B, [xb, ws.qbuf, ws.sbuf, ob, ws.uni], grid(Math.ceil(ws.N / 4))) + : pass(enc, P_mm, [rotate ? fwhtRotate(enc, xb, ws.K, ws.Kp) : xb, ws.qbuf, ws.sbuf, ob, ws.uni], grid(ws.N)); + const mmAddW = (enc, xb, ws, r, ob) => ws.t2 + ? (t2big(ws) + ? pass(enc, P_mmT2Badd, [xb, ws.qbuf, r, ob, ws.uni], grid(Math.ceil(ws.N / 16))) + : pass(enc, P_mmT2add, [xb, ws.qbuf, r, ob, ws.uni], grid(Math.ceil(ws.N / 4)))) + : ws.t2r + ? (t2big(ws) + ? pass(enc, P_mmT2RBadd, [xb, ws.qbuf, ws.sbuf, r, ob, ws.uni], grid(Math.ceil(ws.N / 16))) + : pass(enc, P_mmT2Radd, [xb, ws.qbuf, ws.sbuf, r, ob, ws.uni], grid(Math.ceil(ws.N / 4)))) + : ws.e8 + ? pass(enc, P_mmE8add, [xb, ws.qbuf, ws.sbuf, lutBuf, r, ob, ws.uni], grid(ws.N)) + : pass(enc, P_mmadd, [rotate ? fwhtRotate(enc, xb, ws.K, ws.Kp) : xb, ws.qbuf, ws.sbuf, r, ob, ws.uni], grid(ws.N)); + const rms = (enc, xb, gname, ob, u = uDim) => pass(enc, P_rms, [xb, Nrm[gname], ob, u], 1); + + // one transformer layer's passes; `ws(role)` returns the role's weight-set + // (resident = W[`l.role`], stream = the reusable R[role]). Returns B.cur. + // `up` overrides the position-dependent bindings for batched decode: {ropeQ, ropeK, attn, pos}. + function layerBody(enc, l, cur, ws, up = null) { + const _uRopeQ = up ? up.ropeQ : uRopeQ, _uRopeK = up ? up.ropeK : uRopeK, _uAttn = up ? up.attn : uAttn, _pos = up ? up.pos : pos; + return layerBodyU(enc, l, cur, ws, _uRopeQ, _uRopeK, _uAttn, _pos); + } + // f32-cache attention dispatch: split-KV (flash-decode) once the context outgrows one tile — + // occupancy scales with position instead of collapsing; short contexts keep the 1-dispatch kernel. + function attnF32(enc, l, qb, uAttn, pos) { + if (SPLITATTN() && pos + 1 > ATILE && hd % 4 === 0) { + P_at1 = P_at1 || pipe(ATTNP1(A_TILES, ATILE, hd), "attnP1"); + P_at2 = P_at2 || pipe(ATTNP2(A_TILES, ATILE), "attnP2"); + attnPT = attnPT || sbuf(n_heads * A_TILES * (hd + 2)); + pass(enc, P_at1, [qb, kcache[l], vcache[l], attnPT, uAttn], [n_heads, Math.floor(pos / ATILE) + 1]); + pass(enc, P_at2, [attnPT, B.attn, uAttn], n_heads); + } else { + pass(enc, P_attn, [qb, kcache[l], vcache[l], B.attn, uAttn], n_heads); + } + } + // int4-KV attention dispatch (the shipped Q brain path): same split, quantized records. + function attnQ4(enc, l, qb, uAttn, pos) { + if (SPLITATTN() && pos + 1 > ATILE && hd % 8 === 0) { + P_atq1 = P_atq1 || pipe(ATTNQP1(A_TILES, ATILE, hd, kv_dim), "attnQP1"); + P_at2 = P_at2 || pipe(ATTNP2(A_TILES, ATILE), "attnP2"); + attnPT = attnPT || sbuf(n_heads * A_TILES * (hd + 2)); + pass(enc, P_atq1, [qb, kcache[l], vcache[l], attnPT, uAttn], [n_heads, Math.floor(pos / ATILE) + 1]); + pass(enc, P_at2, [attnPT, B.attn, uAttn], n_heads); + } else { + pass(enc, P_attnQ, [qb, kcache[l], vcache[l], B.attn, uAttn], n_heads); + } + } + function layerBodyU(enc, l, cur, ws, uRopeQ, uRopeK, uAttn, pos) { + const F = fusedT2 ? T2F[l] : null; + if (F) { // fused ternary layer: 10 passes instead of 15 + rms(enc, cur, `l${l}.attn_norm`, B.normed); + pass(enc, P_t2f, [B.normed, ws("wq").qbuf, ws("wk").qbuf, ws("wv").qbuf, B.qkv, F.qkvP, F.qkvS], grid(Math.ceil((q_dim + 2 * kv_dim) / 4))); + pass(enc, P_rope2, [qR, kR, uRopeQ], Math.ceil((n_heads + n_kv_heads) * (hd / 2) / 64)); // uRopeQ.w carries nkv + if (kv4 && l > 0) { + pass(enc, P_kvq, [kR, kcache[l], uAttn], 1); // quantize+pack K/V rows (uAttn.w = pos on every path) + pass(enc, P_kvq, [vR, vcache[l], uAttn], 1); + attnQ4(enc, l, qR, uAttn, pos); + } else if (openPass) { // one-pass mode: KV save as a kernel (copies can't ride in a pass) + P_kvsF = P_kvsF || pipe(KVSAVE_F(q_dim, kv_dim), "kvsave"); + pass(enc, P_kvsF, [B.qkv, kcache[l], vcache[l], uAttn], Math.ceil(kv_dim / 64)); + attnF32(enc, l, qR, uAttn, pos); + } else { + enc.copyBufferToBuffer(B.qkv, q_dim * 4, kcache[l], pos * kv_dim * 4, kv_dim * 4); + enc.copyBufferToBuffer(B.qkv, (q_dim + kv_dim) * 4, vcache[l], pos * kv_dim * 4, kv_dim * 4); + attnF32(enc, l, qR, uAttn, pos); + } + let attnO = B.attn; + if (subNorm) { rms(enc, B.attn, `l${l}.attn_sub_norm`, B.attn2, uQd); attnO = B.attn2; } + mmAddW(enc, attnO, ws("wo"), cur, B.h); + rms(enc, B.h, `l${l}.ffn_norm`, B.normed2); + pass(enc, 2 * ff * d >= T2BIG ? P_t2fB : P_t2f, [B.normed2, ws("w_gate").qbuf, ws("w_up").qbuf, ws("w_up").qbuf, B.gu, F.guP, F.guS], grid(Math.ceil(2 * ff / (2 * ff * d >= T2BIG ? 16 : 4)))); + if (subNorm) { + pass(enc, P_actn, [B.gu, Nrm[`l${l}.ffn_sub_norm`], B.hid2, uFF], 1); + mmAddW(enc, B.hid2, ws("w_down"), B.h, B.cur); + } else { + pass(enc, P_t2ad, [B.gu, ws("w_down").qbuf, B.h, B.cur, F.dP], grid(Math.ceil(d / 4))); + } + return B.cur; + } + rms(enc, cur, `l${l}.attn_norm`, B.normed); + if (_calib) enc.copyBufferToBuffer(B.normed, 0, snapBuf, l * d * 4, d * 4); // calibration: snapshot this layer's attention input (for LDLQ Hessian) + if (attnBias) { + mmAddW(enc, B.normed, ws("wq"), Nrm[`l${l}.bq`], B.q); + mmAddW(enc, B.normed, ws("wk"), Nrm[`l${l}.bk`], B.k); + mmAddW(enc, B.normed, ws("wv"), Nrm[`l${l}.bv`], B.v); + } else { + let qkvIn = B.normed; + if (bitlinear) { rms(enc, B.normed, "__unit_d", B.attn_out); qkvIn = B.attn_out; } // BitLinear: weightless norm into q/k/v + mmW(enc, qkvIn, ws("wq"), B.q); + mmW(enc, qkvIn, ws("wk"), B.k); + mmW(enc, qkvIn, ws("wv"), B.v); + } + if (qkNorm) { + pass(enc, P_qkn, [B.q, Nrm[`l${l}.q_norm`], uQkn], n_heads); + pass(enc, P_qkn, [B.k, Nrm[`l${l}.k_norm`], uQkn], n_kv_heads); + } + pass(enc, P_rope, [B.q, uRopeQ], Math.ceil(n_heads * (hd / 2) / 64)); + pass(enc, P_rope, [B.k, uRopeK], Math.ceil(n_kv_heads * (hd / 2) / 64)); + if (kv4 && l > 0) { + pass(enc, P_kvq, [B.k, kcache[l], uAttn], 1); // quantize+pack K/V rows (uAttn.w = pos on every path) + pass(enc, P_kvq, [B.v, vcache[l], uAttn], 1); + attnQ4(enc, l, B.q, uAttn, pos); + } else if (openPass) { // one-pass mode: KV save as a kernel (copies can't ride in a pass) + P_kvsS = P_kvsS || pipe(KVSAVE_S(kv_dim), "kvsave2"); + pass(enc, P_kvsS, [B.k, B.v, kcache[l], vcache[l], uAttn], Math.ceil(kv_dim / 64)); + attnF32(enc, l, B.q, uAttn, pos); + } else { + enc.copyBufferToBuffer(B.k, 0, kcache[l], pos * kv_dim * 4, kv_dim * 4); + enc.copyBufferToBuffer(B.v, 0, vcache[l], pos * kv_dim * 4, kv_dim * 4); + attnF32(enc, l, B.q, uAttn, pos); + } + let attnO = B.attn; + if (subNorm) { rms(enc, B.attn, `l${l}.attn_sub_norm`, B.attn2, uQd); attnO = B.attn2; } // BitNet: norm BEFORE the o-projection + else if (bitlinear) { rms(enc, B.attn, "__unit_qd", B.attn2, uQd); attnO = B.attn2; } // BitLinear: weightless norm into wo + mmAddW(enc, attnO, ws("wo"), cur, B.h); // h = attn·Wo + residual + rms(enc, B.h, `l${l}.ffn_norm`, B.normed2); + if (_calib) enc.copyBufferToBuffer(B.normed2, 0, snapBuf, (n_layers + l) * d * 4, d * 4); // calibration: snapshot this layer's MLP input (for LDLQ) + let guIn = B.normed2; + if (bitlinear) { rms(enc, B.normed2, "__unit_d", B.mlp); guIn = B.mlp; } // BitLinear: weightless norm into gate/up + mmW(enc, guIn, ws("w_gate"), B.gate); + mmW(enc, guIn, ws("w_up"), B.up); + pass(enc, P_sm, [B.gate, B.up, B.hid, uFF], Math.ceil(ff / 64)); + let hidO = B.hid; + if (subNorm) { rms(enc, B.hid, `l${l}.ffn_sub_norm`, B.hid2, uFF); hidO = B.hid2; } // BitNet: norm BEFORE the down-projection + else if (bitlinear) { rms(enc, B.hid, "__unit_ff", B.hid2, uFF); hidO = B.hid2; } // BitLinear: weightless norm into w_down + mmAddW(enc, hidO, ws("w_down"), B.h, B.cur); // cur = mlp·Wdown + residual + return B.cur; + } + + let pos = 0, cached = [], lastLogits = null, timing = null; + + // ── streamed-layer cache + prefetch pipeline (opfs / remote) ── + // The layer access pattern is fully predictable (0..n_layers every token), so we + // prefetch ahead and overlap the storage→host read with GPU compute of earlier + // layers. A bounded RAM cache keeps as many layers resident as the budget allows + // (a model ≤ budget runs warm with zero re-fetch; a bigger model streams the tail, + // RAM stays bounded). cacheBudget = bytes; 0 = no cache (pure stream). + const layerCache = new Map(); // layer → packed Uint8Array + const inflight = new Map(); // layer → Promise (dedupe concurrent reads) + let cacheBytes = 0; + const PREFETCH = 4; // read-ahead depth (concurrent reads in flight) + // Effective budget is at least the prefetch window, so prefetched buffers survive + // until consumed even in pure-stream (budget 0) mode. A larger cacheBudget keeps + // more layers warm across tokens (a model ≤ budget runs with no re-fetch). + const effBudget = () => Math.max(cacheBudget, (PREFETCH + 2) * packStride); + const getLayer = (l) => { + if (layerCache.has(l)) return Promise.resolve(layerCache.get(l)); + if (inflight.has(l)) return inflight.get(l); + const p = Promise.resolve(opfsStore.read(l * packStride, packStride)).then((buf) => { + inflight.delete(l); layerCache.set(l, buf); cacheBytes += buf.byteLength; + return buf; + }); + inflight.set(l, p); + return p; + }; + const evictBelow = (l) => { // drop already-consumed layers once over budget + const b = effBudget(); + if (cacheBytes <= b) return; + for (const k of layerCache.keys()) { + if (cacheBytes <= b) break; + if (k < l) { cacheBytes -= layerCache.get(k).byteLength; layerCache.delete(k); } + } + }; + + // Atlas-Probe extension (additive, off by default): when _capHidden is an array, each step + // reads back B.normed — the final-layer hidden state (post final_norm, the vector fed to lm_head), + // the model's contextual representation of the token — for fingerprinting. Inert during decode. + let _capHidden = null, hidStaging = null, _calib = null, snapBuf = null, snapStg = null; + async function step(token, noRead = false) { // noRead: leave logits ON the GPU (decode()'s fast path; resident-dense only) + const tE = performance.now(); + if (typeof window !== "undefined" && window.__profile) { profInit(); if (PROF) { PROF.active = true; PROF.i = 0; PROF.tags = []; } } + else if (PROF) PROF.active = false; + // embed lookup (CPU, per-block dequant) → x + const x = new Float32Array(d); + const o = token * d, sb = token * (d / 32); + if (bits === 4) { + for (let i = 0; i < d; i++) { const gg = o + i; const nib = (embedQ[gg >> 1] >> ((gg & 1) * 4)) & 0xf; x[i] = (nib - 8) * embedS[sb + (i >> 5)]; } + } else if (bits === 3 && q3f) { // Q3 FIELD embed lookup (mirrors the q3f kernel unpack) + const eq32 = new Uint32Array(embedQ.buffer, embedQ.byteOffset, embedQ.byteLength >> 2), bb = token * (d / 32); + for (let i = 0; i < d; i++) { + const bp = (bb + (i >> 5)) * 3, j = i & 31; let q; + if (j < 10) q = (eq32[bp] >>> (j * 3)) & 7; + else if (j < 20) q = (eq32[bp + 1] >>> ((j - 10) * 3)) & 7; + else if (j < 30) q = (eq32[bp + 2] >>> ((j - 20) * 3)) & 7; + else { const sp = (eq32[bp] >>> 30) | ((eq32[bp + 1] >>> 30) << 2) | ((eq32[bp + 2] >>> 30) << 4); q = j === 30 ? sp & 7 : (sp >>> 3) & 7; } + x[i] = (q - 3) * embedS[sb + (i >> 5)]; + } + } else if (bits === 3) { // Q3 bit-plane embed lookup + const eq32 = new Uint32Array(embedQ.buffer, embedQ.byteOffset, embedQ.byteLength >> 2), bb = token * (d / 32); + for (let i = 0; i < d; i++) { const bp = (bb + (i >> 5)) * 3, j = i & 31, q = ((eq32[bp] >>> j) & 1) | (((eq32[bp + 1] >>> j) & 1) << 1) | (((eq32[bp + 2] >>> j) & 1) << 2); x[i] = (q - 3) * embedS[sb + (i >> 5)]; } + } else { + for (let i = 0; i < d; i++) x[i] = s8(embedQ[o + i]) * embedS[sb + (i >> 5)]; + } + dev.queue.writeBuffer(B.x, 0, x); + dev.queue.writeBuffer(uRopeQ, 0, new Uint32Array([n_heads, hd, pos, n_kv_heads])); // .w = nkv (read only by fused ROPE2) + dev.queue.writeBuffer(uRopeK, 0, new Uint32Array([n_kv_heads, hd, pos, 0])); + dev.queue.writeBuffer(uAttn, 0, new Uint32Array([n_heads, n_kv_heads, hd, pos])); + + const tS = performance.now(); + let cur = B.x; + if (moe) { + // MoE forward: attention (packed, prefetched) + per-token expert subset. Only + // the n_used experts the router picks are streamed/uploaded → bytes/token ≈ + // n_used/n_experts of the FFN, so a huge MoE costs ~its active params/token. + if (opfs) for (let l = 0; l < Math.min(PREFETCH, n_layers); l++) getLayer(l); + for (let l = 0; l < n_layers; l++) { + if (opfs) { const buf = await getLayer(l); if (l + PREFETCH < n_layers) getLayer(l + PREFETCH); dev.queue.writeBuffer(RQ, 0, buf.subarray(0, packQbytes)); dev.queue.writeBuffer(RS, 0, buf.subarray(packQbytes)); evictBelow(l); } + else { dev.queue.writeBuffer(RQ, 0, Wb[l].q); dev.queue.writeBuffer(RS, 0, Wb[l].s); } + const R_ = (role) => R[role]; + // attention (+ residual into B.h), then ffn_norm → B.normed2 + let enc = dev.createCommandEncoder(); + rms(enc, cur, `l${l}.attn_norm`, B.normed); + mmW(enc, B.normed, R_("wq"), B.q); mmW(enc, B.normed, R_("wk"), B.k); mmW(enc, B.normed, R_("wv"), B.v); + const DBG = (typeof window !== "undefined") ? window : {}; + // OLMoE: full-vector q/k RMSNorm. NOT in place (B.normed is free after the q/k/v + // matmuls) — an in-place storage read-write RMS misbehaves on this driver. + if (qkFull && !DBG.__skipQKN) { + rms(enc, B.q, `l${l}.q_norm`, B.normed); enc.copyBufferToBuffer(B.normed, 0, B.q, 0, d * 4); + rms(enc, B.k, `l${l}.k_norm`, B.normed); enc.copyBufferToBuffer(B.normed, 0, B.k, 0, kv_dim * 4); + } + else if (qkNorm) { pass(enc, P_qkn, [B.q, Nrm[`l${l}.q_norm`], uQkn], n_heads); pass(enc, P_qkn, [B.k, Nrm[`l${l}.k_norm`], uQkn], n_kv_heads); } + pass(enc, P_rope, [B.q, uRopeQ], Math.ceil(n_heads * (hd / 2) / 64)); + pass(enc, P_rope, [B.k, uRopeK], Math.ceil(n_kv_heads * (hd / 2) / 64)); + enc.copyBufferToBuffer(B.k, 0, kcache[l], pos * kv_dim * 4, kv_dim * 4); + enc.copyBufferToBuffer(B.v, 0, vcache[l], pos * kv_dim * 4, kv_dim * 4); + pass(enc, P_attn, [B.q, kcache[l], vcache[l], B.attn, uAttn], n_heads); + mmAddW(enc, B.attn, R_("wo"), cur, B.h); // h = attn·Wo + residual + rms(enc, B.h, `l${l}.ffn_norm`, B.normed2); + enc.copyBufferToBuffer(B.normed2, 0, stagingD, 0, d * 4); + dev.queue.submit([enc.finish()]); + // router (CPU): top-k experts off the small d→n_experts matmul, softmax weights + await stagingD.mapAsync(GPUMapMode.READ); + const nf = new Float32Array(stagingD.getMappedRange().slice(0)); stagingD.unmap(); + const rw = routerCPU[l], rl = new Float32Array(nExp); + for (let e = 0; e < nExp; e++) { let s = 0; const base = e * d; for (let j = 0; j < d; j++) s += nf[j] * rw[base + j]; rl[e] = s; } + const idx = Array.from({ length: nExp }, (_, i) => i).sort((a, b) => rl[b] - rl[a]).slice(0, nUsed); + if (DBG.__expLog) for (const e of idx) DBG.__expLog.push(l * nExp + e); // (layer,expert) activations, in order — reuse analysis + // OLMoE routing: softmax over ALL experts, take the selected probs WITHOUT renormalizing + // (norm_topk_prob=false). Renormalizing over the top-k (the old code) made weights sum to 1 + // — ~2-3× too large vs the true softmax-over-64 mass — and blew up the residual → garbage. + // moe.normTopk (Qwen3-MoE = true) re-enables the top-k renorm. + let mx = -1e30; for (let e = 0; e < nExp; e++) if (rl[e] > mx) mx = rl[e]; + let denAll = 0; for (let e = 0; e < nExp; e++) denAll += Math.exp(rl[e] - mx); + const wt = new Map(); for (const e of idx) wt.set(e, Math.exp(rl[e] - mx) / denAll); + if (manifest.moe.normTopk) { let s = 0; for (const e of idx) s += wt.get(e); for (const e of idx) wt.set(e, wt.get(e) / s); } + // accumulate experts into B.cur (init = residual h) + const encI = dev.createCommandEncoder(); encI.copyBufferToBuffer(B.h, 0, B.cur, 0, d * 4); dev.queue.submit([encI.finish()]); + if (DBG.__skipExperts) { cur = B.cur; continue; } // debug: residual only (no FFN) + if (residentExperts) { + // BATCHED: ensure the chosen experts are VRAM-resident (lazy, once), then the WHOLE FFN for + // all nUsed experts runs in 4 dispatches (gate, up, silu·mul, down+Σ+residual) — vs 5·nUsed. + for (const e of idx) { await ensureVram(l, e, "gate"); await ensureVram(l, e, "up"); await ensureVram(l, e, "down"); } + const idxArr = new Uint32Array(8), wArr = new Float32Array(8); + for (let s = 0; s < idx.length; s++) { idxArr[s] = idx[s]; wArr[s] = wt.get(idx[s]); } + dev.queue.writeBuffer(uIdx, 0, idxArr); dev.queue.writeBuffer(uWts, 0, wArr); + const V = ExpVRAM[l]; + const enc3 = dev.createCommandEncoder(); + pass(enc3, P_moeGU, [B.normed2, V.gate.q, V.gate.s, B.gate8, uMoeGU, uIdx], grid(nUsed * ff)); // all experts' gate + pass(enc3, P_moeGU, [B.normed2, V.up.q, V.up.s, B.up8, uMoeGU, uIdx], grid(nUsed * ff)); // all experts' up + pass(enc3, P_sm, [B.gate8, B.up8, B.hid8, uFFb], Math.ceil(nUsed * ff / 64)); // silu(gate)·up + pass(enc3, P_moeDn, [B.hid8, V.down.q, V.down.s, B.h, B.cur, uMoeDnB, uIdx, uWts], grid(d)); // Σ_s w_s·down_s + residual + dev.queue.submit([enc3.finish()]); + } else { + for (const e of idx) { readExpert(l, e, "gate"); readExpert(l, e, "up"); readExpert(l, e, "down"); } // prefetch the chosen experts + for (const e of idx) { + const [g, u, dn] = await Promise.all([readExpert(l, e, "gate"), readExpert(l, e, "up"), readExpert(l, e, "down")]); + dev.queue.writeBuffer(ExpQ.gate, 0, g.q); dev.queue.writeBuffer(ExpS.gate, 0, g.s); + dev.queue.writeBuffer(ExpQ.up, 0, u.q); dev.queue.writeBuffer(ExpS.up, 0, u.s); + dev.queue.writeBuffer(ExpQ.down, 0, dn.q); dev.queue.writeBuffer(ExpS.down, 0, dn.s); + dev.queue.writeBuffer(uAxpy, 0, new Uint32Array([d, fbits(wt.get(e)), 0, 0])); + const enc3 = dev.createCommandEncoder(); + mmW(enc3, B.normed2, { qbuf: ExpQ.gate, sbuf: ExpS.gate, uni: uMoeIn, N: ff }, B.gate); + mmW(enc3, B.normed2, { qbuf: ExpQ.up, sbuf: ExpS.up, uni: uMoeIn, N: ff }, B.up); + pass(enc3, P_sm, [B.gate, B.up, B.hid, uFF], Math.ceil(ff / 64)); + mmW(enc3, B.hid, { qbuf: ExpQ.down, sbuf: ExpS.down, uni: uMoeDn, N: d }, B.mlp); + pass(enc3, P_axpy, [B.cur, B.mlp, uAxpy], Math.ceil(d / 64)); // B.cur += w_e · expert_out + dev.queue.submit([enc3.finish()]); + } + } + cur = B.cur; + } + const encF = dev.createCommandEncoder(); + rms(encF, cur, "final_norm", B.normed); + mmW(encF, B.normed, W["lm_head"], B.logits); + encF.copyBufferToBuffer(B.logits, 0, staging, 0, vocab * 4); + dev.queue.submit([encF.finish()]); + } else if (frameGran) { + // Play the model: page ONE matrix into the frame buffer, run its matmul, + // submit, repeat. A weight-matmul's submit must flush before the next frame + // overwrites the buffer (queue order makes the reuse safe). Non-weight ops + // (norm/rope/attn/silu) ride along in the current encoder. + let enc = dev.createCommandEncoder(); + // play a frame: flush the encoder (so reuse is safe), then load the matrix + // from JS (frame) or DISK (opfs) into the frame buffer. opfs read is async. + const play = async (name) => { + dev.queue.submit([enc.finish()]); enc = dev.createCommandEncoder(); + if (opfs) { const m = frameMan[name], buf = await opfsStore.read(m.off, m.qlen + m.slen); dev.queue.writeBuffer(RM, 0, buf.subarray(0, m.qlen)); dev.queue.writeBuffer(RMscale, 0, buf.subarray(m.qlen)); dev.queue.writeBuffer(uFr, 0, new Uint32Array([m.K, m.N, m.K / 32, 0])); return { qbuf: RM, sbuf: RMscale, uni: uFr, N: m.N }; } + const p = FB[name]; dev.queue.writeBuffer(RM, 0, p.q); dev.queue.writeBuffer(RMscale, 0, p.s); return { qbuf: RM, sbuf: RMscale, uni: p.uni, N: p.N }; + }; + for (let l = 0; l < n_layers; l++) { + rms(enc, cur, `l${l}.attn_norm`, B.normed); + let w = await play(`l${l}.wq`); if (attnBias) mmAddW(enc, B.normed, w, Nrm[`l${l}.bq`], B.q); else mmW(enc, B.normed, w, B.q); + if (qkNorm) pass(enc, P_qkn, [B.q, Nrm[`l${l}.q_norm`], uQkn], n_heads); + pass(enc, P_rope, [B.q, uRopeQ], Math.ceil(n_heads * (hd / 2) / 64)); + w = await play(`l${l}.wk`); if (attnBias) mmAddW(enc, B.normed, w, Nrm[`l${l}.bk`], B.k); else mmW(enc, B.normed, w, B.k); + if (qkNorm) pass(enc, P_qkn, [B.k, Nrm[`l${l}.k_norm`], uQkn], n_kv_heads); + pass(enc, P_rope, [B.k, uRopeK], Math.ceil(n_kv_heads * (hd / 2) / 64)); + enc.copyBufferToBuffer(B.k, 0, kcache[l], pos * kv_dim * 4, kv_dim * 4); + w = await play(`l${l}.wv`); if (attnBias) mmAddW(enc, B.normed, w, Nrm[`l${l}.bv`], B.v); else mmW(enc, B.normed, w, B.v); + enc.copyBufferToBuffer(B.v, 0, vcache[l], pos * kv_dim * 4, kv_dim * 4); + pass(enc, P_attn, [B.q, kcache[l], vcache[l], B.attn, uAttn], n_heads); + w = await play(`l${l}.wo`); mmAddW(enc, B.attn, w, cur, B.h); + rms(enc, B.h, `l${l}.ffn_norm`, B.normed2); + w = await play(`l${l}.w_gate`); mmW(enc, B.normed2, w, B.gate); + w = await play(`l${l}.w_up`); mmW(enc, B.normed2, w, B.up); + pass(enc, P_sm, [B.gate, B.up, B.hid, uFF], Math.ceil(ff / 64)); + w = await play(`l${l}.w_down`); mmAddW(enc, B.hid, w, B.h, B.cur); + cur = B.cur; + } + rms(enc, cur, "final_norm", B.normed); + // PLAY the lm_head in row-tiles through the same frame buffer — not resident. + const lm = opfs ? null : FB["lm_head"], lmM = frameMan["lm_head"]; + const rowQ = bits === 4 ? d / 2 : d, rowS = (d / 32) * 4, T = Math.floor(RM.size / rowQ); + for (let v0 = 0; v0 < vocab; v0 += T) { + const rows = Math.min(T, vocab - v0); + dev.queue.submit([enc.finish()]); enc = dev.createCommandEncoder(); + if (opfs) { + dev.queue.writeBuffer(RM, 0, await opfsStore.read(lmM.off + v0 * rowQ, rows * rowQ)); + dev.queue.writeBuffer(RMscale, 0, await opfsStore.read(lmM.off + lmM.qlen + v0 * rowS, rows * rowS)); + } else { + dev.queue.writeBuffer(RM, 0, lm.q.subarray(v0 * rowQ, (v0 + rows) * rowQ)); + dev.queue.writeBuffer(RMscale, 0, new Uint8Array(lm.s.buffer, lm.s.byteOffset + v0 * rowS, rows * rowS)); + } + dev.queue.writeBuffer(uLm, 0, new Uint32Array([d, rows, d / 32, v0])); + pass(enc, P_mm, [B.normed, RM, RMscale, B.logits, uLm], grid(rows)); + } + enc.copyBufferToBuffer(B.logits, 0, staging, 0, vocab * 4); + dev.queue.submit([enc.finish()]); + } else if (stream) { + // page each layer's matrices into the reusable buffers, run that layer, + // submit, repeat — only one layer is GPU-resident at a time. Buffer reuse + // is safe: the queue runs writeBuffer(L+1) only after submit(L) finishes. + // Source is JS heap ("layer") or DISK ("opfs"/"remote"). For disk sources we + // PREFETCH a window of layers ahead so the storage→host read overlaps the GPU + // compute of earlier layers (the access pattern is fully predictable), and a + // bounded RAM cache serves warm layers without re-fetching. + if (opfs) for (let l = 0; l < Math.min(PREFETCH, n_layers); l++) getLayer(l); + for (let l = 0; l < n_layers; l++) { + if (opfs) { // page this layer's packed blob off DISK (prefetched) + const buf = await getLayer(l); + if (l + PREFETCH < n_layers) getLayer(l + PREFETCH); // keep the window full + dev.queue.writeBuffer(RQ, 0, buf.subarray(0, packQbytes)); + dev.queue.writeBuffer(RS, 0, buf.subarray(packQbytes)); + evictBelow(l); + } else { + dev.queue.writeBuffer(RQ, 0, Wb[l].q); // one fat DMA for the whole layer's matrices + dev.queue.writeBuffer(RS, 0, Wb[l].s); // + one for all its scales + } + // t2: this layer's per-role scalar scales into the reused uniforms (matmul reads scale from uni.w). + if (t2stream) for (const role of ROLES) { const L = packLayout[role]; dev.queue.writeBuffer(R[role].uni, 0, new Uint32Array([L.K, L.N, L.K / 16, t2scales[l][role]])); } + const enc = dev.createCommandEncoder(); + cur = layerBody(enc, l, cur, (role) => R[role]); + dev.queue.submit([enc.finish()]); + } + const encF = dev.createCommandEncoder(); + rms(encF, cur, "final_norm", B.normed); + mmW(encF, B.normed, W["lm_head"], B.logits); + encF.copyBufferToBuffer(B.logits, 0, staging, 0, vocab * 4); + dev.queue.submit([encF.finish()]); + } else { + const enc = dev.createCommandEncoder(); + const oneP = ONEPASS() && !(PROF && PROF.active) && !_calib; // profiling/calibration need per-pass boundaries/copies + if (oneP) openPass = enc.beginComputePass(); + for (let l = 0; l < n_layers; l++) cur = layerBody(enc, l, cur, (role) => W[`l${l}.${role}`]); + rms(enc, cur, "final_norm", B.normed); + mmW(enc, B.normed, W["lm_head"], B.logits); + if (oneP) { openPass.end(); openPass = null; } + if (!noRead) enc.copyBufferToBuffer(B.logits, 0, staging, 0, vocab * 4); + dev.queue.submit([enc.finish()]); + } + if (noRead) { timing = { encode: tS - tE, exec: performance.now() - tS }; pos++; return null; } + await staging.mapAsync(GPUMapMode.READ); + const logits = new Float32Array(staging.getMappedRange().slice(0)); + staging.unmap(); + if (PROF && PROF.active && PROF.i > 0) { // resolve + aggregate per-pipeline GPU ns → window.__profileData + const e = dev.createCommandEncoder(); e.resolveQuerySet(PROF.qs, 0, PROF.i, PROF.buf, 0); e.copyBufferToBuffer(PROF.buf, 0, PROF.stg, 0, PROF.i * 8); dev.queue.submit([e.finish()]); + await PROF.stg.mapAsync(GPUMapMode.READ); + const ts = new BigInt64Array(PROF.stg.getMappedRange().slice(0)); PROF.stg.unmap(); + const agg = {}; let sum = 0, t0 = ts[0], t1 = ts[PROF.i - 1]; + for (let k = 0; k < PROF.i; k += 2) { const ms = Number(ts[k + 1] - ts[k]) / 1e6; const tg = PROF.tags[k >> 1]; (agg[tg] = agg[tg] || { ms: 0, n: 0 }).ms += ms; agg[tg].n++; sum += ms; } + window.__profileData = { passes: agg, passSumMs: sum, gpuSpanMs: Number(t1 - t0) / 1e6, nPasses: PROF.i >> 1 }; + } + if (_capHidden) { // Atlas-Probe: read back the final hidden state for this token + hidStaging = hidStaging || dev.createBuffer({ size: d * 4, usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.MAP_READ }); + const e2 = dev.createCommandEncoder(); e2.copyBufferToBuffer(B.normed, 0, hidStaging, 0, d * 4); dev.queue.submit([e2.finish()]); + await hidStaging.mapAsync(GPUMapMode.READ); _capHidden.push(Array.from(new Float32Array(hidStaging.getMappedRange().slice(0)))); hidStaging.unmap(); + } + timing = { encode: tS - tE, exec: performance.now() - tS }; + pos++; + return logits; + } + + function reset() { pos = 0; cached = []; lastLogits = null; } + // KV-COMMONS prefix pin: rewind the decode cursor to a pinned prefix length L, KEEPING the + // GPU-resident K/V for positions [0..L) intact (byte-identical to what re-prefilling that prefix + // would produce — same tokens, same positions, deterministic). The next sync/decode call sees + // cached==prefix and steps ONLY the new tokens, so a shared prefix (system prompt, RAG context, + // few-shot block) is prefilled ONCE and reused across turns/conversations instead of being nuked + // by sync()'s divergence-reset. This is the in-session special case of a durable KV commons: the + // restore-from-bytes path (dumpKV → holo-kappa-v2, keyed by (weightsκ,tokenizerκ,prefixκ)) reduces + // to this once the bytes are resident. No-op guards keep it safe: L is clamped to [0, cached.length]. + function truncateTo(L) { L = Math.max(0, Math.min(L | 0, cached.length)); cached.length = L; pos = L; lastLogits = null; return L; } + + // dev probe: read back a layer's KV cache rows (+ the current B.q) for offline quantization + // experiments (the lattice-coded-KV gate). Read-only; no effect on inference state. + async function dumpKV(l, rows) { + const n = Math.min(rows || pos, pos), bytes = n * kv_dim * 4; + const stg = dev.createBuffer({ size: bytes * 2 + q_dim * 4, usage: U.MAP_READ | U.COPY_DST }); + const e = dev.createCommandEncoder(); + e.copyBufferToBuffer(kcache[l], 0, stg, 0, bytes); + e.copyBufferToBuffer(vcache[l], 0, stg, bytes, bytes); + e.copyBufferToBuffer(B.q, 0, stg, bytes * 2, q_dim * 4); + dev.queue.submit([e.finish()]); + await stg.mapAsync(GPUMapMode.READ); + const all = new Float32Array(stg.getMappedRange().slice(0)); stg.unmap(); stg.destroy(); + return { k: all.slice(0, n * kv_dim), v: all.slice(n * kv_dim, 2 * n * kv_dim), q: all.slice(2 * n * kv_dim), n, kv_dim, n_heads, n_kv_heads, hd }; + } + + // ── DURABLE KV COMMONS (I1): dump/restore the whole prefix K/V state as ONE byte blob ── + // Every cache region is pos-major from offset 0, so positions [0..L) of each side of each layer + // are a single contiguous copy. The layout string travels with the bytes AND is folded into the + // commons key by the caller — a format/dims change can never mis-restore (it just misses). + const kvRegion = (l, rows) => rows * ((kv4 && l > 0) ? kvS : kv_dim) * 4; + const kvLayoutOf = (L) => `kvc1|kv4:${kv4 ? 1 : 0}|kvd:${kv_dim}|layers:${n_layers}|L:${L | 0}`; + async function dumpState(L) { + L = Math.min(L | 0, pos); + if (L <= 1) return null; + let total = 0; for (let l = 0; l < n_layers; l++) total += 2 * kvRegion(l, L); + const stg = dev.createBuffer({ size: total, usage: U.MAP_READ | U.COPY_DST }); + const e = dev.createCommandEncoder(); let off = 0; + for (let l = 0; l < n_layers; l++) { + const nb = kvRegion(l, L); + e.copyBufferToBuffer(kcache[l], 0, stg, off, nb); off += nb; + e.copyBufferToBuffer(vcache[l], 0, stg, off, nb); off += nb; + } + dev.queue.submit([e.finish()]); + await stg.mapAsync(GPUMapMode.READ); + const bytes = new Uint8Array(stg.getMappedRange().slice(0)); stg.unmap(); stg.destroy(); + return { layout: kvLayoutOf(L), L, bytes }; + } + // Restores positions [0..L) then sets the cursor to L-1: the caller's next sync() re-derives the + // LAST prefix token through the normal step path — byte-identical by determinism — which both + // cross-checks the restore against live compute state and leaves valid resident logits for the + // decode head. Returns the resident length (L-1), or 0 (state untouched/reset) on any mismatch. + async function restoreState(tokens, blob) { + const L = blob && blob.L | 0; + if (!L || L < 2 || L > tokens.length || L > cap || blob.layout !== kvLayoutOf(L)) return 0; + let total = 0; for (let l = 0; l < n_layers; l++) total += 2 * kvRegion(l, L); + if (blob.bytes.byteLength !== total) return 0; + let off = 0; + for (let l = 0; l < n_layers; l++) { + const nb = kvRegion(l, L); + dev.queue.writeBuffer(kcache[l], 0, blob.bytes, off, nb); off += nb; + dev.queue.writeBuffer(vcache[l], 0, blob.bytes, off, nb); off += nb; + } + cached = tokens.slice(0, L - 1); pos = L - 1; lastLogits = null; + return L - 1; + } + + async function sync(tokens, forDecode = false) { + let p = 0; + while (p < cached.length && p < tokens.length && cached[p] === tokens[p]) p++; + if (p < cached.length) { reset(); p = 0; } + // raw-logits callers need a re-derive when decode() ended without CPU logits; decode() itself + // recomputes logits on-GPU from the ring — skipping this guard kills a QUADRATIC re-prefill + // in chunked decode loops (measured 151 → ~16 ms/tok). + if (!forDecode && p === tokens.length && lastLogits === null && tokens.length > 0) { reset(); p = 0; } + // PREFILL FAST PATH (resident-dense): ring prefill — GPU-embed, BATCH tokens/submit, no per-token + // fence, lm_head only on the last token. Falls back to the per-step loop for streamed/MoE models + // and for the dev probes that snapshot per-token state (_capHidden / Hessian calibration). + const ringOk = typeof window === "undefined" || window.__ringprefill !== false; // dev A/B hook + if (ringOk && p < tokens.length && denseFast() && !_capHidden && !_calib) { + const r = await prefillGPU(tokens.slice(p), p, !forDecode); + lastLogits = forDecode ? null : r; + return; + } + // slow path: one step() per token; logits readback only where a caller can read them (the last). + for (let i = p; i < tokens.length; i++) { + const needRead = !forDecode && i === tokens.length - 1; + const r = await step(tokens[i], !needRead); + if (needRead) lastLogits = r; + cached.push(tokens[i]); + if (!needRead && (i & 15) === 15) await dev.queue.onSubmittedWorkDone(); + } + if (forDecode) lastLogits = null; + } + + function argmax(a) { let bi = 0; for (let i = 1; i < a.length; i++) if (a[i] > a[bi]) bi = i; return bi; } + + // Greedy decode with a repetition penalty (deterministic → a teleported mind + // still continues identically). Penalizing recently-seen tokens breaks the + // greedy loops a small base model otherwise falls into. + async function generate(prompt, maxNew, repPenalty = 1.3) { + await sync(prompt); + let logits = lastLogits, seq = prompt.slice(); + for (let n = 0; n < maxNew; n++) { + if (seq.length >= cap) break; + const pen = logits.slice(); // keep cached logits raw + for (const id of new Set(seq.slice(Math.max(0, seq.length - 64)))) pen[id] = Math.fround(pen[id] > 0 ? pen[id] / repPenalty : pen[id] * repPenalty); // f32 like the GPU head — heads must tie-break identically + const next = argmax(pen); + if (next === eos) break; // EOS → stop + seq.push(next); + logits = await step(next); + lastLogits = logits; + cached.push(next); + } + return seq; + } + + // BATCHED GPU greedy decode: the whole [penalty → argmax → append → embed → forward] chain runs + // ON the GPU for BATCH tokens per submit — the token ids live in a GPU seq-ring, the embed lookup + // is a kernel, and per-position uniforms are prewritten (positions are deterministic). ONE fence + // per BATCH tokens instead of per token: the measured ~20 ms/token submit/fence tax drops ~6×. + // Greedy semantics match generate() exactly (same penalty formula over the last-64 unique window + // — PENALTY2 dedups by first occurrence — and the same first-max argmax tie-break). + let DEC = null; + const BATCH = 6; // tokens per submit; with the pipelined loop below the fence is off the critical path + const denseFast = () => !(stream || frameGran || moe || (bits === 3 && !q3f)); + function ensureDEC() { + if (DEC) return DEC; + const mk = () => Array.from({ length: BATCH }, () => ubuf(new Uint32Array(4))); + const par2 = (f) => [f(), f()]; // double-buffered per-parity resources (pipelined batches) + const eqB = dev.createBuffer({ size: embedQ.byteLength, usage: U.STORAGE | U.COPY_DST }); + dev.queue.writeBuffer(eqB, 0, embedQ.buffer, embedQ.byteOffset, embedQ.byteLength); + const esB = dev.createBuffer({ size: embedS.byteLength, usage: U.STORAGE | U.COPY_DST }); + dev.queue.writeBuffer(esB, 0, embedS.buffer, embedS.byteOffset, embedS.byteLength); + DEC = { + pen2: pipe(PENALTY2, "pen2"), a1: pipe(ARGMAX1, "amax1"), a2: pipe(ARGMAX2, "amax2"), + app: pipe(APPEND, "append"), emb: pipe(EMBED(bits, q3f), "embed"), + eqB, esB, ring: dev.createBuffer({ size: Math.max(cap, 1024) * 4, usage: U.STORAGE | U.COPY_DST | U.COPY_SRC }), + uA1: ubuf(new Uint32Array([vocab, 0, 0, 0])), tmp: sbuf(512), + out: dev.createBuffer({ size: 16, usage: U.STORAGE | U.COPY_SRC }), + stg: par2(() => dev.createBuffer({ size: BATCH * 4, usage: U.MAP_READ | U.COPY_DST })), + uP: par2(mk), uE: par2(mk), uRQ: par2(mk), uRK: par2(mk), uA: par2(mk), + }; + return DEC; + } + // ── RING PREFILL: prompt tokens are KNOWN, so prefill rides the same GPU-embed ring as decode — + // BATCH tokens per submit, one compute pass each, NO per-token fence, and (the big cut) NO lm_head + // except for the last token (the old per-step prefill paid the model's largest matmul per prompt + // token for logits nobody read). Byte-identical KV to step()-prefill: same kernels, same order. + async function prefillGPU(newTokens, base0, needLogits) { + ensureDEC(); + const ONE = ONEPASS(); + const tJs0 = performance.now(); let drainMs = 0; + dev.queue.writeBuffer(DEC.ring, base0 * 4, new Uint32Array(newTokens)); + let par = 0, subs = 0; + for (let off = 0; off < newTokens.length; off += BATCH) { + const n = Math.min(BATCH, newTokens.length - off); + const base = base0 + off, pos0 = pos + off; + const uE = DEC.uE[par], uRQ = DEC.uRQ[par], uRK = DEC.uRK[par], uA = DEC.uA[par]; + for (let k = 0; k < n; k++) { + dev.queue.writeBuffer(uE[k], 0, new Uint32Array([base + k, d, 0, 0])); + dev.queue.writeBuffer(uRQ[k], 0, new Uint32Array([n_heads, hd, pos0 + k, n_kv_heads])); + dev.queue.writeBuffer(uRK[k], 0, new Uint32Array([n_kv_heads, hd, pos0 + k, 0])); + dev.queue.writeBuffer(uA[k], 0, new Uint32Array([n_heads, n_kv_heads, hd, pos0 + k])); + } + const enc = dev.createCommandEncoder(); + if (ONE) openPass = enc.beginComputePass(); + for (let k = 0; k < n; k++) { + pass(enc, DEC.emb, [DEC.ring, DEC.eqB, DEC.esB, B.x, uE[k]], Math.ceil(d / 256)); + let cur = B.x; + const up = { ropeQ: uRQ[k], ropeK: uRK[k], attn: uA[k], pos: pos0 + k }; + for (let l = 0; l < n_layers; l++) cur = layerBody(enc, l, cur, (role) => W[`l${l}.${role}`], up); + if (off + k === newTokens.length - 1) { // logits only where they can be read (last token) + rms(enc, cur, "final_norm", B.normed); + mmW(enc, B.normed, W["lm_head"], B.logits); + } + } + if (ONE) { openPass.end(); openPass = null; } + if (off + n === newTokens.length && needLogits) enc.copyBufferToBuffer(B.logits, 0, staging, 0, vocab * 4); + dev.queue.submit([enc.finish()]); + par ^= 1; + if ((++subs & 15) === 0) { const t = performance.now(); await dev.queue.onSubmittedWorkDone(); drainMs += performance.now() - t; } // bounded queue depth + } + const encodeMs = performance.now() - tJs0 - drainMs; + pos += newTokens.length; + for (const t of newTokens) cached.push(t); + let logits = null; + const tTail = performance.now(); + if (needLogits) { + await staging.mapAsync(GPUMapMode.READ); + logits = new Float32Array(staging.getMappedRange().slice(0)); staging.unmap(); + } else { + await dev.queue.onSubmittedWorkDone(); // honest cost: prefill "done" = KV resident + } + if (typeof window !== "undefined") window.__prefStats = { n: newTokens.length, encodeMs: +encodeMs.toFixed(1), drainMs: +drainMs.toFixed(1), tailMs: +(performance.now() - tTail).toFixed(1) }; + return logits; + } + async function decode(prompt, maxNew, repPenalty = 1.3, onTok = null) { + if (!denseFast()) { // GPU-embed variants cover q3f/q4/q8 + const seq = await generate(prompt, maxNew, repPenalty); + if (onTok && seq.length > prompt.length) onTok(seq.slice(prompt.length), seq.length); + return seq; + } + ensureDEC(); + await sync(prompt, true); + const seq = prompt.slice(); + dev.queue.writeBuffer(DEC.ring, 0, new Uint32Array(seq)); // ring ← current seq (penalty window + embed source) + const ONE = ONEPASS(); + const pos0Start = pos, baseStart = seq.length; + // ── PIPELINED DATAFLOW LOOP: keep up to 2 batches in flight — batch N+1 is encoded+submitted + // BEFORE batch N's 4-byte fence is read, so the GPU never idles on the JS fence/detok/UI work. + // Positions and ring indices are deterministic, so batch N+1 needs nothing from batch N on the + // host side (the token ids it consumes live in the GPU ring — data triggers compute, not JS). + // The first batch is 1 token when streaming (onTok) so the first word lands at 1-token latency. + // On EOS/stop, an already-submitted speculative batch is simply abandoned: pos/seq rewind below; + // its ring/KV writes beyond pos are never read (same invariant as the old mid-batch EOS trim). + const submitBatch = (n, base, pos0, par) => { + const uP = DEC.uP[par], uE = DEC.uE[par], uRQ = DEC.uRQ[par], uRK = DEC.uRK[par], uA = DEC.uA[par]; + for (let k = 0; k < n; k++) { // prewritten per-step uniforms (queued writes, no fence) + dev.queue.writeBuffer(uP[k], 0, new Uint32Array([base + k, fbits(repPenalty), 0, 0])); + dev.queue.writeBuffer(uE[k], 0, new Uint32Array([base + k, d, 0, 0])); + dev.queue.writeBuffer(uRQ[k], 0, new Uint32Array([n_heads, hd, pos0 + k, n_kv_heads])); // .w = nkv (fused ROPE2) + dev.queue.writeBuffer(uRK[k], 0, new Uint32Array([n_kv_heads, hd, pos0 + k, 0])); + dev.queue.writeBuffer(uA[k], 0, new Uint32Array([n_heads, n_kv_heads, hd, pos0 + k])); + } + const enc = dev.createCommandEncoder(); + if (ONE) openPass = enc.beginComputePass(); + for (let k = 0; k < n; k++) { + pass(enc, DEC.pen2, [B.logits, DEC.ring, uP[k]], 1); + pass(enc, DEC.a1, [B.logits, DEC.tmp, DEC.uA1], 256); + pass(enc, DEC.a2, [DEC.tmp, DEC.out], 1); + pass(enc, DEC.app, [DEC.ring, DEC.out, uE[k]], 1); // ring[base+k] = winner + pass(enc, DEC.emb, [DEC.ring, DEC.eqB, DEC.esB, B.x, uE[k]], Math.ceil(d / 256)); + let cur = B.x; + const up = { ropeQ: uRQ[k], ropeK: uRK[k], attn: uA[k], pos: pos0 + k }; + for (let l = 0; l < n_layers; l++) cur = layerBody(enc, l, cur, (role) => W[`l${l}.${role}`], up); + rms(enc, cur, "final_norm", B.normed); + mmW(enc, B.normed, W["lm_head"], B.logits); + } + if (ONE) { openPass.end(); openPass = null; } + enc.copyBufferToBuffer(DEC.ring, base * 4, DEC.stg[par], 0, n * 4); + dev.queue.submit([enc.finish()]); + pos = pos0 + n; + }; + let predLen = seq.length, predPos = pos, par = 0, done = false, firstBatch = !!onTok; + const inflight = []; + while (!done) { + while (!done && inflight.length < 2 && predLen - prompt.length < maxNew && predLen < cap) { + const n = Math.min(firstBatch ? 1 : BATCH, maxNew - (predLen - prompt.length), cap - predLen); + firstBatch = false; + submitBatch(n, predLen, predPos, par); + inflight.push({ n, par }); + predLen += n; predPos += n; par ^= 1; + } + const b = inflight.shift(); + if (!b) break; + await DEC.stg[b.par].mapAsync(GPUMapMode.READ); + const win = new Uint32Array(DEC.stg[b.par].getMappedRange().slice(0)).subarray(0, b.n); DEC.stg[b.par].unmap(); + const got = []; + for (let k = 0; k < b.n; k++) { + if (win[k] === eos) { done = true; break; } + seq.push(win[k]); cached.push(win[k]); got.push(win[k]); + } + if (got.length && onTok && onTok(got, seq.length) === false) done = true; // caller stop (abort/stop-text) + } + pos = pos0Start + (seq.length - baseStart); // rewind past EOS/stop + any abandoned speculative batch + lastLogits = null; // raw-logits callers re-derive via sync()'s guard + return seq; + } + + // ── SPECULATIVE DECODE (n-gram draft + batched-k verify; unfused/kv4 path) ────────────── + // All k window inputs are known ⇒ one prefill-like forward verifies them; weights are read + // ONCE per pass for all rows. Greedy verification is EXACT: the committed sequence equals + // sequential decode byte-for-byte by construction (gate G2 asserts it). + const KX = 8; + let SP = null; + let _drafter = null; // pluggable learned drafter: (seq, max) => ids (sync or async). null = n-gram baseline. + function specInit() { + if (SP) return SP; + if (moe || stream || !kv4 || attnBias || qkNorm) throw new Error("specDecode: resident + kv4, no attn-bias/qk-norm (for now)"); + // BitNet (subNorm+bitlinear) and fusedT2-resident models ARE supported: the spec forward below is + // always UNFUSED (specMM per matrix) and mirrors the resident unfused BitNet layer's extra norms. + const sb8 = (n) => dev.createBuffer({ size: n * 4, usage: U.STORAGE | U.COPY_DST | U.COPY_SRC }); + SP = { + x: sb8(KX * d), normed: sb8(KX * d), q: sb8(KX * q_dim), k: sb8(KX * kv_dim), v: sb8(KX * kv_dim), + attn: sb8(KX * q_dim), h: sb8(KX * d), normed2: sb8(KX * d), gate: sb8(KX * ff), up: sb8(KX * ff), + hid: sb8(KX * ff), cur: sb8(KX * d), logits: sb8(KX * vocab), amax: sb8(KX), amaxStg: dev.createBuffer({ size: KX * 4, usage: U.MAP_READ | U.COPY_DST }), + attn2: sb8(KX * q_dim), hid2: sb8(KX * ff), nb1: sb8(KX * d), nb2: sb8(KX * d), // BitNet sub-norm + BitLinear input-norm outputs (batched; RMS must not run in place) + tmp: sbuf(65536 * 2), + P_rmsk: pipe(RMSK, "rmsk"), P_ropek: pipe(ROPEK(ropeLit), "ropek"), P_kvqk: pipe(KVQK(kv_dim), "kvqk"), + P_attnqk: pipe(ATTNQK(cap, kv_dim), "attnqk"), P_attnk: pipe(ATTNK(cap), "attnk"), + P_t2k: pipe(mmT2KK(false, KX), "t2k"), P_t2ka: pipe(mmT2KK(true, KX), "t2ka"), + P_t2k2: pipe(mmT2KK(false, 2), "t2k2"), P_t2ka2: pipe(mmT2KK(true, 2), "t2ka2"), P_q3k2: pipe(mmQ3KK(2), "q3k2"), + P_q3k: pipe(mmQ3KK(KX), "q3k"), + uD: ubuf(new Uint32Array([d, 0, 0, 0])), uQd: ubuf(new Uint32Array([q_dim, 0, 0, 0])), uFFn: ubuf(new Uint32Array([ff, 0, 0, 0])), uRQ: ubuf(new Uint32Array([4])), uRK: ubuf(new Uint32Array([4])), + uAT: ubuf(new Uint32Array([4])), uFFK: ubuf(new Uint32Array([4])), + uPen: Array.from({ length: KX }, () => ubuf(new Uint32Array(4))), uRow: Array.from({ length: KX }, (_, i) => ubuf(new Uint32Array([i, 0, 0, 0]))), uV: ubuf(new Uint32Array([vocab, 0, 0, 0])), + cold: 0, stats: { windows: 0, drafted: 0, accepted: 0 }, + }; + if (hasT2R) { SP.P_t2rk = pipe(mmT2RKK(false, KX), "t2rk"); SP.P_t2rka = pipe(mmT2RKK(true, KX), "t2rka"); SP.P_t2rk2 = pipe(mmT2RKK(false, 2), "t2rk2"); SP.P_t2rka2 = pipe(mmT2RKK(true, 2), "t2rka2"); } + // DP4a integer-dot path (opt-in via window.__dp4a; t2 weights only). dot4I8Packed is core WGSL here; + // on a device without it these compiles would error — gate creation on the flag being pre-set. + if (typeof window === "undefined" || window.__dp4a) { + SP.aq = sb8(KX * (Math.max(d, ff) >> 2)); SP.asc = sb8(KX * (Math.max(d, ff) >> 5)); + SP.P_actq = pipe(ACTQUANTK, "actq"); + SP.P_t2dp = pipe(mmT2DP4A(false, KX), "t2dp"); SP.P_t2dpa = pipe(mmT2DP4A(true, KX), "t2dpa"); + SP.P_t2dp2 = pipe(mmT2DP4A(false, 2), "t2dp2"); SP.P_t2dpa2 = pipe(mmT2DP4A(true, 2), "t2dpa2"); + SP.hasDp4a = true; + } + return SP; + } + const embedRowF32 = (token, out, off) => { + const eq32 = new Uint32Array(embedQ.buffer, embedQ.byteOffset, embedQ.byteLength >> 2), bb = token * (d / 32), sb = token * (d / 32); + for (let i = 0; i < d; i++) { + const bp = (bb + (i >> 5)) * 3, j = i & 31; let q; + if (j < 10) q = (eq32[bp] >>> (j * 3)) & 7; + else if (j < 20) q = (eq32[bp + 1] >>> ((j - 10) * 3)) & 7; + else if (j < 30) q = (eq32[bp + 2] >>> ((j - 20) * 3)) & 7; + else { const sp = (eq32[bp] >>> 30) | ((eq32[bp + 1] >>> 30) << 2) | ((eq32[bp + 2] >>> 30) << 4); q = j === 30 ? sp & 7 : (sp >>> 3) & 7; } + out[off + i] = (q - 3) * embedS[sb + (i >> 5)]; + } + }; + const specMM = (enc, ws, xb, ob, m, rb) => { // batched GEMM, route by fmt; m<=2 takes the narrow (KX=2) pipelines + const g = grid(Math.ceil(ws.N / 4)); const nr = m <= 2; + if (ws.t2 && SP.hasDp4a && typeof window !== "undefined" && window.__dp4a) { // DP4a integer-dot: quant xb→int8 (reuses ws.uni's K), then dot4I8Packed + pass(enc, SP.P_actq, [xb, SP.aq, SP.asc, ws.uni], [1, m]); + if (rb) pass(enc, nr ? SP.P_t2dpa2 : SP.P_t2dpa, [SP.aq, ws.qbuf, SP.asc, rb, ob, ws.uni], g); + else pass(enc, nr ? SP.P_t2dp2 : SP.P_t2dp, [SP.aq, ws.qbuf, SP.asc, ob, ws.uni], g); + return; + } + if (ws.t2) pass(enc, rb ? (nr ? SP.P_t2ka2 : SP.P_t2ka) : (nr ? SP.P_t2k2 : SP.P_t2k), rb ? [xb, ws.qbuf, rb, ob, ws.uni] : [xb, ws.qbuf, ob, ws.uni], g); + else if (ws.t2r) pass(enc, rb ? (nr ? SP.P_t2rka2 : SP.P_t2rka) : (nr ? SP.P_t2rk2 : SP.P_t2rk), rb ? [xb, ws.qbuf, ws.sbuf, rb, ob, ws.uni] : [xb, ws.qbuf, ws.sbuf, ob, ws.uni], g); + else pass(enc, nr ? SP.P_q3k2 : SP.P_q3k, [xb, ws.qbuf, ws.sbuf, ob, ws.uni], g); + }; + function ngramDraft(seq, max) { // longest suffix match (3→1-gram) proposes following ids + const n = seq.length; if (n < 4) return []; + for (let g = 3; g >= 1; g--) { + const a = seq.slice(n - g); + for (let i = n - g - 1; i >= 0; i--) { + let hit = true; for (let j = 0; j < g; j++) if (seq[i + j] !== a[j]) { hit = false; break; } + if (hit) { const out = seq.slice(i + g, i + g + max); if (out.length) return out; } + } + } + return []; + } + async function captureHidden(tokens) { reset(); _capHidden = []; try { await sync(tokens); return _capHidden; } finally { _capHidden = null; } } + async function specDecode(prompt, maxNew, repPenalty = 1.3, onCommit = null) { + specInit(); + let seq = prompt.slice(); + await sync(seq.slice(0, -1)); // prefill all but the pending token + let tKnown = seq[seq.length - 1]; // committed, not yet forwarded + const ring = DEC && DEC.ring ? DEC.ring : null; // reuse decode head ring when built… + const ringBuf = ring || (specInit().ringB = SP.ringB || (SP.ringB = dev.createBuffer({ size: cap * 4, usage: U.STORAGE | U.COPY_DST }))); + dev.queue.writeBuffer(ringBuf, 0, new Uint32Array(seq)); + const xHost = new Float32Array(KX * d); + const P_pen = pipe(PENALTY2, "pen2k"), P_a1 = pipe(ARGMAX1, "a1k"), P_a2 = pipe(ARGMAX2K, "a2k"); + while (seq.length - prompt.length < maxNew && pos + KX + 2 < cap) { + let drafts = []; + if (!SP.stats.noDraft && SP.cold <= 0) { // pluggable drafter; n-gram is the fallback + const dfn = _drafter || ngramDraft; + drafts = (await dfn(seq, KX - 1)) || []; + if (drafts.length === 0 && _drafter) drafts = ngramDraft(seq, KX - 1); + if (drafts.length > KX - 1) drafts = drafts.slice(0, KX - 1); // window is [tKnown, ...drafts] ≤ KX + } + const win = [tKnown, ...drafts]; const m = win.length; + const base = pos; + SP.stats.windows++; SP.stats.drafted += drafts.length; + dev.queue.writeBuffer(ringBuf, base * 4, new Uint32Array(win)); // provisional ring rows + for (let i = 0; i < m; i++) embedRowF32(win[i], xHost, i * d); + dev.queue.writeBuffer(SP.x, 0, xHost, 0, m * d); + dev.queue.writeBuffer(SP.uRQ, 0, new Uint32Array([n_heads, hd, base, q_dim])); + dev.queue.writeBuffer(SP.uRK, 0, new Uint32Array([n_kv_heads, hd, base, kv_dim])); + dev.queue.writeBuffer(SP.uAT, 0, new Uint32Array([n_heads, n_kv_heads, hd, base])); + dev.queue.writeBuffer(SP.uFFK, 0, new Uint32Array([m * ff, 0, 0, 0])); + for (let i = 0; i < m; i++) dev.queue.writeBuffer(SP.uPen[i], 0, new Uint32Array([base + i + 1, fbits(repPenalty), 0, 0])); + const enc = dev.createCommandEncoder(); + let cur = SP.x; + for (let l = 0; l < n_layers; l++) { + const W_ = (role) => W[`l${l}.${role}`]; + pass(enc, SP.P_rmsk, [cur, Nrm[`l${l}.attn_norm`], SP.normed, SP.uD], [1, m]); + let qkvIn = SP.normed; + if (bitlinear) { pass(enc, SP.P_rmsk, [SP.normed, Nrm["__unit_d"], SP.nb1, SP.uD], [1, m]); qkvIn = SP.nb1; } // BitLinear weightless norm into q/k/v + specMM(enc, W_("wq"), qkvIn, SP.q, m); specMM(enc, W_("wk"), qkvIn, SP.k, m); specMM(enc, W_("wv"), qkvIn, SP.v, m); + pass(enc, SP.P_ropek, [SP.q, SP.uRQ], [Math.ceil(n_heads * (hd / 2) / 64), m]); + pass(enc, SP.P_ropek, [SP.k, SP.uRK], [Math.ceil(n_kv_heads * (hd / 2) / 64), m]); + if (l === 0) { // layer 0: f32 cache + for (let i = 0; i < m; i++) { enc.copyBufferToBuffer(SP.k, i * kv_dim * 4, kcache[0], (base + i) * kv_dim * 4, kv_dim * 4); enc.copyBufferToBuffer(SP.v, i * kv_dim * 4, vcache[0], (base + i) * kv_dim * 4, kv_dim * 4); } + pass(enc, SP.P_attnk, [SP.q, kcache[0], vcache[0], SP.attn, SP.uAT], [n_heads, m]); + } else { + pass(enc, SP.P_kvqk, [SP.k, kcache[l], SP.uAT], [1, m]); + pass(enc, SP.P_kvqk, [SP.v, vcache[l], SP.uAT], [1, m]); + pass(enc, SP.P_attnqk, [SP.q, kcache[l], vcache[l], SP.attn, SP.uAT], [n_heads, m]); + } + let attnO = SP.attn; + if (subNorm) { pass(enc, SP.P_rmsk, [SP.attn, Nrm[`l${l}.attn_sub_norm`], SP.attn2, SP.uQd], [1, m]); attnO = SP.attn2; } // BitNet: norm before the o-projection + else if (bitlinear) { pass(enc, SP.P_rmsk, [SP.attn, Nrm["__unit_qd"], SP.attn2, SP.uQd], [1, m]); attnO = SP.attn2; } // BitLinear: weightless norm into wo + specMM(enc, W_("wo"), attnO, SP.h, m, cur); + pass(enc, SP.P_rmsk, [SP.h, Nrm[`l${l}.ffn_norm`], SP.normed2, SP.uD], [1, m]); + let guIn = SP.normed2; + if (bitlinear) { pass(enc, SP.P_rmsk, [SP.normed2, Nrm["__unit_d"], SP.nb2, SP.uD], [1, m]); guIn = SP.nb2; } // BitLinear: weightless norm into gate/up + specMM(enc, W_("w_gate"), guIn, SP.gate, m); specMM(enc, W_("w_up"), guIn, SP.up, m); + pass(enc, P_sm, [SP.gate, SP.up, SP.hid, SP.uFFK], Math.ceil(m * ff / 64)); + let hidO = SP.hid; + if (subNorm) { pass(enc, SP.P_rmsk, [SP.hid, Nrm[`l${l}.ffn_sub_norm`], SP.hid2, SP.uFFn], [1, m]); hidO = SP.hid2; } // BitNet: norm before the down-projection + else if (bitlinear) { pass(enc, SP.P_rmsk, [SP.hid, Nrm["__unit_ff"], SP.hid2, SP.uFFn], [1, m]); hidO = SP.hid2; } // BitLinear: weightless norm into w_down + specMM(enc, W_("w_down"), hidO, SP.cur, m, SP.h); + cur = SP.cur; if (l < n_layers - 1) { const t_ = SP.x; SP.x = SP.cur; SP.cur = t_; } + } + pass(enc, SP.P_rmsk, [cur, Nrm["final_norm"], SP.normed, SP.uD], [1, m]); + specMM(enc, W["lm_head"], SP.normed, SP.logits, m); + for (let i = 0; i < m; i++) { // per-row penalty + argmax (sub-range bindings) + const lr = { buffer: SP.logits, offset: i * vocab * 4, size: vocab * 4 }; + pass(enc, P_pen, [lr, ringBuf, SP.uPen[i]], 1); + pass(enc, P_a1, [lr, SP.tmp, SP.uV], 256); + pass(enc, P_a2, [SP.tmp, SP.amax, SP.uRow[i]], 1); + } + enc.copyBufferToBuffer(SP.amax, 0, SP.amaxStg, 0, m * 4); + dev.queue.submit([enc.finish()]); + await SP.amaxStg.mapAsync(GPUMapMode.READ); + const out = new Uint32Array(SP.amaxStg.getMappedRange().slice(0)).subarray(0, m); SP.amaxStg.unmap(); + let a = 0, expect = out[0], done = false; + const commit = []; + for (let i = 1; i < m; i++) { if (win[i] === expect) { commit.push(expect); expect = out[i]; a++; } else break; } + commit.push(expect); + SP.stats.accepted += a; + if (drafts.length && a === 0) SP.cold = 3; else if (SP.cold > 0) SP.cold--; + for (const tk of commit) { if (tk === eos) { done = true; break; } seq.push(tk); cached.push(tk); if (onCommit && onCommit(tk) === false) { done = true; break; } } + pos = base + 1 + a; // rows kept: row0 + accepted; stale KV beyond pos never read + dev.queue.writeBuffer(ringBuf, (base + 1 + a) * 4, new Uint32Array([expect])); // correct the ring where the draft diverged + tKnown = expect; + if (done) break; + } + lastLogits = null; + if (seq.length - prompt.length > maxNew) seq.length = prompt.length + maxNew; // window overshoot trim (prefix property keeps byte-exactness) + return seq; + } + // Atlas/E₈ calibration (ADR-0054): run a corpus and collect each layer's ATTENTION-INPUT Hessian + // H = XᵀX (the input to wq/wk/wv) by snapshotting B.normed per layer during the forward — feeds LDLQ. + async function collectInputHessians(tokens) { + reset(); + const SZ = 2 * n_layers * d; // [attn inputs: n_layers·d][ffn inputs: n_layers·d] + snapBuf = snapBuf || sbuf(SZ); + snapStg = snapStg || dev.createBuffer({ size: SZ * 4, usage: U.MAP_READ | U.COPY_DST }); + _calib = true; + const attn = Array.from({ length: n_layers }, () => new Float64Array(d * d)); // wq/wk/wv input Hessian + const ffn = Array.from({ length: n_layers }, () => new Float64Array(d * d)); // gate/up input Hessian + const acc = (H, x, o) => { for (let a = 0; a < d; a++) { const xa = x[o + a], row = a * d; for (let b = a; b < d; b++) H[row + b] += xa * x[o + b]; } }; + try { + for (const tok of tokens) { + await step(tok); + const enc = dev.createCommandEncoder(); enc.copyBufferToBuffer(snapBuf, 0, snapStg, 0, SZ * 4); dev.queue.submit([enc.finish()]); + await snapStg.mapAsync(GPUMapMode.READ); const all = new Float32Array(snapStg.getMappedRange().slice(0)); snapStg.unmap(); + for (let l = 0; l < n_layers; l++) { acc(attn[l], all, l * d); acc(ffn[l], all, (n_layers + l) * d); } + } + } finally { _calib = null; } + const sym = (H) => { for (let a = 0; a < d; a++) for (let b = a + 1; b < d; b++) H[b * d + a] = H[a * d + b]; }; + for (let l = 0; l < n_layers; l++) { sym(attn[l]); sym(ffn[l]); } + return { attn, ffn }; + } + + // ── DIFFUSION DECODE (Dream-class): iterative mask-denoising over a resident batch ── + let DF = null; + const DF_NMAX = 192, DF_DK = 32; + function diffuseInit() { + if (DF) return DF; + if (manifest.maskId === undefined) throw new Error("diffuse: manifest has no maskId (not a diffusion model)"); + if (stream || moe) throw new Error("diffuse: resident models only"); + const q2 = n_heads * hd, kv2 = n_kv_heads * hd; + DF = { + P_g32: pipe(mmQ3KK(DF_DK), "dq3k32"), P_attnB: pipe(ATTNB(DF_NMAX), "attnB"), P_bias: pipe(BIASK, "biasK"), + P_rms: pipe(RMSK, "drms"), P_rope: pipe(ROPEK(ropeLit), "drope"), P_add: pipe(ADD, "dadd"), P_sm: pipe(SILUMUL, "dsm"), + P_a1: pipe(ARGMAX1, "da1"), P_a2: pipe(ARGMAX2C, "da2c"), + x: sbuf((DF_NMAX + DF_DK) * d), normed: sbuf((DF_NMAX + DF_DK) * d), q: sbuf((DF_NMAX + DF_DK) * q2), k: sbuf((DF_NMAX + DF_DK) * kv2), v: sbuf((DF_NMAX + DF_DK) * kv2), + attn: sbuf((DF_NMAX + DF_DK) * q2), h: sbuf((DF_NMAX + DF_DK) * d), normed2: sbuf((DF_NMAX + DF_DK) * d), + gate: sbuf((DF_NMAX + DF_DK) * ff), up: sbuf((DF_NMAX + DF_DK) * ff), hid: sbuf((DF_NMAX + DF_DK) * ff), cur: sbuf((DF_NMAX + DF_DK) * d), res: sbuf((DF_NMAX + DF_DK) * d), + logits: sbuf(DF_DK * vocab), tmp: sbuf(65536 * 2), amax: sbuf(DF_NMAX * 2), + stgIds: dev.createBuffer({ size: DF_NMAX * 8, usage: U.MAP_READ | U.COPY_DST }), + uD: ubuf(new Uint32Array([d, 0, 0, 0])), uQd: ubuf(new Uint32Array([q2, 0, 0, 0])), uKv: ubuf(new Uint32Array([kv2, 0, 0, 0])), + uRopeQ: ubuf(new Uint32Array([n_heads, hd, 0, q2])), uRopeK: ubuf(new Uint32Array([n_kv_heads, hd, 0, kv2])), + uV: ubuf(new Uint32Array([vocab, 0, 0, 0])), + uRow: Array.from({ length: DF_NMAX }, (_, i) => ubuf(new Uint32Array([i, 0, 0, 0]))), + uAdd: new Map(), uAttnCache: new Map(), + xHost: new Float32Array(DF_NMAX * d), + stats: { steps: 0, blocks: 0 }, + }; + return DF; + } + const dfAddUni = (nEl) => { let u = DF.uAdd.get(nEl); if (!u) { u = ubuf(new Uint32Array([nEl, 0, 0, 0])); DF.uAdd.set(nEl, u); } return u; }; + const dfAttnUni = (key, val) => { let u = DF.uAttnCache.get(key); if (!u) { u = ubuf(val); DF.uAttnCache.set(key, u); } return u; }; + const dfEmbedRow = (token, off) => { // q3f embed decode (mirror of the step path) + const eq32 = new Uint32Array(embedQ.buffer, embedQ.byteOffset, embedQ.byteLength >> 2); + const x = DF.xHost, nbD2 = d / 32; + for (let i = 0; i < d; i++) { + const b = token * nbD2 + (i >> 5), bp = b * 3, j = i & 31; let qv; + const p0 = eq32[bp], p1 = eq32[bp + 1], p2 = eq32[bp + 2]; + if (j < 10) qv = (p0 >>> (j * 3)) & 7; else if (j < 20) qv = (p1 >>> ((j - 10) * 3)) & 7; else if (j < 30) qv = (p2 >>> ((j - 20) * 3)) & 7; + else { const sp = (p0 >>> 30) | ((p1 >>> 30) << 2) | ((p2 >>> 30) << 4); qv = j === 30 ? sp & 7 : (sp >> 3) & 7; } + x[off + i] = (qv - 3) * embedS[token * nbD2 + (i >> 5)]; + } + }; + // chunked DK-column GEMM over the existing per-tensor uniforms; weights read ceil(n/DK)× per matrix + const dfGemm = (enc, ws, xb, xStride, ob, oStride, n) => { + for (let c0 = 0; c0 < n; c0 += DF_DK) { + pass(enc, DF.P_g32, [ + { buffer: xb, offset: c0 * xStride * 4, size: DF_DK * xStride * 4 }, + ws.qbuf, ws.sbuf, + { buffer: ob, offset: c0 * oStride * 4, size: DF_DK * oStride * 4 }, + ws.uni], grid(Math.ceil(ws.N / 4))); + } + }; + // diffuse(promptIds, genLen, { steps, causal }) → seq with the block denoised (greedy, deterministic) + async function diffuse(promptIds, genLen = 32, opts = {}) { + diffuseInit(); + if (DF.busy) throw new Error("diffuse: a denoise is already in flight — await the previous call before starting another (don't fire overlapping diffuse() calls)"); + DF.busy = true; + try { + const S = opts.steps || 8, causal = !!opts.causal; + const MASK = manifest.maskId; + // two modes: APPEND (genLen masks at the suffix — generation) or FILL (promptIds already + // contains MASK ids anywhere — infilling/editing, diffusion's structural advantage over AR). + let seq, n, masked = []; + if (opts.fill) { + seq = promptIds.slice(); n = seq.length; + for (let i = 0; i < n; i++) if (seq[i] === MASK) masked.push(i); + if (!masked.length) return seq; + } else { + n = promptIds.length + genLen; + seq = promptIds.concat(Array(genLen).fill(MASK)); + for (let i = promptIds.length; i < n; i++) masked.push(i); + } + if (n > DF_NMAX) throw new Error("diffuse: n " + n + " > " + DF_NMAX); + const M0 = masked.length; // initial mask count (ramp schedule base) + const uAttn = dfAttnUni("a" + n + "_" + causal, new Uint32Array([n_heads, n_kv_heads, hd, (n >>> 0) | (causal ? 0x80000000 : 0)])); + DF.stats.blocks++; + let stepsLeft = S; + while (masked.length) { + for (let i = 0; i < n; i++) dfEmbedRow(seq[i], i * d); + dev.queue.writeBuffer(DF.x, 0, DF.xHost, 0, n * d); + const enc = dev.createCommandEncoder(); + let cur = DF.x; + for (let l = 0; l < n_layers; l++) { + pass(enc, DF.P_rms, [cur, Nrm["l" + l + ".attn_norm"], DF.normed, DF.uD], [1, n]); + dfGemm(enc, W["l" + l + ".wq"], DF.normed, d, DF.q, n_heads * hd, n); + dfGemm(enc, W["l" + l + ".wk"], DF.normed, d, DF.k, n_kv_heads * hd, n); + dfGemm(enc, W["l" + l + ".wv"], DF.normed, d, DF.v, n_kv_heads * hd, n); + if (attnBias) { + pass(enc, DF.P_bias, [DF.q, Nrm["l" + l + ".bq"], DF.uQd], [Math.ceil(n_heads * hd / 64), n]); + pass(enc, DF.P_bias, [DF.k, Nrm["l" + l + ".bk"], DF.uKv], [Math.ceil(n_kv_heads * hd / 64), n]); + pass(enc, DF.P_bias, [DF.v, Nrm["l" + l + ".bv"], DF.uKv], [Math.ceil(n_kv_heads * hd / 64), n]); + } + pass(enc, DF.P_rope, [DF.q, DF.uRopeQ], [Math.ceil(n_heads * (hd / 2) / 64), n]); + pass(enc, DF.P_rope, [DF.k, DF.uRopeK], [Math.ceil(n_kv_heads * (hd / 2) / 64), n]); + pass(enc, DF.P_attnB, [DF.q, DF.k, DF.v, DF.attn, uAttn], [n_heads, n]); + dfGemm(enc, W["l" + l + ".wo"], DF.attn, n_heads * hd, DF.h, d, n); + pass(enc, DF.P_add, [DF.h, cur, DF.res, dfAddUni(n * d)], Math.ceil(n * d / 64)); // no aliasing: out ≠ both inputs + pass(enc, DF.P_rms, [DF.res, Nrm["l" + l + ".ffn_norm"], DF.normed2, DF.uD], [1, n]); + dfGemm(enc, W["l" + l + ".w_gate"], DF.normed2, d, DF.gate, ff, n); + dfGemm(enc, W["l" + l + ".w_up"], DF.normed2, d, DF.up, ff, n); + pass(enc, DF.P_sm, [DF.gate, DF.up, DF.hid, dfAddUni(n * ff)], Math.ceil(n * ff / 64)); + dfGemm(enc, W["l" + l + ".w_down"], DF.hid, ff, DF.cur, d, n); + pass(enc, DF.P_add, [DF.cur, DF.res, DF.x, dfAddUni(n * d)], Math.ceil(n * d / 64)); // DF.x is free past the first rms — becomes the rotating hidden + cur = DF.x; + } + pass(enc, DF.P_rms, [cur, Nrm["final_norm"], DF.normed, DF.uD], [1, n]); + dev.queue.submit([enc.finish()]); + // lm_head + per-masked-row argmax, chunked (logits buf holds DK rows) + for (let c0 = 0; c0 < n; c0 += DF_DK) { + const m = Math.min(DF_DK, n - c0); + let any = false; for (let r = 0; r < m; r++) if (c0 + r + 1 < n && seq[c0 + r + 1] === MASK) { any = true; break; } + if (!any) continue; + const e2 = dev.createCommandEncoder(); + pass(e2, DF.P_g32, [ + { buffer: DF.normed, offset: c0 * d * 4, size: DF_DK * d * 4 }, + W["lm_head"].qbuf, W["lm_head"].sbuf, DF.logits, W["lm_head"].uni], grid(Math.ceil(vocab / 4))); + for (let r = 0; r < m; r++) { + if (c0 + r + 1 >= n || seq[c0 + r + 1] !== MASK) continue; // row r predicts position r+1 (Dream shifted head) + pass(e2, DF.P_a1, [{ buffer: DF.logits, offset: r * vocab * 4, size: vocab * 4 }, DF.tmp, DF.uV], 256); + pass(e2, DF.P_a2, [DF.tmp, DF.amax, DF.uRow[c0 + r + 1]], 1); + } + dev.queue.submit([e2.finish()]); + } + { const e3 = dev.createCommandEncoder(); e3.copyBufferToBuffer(DF.amax, 0, DF.stgIds, 0, n * 8); dev.queue.submit([e3.finish()]); } + await DF.stgIds.mapAsync(GPUMapMode.READ); + const raw = DF.stgIds.getMappedRange().slice(0); DF.stgIds.unmap(); + const ids = new Uint32Array(raw), conf = new Float32Array(raw); + DF.lastIds = ids; DF.lastConf = conf; + const eosId = 151643; + // ramp schedule: commit few tokens early (fully-masked context = least informed), many late + const total = S * (S + 1) / 2, sIdx = S - stepsLeft + 1; + const kUn = Math.max(1, Math.round((M0 * sIdx) / total)); + if (opts.fill) { + // infill: fixed span, never truncate — commit the highest-confidence cohort each step + masked.sort((a, b) => conf[b * 2 + 1] - conf[a * 2 + 1]); + for (let u = 0; u < kUn && masked.length; u++) { const p = masked.shift(); seq[p] = ids[p * 2]; } + masked.sort((a, b) => a - b); + } else { + // generation: EOS-candidates unmask LAST (one confident pad would else kill the block) + const nonEos = masked.filter((p) => ids[p * 2] !== eosId); + if (nonEos.length === 0) { for (const p of masked) seq[p] = eosId; masked = []; } + else { + nonEos.sort((a, b) => conf[b * 2 + 1] - conf[a * 2 + 1]); + for (let u = 0; u < kUn && nonEos.length; u++) { const p = nonEos.shift(); seq[p] = ids[p * 2]; masked.splice(masked.indexOf(p), 1); } + masked.sort((a, b) => a - b); + } + } + stepsLeft = Math.max(1, stepsLeft - 1); + DF.stats.steps++; + } + return seq; + } finally { DF.busy = false; } + } + return { step, reset, truncateTo, get cachedLen() { return cached.length; }, sync, generate, decode, decodeStreamed: true, dumpState, restoreState, kvLayoutOf, diffuse, diffStats: () => (DF ? DF.stats : null), _df: () => DF, _dev: () => dev, specDecode, specStats: () => (SP ? SP.stats : null), setDrafter: (fn) => { _drafter = fn || null; }, argmax, captureHidden, collectInputHessians, dumpKV, dims: manifest, streaming: stream, gran: remote ? "remote (served disk)" : (stream === "opfs" ? "opfs (disk)" : (frameGran ? "frame" : (stream ? "layer" : "resident"))), frameBufBytes: streamBuf, loadStats: QLOAD, destroy: () => { try { dev.destroy(); } catch {} }, get gpuBytes() { return gpuBytes; }, get pos() { return pos; }, get timing() { return timing; } }; +} diff --git a/b/3da8f3bce67166351034c6db91d0373820cca781ced9bd95e827961925b66b23 b/b/3da8f3bce67166351034c6db91d0373820cca781ced9bd95e827961925b66b23 new file mode 100644 index 0000000000000000000000000000000000000000..17559a5187b1abbee25d57787716a70098261c57 --- /dev/null +++ b/b/3da8f3bce67166351034c6db91d0373820cca781ced9bd95e827961925b66b23 @@ -0,0 +1,67 @@ +var cs=Object.defineProperty;var La=(e,a)=>{for(var t in a)cs(e,t,{get:a[t],enumerable:!0})};import*as Va from"react";import{forwardRef as ps,createElement as hs}from"react";var Ft=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),ga=(...e)=>e.filter((a,t,o)=>!!a&&a.trim()!==""&&o.indexOf(a)===t).join(" ").trim();import{forwardRef as ms,createElement as At}from"react";var Ot={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Bt=ms(({color:e="currentColor",size:a=24,strokeWidth:t=2,absoluteStrokeWidth:o,className:r="",children:s,iconNode:l,...u},d)=>At("svg",{ref:d,...Ot,width:a,height:a,stroke:e,strokeWidth:o?Number(t)*24/Number(a):t,className:ga("lucide",r),...u},[...l.map(([n,i])=>At(n,i)),...Array.isArray(s)?s:[s]]));var _e=(e,a)=>{let t=ps(({className:o,...r},s)=>hs(Bt,{ref:s,iconNode:a,className:ga(`lucide-${Ft(e)}`,o),...r}));return t.displayName=`${e}`,t};var sa=_e("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);var la=_e("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);var ua=_e("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var Ed=Symbol.for("constructDateFrom");function Tt(e,a,t="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:t}).format(a).split(/\s/g).slice(2).join(" ")}var xs={},da={};function me(e,a){try{let o=(xs[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(a).split("GMT")[1];return o in da?da[o]:Rt(o,o.split(":"))}catch{if(e in da)return da[e];let t=e?.match(Ls);return t?Rt(e,t.slice(1)):NaN}}var Ls=/([+-]\d\d):?(\d\d)?/;function Rt(e,a){let t=+(a[0]||0),o=+(a[1]||0),r=+(a[2]||0)/60;return da[e]=t*60+o>0?t*60+o+r:t*60-o-r}var ye=class e extends Date{constructor(...a){super(),a.length>1&&typeof a[a.length-1]=="string"&&(this.timeZone=a.pop()),this.internal=new Date,isNaN(me(this.timeZone,this))?this.setTime(NaN):a.length?typeof a[0]=="number"&&(a.length===1||a.length===2&&typeof a[1]!="number")?this.setTime(a[0]):typeof a[0]=="string"?this.setTime(+new Date(a[0])):a[0]instanceof Date?this.setTime(+a[0]):(this.setTime(+new Date(...a)),Ut(this,a)):this.setTime(Date.now())}static tz(a,...t){return t.length?new e(...t,a):new e(Date.now(),a)}withTimeZone(a){return new e(+this,a)}getTimezoneOffset(){let a=-me(this.timeZone,this);return a>0?Math.floor(a):Math.ceil(a)}setTime(a){return Date.prototype.setTime.apply(this,arguments),Ia(this),+this}[Symbol.for("constructDateFrom")](a){return new e(+new Date(a),this.timeZone)}},qt=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!qt.test(e))return;let a=e.replace(qt,"$1UTC");ye.prototype[a]&&(e.startsWith("get")?ye.prototype[e]=function(){return this.internal[a]()}:(ye.prototype[e]=function(){return Date.prototype[a].apply(this.internal,arguments),gs(this),+this},ye.prototype[a]=function(){return Date.prototype[a].apply(this,arguments),Ia(this),+this}))});function Ia(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-me(e.timeZone,e)*60))}function gs(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),Ut(e)}function Ut(e,a){let t=Array.isArray(a)?Is(a):+e.internal,o=me(e.timeZone,e),r=o>0?Math.floor(o):Math.ceil(o),s=new Date(+e);s.setUTCHours(s.getUTCHours()-1);let l=-new Date(+e).getTimezoneOffset(),u=-new Date(+s).getTimezoneOffset(),d=l-u,n=l;if(d&&l!==r){let F=Date.prototype.getHours.apply(e),N=Array.isArray(a)?a[3]||0:e.internal.getUTCHours();if(F!==N){let V=new Date(+e),Z=l-r;Z&&V.setUTCMinutes(V.getUTCMinutes()+Z);let te=me(e.timeZone,V);(te>0?Math.floor(te):Math.ceil(te))===r&&(n=u)}}let i=n-r;i&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+i);let f=new Date(+e);f.setUTCSeconds(0);let h=l>0?f.getSeconds():(f.getSeconds()-60)%60,x=Math.round(-(me(e.timeZone,e)*60))%60;(x||h)&&Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+x+h);let y=me(e.timeZone,e),w=y>0?Math.floor(y):Math.ceil(y),B=-new Date(+e).getTimezoneOffset()-w,k=w!==r,D=B-i,C=w-r,M=t-w*60*1e3,m=C>0&&Wt(e)-t===C*60*1e3&&Wt(e,M)!==t;if(k&&D&&!m){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+D);let F=me(e.timeZone,e),N=F>0?Math.floor(F):Math.ceil(F),V=w-N;V&&D<0&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+V)}Ia(e);let c=(a?t:t+x*1e3)-+e.internal;c&&Math.abs(c)<30*60*1e3&&(Date.prototype.setTime.call(e,+e+c),Ia(e))}function Is(e){return Date.UTC(e[0],e.length>1?e[1]:0,e.length>2?e[2]:1,...e.slice(3))}function Wt(e,a){let t=new Date(a??+e);return t.setUTCSeconds(t.getUTCSeconds()-Math.round(-me(e.timeZone,t)*60)),+t}var j=class e extends ye{static tz(a,...t){return t.length?new e(...t,a):new e(Date.now(),a)}toISOString(){let[a,t,o]=this.tzComponents(),r=`${a}${t}:${o}`;return this.internal.toISOString().slice(0,-1)+r}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){let[a,t,o,r]=this.internal.toUTCString().split(" ");return`${a?.slice(0,-1)} ${o} ${t} ${r}`}toTimeString(){let a=this.internal.toUTCString().split(" ")[4],[t,o,r]=this.tzComponents();return`${a} GMT${t}${o}${r} (${Tt(this.timeZone,this)})`}toLocaleString(a,t){return Date.prototype.toLocaleString.call(this,a,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleDateString(a,t){return Date.prototype.toLocaleDateString.call(this,a,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleTimeString(a,t){return Date.prototype.toLocaleTimeString.call(this,a,{...t,timeZone:t?.timeZone||this.timeZone})}tzComponents(){let a=this.getTimezoneOffset(),t=a>0?"-":"+",o=String(Math.floor(Math.abs(a)/60)).padStart(2,"0"),r=String(Math.abs(a)%60).padStart(2,"0");return[t,o,r]}withTimeZone(a){return new e(+this,a)}[Symbol.for("constructDateFrom")](a){return new e(+new Date(a),this.timeZone)}};var Cs=Math.pow(10,8)*24*60*60*1e3,dn=-Cs,Ca=6048e5,Ht=864e5;var Ss=3600;var Nt=Ss*24,nn=Nt*7,ws=Nt*365.2425,bs=ws/12,fn=bs*3,Za=Symbol.for("constructDateFrom");function R(e,a){return typeof e=="function"?e(a):e&&typeof e=="object"&&Za in e?e[Za](a):e instanceof Date?new e.constructor(a):new Date(a)}function S(e,a){return R(a||e,e)}function Sa(e,a,t){let o=S(e,t?.in);return isNaN(a)?R(t?.in||e,NaN):(a&&o.setDate(o.getDate()+a),o)}function wa(e,a,t){let o=S(e,t?.in);if(isNaN(a))return R(t?.in||e,NaN);if(!a)return o;let r=o.getDate(),s=R(t?.in||e,o.getTime());s.setMonth(o.getMonth()+a+1,0);let l=s.getDate();return r>=l?s:(o.setFullYear(s.getFullYear(),s.getMonth(),r),o)}var ks={};function Le(){return ks}function pe(e,a){let t=Le(),o=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??t.weekStartsOn??t.locale?.options?.weekStartsOn??0,r=S(e,a?.in),s=r.getDay(),l=(s=s.getTime()?o+1:t.getTime()>=u.getTime()?o:o-1}function ja(e){let a=S(e),t=new Date(Date.UTC(a.getFullYear(),a.getMonth(),a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()));return t.setUTCFullYear(a.getFullYear()),+e-+t}function fe(e,...a){let t=R.bind(null,e||a.find(o=>typeof o=="object"));return a.map(t)}function De(e,a){let t=S(e,a?.in);return t.setHours(0,0,0,0),t}function Xe(e,a,t){let[o,r]=fe(t?.in,e,a),s=De(o),l=De(r),u=+s-ja(s),d=+l-ja(l);return Math.round((u-d)/Ht)}function Et(e,a){let t=ba(e,a),o=R(a?.in||e,0);return o.setFullYear(t,0,4),o.setHours(0,0,0,0),Se(o)}function zt(e,a,t){return Sa(e,a*7,t)}function Gt(e,a,t){return wa(e,a*12,t)}function Vt(e,a){let t,o=a?.in;return e.forEach(r=>{!o&&typeof r=="object"&&(o=R.bind(null,r));let s=S(r,o);(!t||t{!o&&typeof r=="object"&&(o=R.bind(null,r));let s=S(r,o);(!t||t>s||isNaN(+s))&&(t=s)}),R(o,t||NaN)}function _t(e,a,t){let[o,r]=fe(t?.in,e,a);return+De(o)==+De(r)}function ka(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function Xt(e){return!(!ka(e)&&typeof e!="number"||isNaN(+S(e)))}function ya(e,a,t){let[o,r]=fe(t?.in,e,a),s=o.getFullYear()-r.getFullYear(),l=o.getMonth()-r.getMonth();return s*12+l}function Kt(e,a){let t=S(e,a?.in),o=t.getMonth();return t.setFullYear(t.getFullYear(),o+1,0),t.setHours(23,59,59,999),t}function Da(e,a){let[t,o]=fe(e,a.start,a.end);return{start:t,end:o}}function Zt(e,a){let{start:t,end:o}=Da(a?.in,e),r=+t>+o,s=r?+t:+o,l=r?o:t;l.setHours(0,0,0,0),l.setDate(1);let u=a?.step??1;if(!u)return[];u<0&&(u=-u,r=!r);let d=[];for(;+l<=s;)d.push(R(t,l)),l.setMonth(l.getMonth()+u);return r?d.reverse():d}function jt(e,a){let t=S(e,a?.in);return t.setDate(1),t.setHours(0,0,0,0),t}function $t(e,a){let t=S(e,a?.in),o=t.getFullYear();return t.setFullYear(o+1,0,0),t.setHours(23,59,59,999),t}function Ma(e,a){let t=S(e,a?.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function Qt(e,a){let{start:t,end:o}=Da(a?.in,e),r=+t>+o,s=r?+t:+o,l=r?o:t;l.setHours(0,0,0,0),l.setMonth(0,1);let u=a?.step??1;if(!u)return[];u<0&&(u=-u,r=!r);let d=[];for(;+l<=s;)d.push(R(t,l)),l.setFullYear(l.getFullYear()+u);return r?d.reverse():d}function Pa(e,a){let t=Le(),o=a?.weekStartsOn??a?.locale?.options?.weekStartsOn??t.weekStartsOn??t.locale?.options?.weekStartsOn??0,r=S(e,a?.in),s=r.getDay(),l=(s{let o,r=ys[e];return typeof r=="string"?o=r:a===1?o=r.one:o=r.other.replace("{{count}}",a.toString()),t?.addSuffix?t.comparison&&t.comparison>0?"in "+o:o+" ago":o};function va(e){return(a={})=>{let t=a.width?String(a.width):e.defaultWidth;return e.formats[t]||e.formats[e.defaultWidth]}}var Ds={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Ms={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Ps={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},ao={date:va({formats:Ds,defaultWidth:"full"}),time:va({formats:Ms,defaultWidth:"full"}),dateTime:va({formats:Ps,defaultWidth:"full"})};var vs={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},to=(e,a,t,o)=>vs[e];function Ke(e){return(a,t)=>{let o=t?.context?String(t.context):"standalone",r;if(o==="formatting"&&e.formattingValues){let l=e.defaultFormattingWidth||e.defaultWidth,u=t?.width?String(t.width):l;r=e.formattingValues[u]||e.formattingValues[l]}else{let l=e.defaultWidth,u=t?.width?String(t.width):e.defaultWidth;r=e.values[u]||e.values[l]}let s=e.argumentCallback?e.argumentCallback(a):a;return r[s]}}var Fs={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},Os={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},As={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},Bs={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},Ts={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},Rs={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},qs=(e,a)=>{let t=Number(e),o=t%100;if(o>20||o<10)switch(o%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},oo={ordinalNumber:qs,era:Ke({values:Fs,defaultWidth:"wide"}),quarter:Ke({values:Os,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Ke({values:As,defaultWidth:"wide"}),day:Ke({values:Bs,defaultWidth:"wide"}),dayPeriod:Ke({values:Ts,defaultWidth:"wide",formattingValues:Rs,defaultFormattingWidth:"wide"})};function Ze(e){return(a,t={})=>{let o=t.width,r=o&&e.matchPatterns[o]||e.matchPatterns[e.defaultMatchWidth],s=a.match(r);if(!s)return null;let l=s[0],u=o&&e.parsePatterns[o]||e.parsePatterns[e.defaultParseWidth],d=Array.isArray(u)?Us(u,f=>f.test(l)):Ws(u,f=>f.test(l)),n;n=e.valueCallback?e.valueCallback(d):d,n=t.valueCallback?t.valueCallback(n):n;let i=a.slice(l.length);return{value:n,rest:i}}}function Ws(e,a){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&a(e[t]))return t}function Us(e,a){for(let t=0;t{let o=a.match(e.matchPattern);if(!o)return null;let r=o[0],s=a.match(e.parsePattern);if(!s)return null;let l=e.valueCallback?e.valueCallback(s[0]):s[0];l=t.valueCallback?t.valueCallback(l):l;let u=a.slice(r.length);return{value:l,rest:u}}}var Hs=/^(\d+)(th|st|nd|rd)?/i,Ns=/\d+/i,Es={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},zs={any:[/^b/i,/^(a|c)/i]},Gs={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},Vs={any:[/1/i,/2/i,/3/i,/4/i]},Ys={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},_s={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},Xs={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},Ks={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Zs={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},js={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},so={ordinalNumber:ro({matchPattern:Hs,parsePattern:Ns,valueCallback:e=>parseInt(e,10)}),era:Ze({matchPatterns:Es,defaultMatchWidth:"wide",parsePatterns:zs,defaultParseWidth:"any"}),quarter:Ze({matchPatterns:Gs,defaultMatchWidth:"wide",parsePatterns:Vs,defaultParseWidth:"any",valueCallback:e=>e+1}),month:Ze({matchPatterns:Ys,defaultMatchWidth:"wide",parsePatterns:_s,defaultParseWidth:"any"}),day:Ze({matchPatterns:Xs,defaultMatchWidth:"wide",parsePatterns:Ks,defaultParseWidth:"any"}),dayPeriod:Ze({matchPatterns:Zs,defaultMatchWidth:"any",parsePatterns:js,defaultParseWidth:"any"})};var we={code:"en-US",formatDistance:eo,formatLong:ao,formatRelative:to,localize:oo,match:so,options:{weekStartsOn:0,firstWeekContainsDate:1}};function lo(e,a){let t=S(e,a?.in);return Xe(t,Ma(t))+1}function je(e,a){let t=S(e,a?.in),o=+Se(t)-+Et(t);return Math.round(o/Ca)+1}function Fa(e,a){let t=S(e,a?.in),o=t.getFullYear(),r=Le(),s=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,l=R(a?.in||e,0);l.setFullYear(o+1,0,s),l.setHours(0,0,0,0);let u=pe(l,a),d=R(a?.in||e,0);d.setFullYear(o,0,s),d.setHours(0,0,0,0);let n=pe(d,a);return+t>=+u?o+1:+t>=+n?o:o-1}function uo(e,a){let t=Le(),o=a?.firstWeekContainsDate??a?.locale?.options?.firstWeekContainsDate??t.firstWeekContainsDate??t.locale?.options?.firstWeekContainsDate??1,r=Fa(e,a),s=R(a?.in||e,0);return s.setFullYear(r,0,o),s.setHours(0,0,0,0),pe(s,a)}function $e(e,a){let t=S(e,a?.in),o=+pe(t,a)-+uo(t,a);return Math.round(o/Ca)+1}function H(e,a){let t=e<0?"-":"",o=Math.abs(e).toString().padStart(a,"0");return t+o}var be={y(e,a){let t=e.getFullYear(),o=t>0?t:1-t;return H(a==="yy"?o%100:o,a.length)},M(e,a){let t=e.getMonth();return a==="M"?String(t+1):H(t+1,2)},d(e,a){return H(e.getDate(),a.length)},a(e,a){let t=e.getHours()/12>=1?"pm":"am";switch(a){case"a":case"aa":return t.toUpperCase();case"aaa":return t;case"aaaaa":return t[0];case"aaaa":default:return t==="am"?"a.m.":"p.m."}},h(e,a){return H(e.getHours()%12||12,a.length)},H(e,a){return H(e.getHours(),a.length)},m(e,a){return H(e.getMinutes(),a.length)},s(e,a){return H(e.getSeconds(),a.length)},S(e,a){let t=a.length,o=e.getMilliseconds(),r=Math.trunc(o*Math.pow(10,t-3));return H(r,a.length)}};var Qe={am:"am",pm:"pm",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},$a={G:function(e,a,t){let o=e.getFullYear()>0?1:0;switch(a){case"G":case"GG":case"GGG":return t.era(o,{width:"abbreviated"});case"GGGGG":return t.era(o,{width:"narrow"});case"GGGG":default:return t.era(o,{width:"wide"})}},y:function(e,a,t){if(a==="yo"){let o=e.getFullYear(),r=o>0?o:1-o;return t.ordinalNumber(r,{unit:"year"})}return be.y(e,a)},Y:function(e,a,t,o){let r=Fa(e,o),s=r>0?r:1-r;if(a==="YY"){let l=s%100;return H(l,2)}return a==="Yo"?t.ordinalNumber(s,{unit:"year"}):H(s,a.length)},R:function(e,a){let t=ba(e);return H(t,a.length)},u:function(e,a){let t=e.getFullYear();return H(t,a.length)},Q:function(e,a,t){let o=Math.ceil((e.getMonth()+1)/3);switch(a){case"Q":return String(o);case"QQ":return H(o,2);case"Qo":return t.ordinalNumber(o,{unit:"quarter"});case"QQQ":return t.quarter(o,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(o,{width:"narrow",context:"formatting"});case"QQQQ":default:return t.quarter(o,{width:"wide",context:"formatting"})}},q:function(e,a,t){let o=Math.ceil((e.getMonth()+1)/3);switch(a){case"q":return String(o);case"qq":return H(o,2);case"qo":return t.ordinalNumber(o,{unit:"quarter"});case"qqq":return t.quarter(o,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(o,{width:"narrow",context:"standalone"});case"qqqq":default:return t.quarter(o,{width:"wide",context:"standalone"})}},M:function(e,a,t){let o=e.getMonth();switch(a){case"M":case"MM":return be.M(e,a);case"Mo":return t.ordinalNumber(o+1,{unit:"month"});case"MMM":return t.month(o,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(o,{width:"narrow",context:"formatting"});case"MMMM":default:return t.month(o,{width:"wide",context:"formatting"})}},L:function(e,a,t){let o=e.getMonth();switch(a){case"L":return String(o+1);case"LL":return H(o+1,2);case"Lo":return t.ordinalNumber(o+1,{unit:"month"});case"LLL":return t.month(o,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(o,{width:"narrow",context:"standalone"});case"LLLL":default:return t.month(o,{width:"wide",context:"standalone"})}},w:function(e,a,t,o){let r=$e(e,o);return a==="wo"?t.ordinalNumber(r,{unit:"week"}):H(r,a.length)},I:function(e,a,t){let o=je(e);return a==="Io"?t.ordinalNumber(o,{unit:"week"}):H(o,a.length)},d:function(e,a,t){return a==="do"?t.ordinalNumber(e.getDate(),{unit:"date"}):be.d(e,a)},D:function(e,a,t){let o=lo(e);return a==="Do"?t.ordinalNumber(o,{unit:"dayOfYear"}):H(o,a.length)},E:function(e,a,t){let o=e.getDay();switch(a){case"E":case"EE":case"EEE":return t.day(o,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(o,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(o,{width:"short",context:"formatting"});case"EEEE":default:return t.day(o,{width:"wide",context:"formatting"})}},e:function(e,a,t,o){let r=e.getDay(),s=(r-o.weekStartsOn+8)%7||7;switch(a){case"e":return String(s);case"ee":return H(s,2);case"eo":return t.ordinalNumber(s,{unit:"day"});case"eee":return t.day(r,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(r,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(r,{width:"short",context:"formatting"});case"eeee":default:return t.day(r,{width:"wide",context:"formatting"})}},c:function(e,a,t,o){let r=e.getDay(),s=(r-o.weekStartsOn+8)%7||7;switch(a){case"c":return String(s);case"cc":return H(s,a.length);case"co":return t.ordinalNumber(s,{unit:"day"});case"ccc":return t.day(r,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(r,{width:"narrow",context:"standalone"});case"cccccc":return t.day(r,{width:"short",context:"standalone"});case"cccc":default:return t.day(r,{width:"wide",context:"standalone"})}},i:function(e,a,t){let o=e.getDay(),r=o===0?7:o;switch(a){case"i":return String(r);case"ii":return H(r,a.length);case"io":return t.ordinalNumber(r,{unit:"day"});case"iii":return t.day(o,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(o,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(o,{width:"short",context:"formatting"});case"iiii":default:return t.day(o,{width:"wide",context:"formatting"})}},a:function(e,a,t){let r=e.getHours()/12>=1?"pm":"am";switch(a){case"a":case"aa":return t.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(r,{width:"narrow",context:"formatting"});case"aaaa":default:return t.dayPeriod(r,{width:"wide",context:"formatting"})}},b:function(e,a,t){let o=e.getHours(),r;switch(o===12?r=Qe.noon:o===0?r=Qe.midnight:r=o/12>=1?"pm":"am",a){case"b":case"bb":return t.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(r,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(r,{width:"narrow",context:"formatting"});case"bbbb":default:return t.dayPeriod(r,{width:"wide",context:"formatting"})}},B:function(e,a,t){let o=e.getHours(),r;switch(o>=17?r=Qe.evening:o>=12?r=Qe.afternoon:o>=4?r=Qe.morning:r=Qe.night,a){case"B":case"BB":case"BBB":return t.dayPeriod(r,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(r,{width:"narrow",context:"formatting"});case"BBBB":default:return t.dayPeriod(r,{width:"wide",context:"formatting"})}},h:function(e,a,t){if(a==="ho"){let o=e.getHours()%12;return o===0&&(o=12),t.ordinalNumber(o,{unit:"hour"})}return be.h(e,a)},H:function(e,a,t){return a==="Ho"?t.ordinalNumber(e.getHours(),{unit:"hour"}):be.H(e,a)},K:function(e,a,t){let o=e.getHours()%12;return a==="Ko"?t.ordinalNumber(o,{unit:"hour"}):H(o,a.length)},k:function(e,a,t){let o=e.getHours();return o===0&&(o=24),a==="ko"?t.ordinalNumber(o,{unit:"hour"}):H(o,a.length)},m:function(e,a,t){return a==="mo"?t.ordinalNumber(e.getMinutes(),{unit:"minute"}):be.m(e,a)},s:function(e,a,t){return a==="so"?t.ordinalNumber(e.getSeconds(),{unit:"second"}):be.s(e,a)},S:function(e,a){return be.S(e,a)},X:function(e,a,t){let o=e.getTimezoneOffset();if(o===0)return"Z";switch(a){case"X":return fo(o);case"XXXX":case"XX":return We(o);case"XXXXX":case"XXX":default:return We(o,":")}},x:function(e,a,t){let o=e.getTimezoneOffset();switch(a){case"x":return fo(o);case"xxxx":case"xx":return We(o);case"xxxxx":case"xxx":default:return We(o,":")}},O:function(e,a,t){let o=e.getTimezoneOffset();switch(a){case"O":case"OO":case"OOO":return"GMT"+no(o,":");case"OOOO":default:return"GMT"+We(o,":")}},z:function(e,a,t){let o=e.getTimezoneOffset();switch(a){case"z":case"zz":case"zzz":return"GMT"+no(o,":");case"zzzz":default:return"GMT"+We(o,":")}},t:function(e,a,t){let o=Math.trunc(+e/1e3);return H(o,a.length)},T:function(e,a,t){return H(+e,a.length)}};function no(e,a=""){let t=e>0?"-":"+",o=Math.abs(e),r=Math.trunc(o/60),s=o%60;return s===0?t+String(r):t+String(r)+a+H(s,2)}function fo(e,a){return e%60===0?(e>0?"-":"+")+H(Math.abs(e)/60,2):We(e,a)}function We(e,a=""){let t=e>0?"-":"+",o=Math.abs(e),r=H(Math.trunc(o/60),2),s=H(o%60,2);return t+r+a+s}var io=(e,a)=>{switch(e){case"P":return a.date({width:"short"});case"PP":return a.date({width:"medium"});case"PPP":return a.date({width:"long"});case"PPPP":default:return a.date({width:"full"})}},co=(e,a)=>{switch(e){case"p":return a.time({width:"short"});case"pp":return a.time({width:"medium"});case"ppp":return a.time({width:"long"});case"pppp":default:return a.time({width:"full"})}},$s=(e,a)=>{let t=e.match(/(P+)(p+)?/)||[],o=t[1],r=t[2];if(!r)return io(e,a);let s;switch(o){case"P":s=a.dateTime({width:"short"});break;case"PP":s=a.dateTime({width:"medium"});break;case"PPP":s=a.dateTime({width:"long"});break;case"PPPP":default:s=a.dateTime({width:"full"});break}return s.replace("{{date}}",io(o,a)).replace("{{time}}",co(r,a))},mo={p:co,P:$s};var Qs=/^D+$/,Js=/^Y+$/,el=["D","DD","YY","YYYY"];function po(e){return Qs.test(e)}function ho(e){return Js.test(e)}function xo(e,a,t){let o=al(e,a,t);if(console.warn(o),el.includes(e))throw new RangeError(o)}function al(e,a,t){let o=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${a}\`) for formatting ${o} to the input \`${t}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var tl=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ol=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,rl=/^'([^]*?)'?$/,sl=/''/g,ll=/[a-zA-Z]/;function Ue(e,a,t){let o=Le(),r=t?.locale??o.locale??we,s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??o.firstWeekContainsDate??o.locale?.options?.firstWeekContainsDate??1,l=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0,u=S(e,t?.in);if(!Xt(u))throw new RangeError("Invalid time value");let d=a.match(ol).map(i=>{let f=i[0];if(f==="p"||f==="P"){let h=mo[f];return h(i,r.formatLong)}return i}).join("").match(tl).map(i=>{if(i==="''")return{isToken:!1,value:"'"};let f=i[0];if(f==="'")return{isToken:!1,value:ul(i)};if($a[f])return{isToken:!0,value:i};if(f.match(ll))throw new RangeError("Format string contains an unescaped latin alphabet character `"+f+"`");return{isToken:!1,value:i}});r.localize.preprocessor&&(d=r.localize.preprocessor(u,d));let n={firstWeekContainsDate:s,weekStartsOn:l,locale:r};return d.map(i=>{if(!i.isToken)return i.value;let f=i.value;(!t?.useAdditionalWeekYearTokens&&ho(f)||!t?.useAdditionalDayOfYearTokens&&po(f))&&xo(f,a,String(e));let h=$a[f[0]];return h(u,f,r.localize,n)}).join("")}function ul(e){let a=e.match(rl);return a?a[1].replace(sl,"'"):e}function Lo(e,a){let t=S(e,a?.in),o=t.getFullYear(),r=t.getMonth(),s=R(t,0);return s.setFullYear(o,r+1,0),s.setHours(0,0,0,0),s.getDate()}function go(e,a){return S(e,a?.in).getMonth()}function Io(e,a){return S(e,a?.in).getFullYear()}function Co(e,a){return+S(e)>+S(a)}function So(e,a){return+S(e)<+S(a)}function wo(e,a,t){let[o,r]=fe(t?.in,e,a);return o.getFullYear()===r.getFullYear()&&o.getMonth()===r.getMonth()}function bo(e,a,t){let[o,r]=fe(t?.in,e,a);return o.getFullYear()===r.getFullYear()}function ko(e,a,t){let o=S(e,t?.in),r=o.getFullYear(),s=o.getDate(),l=R(t?.in||e,0);l.setFullYear(r,a,15),l.setHours(0,0,0,0);let u=Lo(l);return o.setMonth(a,Math.min(s,u)),o}function yo(e,a,t){let o=S(e,t?.in);return isNaN(+o)?R(t?.in||e,NaN):(o.setFullYear(a),o)}function Do(e,a){let t=a.startOfMonth(e),o=t.getDay()>0?t.getDay():7,r=a.addDays(e,-o+1),s=a.addDays(r,5*7-1);return a.getMonth(e)===a.getMonth(s)?5:4}function Oa(e,a){let t=a.startOfMonth(e),o=t.getDay();return o===1?t:o===0?a.addDays(t,-1*6):a.addDays(t,-1*(o-1))}function Mo(e,a){let t=Oa(e,a),o=Do(e,a);return a.addDays(t,o*7-1)}var na={...we,labels:{labelDayButton:(e,a,t,o)=>{let r;o&&typeof o.format=="function"?r=o.format.bind(o):r=(l,u)=>Ue(l,u,{locale:we,...t});let s=r(e,"PPPP");return a.today&&(s=`Today, ${s}`),a.selected&&(s=`${s}, selected`),s},labelMonthDropdown:"Choose the Month",labelNext:"Go to the Next Month",labelPrevious:"Go to the Previous Month",labelWeekNumber:e=>`Week ${e}`,labelYearDropdown:"Choose the Year",labelGrid:(e,a,t)=>{let o;return t&&typeof t.format=="function"?o=t.format.bind(t):o=(r,s)=>Ue(r,s,{locale:we,...a}),o(e,"LLLL yyyy")},labelGridcell:(e,a,t,o)=>{let r;o&&typeof o.format=="function"?r=o.format.bind(o):r=(l,u)=>Ue(l,u,{locale:we,...t});let s=r(e,"PPPP");return a?.today&&(s=`Today, ${s}`),s},labelNav:"Navigation bar",labelWeekNumberHeader:"Week Number",labelWeekday:(e,a,t)=>{let o;return t&&typeof t.format=="function"?o=t.format.bind(t):o=(r,s)=>Ue(r,s,{locale:we,...a}),o(e,"cccc")}}};var X=class e{constructor(a,t){this.today=()=>{if(this.overrides?.today)return this.overrides.today();if(this.options.timeZone)return j.tz(this.options.timeZone);let o=this.options.Date??Date;return new o},this.newDate=(o,r,s)=>this.overrides?.newDate?this.overrides.newDate(o,r,s):this.options.timeZone?new j(o,r,s,this.options.timeZone):new Date(o,r,s),this.addDays=(o,r)=>this.overrides?.addDays?this.overrides.addDays(o,r):Sa(o,r),this.addMonths=(o,r)=>this.overrides?.addMonths?this.overrides.addMonths(o,r):wa(o,r),this.addWeeks=(o,r)=>this.overrides?.addWeeks?this.overrides.addWeeks(o,r):zt(o,r),this.addYears=(o,r)=>this.overrides?.addYears?this.overrides.addYears(o,r):Gt(o,r),this.differenceInCalendarDays=(o,r)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(o,r):Xe(o,r),this.differenceInCalendarMonths=(o,r)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(o,r):ya(o,r),this.eachMonthOfInterval=o=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(o):Zt(o),this.eachYearOfInterval=o=>{let r=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(o):Qt(o),s=new Set(r.map(u=>this.getYear(u)));if(s.size===r.length)return r;let l=[];return s.forEach(u=>{l.push(new Date(u,0,1))}),l},this.endOfBroadcastWeek=o=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(o):Mo(o,this),this.endOfISOWeek=o=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(o):Jt(o),this.endOfMonth=o=>this.overrides?.endOfMonth?this.overrides.endOfMonth(o):Kt(o),this.endOfWeek=(o,r)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(o,r):Pa(o,this.options),this.endOfYear=o=>this.overrides?.endOfYear?this.overrides.endOfYear(o):$t(o),this.format=(o,r,s)=>{let l=this.overrides?.format?this.overrides.format(o,r,this.options):Ue(o,r,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(l):l},this.getISOWeek=o=>this.overrides?.getISOWeek?this.overrides.getISOWeek(o):je(o),this.getMonth=(o,r)=>this.overrides?.getMonth?this.overrides.getMonth(o,this.options):go(o,this.options),this.getYear=(o,r)=>this.overrides?.getYear?this.overrides.getYear(o,this.options):Io(o,this.options),this.getWeek=(o,r)=>this.overrides?.getWeek?this.overrides.getWeek(o,this.options):$e(o,this.options),this.isAfter=(o,r)=>this.overrides?.isAfter?this.overrides.isAfter(o,r):Co(o,r),this.isBefore=(o,r)=>this.overrides?.isBefore?this.overrides.isBefore(o,r):So(o,r),this.isDate=o=>this.overrides?.isDate?this.overrides.isDate(o):ka(o),this.isSameDay=(o,r)=>this.overrides?.isSameDay?this.overrides.isSameDay(o,r):_t(o,r),this.isSameMonth=(o,r)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(o,r):wo(o,r),this.isSameYear=(o,r)=>this.overrides?.isSameYear?this.overrides.isSameYear(o,r):bo(o,r),this.max=o=>this.overrides?.max?this.overrides.max(o):Vt(o),this.min=o=>this.overrides?.min?this.overrides.min(o):Yt(o),this.setMonth=(o,r)=>this.overrides?.setMonth?this.overrides.setMonth(o,r):ko(o,r),this.setYear=(o,r)=>this.overrides?.setYear?this.overrides.setYear(o,r):yo(o,r),this.startOfBroadcastWeek=(o,r)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(o,this):Oa(o,this),this.startOfDay=o=>this.overrides?.startOfDay?this.overrides.startOfDay(o):De(o),this.startOfISOWeek=o=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(o):Se(o),this.startOfMonth=o=>this.overrides?.startOfMonth?this.overrides.startOfMonth(o):jt(o),this.startOfWeek=(o,r)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(o,this.options):pe(o,this.options),this.startOfYear=o=>this.overrides?.startOfYear?this.overrides.startOfYear(o):Ma(o),this.options={locale:na,...a},this.overrides=t}getDigitMap(){let{numerals:a="latn"}=this.options,t=new Intl.NumberFormat("en-US",{numberingSystem:a}),o={};for(let r=0;r<10;r++)o[r.toString()]=t.format(r);return o}replaceDigits(a){let t=this.getDigitMap();return a.replace(/\d/g,o=>t[o]||o)}formatNumber(a){return this.replaceDigits(a.toString())}getMonthYearOrder(){let a=this.options.locale?.code;return a&&e.yearFirstLocales.has(a)?"year-first":"month-first"}formatMonthYear(a){let{locale:t,timeZone:o,numerals:r}=this.options,s=t?.code;if(s&&e.yearFirstLocales.has(s))try{return new Intl.DateTimeFormat(s,{month:"long",year:"numeric",timeZone:o,numberingSystem:r}).format(a)}catch{}let l=this.getMonthYearOrder()==="year-first"?"y LLLL":"LLLL y";return this.format(a,l)}};X.yearFirstLocales=new Set(["eu","hu","ja","ja-Hira","ja-JP","ko","ko-KR","lt","lt-LT","lv","lv-LV","mn","mn-MN","zh","zh-CN","zh-HK","zh-TW"]);var K=new X;var Je=class{constructor(a,t,o=K){this.date=a,this.displayMonth=t,this.outside=!!(t&&!o.isSameMonth(a,t)),this.dateLib=o,this.isoDate=o.format(a,"yyyy-MM-dd"),this.displayMonthId=o.format(t,"yyyy-MM"),this.dateMonthId=o.format(a,"yyyy-MM")}isEqualTo(a){return this.dateLib.isSameDay(a.date,this.date)&&this.dateLib.isSameMonth(a.displayMonth,this.displayMonth)}};var Aa=class{constructor(a,t){this.date=a,this.weeks=t}};var Ba=class{constructor(a,t){this.days=t,this.weekNumber=a}};var et={};La(et,{CaptionLabel:()=>nl,Chevron:()=>fl,Day:()=>cl,DayButton:()=>ml,Dropdown:()=>xl,DropdownNav:()=>gl,Footer:()=>Cl,Month:()=>wl,MonthCaption:()=>kl,MonthGrid:()=>Dl,Months:()=>Pl,MonthsDropdown:()=>Fl,Nav:()=>Ol,NextMonthButton:()=>Bl,Option:()=>Rl,PreviousMonthButton:()=>Wl,Root:()=>Hl,Select:()=>El,Week:()=>Gl,WeekNumber:()=>Kl,WeekNumberHeader:()=>jl,Weekday:()=>Yl,Weekdays:()=>_l,Weeks:()=>Ql,YearsDropdown:()=>eu});import dl from"react";function nl(e){return dl.createElement("span",{...e})}import fa from"react";function fl(e){let{size:a=24,orientation:t="left",className:o,style:r}=e;return fa.createElement("svg",{className:o,style:r,width:a,height:a,viewBox:"0 0 24 24"},t==="up"&&fa.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),t==="down"&&fa.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),t==="left"&&fa.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),t==="right"&&fa.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}import il from"react";function cl(e){let{day:a,modifiers:t,...o}=e;return il.createElement("td",{...o})}import Qa from"react";function ml(e){let{day:a,modifiers:t,...o}=e,r=Qa.useRef(null);return Qa.useEffect(()=>{t.focused&&r.current?.focus()},[t.focused]),Qa.createElement("button",{ref:r,...o})}import ia from"react";var p;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(p||(p={}));var E;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(E||(E={}));var le;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(le||(le={}));var re;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(re||(re={}));import{createContext as pl,useContext as hl}from"react";var Ja=pl(void 0);function Me(){let e=hl(Ja);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function xl(e){let{options:a,className:t,...o}=e,{classNames:r,components:s,styles:l}=Me(),u=[r[p.Dropdown],t].join(" "),d=a?.find(({value:n})=>n===o.value);return ia.createElement("span",{"data-disabled":o.disabled,className:r[p.DropdownRoot],style:l?.[p.DropdownRoot]},ia.createElement(s.Select,{className:u,...o},a?.map(({value:n,label:i,disabled:f})=>ia.createElement(s.Option,{key:n,value:n,disabled:f},i))),ia.createElement("span",{className:r[p.CaptionLabel],style:l?.[p.CaptionLabel],"aria-hidden":!0},d?.label,ia.createElement(s.Chevron,{orientation:"down",size:18,className:r[p.Chevron],style:l?.[p.Chevron]})))}import Ll from"react";function gl(e){return Ll.createElement("div",{...e})}import Il from"react";function Cl(e){return Il.createElement("div",{...e})}import Sl from"react";function wl(e){let{calendarMonth:a,displayIndex:t,...o}=e;return Sl.createElement("div",{...o},e.children)}import bl from"react";function kl(e){let{calendarMonth:a,displayIndex:t,...o}=e;return bl.createElement("div",{...o})}import yl from"react";function Dl(e){return yl.createElement("table",{...e})}import Ml from"react";function Pl(e){return Ml.createElement("div",{...e})}import vl from"react";function Fl(e){let{components:a}=Me();return vl.createElement(a.Dropdown,{...e})}import ca,{useCallback as Po}from"react";function Ol(e){let{onPreviousClick:a,onNextClick:t,previousMonth:o,nextMonth:r,...s}=e,{components:l,classNames:u,styles:d,labels:{labelPrevious:n,labelNext:i}}=Me(),f=Po(x=>{r&&t?.(x)},[r,t]),h=Po(x=>{o&&a?.(x)},[o,a]);return ca.createElement("nav",{...s},ca.createElement(l.PreviousMonthButton,{type:"button",className:u[p.PreviousMonthButton],style:d?.[p.PreviousMonthButton],tabIndex:o?void 0:-1,"aria-disabled":o?void 0:!0,"aria-label":n(o),onClick:h},ca.createElement(l.Chevron,{disabled:o?void 0:!0,className:u[p.Chevron],style:d?.[p.Chevron],orientation:"left"})),ca.createElement(l.NextMonthButton,{type:"button",className:u[p.NextMonthButton],style:d?.[p.NextMonthButton],tabIndex:r?void 0:-1,"aria-disabled":r?void 0:!0,"aria-label":i(r),onClick:f},ca.createElement(l.Chevron,{disabled:r?void 0:!0,orientation:"right",className:u[p.Chevron],style:d?.[p.Chevron]})))}import Al from"react";function Bl(e){return Al.createElement("button",{...e})}import Tl from"react";function Rl(e){return Tl.createElement("option",{...e})}import ql from"react";function Wl(e){return ql.createElement("button",{...e})}import Ul from"react";function Hl(e){let{rootRef:a,...t}=e;return Ul.createElement("div",{...t,ref:a})}import Nl from"react";function El(e){return Nl.createElement("select",{...e})}import zl from"react";function Gl(e){let{week:a,...t}=e;return zl.createElement("tr",{...t})}import Vl from"react";function Yl(e){return Vl.createElement("th",{...e})}import vo from"react";function _l(e){return vo.createElement("thead",{"aria-hidden":!0},vo.createElement("tr",{...e}))}import Xl from"react";function Kl(e){let{week:a,...t}=e;return Xl.createElement("th",{...t})}import Zl from"react";function jl(e){return Zl.createElement("th",{...e})}import $l from"react";function Ql(e){return $l.createElement("tbody",{...e})}import Jl from"react";function eu(e){let{components:a}=Me();return Jl.createElement(a.Dropdown,{...e})}import z,{useCallback as Ie,useMemo as St,useRef as xu}from"react";function ue(e,a,t=!1,o=K){let{from:r,to:s}=e,{differenceInCalendarDays:l,isSameDay:u}=o;return r&&s?(l(s,r)<0&&([r,s]=[s,r]),l(a,r)>=(t?1:0)&&l(s,a)>=(t?1:0)):!t&&s?u(s,a):!t&&r?u(r,a):!1}function ea(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function Pe(e){return!!(e&&typeof e=="object"&&"from"in e)}function aa(e){return!!(e&&typeof e=="object"&&"after"in e)}function ta(e){return!!(e&&typeof e=="object"&&"before"in e)}function Ta(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function Ra(e,a){return Array.isArray(e)&&e.every(a.isDate)}function ie(e,a,t=K){let o=Array.isArray(a)?a:[a],{isSameDay:r,differenceInCalendarDays:s,isAfter:l}=t;return o.some(u=>{if(typeof u=="boolean")return u;if(t.isDate(u))return r(e,u);if(Ra(u,t))return u.some(d=>r(e,d));if(Pe(u))return ue(u,e,!1,t);if(Ta(u))return Array.isArray(u.dayOfWeek)?u.dayOfWeek.includes(e.getDay()):u.dayOfWeek===e.getDay();if(ea(u)){let d=s(u.before,e),n=s(u.after,e),i=d>0,f=n<0;return l(u.before,u.after)?f&&i:i||f}return aa(u)?s(e,u.after)>0:ta(u)?s(u.before,e)>0:typeof u=="function"?u(e):!1})}function Fo(e,a,t,o,r){let{disabled:s,hidden:l,modifiers:u,showOutsideDays:d,broadcastCalendar:n,today:i=r.today()}=a,{isSameDay:f,isSameMonth:h,startOfMonth:x,isBefore:y,endOfMonth:w,isAfter:b}=r,B=t&&x(t),k=o&&w(o),D={[E.focused]:[],[E.outside]:[],[E.disabled]:[],[E.hidden]:[],[E.today]:[]},C={};for(let M of e){let{date:m,displayMonth:P}=M,c=!!(P&&!h(m,P)),F=!!(B&&y(m,B)),N=!!(k&&b(m,k)),V=!!(s&&ie(m,s,r)),Z=!!(l&&ie(m,l,r))||F||N||!n&&!d&&c||n&&d===!1&&c,te=f(m,i);c&&D.outside.push(M),V&&D.disabled.push(M),Z&&D.hidden.push(M),te&&D.today.push(M),u&&Object.keys(u).forEach(J=>{let de=u?.[J];de&&ie(m,de,r)&&(C[J]?C[J].push(M):C[J]=[M])})}return M=>{let m={[E.focused]:!1,[E.disabled]:!1,[E.hidden]:!1,[E.outside]:!1,[E.today]:!1},P={};for(let c in D){let F=D[c];m[c]=F.some(N=>N===M)}for(let c in C)P[c]=C[c].some(F=>F===M);return{...m,...P}}}function Oo(e,a,t={}){return Object.entries(e).filter(([,r])=>r===!0).reduce((r,[s])=>(t[s]?r.push(t[s]):a[E[s]]?r.push(a[E[s]]):a[le[s]]&&r.push(a[le[s]]),r),[a[p.Day]])}function Ao(e){return{...et,...e}}function Bo(e){let a={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([t,o])=>{t.startsWith("data-")&&(a[t]=o)}),a}function ma(){let e={};for(let a in p)e[p[a]]=`rdp-${p[a]}`;for(let a in E)e[E[a]]=`rdp-${E[a]}`;for(let a in le)e[le[a]]=`rdp-${le[a]}`;for(let a in re)e[re[a]]=`rdp-${re[a]}`;return e}var at={};La(at,{formatCaption:()=>au,formatDay:()=>tu,formatMonthDropdown:()=>ou,formatWeekNumber:()=>su,formatWeekNumberHeader:()=>lu,formatWeekdayName:()=>ru,formatYearDropdown:()=>uu});function au(e,a,t){return(t??new X(a)).formatMonthYear(e)}function tu(e,a,t){return(t??new X(a)).format(e,"d")}function ou(e,a=K){return a.format(e,"LLLL")}function ru(e,a,t){return(t??new X(a)).format(e,"cccccc")}function su(e,a=K){return e<10?a.formatNumber(`0${e.toLocaleString()}`):a.formatNumber(`${e.toLocaleString()}`)}function lu(){return""}function uu(e,a=K){return a.format(e,"yyyy")}function To(e){return{...at,...e}}var mt={};La(mt,{labelDayButton:()=>tt,labelGrid:()=>ot,labelGridcell:()=>rt,labelMonthDropdown:()=>st,labelNav:()=>lt,labelNext:()=>ut,labelPrevious:()=>dt,labelWeekNumber:()=>ft,labelWeekNumberHeader:()=>it,labelWeekday:()=>nt,labelYearDropdown:()=>ct});function tt(e,a,t,o){let r=(o??new X(t)).format(e,"PPPP");return a.today&&(r=`Today, ${r}`),a.selected&&(r=`${r}, selected`),r}function ot(e,a,t){return(t??new X(a)).formatMonthYear(e)}function rt(e,a,t,o){let r=(o??new X(t)).format(e,"PPPP");return a?.today&&(r=`Today, ${r}`),r}function st(e){return"Choose the Month"}function lt(){return""}var du="Go to the Next Month";function ut(e,a){return du}function dt(e){return"Go to the Previous Month"}function nt(e,a,t){return(t??new X(a)).format(e,"cccc")}function ft(e,a){return`Week ${e}`}function it(e){return"Week Number"}function ct(e){return"Choose the Year"}var he=(e,a,t)=>a||(t?typeof t=="function"?t:(...o)=>t:e);function Ro(e,a){let t=a.locale?.labels??{};return{...mt,...e??{},labelDayButton:he(tt,e?.labelDayButton,t.labelDayButton),labelMonthDropdown:he(st,e?.labelMonthDropdown,t.labelMonthDropdown),labelNext:he(ut,e?.labelNext,t.labelNext),labelPrevious:he(dt,e?.labelPrevious,t.labelPrevious),labelWeekNumber:he(ft,e?.labelWeekNumber,t.labelWeekNumber),labelYearDropdown:he(ct,e?.labelYearDropdown,t.labelYearDropdown),labelGrid:he(ot,e?.labelGrid,t.labelGrid),labelGridcell:he(rt,e?.labelGridcell,t.labelGridcell),labelNav:he(lt,e?.labelNav,t.labelNav),labelWeekNumberHeader:he(it,e?.labelWeekNumberHeader,t.labelWeekNumberHeader),labelWeekday:he(nt,e?.labelWeekday,t.labelWeekday)}}function qo(e,a,t,o,r){let{startOfMonth:s,startOfYear:l,endOfYear:u,eachMonthOfInterval:d,getMonth:n}=r;return d({start:l(e),end:u(e)}).map(h=>{let x=o.formatMonthDropdown(h,r),y=n(h),w=a&&hs(t)||!1;return{value:y,label:x,disabled:w}})}function Wo(e,a={},t={}){let o={...a?.[p.Day]};return Object.entries(e).filter(([,r])=>r===!0).forEach(([r])=>{o={...o,...t?.[r]}}),o}function Uo(e,a,t,o){let r=o??e.today(),s=t?e.startOfBroadcastWeek(r,e):a?e.startOfISOWeek(r):e.startOfWeek(r),l=[];for(let u=0;u<7;u++){let d=e.addDays(s,u);l.push(d)}return l}function Ho(e,a,t,o,r=!1){if(!e||!a)return;let{startOfYear:s,endOfYear:l,eachYearOfInterval:u,getYear:d}=o,n=s(e),i=l(a),f=u({start:n,end:i});return r&&f.reverse(),f.map(h=>{let x=t.formatYearDropdown(h,o);return{value:d(h),label:x,disabled:!1}})}function No(e,a={}){let{weekStartsOn:t,locale:o}=a,r=t??o?.options?.weekStartsOn??0,s=u=>{let d=typeof u=="number"||typeof u=="string"?new Date(u):u;return new j(d.getFullYear(),d.getMonth(),d.getDate(),12,0,0,e)},l=u=>{let d=s(u);return new Date(d.getFullYear(),d.getMonth(),d.getDate(),0,0,0,0)};return{today:()=>s(j.tz(e)),newDate:(u,d,n)=>new j(u,d,n,12,0,0,e),startOfDay:u=>s(u),startOfWeek:(u,d)=>{let n=s(u),i=d?.weekStartsOn??r,f=(n.getDay()-i+7)%7;return n.setDate(n.getDate()-f),n},startOfISOWeek:u=>{let d=s(u),n=(d.getDay()-1+7)%7;return d.setDate(d.getDate()-n),d},startOfMonth:u=>{let d=s(u);return d.setDate(1),d},startOfYear:u=>{let d=s(u);return d.setMonth(0,1),d},endOfWeek:(u,d)=>{let n=s(u),h=(((d?.weekStartsOn??r)+6)%7-n.getDay()+7)%7;return n.setDate(n.getDate()+h),n},endOfISOWeek:u=>{let d=s(u),n=(7-d.getDay())%7;return d.setDate(d.getDate()+n),d},endOfMonth:u=>{let d=s(u);return d.setMonth(d.getMonth()+1,0),d},endOfYear:u=>{let d=s(u);return d.setMonth(11,31),d},eachMonthOfInterval:u=>{let d=s(u.start),n=s(u.end),i=[],f=new j(d.getFullYear(),d.getMonth(),1,12,0,0,e),h=n.getFullYear()*12+n.getMonth();for(;f.getFullYear()*12+f.getMonth()<=h;)i.push(new j(f,e)),f.setMonth(f.getMonth()+1,1);return i},addDays:(u,d)=>{let n=s(u);return n.setDate(n.getDate()+d),n},addWeeks:(u,d)=>{let n=s(u);return n.setDate(n.getDate()+d*7),n},addMonths:(u,d)=>{let n=s(u);return n.setMonth(n.getMonth()+d),n},addYears:(u,d)=>{let n=s(u);return n.setFullYear(n.getFullYear()+d),n},eachYearOfInterval:u=>{let d=s(u.start),n=s(u.end),i=[],f=new j(d.getFullYear(),0,1,12,0,0,e);for(;f.getFullYear()<=n.getFullYear();)i.push(new j(f,e)),f.setFullYear(f.getFullYear()+1,0,1);return i},getWeek:(u,d)=>{let n=l(u);return $e(n,{weekStartsOn:d?.weekStartsOn??r,firstWeekContainsDate:d?.firstWeekContainsDate??o?.options?.firstWeekContainsDate??1})},getISOWeek:u=>{let d=l(u);return je(d)},differenceInCalendarDays:(u,d)=>{let n=l(u),i=l(d);return Xe(n,i)},differenceInCalendarMonths:(u,d)=>{let n=l(u),i=l(d);return ya(n,i)}}}import{useLayoutEffect as nu,useRef as pt}from"react";var pa=e=>e instanceof HTMLElement?e:null,ht=e=>[...e.querySelectorAll("[data-animated-month]")??[]],fu=e=>pa(e.querySelector("[data-animated-month]")),xt=e=>pa(e.querySelector("[data-animated-caption]")),Lt=e=>pa(e.querySelector("[data-animated-weeks]")),iu=e=>pa(e.querySelector("[data-animated-nav]")),cu=e=>pa(e.querySelector("[data-animated-weekdays]"));function Eo(e,a,{classNames:t,months:o,focused:r,dateLib:s}){let l=pt(null),u=pt(o),d=pt(!1);nu(()=>{let n=u.current;if(u.current=o,!a||!e.current||!(e.current instanceof HTMLElement)||o.length===0||n.length===0||o.length!==n.length)return;let i=s.isSameMonth(o[0].date,n[0].date),f=s.isAfter(o[0].date,n[0].date),h=f?t[re.caption_after_enter]:t[re.caption_before_enter],x=f?t[re.weeks_after_enter]:t[re.weeks_before_enter],y=l.current,w=e.current.cloneNode(!0);if(w instanceof HTMLElement?(ht(w).forEach(D=>{if(!(D instanceof HTMLElement))return;let C=fu(D);C&&D.contains(C)&&D.removeChild(C);let M=xt(D);M&&M.classList.remove(h);let m=Lt(D);m&&m.classList.remove(x)}),l.current=w):l.current=null,d.current||i||r)return;let b=y instanceof HTMLElement?ht(y):[],B=ht(e.current);if(B?.every(k=>k instanceof HTMLElement)&&b?.every(k=>k instanceof HTMLElement)){d.current=!0;let k=[];e.current.style.isolation="isolate";let D=iu(e.current);D&&(D.style.zIndex="1"),B.forEach((C,M)=>{let m=b[M];if(!m)return;C.style.position="relative",C.style.overflow="hidden";let P=xt(C);P&&P.classList.add(h);let c=Lt(C);c&&c.classList.add(x);let F=()=>{d.current=!1,e.current&&(e.current.style.isolation=""),D&&(D.style.zIndex=""),P&&P.classList.remove(h),c&&c.classList.remove(x),C.style.position="",C.style.overflow="",C.contains(m)&&C.removeChild(m)};k.push(F),m.style.pointerEvents="none",m.style.position="absolute",m.style.overflow="hidden",m.setAttribute("aria-hidden","true");let N=cu(m);N&&(N.style.opacity="0");let V=xt(m);V&&(V.classList.add(f?t[re.caption_before_exit]:t[re.caption_after_exit]),V.addEventListener("animationend",F));let Z=Lt(m);Z&&Z.classList.add(f?t[re.weeks_before_exit]:t[re.weeks_after_exit]),C.insertBefore(m,C.firstChild)})}})}import{useEffect as pu,useMemo as hu}from"react";function zo(e,a,t,o){let r=e[0],s=e[e.length-1],{ISOWeek:l,fixedWeeks:u,broadcastCalendar:d}=t??{},{addDays:n,differenceInCalendarDays:i,differenceInCalendarMonths:f,endOfBroadcastWeek:h,endOfISOWeek:x,endOfMonth:y,endOfWeek:w,isAfter:b,startOfBroadcastWeek:B,startOfISOWeek:k,startOfWeek:D}=o,C=d?B(r,o):l?k(r):D(r),M=d?h(s):l?x(y(s)):w(y(s)),m=a&&(d?h(a):l?x(a):w(a)),P=m&&b(M,m)?m:M,c=i(P,C),F=f(s,r)+1,N=[];for(let te=0;te<=c;te++){let J=n(C,te);N.push(J)}let Z=(d?35:42)*F;if(u&&N.length{let r=o.weeks.reduce((s,l)=>s.concat(l.days.slice()),a.slice());return t.concat(r.slice())},a.slice())}function Vo(e,a,t,o){let{numberOfMonths:r=1}=t,s=[];for(let l=0;la)break;s.push(u)}return s}function gt(e,a,t,o){let{month:r,defaultMonth:s,today:l=o.today(),numberOfMonths:u=1}=e,d=r||s||l,{differenceInCalendarMonths:n,addMonths:i,startOfMonth:f}=o;if(t&&n(t,d){let B=t.broadcastCalendar?f(b,o):t.ISOWeek?h(b):x(b),k=t.broadcastCalendar?s(b):t.ISOWeek?l(u(b)):d(u(b)),D=a.filter(P=>P>=B&&P<=k),C=t.broadcastCalendar?35:42;if(t.fixedWeeks&&D.length{let F=C-D.length;return c>k&&c<=r(k,F)});D.push(...P)}let M=D.reduce((P,c)=>{let F=t.ISOWeek?n(c):i(c),N=P.find(Z=>Z.weekNumber===F),V=new Je(c,b,o);return N?N.days.push(V):P.push(new Ba(F,[V])),P},[]),m=new Aa(b,M);return w.push(m),w},[]);return t.reverseMonths?y.reverse():y}function _o(e,a){let{startMonth:t,endMonth:o}=e,{startOfYear:r,startOfDay:s,startOfMonth:l,endOfMonth:u,addYears:d,endOfYear:n,today:i}=a,f=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return t?t=l(t):!t&&f&&(t=r(d(e.today??i(),-100))),o?o=u(o):!o&&f&&(o=n(e.today??i())),[t&&s(t),o&&s(o)]}function Xo(e,a,t,o){if(t.disableNavigation)return;let{pagedNavigation:r,numberOfMonths:s=1}=t,{startOfMonth:l,addMonths:u,differenceInCalendarMonths:d}=o,n=r?s:1,i=l(e);if(!a)return u(i,n);if(!(d(a,e)t.concat(o.weeks.slice()),a.slice())}import{useState as mu}from"react";function ve(e,a){let[t,o]=mu(e);return[a===void 0?t:a,o]}function jo(e,a){let[t,o]=_o(e,a),{startOfMonth:r,endOfMonth:s}=a,l=gt(e,t,o,a),[u,d]=ve(l,e.month?l:void 0);pu(()=>{let C=gt(e,t,o,a);d(C)},[e.timeZone]);let{months:n,weeks:i,days:f,previousMonth:h,nextMonth:x}=hu(()=>{let C=Vo(u,o,{numberOfMonths:e.numberOfMonths},a),M=zo(C,e.endMonth?s(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},a),m=Yo(C,M,{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},a),P=Zo(m),c=Go(m),F=Ko(u,t,e,a),N=Xo(u,o,e,a);return{months:m,weeks:P,days:c,previousMonth:F,nextMonth:N}},[a,u.getTime(),o?.getTime(),t?.getTime(),e.disableNavigation,e.broadcastCalendar,e.endMonth?.getTime(),e.fixedWeeks,e.ISOWeek,e.numberOfMonths,e.pagedNavigation,e.reverseMonths]),{disableNavigation:y,onMonthChange:w}=e,b=C=>i.some(M=>M.days.some(m=>m.isEqualTo(C))),B=C=>{if(y)return;let M=r(C);t&&Mr(o)&&(M=r(o)),d(M),w?.(M)};return{months:n,weeks:i,days:f,navStart:t,navEnd:o,previousMonth:h,nextMonth:x,goToMonth:B,goToDay:C=>{b(C)||B(C.date)}}}import{useState as er}from"react";var ge;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(ge||(ge={}));function $o(e){return!e[E.disabled]&&!e[E.hidden]&&!e[E.outside]}function Qo(e,a,t,o){let r,s=-1;for(let l of e){let u=a(l);$o(u)&&(u[E.focused]&&s$o(a(l)))),r}function Jo(e,a,t,o,r,s,l){let{ISOWeek:u,broadcastCalendar:d}=s,{addDays:n,addMonths:i,addWeeks:f,addYears:h,endOfBroadcastWeek:x,endOfISOWeek:y,endOfWeek:w,max:b,min:B,startOfBroadcastWeek:k,startOfISOWeek:D,startOfWeek:C}=l,m={day:n,week:f,month:i,year:h,startOfWeek:P=>d?k(P,l):u?D(P):C(P),endOfWeek:P=>d?x(P):u?y(P):w(P)}[e](t,a==="after"?1:-1);return a==="before"&&o?m=b([o,m]):a==="after"&&r&&(m=B([r,m])),m}function It(e,a,t,o,r,s,l,u=0){if(u>365)return;let d=Jo(e,a,t.date,o,r,s,l),n=!!(s.disabled&&ie(d,s.disabled,l)),i=!!(s.hidden&&ie(d,s.hidden,l)),f=d,h=new Je(d,f,l);return!n&&!i?h:It(e,a,h,o,r,s,l,u+1)}function ar(e,a,t,o,r){let{autoFocus:s}=e,[l,u]=er(),d=Qo(a.days,t,o||(()=>!1),l),[n,i]=er(s?d:void 0);return{isFocusTarget:w=>!!d?.isEqualTo(w),setFocused:i,focused:n,blur:()=>{u(n),i(void 0)},moveFocus:(w,b)=>{if(!n)return;let B=It(w,b,n,a.navStart,a.navEnd,e,r);B&&(e.disableNavigation&&!a.days.some(D=>D.isEqualTo(B))||(a.goToDay(B),i(B)))}}}function tr(e,a){let{selected:t,required:o,onSelect:r}=e,[s,l]=ve(t,r?t:void 0),u=r?t:s,{isSameDay:d}=a,n=x=>u?.some(y=>d(y,x))??!1,{min:i,max:f}=e;return{selected:u,select:(x,y,w)=>{let b=[...u??[]];if(n(x)){if(u?.length===i||o&&u?.length===1)return;b=u?.filter(B=>!d(B,x))}else u?.length===f?b=[x]:b=[...b,x];return r||l(b),r?.(b,x,y,w),b},isSelected:n}}function or(e,a,t=0,o=0,r=!1,s=K){let{from:l,to:u}=a||{},{isSameDay:d,isAfter:n,isBefore:i}=s,f;if(!l&&!u)f={from:e,to:t>0?void 0:e};else if(l&&!u)d(l,e)?t===0?f={from:l,to:e}:r?f={from:l,to:void 0}:f=void 0:i(e,l)?f={from:e,to:l}:f={from:l,to:e};else if(l&&u)if(d(l,e)&&d(u,e))r?f={from:l,to:u}:f=void 0;else if(d(l,e))f={from:l,to:t>0?void 0:e};else if(d(u,e))f={from:e,to:t>0?void 0:e};else if(i(e,l))f={from:e,to:u};else if(n(e,l))f={from:l,to:e};else if(n(e,u))f={from:l,to:e};else throw new Error("Invalid range");if(f?.from&&f?.to){let h=s.differenceInCalendarDays(f.to,f.from);o>0&&h>o?f={from:e,to:void 0}:t>1&&htypeof u!="function").some(u=>typeof u=="boolean"?u:t.isDate(u)?ue(e,u,!1,t):Ra(u,t)?u.some(d=>ue(e,d,!1,t)):Pe(u)?u.from&&u.to?Ct(e,{from:u.from,to:u.to},t):!1:Ta(u)?rr(e,u.dayOfWeek,t):ea(u)?t.isAfter(u.before,u.after)?Ct(e,{from:t.addDays(u.after,1),to:t.addDays(u.before,-1)},t):ie(e.from,u,t)||ie(e.to,u,t):aa(u)||ta(u)?ie(e.from,u,t)||ie(e.to,u,t):!1))return!0;let l=o.filter(u=>typeof u=="function");if(l.length){let u=e.from,d=t.differenceInCalendarDays(e.to,e.from);for(let n=0;n<=d;n++){if(l.some(i=>i(u)))return!0;u=t.addDays(u,1)}}return!1}function lr(e,a){let{disabled:t,excludeDisabled:o,resetOnSelect:r,selected:s,required:l,onSelect:u}=e,[d,n]=ve(s,u?s:void 0),i=u?s:d;return{selected:i,select:(x,y,w)=>{let{min:b,max:B}=e,k;if(x){let D=i?.from,C=i?.to,M=!!D&&!!C,m=!!D&&!!C&&a.isSameDay(D,C)&&a.isSameDay(x,D);r&&(M||!i?.from)?!l&&m?k=void 0:k={from:x,to:void 0}:k=or(x,i,b,B,l,a)}return o&&t&&k?.from&&k.to&&sr({from:k.from,to:k.to},t,a)&&(k.from=x,k.to=void 0),u||n(k),u?.(k,x,y,w),k},isSelected:x=>i&&ue(i,x,!1,a)}}function ur(e,a){let{selected:t,required:o,onSelect:r}=e,[s,l]=ve(t,r?t:void 0),u=r?t:s,{isSameDay:d}=a;return{selected:u,select:(f,h,x)=>{let y=f;return!o&&u&&u&&d(f,u)&&(y=void 0),r||l(y),r?.(y,f,h,x),y},isSelected:f=>u?d(u,f):!1}}function dr(e,a){let t=ur(e,a),o=tr(e,a),r=lr(e,a);switch(e.mode){case"single":return t;case"multiple":return o;case"range":return r;default:return}}function se(e,a){return e instanceof j&&e.timeZone===a?e:new j(e,a)}function oa(e,a,t){if(!t)return se(e,a);let o=se(e,a),r=new j(o.getFullYear(),o.getMonth(),o.getDate(),12,0,0,a);return new Date(r.getTime())}function nr(e,a,t){return typeof e=="boolean"||typeof e=="function"?e:e instanceof Date?oa(e,a,t):Array.isArray(e)?e.map(o=>o instanceof Date?oa(o,a,t):o):Pe(e)?{...e,from:e.from?se(e.from,a):e.from,to:e.to?se(e.to,a):e.to}:ea(e)?{before:oa(e.before,a,t),after:oa(e.after,a,t)}:aa(e)?{after:oa(e.after,a,t)}:ta(e)?{before:oa(e.before,a,t)}:e}function qa(e,a,t){return e&&(Array.isArray(e)?e.map(o=>nr(o,a,t)):nr(e,a,t))}function fr(e){let a=e,t=a.timeZone;if(t&&(a={...e,timeZone:t},a.today&&(a.today=se(a.today,t)),a.month&&(a.month=se(a.month,t)),a.defaultMonth&&(a.defaultMonth=se(a.defaultMonth,t)),a.startMonth&&(a.startMonth=se(a.startMonth,t)),a.endMonth&&(a.endMonth=se(a.endMonth,t)),a.mode==="single"&&a.selected?a.selected=se(a.selected,t):a.mode==="multiple"&&a.selected?a.selected=a.selected?.map(v=>se(v,t)):a.mode==="range"&&a.selected&&(a.selected={from:a.selected.from?se(a.selected.from,t):a.selected.from,to:a.selected.to?se(a.selected.to,t):a.selected.to}),a.disabled!==void 0&&(a.disabled=qa(a.disabled,t)),a.hidden!==void 0&&(a.hidden=qa(a.hidden,t)),a.modifiers)){let v={};Object.keys(a.modifiers).forEach(T=>{v[T]=qa(a.modifiers?.[T],t)}),a.modifiers=v}let{components:o,formatters:r,labels:s,dateLib:l,locale:u,classNames:d}=St(()=>{let v={...na,...a.locale},T=a.broadcastCalendar?1:a.weekStartsOn,A=a.noonSafe&&a.timeZone?No(a.timeZone,{weekStartsOn:T,locale:v}):void 0,G=a.dateLib&&A?{...A,...a.dateLib}:a.dateLib??A,U=new X({locale:v,weekStartsOn:T,firstWeekContainsDate:a.firstWeekContainsDate,useAdditionalWeekYearTokens:a.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:a.useAdditionalDayOfYearTokens,timeZone:a.timeZone,numerals:a.numerals},G);return{dateLib:U,components:Ao(a.components),formatters:To(a.formatters),labels:Ro(a.labels,U.options),locale:v,classNames:{...ma(),...a.classNames}}},[a.locale,a.broadcastCalendar,a.weekStartsOn,a.firstWeekContainsDate,a.useAdditionalWeekYearTokens,a.useAdditionalDayOfYearTokens,a.timeZone,a.numerals,a.dateLib,a.noonSafe,a.components,a.formatters,a.labels,a.classNames]);a.today||(a={...a,today:l.today()});let{captionLayout:n,mode:i,navLayout:f,numberOfMonths:h=1,onDayBlur:x,onDayClick:y,onDayFocus:w,onDayKeyDown:b,onDayMouseEnter:B,onDayMouseLeave:k,onNextClick:D,onPrevClick:C,showWeekNumber:M,styles:m}=a,{formatCaption:P,formatDay:c,formatMonthDropdown:F,formatWeekNumber:N,formatWeekNumberHeader:V,formatWeekdayName:Z,formatYearDropdown:te}=r,J=jo(a,l),{days:de,months:ee,navStart:ce,navEnd:Be,previousMonth:oe,nextMonth:I,goToMonth:ne}=J,Ee=Fo(de,a,ce,Be,l),{isSelected:ze,select:Te,selected:_}=dr(a,l)??{},{blur:Q,focused:Re,isFocusTarget:xa,moveFocus:Y,setFocused:qe}=ar(a,J,Ee,ze??(()=>!1),l),{labelDayButton:Ge,labelGridcell:Ve,labelGrid:ra,labelMonthDropdown:Ye,labelNav:Dt,labelPrevious:Vr,labelNext:Yr,labelWeekday:_r,labelWeekNumber:Xr,labelWeekNumberHeader:Kr,labelYearDropdown:Zr}=s,jr=St(()=>Uo(l,a.ISOWeek,a.broadcastCalendar,a.today),[l,a.ISOWeek,a.broadcastCalendar,a.today]),Mt=i!==void 0||y!==void 0,Ya=Ie(()=>{oe&&(ne(oe),C?.(oe))},[oe,ne,C]),_a=Ie(()=>{I&&(ne(I),D?.(I))},[ne,I,D]),$r=Ie((v,T)=>A=>{A.preventDefault(),A.stopPropagation(),qe(v),!T.disabled&&(Te?.(v.date,T,A),y?.(v.date,T,A))},[Te,y,qe]),Qr=Ie((v,T)=>A=>{qe(v),w?.(v.date,T,A)},[w,qe]),Jr=Ie((v,T)=>A=>{Q(),x?.(v.date,T,A)},[Q,x]),es=Ie((v,T)=>A=>{let G={ArrowLeft:[A.shiftKey?"month":"day",a.dir==="rtl"?"after":"before"],ArrowRight:[A.shiftKey?"month":"day",a.dir==="rtl"?"before":"after"],ArrowDown:[A.shiftKey?"year":"week","after"],ArrowUp:[A.shiftKey?"year":"week","before"],PageUp:[A.shiftKey?"year":"month","before"],PageDown:[A.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(G[A.key]){A.preventDefault(),A.stopPropagation();let[U,xe]=G[A.key];Y(U,xe)}b?.(v.date,T,A)},[Y,b,a.dir]),as=Ie((v,T)=>A=>{B?.(v.date,T,A)},[B]),ts=Ie((v,T)=>A=>{k?.(v.date,T,A)},[k]),os=Ie((v,T)=>A=>{let G=Number(A.target.value),U=l.setMonth(l.startOfMonth(v),G);ne(l.addMonths(U,-T))},[l,ne]),rs=Ie((v,T)=>A=>{let G=Number(A.target.value),U=l.setYear(l.startOfMonth(v),G);ne(l.addMonths(U,-T))},[l,ne]),{className:ss,style:ls}=St(()=>({className:[d[p.Root],a.className].filter(Boolean).join(" "),style:{...m?.[p.Root],...a.style}}),[d,a.className,a.style,m]),us=Bo(a),Pt=v=>{let T=m?.[p.Dropdown],A=m?.[v];if(!(!T&&!A))return{...T,...A}},vt=xu(null);Eo(vt,!!a.animate,{classNames:d,months:ee,focused:Re,dateLib:l});let ds={dayPickerProps:a,selected:_,select:Te,isSelected:ze,months:ee,nextMonth:I,previousMonth:oe,goToMonth:ne,getModifiers:Ee,components:o,classNames:d,styles:m,labels:s,formatters:r};return z.createElement(Ja.Provider,{value:ds},z.createElement(o.Root,{rootRef:a.animate?vt:void 0,className:ss,style:ls,dir:a.dir,id:a.id,lang:a.lang??u.code,nonce:a.nonce,title:a.title,role:a.role,"aria-label":a["aria-label"],"aria-labelledby":a["aria-labelledby"],...us},z.createElement(o.Months,{className:d[p.Months],style:m?.[p.Months]},!a.hideNavigation&&!f&&z.createElement(o.Nav,{"data-animated-nav":a.animate?"true":void 0,className:d[p.Nav],style:m?.[p.Nav],"aria-label":Dt(),onPreviousClick:Ya,onNextClick:_a,previousMonth:oe,nextMonth:I}),ee.map((v,T)=>{let A=a.reverseMonths?ee.length-1-T:T;return z.createElement(o.Month,{"data-animated-month":a.animate?"true":void 0,className:d[p.Month],style:m?.[p.Month],key:T,displayIndex:T,calendarMonth:v},f==="around"&&!a.hideNavigation&&T===0&&z.createElement(o.PreviousMonthButton,{type:"button",className:d[p.PreviousMonthButton],style:m?.[p.PreviousMonthButton],tabIndex:oe?void 0:-1,"aria-disabled":oe?void 0:!0,"aria-label":Vr(oe),onClick:Ya,"data-animated-button":a.animate?"true":void 0},z.createElement(o.Chevron,{disabled:oe?void 0:!0,className:d[p.Chevron],style:m?.[p.Chevron],orientation:a.dir==="rtl"?"right":"left"})),z.createElement(o.MonthCaption,{"data-animated-caption":a.animate?"true":void 0,className:d[p.MonthCaption],style:m?.[p.MonthCaption],calendarMonth:v,displayIndex:T},n?.startsWith("dropdown")?z.createElement(o.DropdownNav,{className:d[p.Dropdowns],style:m?.[p.Dropdowns]},(()=>{let G=n==="dropdown"||n==="dropdown-months"?z.createElement(o.MonthsDropdown,{key:"month",className:d[p.MonthsDropdown],"aria-label":Ye(),disabled:!!a.disableNavigation,onChange:os(v.date,A),options:qo(v.date,ce,Be,r,l),style:Pt(p.MonthsDropdown),value:l.getMonth(v.date)}):z.createElement("span",{key:"month"},F(v.date,l)),U=n==="dropdown"||n==="dropdown-years"?z.createElement(o.YearsDropdown,{key:"year",className:d[p.YearsDropdown],"aria-label":Zr(l.options),disabled:!!a.disableNavigation,onChange:rs(v.date,A),options:Ho(ce,Be,r,l,!!a.reverseYears),style:Pt(p.YearsDropdown),value:l.getYear(v.date)}):z.createElement("span",{key:"year"},te(v.date,l));return l.getMonthYearOrder()==="year-first"?[U,G]:[G,U]})(),z.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},P(v.date,l.options,l))):z.createElement(o.CaptionLabel,{className:d[p.CaptionLabel],style:m?.[p.CaptionLabel],role:"status","aria-live":"polite"},P(v.date,l.options,l))),f==="around"&&!a.hideNavigation&&T===h-1&&z.createElement(o.NextMonthButton,{type:"button",className:d[p.NextMonthButton],style:m?.[p.NextMonthButton],tabIndex:I?void 0:-1,"aria-disabled":I?void 0:!0,"aria-label":Yr(I),onClick:_a,"data-animated-button":a.animate?"true":void 0},z.createElement(o.Chevron,{disabled:I?void 0:!0,className:d[p.Chevron],style:m?.[p.Chevron],orientation:a.dir==="rtl"?"left":"right"})),T===h-1&&f==="after"&&!a.hideNavigation&&z.createElement(o.Nav,{"data-animated-nav":a.animate?"true":void 0,className:d[p.Nav],style:m?.[p.Nav],"aria-label":Dt(),onPreviousClick:Ya,onNextClick:_a,previousMonth:oe,nextMonth:I}),z.createElement(o.MonthGrid,{role:"grid","aria-multiselectable":i==="multiple"||i==="range","aria-label":ra(v.date,l.options,l)||void 0,className:d[p.MonthGrid],style:m?.[p.MonthGrid]},!a.hideWeekdays&&z.createElement(o.Weekdays,{"data-animated-weekdays":a.animate?"true":void 0,className:d[p.Weekdays],style:m?.[p.Weekdays]},M&&z.createElement(o.WeekNumberHeader,{"aria-label":Kr(l.options),className:d[p.WeekNumberHeader],style:m?.[p.WeekNumberHeader],scope:"col"},V()),jr.map(G=>z.createElement(o.Weekday,{"aria-label":_r(G,l.options,l),className:d[p.Weekday],key:String(G),style:m?.[p.Weekday],scope:"col"},Z(G,l.options,l)))),z.createElement(o.Weeks,{"data-animated-weeks":a.animate?"true":void 0,className:d[p.Weeks],style:m?.[p.Weeks]},v.weeks.map(G=>z.createElement(o.Week,{className:d[p.Week],key:G.weekNumber,style:m?.[p.Week],week:G},M&&z.createElement(o.WeekNumber,{week:G,style:m?.[p.WeekNumber],"aria-label":Xr(G.weekNumber,{locale:u}),className:d[p.WeekNumber],scope:"row",role:"rowheader"},N(G.weekNumber,l)),G.days.map(U=>{let{date:xe}=U,W=Ee(U);if(W[E.focused]=!W.hidden&&!!Re?.isEqualTo(U),W[le.selected]=ze?.(xe)||W.selected,Pe(_)){let{from:Xa,to:Ka}=_;W[le.range_start]=!!(Xa&&Ka&&l.isSameDay(xe,Xa)),W[le.range_end]=!!(Xa&&Ka&&l.isSameDay(xe,Ka)),W[le.range_middle]=ue(_,xe,!0,l)}let ns=Wo(W,m,a.modifiersStyles),fs=Oo(W,d,a.modifiersClassNames),is=!Mt&&!W.hidden?Ve(xe,W,l.options,l):void 0;return z.createElement(o.Day,{key:`${U.isoDate}_${U.displayMonthId}`,day:U,modifiers:W,className:fs.join(" "),style:ns,role:"gridcell","aria-selected":W.selected||void 0,"aria-label":is,"data-day":U.isoDate,"data-month":U.outside?U.dateMonthId:void 0,"data-selected":W.selected||void 0,"data-disabled":W.disabled||void 0,"data-hidden":W.hidden||void 0,"data-outside":U.outside||void 0,"data-focused":W.focused||void 0,"data-today":W.today||void 0},!W.hidden&&Mt?z.createElement(o.DayButton,{className:d[p.DayButton],style:m?.[p.DayButton],type:"button",day:U,modifiers:W,disabled:!W.focused&&W.disabled||void 0,"aria-disabled":W.focused&&W.disabled||void 0,tabIndex:xa(U)?0:-1,"aria-label":Ge(xe,W,l.options,l),onClick:$r(U,W),onBlur:Jr(U,W),onFocus:Qr(U,W),onKeyDown:es(U,W),onMouseEnter:as(U,W),onMouseLeave:ts(U,W)},c(xe,l.options,l)):!W.hidden&&c(U.date,l.options,l))}))))))})),a.footer&&z.createElement(o.Footer,{className:d[p.Footer],style:m?.[p.Footer],role:"status","aria-live":"polite"},a.footer)))}function ir(e){var a,t,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(a=0;a{let t=new Array(e.length+a.length);for(let o=0;o({classGroupId:e,validator:a}),gr=(e=new Map,a=null,t)=>({nextPart:e,validators:a,classGroupId:t}),Na="-",cr=[],Iu="arbitrary..",Cu=e=>{let a=wu(e),{conflictingClassGroups:t,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:l=>{if(l.startsWith("[")&&l.endsWith("]"))return Su(l);let u=l.split(Na),d=u[0]===""&&u.length>1?1:0;return Ir(u,d,a)},getConflictingClassGroupIds:(l,u)=>{if(u){let d=o[l],n=t[l];return d?n?Lu(n,d):d:n||cr}return t[l]||cr}}},Ir=(e,a,t)=>{if(e.length-a===0)return t.classGroupId;let r=e[a],s=t.nextPart.get(r);if(s){let n=Ir(e,a+1,s);if(n)return n}let l=t.validators;if(l===null)return;let u=a===0?e.join(Na):e.slice(a).join(Na),d=l.length;for(let n=0;ne.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let a=e.slice(1,-1),t=a.indexOf(":"),o=a.slice(0,t);return o?Iu+o:void 0})(),wu=e=>{let{theme:a,classGroups:t}=e;return bu(t,a)},bu=(e,a)=>{let t=gr();for(let o in e){let r=e[o];kt(r,t,o,a)}return t},kt=(e,a,t,o)=>{let r=e.length;for(let s=0;s{if(typeof e=="string"){yu(e,a,t);return}if(typeof e=="function"){Du(e,a,t,o);return}Mu(e,a,t,o)},yu=(e,a,t)=>{let o=e===""?a:Cr(a,e);o.classGroupId=t},Du=(e,a,t,o)=>{if(Pu(e)){kt(e(o),a,t,o);return}a.validators===null&&(a.validators=[]),a.validators.push(gu(t,e))},Mu=(e,a,t,o)=>{let r=Object.entries(e),s=r.length;for(let l=0;l{let t=e,o=a.split(Na),r=o.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,vu=e=>{if(e<1)return{get:()=>{},set:()=>{}};let a=0,t=Object.create(null),o=Object.create(null),r=(s,l)=>{t[s]=l,a++,a>e&&(a=0,o=t,t=Object.create(null))};return{get(s){let l=t[s];if(l!==void 0)return l;if((l=o[s])!==void 0)return r(s,l),l},set(s,l){s in t?t[s]=l:r(s,l)}}},bt="!",mr=":",Fu=[],pr=(e,a,t,o,r)=>({modifiers:e,hasImportantModifier:a,baseClassName:t,maybePostfixModifierPosition:o,isExternal:r}),Ou=e=>{let{prefix:a,experimentalParseClassName:t}=e,o=r=>{let s=[],l=0,u=0,d=0,n,i=r.length;for(let w=0;wd?n-d:void 0;return pr(s,x,h,y)};if(a){let r=a+mr,s=o;o=l=>l.startsWith(r)?s(l.slice(r.length)):pr(Fu,!1,l,void 0,!0)}if(t){let r=o;o=s=>t({className:s,parseClassName:r})}return o},Au=e=>{let a=new Map;return e.orderSensitiveModifiers.forEach((t,o)=>{a.set(t,1e6+o)}),t=>{let o=[],r=[];for(let s=0;s0&&(r.sort(),o.push(...r),r=[]),o.push(l)):r.push(l)}return r.length>0&&(r.sort(),o.push(...r)),o}},Bu=e=>({cache:vu(e.cacheSize),parseClassName:Ou(e),sortModifiers:Au(e),postfixLookupClassGroupIds:Tu(e),...Cu(e)}),Tu=e=>{let a=Object.create(null),t=e.postfixLookupClassGroups;if(t)for(let o=0;o{let{parseClassName:t,getClassGroupId:o,getConflictingClassGroupIds:r,sortModifiers:s,postfixLookupClassGroupIds:l}=a,u=[],d=e.trim().split(Ru),n="";for(let i=d.length-1;i>=0;i-=1){let f=d[i],{isExternal:h,modifiers:x,hasImportantModifier:y,baseClassName:w,maybePostfixModifierPosition:b}=t(f);if(h){n=f+(n.length>0?" "+n:n);continue}let B=!!b,k;if(B){let P=w.substring(0,b);k=o(P);let c=k&&l[k]?o(w):void 0;c&&c!==k&&(k=c,B=!1)}else k=o(w);if(!k){if(!B){n=f+(n.length>0?" "+n:n);continue}if(k=o(w),!k){n=f+(n.length>0?" "+n:n);continue}B=!1}let D=x.length===0?"":x.length===1?x[0]:s(x).join(":"),C=y?D+bt:D,M=C+k;if(u.indexOf(M)>-1)continue;u.push(M);let m=r(k,B);for(let P=0;P0?" "+n:n)}return n},Wu=(...e)=>{let a=0,t,o,r="";for(;a{if(typeof e=="string")return e;let a,t="";for(let o=0;o{let t,o,r,s,l=d=>{let n=a.reduce((i,f)=>f(i),e());return t=Bu(n),o=t.cache.get,r=t.cache.set,s=u,u(d)},u=d=>{let n=o(d);if(n)return n;let i=qu(d,t);return r(d,i),i};return s=l,(...d)=>s(Wu(...d))},Hu=[],$=e=>{let a=t=>t[e]||Hu;return a.isThemeGetter=!0,a},wr=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,br=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Nu=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Eu=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,zu=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Gu=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Vu=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,Yu=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Fe=e=>Nu.test(e),O=e=>!!e&&!Number.isNaN(Number(e)),Ce=e=>!!e&&Number.isInteger(Number(e)),wt=e=>e.endsWith("%")&&O(e.slice(0,-1)),ke=e=>Eu.test(e),kr=()=>!0,_u=e=>zu.test(e)&&!Gu.test(e),yt=()=>!1,Xu=e=>Vu.test(e),Ku=e=>Yu.test(e),Zu=e=>!L(e)&&!g(e),ju=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),$u=e=>Oe(e,Mr,yt),L=e=>wr.test(e),He=e=>Oe(e,Pr,_u),hr=e=>Oe(e,sd,O),Qu=e=>Oe(e,Fr,kr),Ju=e=>Oe(e,vr,yt),xr=e=>Oe(e,yr,yt),ed=e=>Oe(e,Dr,Ku),Ua=e=>Oe(e,Or,Xu),g=e=>br.test(e),ha=e=>Ne(e,Pr),ad=e=>Ne(e,vr),Lr=e=>Ne(e,yr),td=e=>Ne(e,Mr),od=e=>Ne(e,Dr),Ha=e=>Ne(e,Or,!0),rd=e=>Ne(e,Fr,!0),Oe=(e,a,t)=>{let o=wr.exec(e);return o?o[1]?a(o[1]):t(o[2]):!1},Ne=(e,a,t=!1)=>{let o=br.exec(e);return o?o[1]?a(o[1]):t:!1},yr=e=>e==="position"||e==="percentage",Dr=e=>e==="image"||e==="url",Mr=e=>e==="length"||e==="size"||e==="bg-size",Pr=e=>e==="length",sd=e=>e==="number",vr=e=>e==="family-name",Fr=e=>e==="number"||e==="weight",Or=e=>e==="shadow";var ld=()=>{let e=$("color"),a=$("font"),t=$("text"),o=$("font-weight"),r=$("tracking"),s=$("leading"),l=$("breakpoint"),u=$("container"),d=$("spacing"),n=$("radius"),i=$("shadow"),f=$("inset-shadow"),h=$("text-shadow"),x=$("drop-shadow"),y=$("blur"),w=$("perspective"),b=$("aspect"),B=$("ease"),k=$("animate"),D=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],M=()=>[...C(),g,L],m=()=>["auto","hidden","clip","visible","scroll"],P=()=>["auto","contain","none"],c=()=>[g,L,d],F=()=>[Fe,"full","auto",...c()],N=()=>[Ce,"none","subgrid",g,L],V=()=>["auto",{span:["full",Ce,g,L]},Ce,g,L],Z=()=>[Ce,"auto",g,L],te=()=>["auto","min","max","fr",g,L],J=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],de=()=>["start","end","center","stretch","center-safe","end-safe"],ee=()=>["auto",...c()],ce=()=>[Fe,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...c()],Be=()=>[Fe,"screen","full","dvw","lvw","svw","min","max","fit",...c()],oe=()=>[Fe,"screen","full","lh","dvh","lvh","svh","min","max","fit",...c()],I=()=>[e,g,L],ne=()=>[...C(),Lr,xr,{position:[g,L]}],Ee=()=>["no-repeat",{repeat:["","x","y","space","round"]}],ze=()=>["auto","cover","contain",td,$u,{size:[g,L]}],Te=()=>[wt,ha,He],_=()=>["","none","full",n,g,L],Q=()=>["",O,ha,He],Re=()=>["solid","dashed","dotted","double"],xa=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],Y=()=>[O,wt,Lr,xr],qe=()=>["","none",y,g,L],Ge=()=>["none",O,g,L],Ve=()=>["none",O,g,L],ra=()=>[O,g,L],Ye=()=>[Fe,"full",...c()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[ke],breakpoint:[ke],color:[kr],container:[ke],"drop-shadow":[ke],ease:["in","out","in-out"],font:[Zu],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[ke],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[ke],shadow:[ke],spacing:["px",O],text:[ke],"text-shadow":[ke],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Fe,L,g,b]}],container:["container"],"container-type":[{"@container":["","normal","size",g,L]}],"container-named":[ju],columns:[{columns:[O,L,g,u]}],"break-after":[{"break-after":D()}],"break-before":[{"break-before":D()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:M()}],overflow:[{overflow:m()}],"overflow-x":[{"overflow-x":m()}],"overflow-y":[{"overflow-y":m()}],overscroll:[{overscroll:P()}],"overscroll-x":[{"overscroll-x":P()}],"overscroll-y":[{"overscroll-y":P()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:F()}],"inset-x":[{"inset-x":F()}],"inset-y":[{"inset-y":F()}],start:[{"inset-s":F(),start:F()}],end:[{"inset-e":F(),end:F()}],"inset-bs":[{"inset-bs":F()}],"inset-be":[{"inset-be":F()}],top:[{top:F()}],right:[{right:F()}],bottom:[{bottom:F()}],left:[{left:F()}],visibility:["visible","invisible","collapse"],z:[{z:[Ce,"auto",g,L]}],basis:[{basis:[Fe,"full","auto",u,...c()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[O,Fe,"auto","initial","none",L]}],grow:[{grow:["",O,g,L]}],shrink:[{shrink:["",O,g,L]}],order:[{order:[Ce,"first","last","none",g,L]}],"grid-cols":[{"grid-cols":N()}],"col-start-end":[{col:V()}],"col-start":[{"col-start":Z()}],"col-end":[{"col-end":Z()}],"grid-rows":[{"grid-rows":N()}],"row-start-end":[{row:V()}],"row-start":[{"row-start":Z()}],"row-end":[{"row-end":Z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":te()}],"auto-rows":[{"auto-rows":te()}],gap:[{gap:c()}],"gap-x":[{"gap-x":c()}],"gap-y":[{"gap-y":c()}],"justify-content":[{justify:[...J(),"normal"]}],"justify-items":[{"justify-items":[...de(),"normal"]}],"justify-self":[{"justify-self":["auto",...de()]}],"align-content":[{content:["normal",...J()]}],"align-items":[{items:[...de(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...de(),{baseline:["","last"]}]}],"place-content":[{"place-content":J()}],"place-items":[{"place-items":[...de(),"baseline"]}],"place-self":[{"place-self":["auto",...de()]}],p:[{p:c()}],px:[{px:c()}],py:[{py:c()}],ps:[{ps:c()}],pe:[{pe:c()}],pbs:[{pbs:c()}],pbe:[{pbe:c()}],pt:[{pt:c()}],pr:[{pr:c()}],pb:[{pb:c()}],pl:[{pl:c()}],m:[{m:ee()}],mx:[{mx:ee()}],my:[{my:ee()}],ms:[{ms:ee()}],me:[{me:ee()}],mbs:[{mbs:ee()}],mbe:[{mbe:ee()}],mt:[{mt:ee()}],mr:[{mr:ee()}],mb:[{mb:ee()}],ml:[{ml:ee()}],"space-x":[{"space-x":c()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":c()}],"space-y-reverse":["space-y-reverse"],size:[{size:ce()}],"inline-size":[{inline:["auto",...Be()]}],"min-inline-size":[{"min-inline":["auto",...Be()]}],"max-inline-size":[{"max-inline":["none",...Be()]}],"block-size":[{block:["auto",...oe()]}],"min-block-size":[{"min-block":["auto",...oe()]}],"max-block-size":[{"max-block":["none",...oe()]}],w:[{w:[u,"screen",...ce()]}],"min-w":[{"min-w":[u,"screen","none",...ce()]}],"max-w":[{"max-w":[u,"screen","none","prose",{screen:[l]},...ce()]}],h:[{h:["screen","lh",...ce()]}],"min-h":[{"min-h":["screen","lh","none",...ce()]}],"max-h":[{"max-h":["screen","lh",...ce()]}],"font-size":[{text:["base",t,ha,He]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,rd,Qu]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",wt,L]}],"font-family":[{font:[ad,Ju,a]}],"font-features":[{"font-features":[L]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,g,L]}],"line-clamp":[{"line-clamp":[O,"none",g,hr]}],leading:[{leading:[s,...c()]}],"list-image":[{"list-image":["none",g,L]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",g,L]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Re(),"wavy"]}],"text-decoration-thickness":[{decoration:[O,"from-font","auto",g,He]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[O,"auto",g,L]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:c()}],"tab-size":[{tab:[Ce,g,L]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",g,L]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",g,L]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ne()}],"bg-repeat":[{bg:Ee()}],"bg-size":[{bg:ze()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Ce,g,L],radial:["",g,L],conic:[Ce,g,L]},od,ed]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:Te()}],"gradient-via-pos":[{via:Te()}],"gradient-to-pos":[{to:Te()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:_()}],"rounded-s":[{"rounded-s":_()}],"rounded-e":[{"rounded-e":_()}],"rounded-t":[{"rounded-t":_()}],"rounded-r":[{"rounded-r":_()}],"rounded-b":[{"rounded-b":_()}],"rounded-l":[{"rounded-l":_()}],"rounded-ss":[{"rounded-ss":_()}],"rounded-se":[{"rounded-se":_()}],"rounded-ee":[{"rounded-ee":_()}],"rounded-es":[{"rounded-es":_()}],"rounded-tl":[{"rounded-tl":_()}],"rounded-tr":[{"rounded-tr":_()}],"rounded-br":[{"rounded-br":_()}],"rounded-bl":[{"rounded-bl":_()}],"border-w":[{border:Q()}],"border-w-x":[{"border-x":Q()}],"border-w-y":[{"border-y":Q()}],"border-w-s":[{"border-s":Q()}],"border-w-e":[{"border-e":Q()}],"border-w-bs":[{"border-bs":Q()}],"border-w-be":[{"border-be":Q()}],"border-w-t":[{"border-t":Q()}],"border-w-r":[{"border-r":Q()}],"border-w-b":[{"border-b":Q()}],"border-w-l":[{"border-l":Q()}],"divide-x":[{"divide-x":Q()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":Q()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Re(),"hidden","none"]}],"divide-style":[{divide:[...Re(),"hidden","none"]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-bs":[{"border-bs":I()}],"border-color-be":[{"border-be":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...Re(),"none","hidden"]}],"outline-offset":[{"outline-offset":[O,g,L]}],"outline-w":[{outline:["",O,ha,He]}],"outline-color":[{outline:I()}],shadow:[{shadow:["","none",i,Ha,Ua]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":["none",f,Ha,Ua]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:Q()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[O,He]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":Q()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":["none",h,Ha,Ua]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[O,g,L]}],"mix-blend":[{"mix-blend":[...xa(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":xa()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[O]}],"mask-image-linear-from-pos":[{"mask-linear-from":Y()}],"mask-image-linear-to-pos":[{"mask-linear-to":Y()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":Y()}],"mask-image-t-to-pos":[{"mask-t-to":Y()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":Y()}],"mask-image-r-to-pos":[{"mask-r-to":Y()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":Y()}],"mask-image-b-to-pos":[{"mask-b-to":Y()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":Y()}],"mask-image-l-to-pos":[{"mask-l-to":Y()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":Y()}],"mask-image-x-to-pos":[{"mask-x-to":Y()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":Y()}],"mask-image-y-to-pos":[{"mask-y-to":Y()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[g,L]}],"mask-image-radial-from-pos":[{"mask-radial-from":Y()}],"mask-image-radial-to-pos":[{"mask-radial-to":Y()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":C()}],"mask-image-conic-pos":[{"mask-conic":[O]}],"mask-image-conic-from-pos":[{"mask-conic-from":Y()}],"mask-image-conic-to-pos":[{"mask-conic-to":Y()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ne()}],"mask-repeat":[{mask:Ee()}],"mask-size":[{mask:ze()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",g,L]}],filter:[{filter:["","none",g,L]}],blur:[{blur:qe()}],brightness:[{brightness:[O,g,L]}],contrast:[{contrast:[O,g,L]}],"drop-shadow":[{"drop-shadow":["","none",x,Ha,Ua]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:["",O,g,L]}],"hue-rotate":[{"hue-rotate":[O,g,L]}],invert:[{invert:["",O,g,L]}],saturate:[{saturate:[O,g,L]}],sepia:[{sepia:["",O,g,L]}],"backdrop-filter":[{"backdrop-filter":["","none",g,L]}],"backdrop-blur":[{"backdrop-blur":qe()}],"backdrop-brightness":[{"backdrop-brightness":[O,g,L]}],"backdrop-contrast":[{"backdrop-contrast":[O,g,L]}],"backdrop-grayscale":[{"backdrop-grayscale":["",O,g,L]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[O,g,L]}],"backdrop-invert":[{"backdrop-invert":["",O,g,L]}],"backdrop-opacity":[{"backdrop-opacity":[O,g,L]}],"backdrop-saturate":[{"backdrop-saturate":[O,g,L]}],"backdrop-sepia":[{"backdrop-sepia":["",O,g,L]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":c()}],"border-spacing-x":[{"border-spacing-x":c()}],"border-spacing-y":[{"border-spacing-y":c()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",g,L]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[O,"initial",g,L]}],ease:[{ease:["linear","initial",B,g,L]}],delay:[{delay:[O,g,L]}],animate:[{animate:["none",k,g,L]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,g,L]}],"perspective-origin":[{"perspective-origin":M()}],rotate:[{rotate:Ge()}],"rotate-x":[{"rotate-x":Ge()}],"rotate-y":[{"rotate-y":Ge()}],"rotate-z":[{"rotate-z":Ge()}],scale:[{scale:Ve()}],"scale-x":[{"scale-x":Ve()}],"scale-y":[{"scale-y":Ve()}],"scale-z":[{"scale-z":Ve()}],"scale-3d":["scale-3d"],skew:[{skew:ra()}],"skew-x":[{"skew-x":ra()}],"skew-y":[{"skew-y":ra()}],transform:[{transform:[g,L,"","none","gpu","cpu"]}],"transform-origin":[{origin:M()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Ye()}],"translate-x":[{"translate-x":Ye()}],"translate-y":[{"translate-y":Ye()}],"translate-z":[{"translate-z":Ye()}],"translate-none":["translate-none"],zoom:[{zoom:[Ce,g,L]}],accent:[{accent:I()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",g,L]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":I()}],"scrollbar-track-color":[{"scrollbar-track":I()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":c()}],"scroll-mx":[{"scroll-mx":c()}],"scroll-my":[{"scroll-my":c()}],"scroll-ms":[{"scroll-ms":c()}],"scroll-me":[{"scroll-me":c()}],"scroll-mbs":[{"scroll-mbs":c()}],"scroll-mbe":[{"scroll-mbe":c()}],"scroll-mt":[{"scroll-mt":c()}],"scroll-mr":[{"scroll-mr":c()}],"scroll-mb":[{"scroll-mb":c()}],"scroll-ml":[{"scroll-ml":c()}],"scroll-p":[{"scroll-p":c()}],"scroll-px":[{"scroll-px":c()}],"scroll-py":[{"scroll-py":c()}],"scroll-ps":[{"scroll-ps":c()}],"scroll-pe":[{"scroll-pe":c()}],"scroll-pbs":[{"scroll-pbs":c()}],"scroll-pbe":[{"scroll-pbe":c()}],"scroll-pt":[{"scroll-pt":c()}],"scroll-pr":[{"scroll-pr":c()}],"scroll-pb":[{"scroll-pb":c()}],"scroll-pl":[{"scroll-pl":c()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",g,L]}],fill:[{fill:["none",...I()]}],"stroke-w":[{stroke:[O,ha,He,hr]}],stroke:[{stroke:["none",...I()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var Ar=Uu(ld);function q(...e){return Ar(Wa(e))}var Br=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Tr=Wa,Rr=(e,a)=>t=>{var o;if(a?.variants==null)return Tr(e,t?.class,t?.className);let{variants:r,defaultVariants:s}=a,l=Object.keys(r).map(n=>{let i=t?.[n],f=s?.[n];if(i===null)return null;let h=Br(i)||Br(f);return r[n][h]}),u=t&&Object.entries(t).reduce((n,i)=>{let[f,h]=i;return h===void 0||(n[f]=h),n},{}),d=a==null||(o=a.compoundVariants)===null||o===void 0?void 0:o.reduce((n,i)=>{let{class:f,className:h,...x}=i;return Object.entries(x).every(y=>{let[w,b]=y;return Array.isArray(b)?b.includes({...s,...u}[w]):{...s,...u}[w]===b})?[...n,f,h]:n},[]);return Tr(e,l,d,t?.class,t?.className)};var za={};La(za,{Root:()=>dd,Slot:()=>dd,Slottable:()=>nd,createSlot:()=>Nr,createSlottable:()=>zr});import*as ae from"react";import*as Wr from"react";function qr(e,a){if(typeof e=="function")return e(a);e!=null&&(e.current=a)}function ud(...e){return a=>{let t=!1,o=e.map(r=>{let s=qr(r,a);return!t&&typeof s=="function"&&(t=!0),s});if(t)return()=>{for(let r=0;r{let{children:r,...s}=t,l=null,u=!1,d=[];Hr(r)&&typeof Ea=="function"&&(r=Ea(r._payload)),ae.Children.forEach(r,h=>{if(md(h)){u=!0;let x=h,y="child"in x.props?x.props.child:x.props.children;Hr(y)&&typeof Ea=="function"&&(y=Ea(y._payload)),l=fd(x,y),d.push(l?.props?.children)}else d.push(h)}),l?l=ae.cloneElement(l,void 0,d):!u&&ae.Children.count(r)===1&&ae.isValidElement(r)&&(l=r);let n=l?cd(l):void 0,i=Ur(o,n);if(!l){if(r||r===0)throw new Error(u?Ld(e):xd(e));return r}let f=id(s,l.props??{});return l.type!==ae.Fragment&&(f.ref=o?i:n),ae.cloneElement(l,f)});return a.displayName=`${e}.Slot`,a}var dd=Nr("Slot"),Er=Symbol.for("radix.slottable");function zr(e){let a=t=>"child"in t?t.children(t.child):t.children;return a.displayName=`${e}.Slottable`,a.__radixId=Er,a}var nd=zr("Slottable"),fd=(e,a)=>{if("child"in e.props){let t=e.props.child;return ae.isValidElement(t)?ae.cloneElement(t,void 0,e.props.children(t.props.children)):null}return ae.isValidElement(a)?a:null};function id(e,a){let t={...a};for(let o in a){let r=e[o],s=a[o];/^on[A-Z]/.test(o)?r&&s?t[o]=(...u)=>{let d=s(...u);return r(...u),d}:r&&(t[o]=r):o==="style"?t[o]={...r,...s}:o==="className"&&(t[o]=[r,s].filter(Boolean).join(" "))}return{...e,...t}}function cd(e){let a=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning;return t?e.ref:(a=Object.getOwnPropertyDescriptor(e,"ref")?.get,t=a&&"isReactWarning"in a&&a.isReactWarning,t?e.props.ref:e.props.ref||e.ref)}function md(e){return ae.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Er}var pd=Symbol.for("react.lazy");function Hr(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===pd&&"_payload"in e&&hd(e._payload)}function hd(e){return typeof e=="object"&&e!==null&&"then"in e}var xd=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Ld=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Ea=ae[" use ".trim().toString()];import{jsx as gd}from"react/jsx-runtime";var Ga=Rr("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function Gr({className:e,variant:a="default",size:t="default",asChild:o=!1,...r}){let s=o?za.Root:"button";return gd(s,{"data-slot":"button","data-variant":a,"data-size":t,className:q(Ga({variant:a,size:t,className:e})),...r})}import{jsx as Ae}from"react/jsx-runtime";function RL({className:e,classNames:a,showOutsideDays:t=!0,captionLayout:o="label",buttonVariant:r="ghost",formatters:s,components:l,...u}){let d=ma();return Ae(fr,{showOutsideDays:t,className:q("group/calendar bg-background p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent",String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:o,formatters:{formatMonthDropdown:n=>n.toLocaleString("default",{month:"short"}),...s},classNames:{root:q("w-fit",d.root),months:q("relative flex flex-col gap-4 md:flex-row",d.months),month:q("flex w-full flex-col gap-4",d.month),nav:q("absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1",d.nav),button_previous:q(Ga({variant:r}),"size-(--cell-size) p-0 select-none aria-disabled:opacity-50",d.button_previous),button_next:q(Ga({variant:r}),"size-(--cell-size) p-0 select-none aria-disabled:opacity-50",d.button_next),month_caption:q("flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)",d.month_caption),dropdowns:q("flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium",d.dropdowns),dropdown_root:q("relative rounded-md border border-input shadow-xs has-focus:border-ring has-focus:ring-[3px] has-focus:ring-ring/50",d.dropdown_root),dropdown:q("absolute inset-0 bg-popover opacity-0",d.dropdown),caption_label:q("font-medium select-none",o==="label"?"text-sm":"flex h-8 items-center gap-1 rounded-md pr-1 pl-2 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground",d.caption_label),table:"w-full border-collapse",weekdays:q("flex",d.weekdays),weekday:q("flex-1 rounded-md text-[0.8rem] font-normal text-muted-foreground select-none",d.weekday),week:q("mt-2 flex w-full",d.week),week_number_header:q("w-(--cell-size) select-none",d.week_number_header),week_number:q("text-[0.8rem] text-muted-foreground select-none",d.week_number),day:q("group/day relative aspect-square h-full w-full p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-md",u.showWeekNumber?"[&:nth-child(2)[data-selected=true]_button]:rounded-l-md":"[&:first-child[data-selected=true]_button]:rounded-l-md",d.day),range_start:q("rounded-l-md bg-accent",d.range_start),range_middle:q("rounded-none",d.range_middle),range_end:q("rounded-r-md bg-accent",d.range_end),today:q("rounded-md bg-accent text-accent-foreground data-[selected=true]:rounded-none",d.today),outside:q("text-muted-foreground aria-selected:text-muted-foreground",d.outside),disabled:q("text-muted-foreground opacity-50",d.disabled),hidden:q("invisible",d.hidden),...a},components:{Root:({className:n,rootRef:i,...f})=>Ae("div",{"data-slot":"calendar",ref:i,className:q(n),...f}),Chevron:({className:n,orientation:i,...f})=>i==="left"?Ae(la,{className:q("size-4",n),...f}):i==="right"?Ae(ua,{className:q("size-4",n),...f}):Ae(sa,{className:q("size-4",n),...f}),DayButton:Id,WeekNumber:({children:n,...i})=>Ae("td",{...i,children:Ae("div",{className:"flex size-(--cell-size) items-center justify-center text-center",children:n})}),...l},...u})}function Id({className:e,day:a,modifiers:t,...o}){let r=ma(),s=Va.useRef(null);return Va.useEffect(()=>{t.focused&&s.current?.focus()},[t.focused]),Ae(Gr,{ref:s,variant:"ghost",size:"icon","data-day":a.date.toLocaleDateString(),"data-selected-single":t.selected&&!t.range_start&&!t.range_end&&!t.range_middle,"data-range-start":t.range_start,"data-range-end":t.range_end,"data-range-middle":t.range_middle,className:q("flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-accent-foreground [&>span]:text-xs [&>span]:opacity-70",r.day,e),...o})}export{RL as Calendar,Id as CalendarDayButton}; +/*! Bundled license information: + +lucide-react/dist/esm/shared/src/utils.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/defaultAttributes.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/Icon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/createLucideIcon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/chevron-down.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/chevron-left.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/chevron-right.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/lucide-react.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/b/3db3f8cb756cb0985a00ee7234e0a7a151f2470a373806d5318083993c780416 b/b/3db3f8cb756cb0985a00ee7234e0a7a151f2470a373806d5318083993c780416 new file mode 100644 index 0000000000000000000000000000000000000000..477ffdb31efba67b4a0e00d816b27b7656ac06f5 --- /dev/null +++ b/b/3db3f8cb756cb0985a00ee7234e0a7a151f2470a373806d5318083993c780416 @@ -0,0 +1,11 @@ +import { Label } from "@/registry/new-york-v4/ui/label" +import { Switch } from "@/registry/new-york-v4/ui/switch" + +export default function SwitchDemo() { + return ( +
+ + +
+ ) +} diff --git a/b/3db71caca238f37f2f2bf3c3641fb0864b5cfec42221c1695b4194e7775f11ad b/b/3db71caca238f37f2f2bf3c3641fb0864b5cfec42221c1695b4194e7775f11ad new file mode 100644 index 0000000000000000000000000000000000000000..5dd4315de57410d947e45177f3419fd636060ee6 --- /dev/null +++ b/b/3db71caca238f37f2f2bf3c3641fb0864b5cfec42221c1695b4194e7775f11ad @@ -0,0 +1,99 @@ +var Bl=Object.defineProperty;var $o=(e,t)=>{for(var a in t)Bl(e,a,{get:t[a],enumerable:!0})};import*as Gt from"react";var El=Gt.forwardRef(function({href:t,replace:a,scroll:o,prefetch:r,locale:s,shallow:n,passHref:l,legacyBehavior:f,children:u,...i},d){let c=typeof t=="string"?t:t&&(t.pathname||"")||"#";return Gt.createElement("a",{ref:d,href:c,...i},u)}),Ta=El;import{forwardRef as Ul,createElement as Nl}from"react";var Yo=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),zt=(...e)=>e.filter((t,a,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===a).join(" ").trim();import{forwardRef as ql,createElement as Jo}from"react";var Zo={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Qo=ql(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:r="",children:s,iconNode:n,...l},f)=>Jo("svg",{ref:f,...Zo,width:t,height:t,stroke:e,strokeWidth:o?Number(a)*24/Number(t):a,className:zt("lucide",r),...l},[...n.map(([u,i])=>Jo(u,i)),...Array.isArray(s)?s:[s]]));var Wt=(e,t)=>{let a=Ul(({className:o,...r},s)=>Nl(Qo,{ref:s,iconNode:t,className:zt(`lucide-${Yo(e)}`,o),...r}));return a.displayName=`${e}`,a};var Ct=Wt("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var _e=Wt("Ellipsis",[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]]);import*as sr from"react";import*as nr from"react-dom";var Xt={};$o(Xt,{Root:()=>_l,Slot:()=>_l,Slottable:()=>Hl,createSlot:()=>Oe,createSlottable:()=>rr});import*as oe from"react";import*as tr from"react";function er(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function wt(...e){return t=>{let a=!1,o=e.map(r=>{let s=er(r,t);return!a&&typeof s=="function"&&(a=!0),s});if(a)return()=>{for(let r=0;r{let{children:r,...s}=a,n=null,l=!1,f=[];ar(r)&&typeof Vt=="function"&&(r=Vt(r._payload)),oe.Children.forEach(r,c=>{if(Vl(c)){l=!0;let p=c,h="child"in p.props?p.props.child:p.props.children;ar(h)&&typeof Vt=="function"&&(h=Vt(h._payload)),n=Gl(p,h),f.push(n?.props?.children)}else f.push(c)}),n?n=oe.cloneElement(n,void 0,f):!l&&oe.Children.count(r)===1&&oe.isValidElement(r)&&(n=r);let u=n?Wl(n):void 0,i=j(o,u);if(!n){if(r||r===0)throw new Error(l?$l(e):jl(e));return r}let d=zl(s,n.props??{});return n.type!==oe.Fragment&&(d.ref=o?i:u),oe.cloneElement(n,d)});return t.displayName=`${e}.Slot`,t}var _l=Oe("Slot"),or=Symbol.for("radix.slottable");function rr(e){let t=a=>"child"in a?a.children(a.child):a.children;return t.displayName=`${e}.Slottable`,t.__radixId=or,t}var Hl=rr("Slottable"),Gl=(e,t)=>{if("child"in e.props){let a=e.props.child;return oe.isValidElement(a)?oe.cloneElement(a,void 0,e.props.children(a.props.children)):null}return oe.isValidElement(t)?t:null};function zl(e,t){let a={...t};for(let o in t){let r=e[o],s=t[o];/^on[A-Z]/.test(o)?r&&s?a[o]=(...l)=>{let f=s(...l);return r(...l),f}:r&&(a[o]=r):o==="style"?a[o]={...r,...s}:o==="className"&&(a[o]=[r,s].filter(Boolean).join(" "))}return{...e,...a}}function Wl(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning;return a?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}function Vl(e){return oe.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===or}var Xl=Symbol.for("react.lazy");function ar(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Xl&&"_payload"in e&&Kl(e._payload)}function Kl(e){return typeof e=="object"&&e!==null&&"then"in e}var jl=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,$l=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Vt=oe[" use ".trim().toString()];import{jsx as Yl}from"react/jsx-runtime";var Zl=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],V=Zl.reduce((e,t)=>{let a=Oe(`Primitive.${t}`),o=sr.forwardRef((r,s)=>{let{asChild:n,...l}=r,f=n?a:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),Yl(f,{...l,ref:s})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function Kt(e,t){e&&nr.flushSync(()=>e.dispatchEvent(t))}import*as Be from"react";import{jsx as Jl}from"react/jsx-runtime";function ye(e,t=[]){let a=[];function o(s,n){let l=Be.createContext(n);l.displayName=s+"Context";let f=a.length;a=[...a,n];let u=d=>{let{scope:c,children:p,...h}=d,m=c?.[e]?.[f]||l,x=Be.useMemo(()=>h,Object.values(h));return Jl(m.Provider,{value:x,children:p})};u.displayName=s+"Provider";function i(d,c){let p=c?.[e]?.[f]||l,h=Be.useContext(p);if(h)return h;if(n!==void 0)return n;throw new Error(`\`${d}\` must be used within \`${s}\``)}return[u,i]}let r=()=>{let s=a.map(n=>Be.createContext(n));return function(l){let f=l?.[e]||s;return Be.useMemo(()=>({[`__scope${e}`]:{...l,[e]:f}}),[l,f])}};return r.scopeName=e,[o,Ql(r,...t)]}function Ql(...e){let t=e[0];if(e.length===1)return t;let a=()=>{let o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(s){let n=o.reduce((l,{useScope:f,scopeName:u})=>{let d=f(s)[`__scope${u}`];return{...l,...d}},{});return Be.useMemo(()=>({[`__scope${t.scopeName}`]:n}),[n])}};return a.scopeName=t.scopeName,a}import*as we from"react";import{jsx as Fa}from"react/jsx-runtime";import*as $t from"react";import{jsx as Cc}from"react/jsx-runtime";function jt(e){let t=e+"CollectionProvider",[a,o]=ye(t),[r,s]=a(t,{collectionRef:{current:null},itemMap:new Map}),n=m=>{let{scope:x,children:g}=m,I=we.useRef(null),C=we.useRef(new Map).current;return Fa(r,{scope:x,itemMap:C,collectionRef:I,children:g})};n.displayName=t;let l=e+"CollectionSlot",f=Oe(l),u=we.forwardRef((m,x)=>{let{scope:g,children:I}=m,C=s(l,g),w=j(x,C.collectionRef);return Fa(f,{ref:w,children:I})});u.displayName=l;let i=e+"CollectionItemSlot",d="data-radix-collection-item",c=Oe(i),p=we.forwardRef((m,x)=>{let{scope:g,children:I,...C}=m,w=we.useRef(null),b=j(x,w),y=s(i,g);return we.useEffect(()=>(y.itemMap.set(w,{ref:w,...C}),()=>void y.itemMap.delete(w))),Fa(c,{[d]:"",ref:b,children:I})});p.displayName=i;function h(m){let x=s(e+"CollectionConsumer",m);return we.useCallback(()=>{let I=x.collectionRef.current;if(!I)return[];let C=Array.from(I.querySelectorAll(`[${d}]`));return Array.from(x.itemMap.values()).sort((y,S)=>C.indexOf(y.ref.current)-C.indexOf(S.ref.current))},[x.collectionRef,x.itemMap])}return[{Provider:n,Slot:u,ItemSlot:p},h,o]}var Sc=!!(typeof window<"u"&&window.document&&window.document.createElement);function B(e,t,{checkForDefaultPrevented:a=!0}={}){return function(r){if(e?.(r),a===!1||!r.defaultPrevented)return t?.(r)}}import*as me from"react";import*as lr from"react";var de=globalThis?.document?lr.useLayoutEffect:()=>{};import*as Yt from"react";var eu=me[" useInsertionEffect ".trim().toString()]||de;function St({prop:e,defaultProp:t,onChange:a=()=>{},caller:o}){let[r,s,n]=tu({defaultProp:t,onChange:a}),l=e!==void 0,f=l?e:r;{let i=me.useRef(e!==void 0);me.useEffect(()=>{let d=i.current;d!==l&&console.warn(`${o} is changing from ${d?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),i.current=l},[l,o])}let u=me.useCallback(i=>{if(l){let d=au(i)?i(e):i;d!==e&&n.current?.(d)}else s(i)},[l,e,s,n]);return[f,u]}function tu({defaultProp:e,onChange:t}){let[a,o]=me.useState(e),r=me.useRef(a),s=me.useRef(t);return eu(()=>{s.current=t},[t]),me.useEffect(()=>{r.current!==a&&(s.current?.(a),r.current=a)},[a,r]),[a,o,s]}function au(e){return typeof e=="function"}var Rc=Symbol("RADIX:SYNC_STATE");import*as se from"react";import*as dr from"react";function ou(e,t){return dr.useReducer((a,o)=>t[a][o]??a,e)}var it=e=>{let{present:t,children:a}=e,o=ru(t),r=typeof a=="function"?a({present:o.isPresent}):se.Children.only(a),s=su(o.ref,nu(r));return typeof a=="function"||o.isPresent?se.cloneElement(r,{ref:s}):null};it.displayName="Presence";function ru(e){let[t,a]=se.useState(),o=se.useRef(null),r=se.useRef(e),s=se.useRef("none"),n=e?"mounted":"unmounted",[l,f]=ou(n,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return se.useEffect(()=>{let u=Zt(o.current);s.current=l==="mounted"?u:"none"},[l]),de(()=>{let u=o.current,i=r.current;if(i!==e){let c=s.current,p=Zt(u);e?f("MOUNT"):p==="none"||u?.display==="none"?f("UNMOUNT"):f(i&&c!==p?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,f]),de(()=>{if(t){let u,i=t.ownerDocument.defaultView??window,d=p=>{let m=Zt(o.current).includes(CSS.escape(p.animationName));if(p.target===t&&m&&(f("ANIMATION_END"),!r.current)){let x=t.style.animationFillMode;t.style.animationFillMode="forwards",u=i.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=x)})}},c=p=>{p.target===t&&(s.current=Zt(o.current))};return t.addEventListener("animationstart",c),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{i.clearTimeout(u),t.removeEventListener("animationstart",c),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else f("ANIMATION_END")},[t,f]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:se.useCallback(u=>{o.current=u?getComputedStyle(u):null,a(u)},[])}}function ur(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function su(...e){let t=se.useRef(e);return t.current=e,se.useCallback(a=>{let o=t.current,r=!1,s=o.map(n=>{let l=ur(n,a);return!r&&typeof l=="function"&&(r=!0),l});if(r)return()=>{for(let n=0;n{}),uu=0;function He(e){let[t,a]=Oa.useState(lu());return de(()=>{e||a(o=>o??String(uu++))},[e]),e||(t?`radix-${t}`:"")}import*as Jt from"react";import{jsx as Fc}from"react/jsx-runtime";var du=Jt.createContext(void 0);function Qt(e){let t=Jt.useContext(du);return e||t||"ltr"}import*as X from"react";import*as ft from"react";function ne(e){let t=ft.useRef(e);return ft.useEffect(()=>{t.current=e}),ft.useMemo(()=>(...a)=>t.current?.(...a),[])}import*as ir from"react";function fr(e,t=globalThis?.document){let a=ne(e);ir.useEffect(()=>{let o=r=>{r.key==="Escape"&&a(r)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[a,t])}import{jsx as mr}from"react/jsx-runtime";var iu="DismissableLayer",Ba="dismissableLayer.update",fu="dismissableLayer.pointerDownOutside",cu="dismissableLayer.focusOutside",cr,hr=X.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Ea=X.forwardRef((e,t)=>{let{disableOutsidePointerEvents:a=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:s,onInteractOutside:n,onDismiss:l,...f}=e,u=X.useContext(hr),[i,d]=X.useState(null),c=i?.ownerDocument??globalThis?.document,[,p]=X.useState({}),h=j(t,S=>d(S)),m=Array.from(u.layers),[x]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),g=m.indexOf(x),I=i?m.indexOf(i):-1,C=u.layersWithOutsidePointerEventsDisabled.size>0,w=I>=g,b=hu(S=>{let L=S.target,F=[...u.branches].some(E=>E.contains(L));!w||F||(r?.(S),n?.(S),S.defaultPrevented||l?.())},c),y=xu(S=>{let L=S.target;[...u.branches].some(E=>E.contains(L))||(s?.(S),n?.(S),S.defaultPrevented||l?.())},c);return fr(S=>{I===u.layers.size-1&&(o?.(S),!S.defaultPrevented&&l&&(S.preventDefault(),l()))},c),X.useEffect(()=>{if(i)return a&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(cr=c.body.style.pointerEvents,c.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(i)),u.layers.add(i),pr(),()=>{a&&(u.layersWithOutsidePointerEventsDisabled.delete(i),u.layersWithOutsidePointerEventsDisabled.size===0&&(c.body.style.pointerEvents=cr))}},[i,c,a,u]),X.useEffect(()=>()=>{i&&(u.layers.delete(i),u.layersWithOutsidePointerEventsDisabled.delete(i),pr())},[i,u]),X.useEffect(()=>{let S=()=>p({});return document.addEventListener(Ba,S),()=>document.removeEventListener(Ba,S)},[]),mr(V.div,{...f,ref:h,style:{pointerEvents:C?w?"auto":"none":void 0,...e.style},onFocusCapture:B(e.onFocusCapture,y.onFocusCapture),onBlurCapture:B(e.onBlurCapture,y.onBlurCapture),onPointerDownCapture:B(e.onPointerDownCapture,b.onPointerDownCapture)})});Ea.displayName=iu;var pu="DismissableLayerBranch",mu=X.forwardRef((e,t)=>{let a=X.useContext(hr),o=X.useRef(null),r=j(t,o);return X.useEffect(()=>{let s=o.current;if(s)return a.branches.add(s),()=>{a.branches.delete(s)}},[a.branches]),mr(V.div,{...e,ref:r})});mu.displayName=pu;function hu(e,t=globalThis?.document){let a=ne(e),o=X.useRef(!1),r=X.useRef(()=>{});return X.useEffect(()=>{let s=l=>{if(l.target&&!o.current){let u=function(){xr(fu,a,i,{discrete:!0})};var f=u;let i={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=u,t.addEventListener("click",r.current,{once:!0})):u()}else t.removeEventListener("click",r.current);o.current=!1},n=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(n),t.removeEventListener("pointerdown",s),t.removeEventListener("click",r.current)}},[t,a]),{onPointerDownCapture:()=>o.current=!0}}function xu(e,t=globalThis?.document){let a=ne(e),o=X.useRef(!1);return X.useEffect(()=>{let r=s=>{s.target&&!o.current&&xr(cu,a,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,a]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function pr(){let e=new CustomEvent(Ba);document.dispatchEvent(e)}function xr(e,t,a,{discrete:o}){let r=a.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:a});t&&r.addEventListener(e,t,{once:!0}),o?Kt(r,s):r.dispatchEvent(s)}import*as he from"react";import{jsx as gu}from"react/jsx-runtime";var qa="focusScope.autoFocusOnMount",Ua="focusScope.autoFocusOnUnmount",gr={bubbles:!1,cancelable:!0},Lu="FocusScope",Na=he.forwardRef((e,t)=>{let{loop:a=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:s,...n}=e,[l,f]=he.useState(null),u=ne(r),i=ne(s),d=he.useRef(null),c=j(t,m=>f(m)),p=he.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;he.useEffect(()=>{if(o){let I=function(y){if(p.paused||!l)return;let S=y.target;l.contains(S)?d.current=S:Ge(d.current,{select:!0})},C=function(y){if(p.paused||!l)return;let S=y.relatedTarget;S!==null&&(l.contains(S)||Ge(d.current,{select:!0}))},w=function(y){if(document.activeElement===document.body)for(let L of y)L.removedNodes.length>0&&Ge(l)};var m=I,x=C,g=w;document.addEventListener("focusin",I),document.addEventListener("focusout",C);let b=new MutationObserver(w);return l&&b.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",I),document.removeEventListener("focusout",C),b.disconnect()}}},[o,l,p.paused]),he.useEffect(()=>{if(l){Ir.add(p);let m=document.activeElement;if(!l.contains(m)){let g=new CustomEvent(qa,gr);l.addEventListener(qa,u),l.dispatchEvent(g),g.defaultPrevented||(Iu(bu(wr(l)),{select:!0}),document.activeElement===m&&Ge(l))}return()=>{l.removeEventListener(qa,u),setTimeout(()=>{let g=new CustomEvent(Ua,gr);l.addEventListener(Ua,i),l.dispatchEvent(g),g.defaultPrevented||Ge(m??document.body,{select:!0}),l.removeEventListener(Ua,i),Ir.remove(p)},0)}}},[l,u,i,p]);let h=he.useCallback(m=>{if(!a&&!o||p.paused)return;let x=m.key==="Tab"&&!m.altKey&&!m.ctrlKey&&!m.metaKey,g=document.activeElement;if(x&&g){let I=m.currentTarget,[C,w]=Cu(I);C&&w?!m.shiftKey&&g===w?(m.preventDefault(),a&&Ge(C,{select:!0})):m.shiftKey&&g===C&&(m.preventDefault(),a&&Ge(w,{select:!0})):g===I&&m.preventDefault()}},[a,o,p.paused]);return gu(V.div,{tabIndex:-1,...n,ref:c,onKeyDown:h})});Na.displayName=Lu;function Iu(e,{select:t=!1}={}){let a=document.activeElement;for(let o of e)if(Ge(o,{select:t}),document.activeElement!==a)return}function Cu(e){let t=wr(e),a=Lr(t,e),o=Lr(t.reverse(),e);return[a,o]}function wr(e){let t=[],a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{let r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;a.nextNode();)t.push(a.currentNode);return t}function Lr(e,t){for(let a of e)if(!wu(a,{upTo:t}))return a}function wu(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function Su(e){return e instanceof HTMLInputElement&&"select"in e}function Ge(e,{select:t=!1}={}){if(e&&e.focus){let a=document.activeElement;e.focus({preventScroll:!0}),e!==a&&Su(e)&&t&&e.select()}}var Ir=vu();function vu(){let e=[];return{add(t){let a=e[0];t!==a&&a?.pause(),e=Cr(e,t),e.unshift(t)},remove(t){e=Cr(e,t),e[0]?.resume()}}}function Cr(e,t){let a=[...e],o=a.indexOf(t);return o!==-1&&a.splice(o,1),a}function bu(e){return e.filter(t=>t.tagName!=="A")}import*as ea from"react";import*as Sr from"react-dom";import{jsx as yu}from"react/jsx-runtime";var Ru="Portal",_a=ea.forwardRef((e,t)=>{let{container:a,...o}=e,[r,s]=ea.useState(!1);de(()=>s(!0),[]);let n=a||r&&globalThis?.document?.body;return n?Sr.createPortal(yu(V.div,{...o,ref:t}),n):null});_a.displayName=Ru;import*as br from"react";var ta=0,ct=null;function yr(){br.useEffect(()=>{ct||(ct={start:vr(),end:vr()});let{start:e,end:t}=ct;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),ta++,()=>{ta===1&&(ct?.start.remove(),ct?.end.remove(),ct=null),ta=Math.max(0,ta-1)}},[])}function vr(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var fe=function(){return fe=Object.assign||function(t){for(var a,o=1,r=arguments.length;o"u")return Ou;var t=Bu(e),a=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-a+t[2]-t[0])}};var Eu=bt(),pt="data-scroll-locked",qu=function(e,t,a,o){var r=e.left,s=e.top,n=e.right,l=e.gap;return a===void 0&&(a="margin"),` + .`.concat(Ha,` { + overflow: hidden `).concat(o,`; + padding-right: `).concat(l,"px ").concat(o,`; + } + body[`).concat(pt,`] { + overflow: hidden `).concat(o,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(o,";"),a==="margin"&&` + padding-left: `.concat(r,`px; + padding-top: `).concat(s,`px; + padding-right: `).concat(n,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(l,"px ").concat(o,`; + `),a==="padding"&&"padding-right: ".concat(l,"px ").concat(o,";")].filter(Boolean).join(""),` + } + + .`).concat(Ke,` { + right: `).concat(l,"px ").concat(o,`; + } + + .`).concat(je,` { + margin-right: `).concat(l,"px ").concat(o,`; + } + + .`).concat(Ke," .").concat(Ke,` { + right: 0 `).concat(o,`; + } + + .`).concat(je," .").concat(je,` { + margin-right: 0 `).concat(o,`; + } + + body[`).concat(pt,`] { + `).concat(Ga,": ").concat(l,`px; + } +`)},Or=function(){var e=parseInt(document.body.getAttribute(pt)||"0",10);return isFinite(e)?e:0},Uu=function(){mt.useEffect(function(){return document.body.setAttribute(pt,(Or()+1).toString()),function(){var e=Or()-1;e<=0?document.body.removeAttribute(pt):document.body.setAttribute(pt,e.toString())}},[])},Za=function(e){var t=e.noRelative,a=e.noImportant,o=e.gapMode,r=o===void 0?"margin":o;Uu();var s=mt.useMemo(function(){return Ya(r)},[r]);return mt.createElement(Eu,{styles:qu(s,!t,r,a?"":"!important")})};var Ja=!1;if(typeof window<"u")try{yt=Object.defineProperty({},"passive",{get:function(){return Ja=!0,!0}}),window.addEventListener("test",yt,yt),window.removeEventListener("test",yt,yt)}catch{Ja=!1}var yt,$e=Ja?{passive:!1}:!1;var Nu=function(e){return e.tagName==="TEXTAREA"},Br=function(e,t){if(!(e instanceof Element))return!1;var a=window.getComputedStyle(e);return a[t]!=="hidden"&&!(a.overflowY===a.overflowX&&!Nu(e)&&a[t]==="visible")},_u=function(e){return Br(e,"overflowY")},Hu=function(e){return Br(e,"overflowX")},Qa=function(e,t){var a=t.ownerDocument,o=t;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=Er(e,o);if(r){var s=qr(e,o),n=s[1],l=s[2];if(n>l)return!0}o=o.parentNode}while(o&&o!==a.body);return!1},Gu=function(e){var t=e.scrollTop,a=e.scrollHeight,o=e.clientHeight;return[t,a,o]},zu=function(e){var t=e.scrollLeft,a=e.scrollWidth,o=e.clientWidth;return[t,a,o]},Er=function(e,t){return e==="v"?_u(t):Hu(t)},qr=function(e,t){return e==="v"?Gu(t):zu(t)},Wu=function(e,t){return e==="h"&&t==="rtl"?-1:1},Ur=function(e,t,a,o,r){var s=Wu(e,window.getComputedStyle(t).direction),n=s*o,l=a.target,f=t.contains(l),u=!1,i=n>0,d=0,c=0;do{if(!l)break;var p=qr(e,l),h=p[0],m=p[1],x=p[2],g=m-x-s*h;(h||g)&&Er(e,l)&&(d+=g,c+=h);var I=l.parentNode;l=I&&I.nodeType===Node.DOCUMENT_FRAGMENT_NODE?I.host:I}while(!f&&l!==document.body||f&&(t.contains(l)||t===l));return(i&&(r&&Math.abs(d)<1||!r&&n>d)||!i&&(r&&Math.abs(c)<1||!r&&-n>c))&&(u=!0),u};var na=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Nr=function(e){return[e.deltaX,e.deltaY]},_r=function(e){return e&&"current"in e?e.current:e},Vu=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Xu=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Ku=0,ht=[];function Hr(e){var t=G.useRef([]),a=G.useRef([0,0]),o=G.useRef(),r=G.useState(Ku++)[0],s=G.useState(bt)[0],n=G.useRef(e);G.useEffect(function(){n.current=e},[e]),G.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var m=Rr([e.lockRef.current],(e.shards||[]).map(_r),!0).filter(Boolean);return m.forEach(function(x){return x.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),m.forEach(function(x){return x.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var l=G.useCallback(function(m,x){if("touches"in m&&m.touches.length===2||m.type==="wheel"&&m.ctrlKey)return!n.current.allowPinchZoom;var g=na(m),I=a.current,C="deltaX"in m?m.deltaX:I[0]-g[0],w="deltaY"in m?m.deltaY:I[1]-g[1],b,y=m.target,S=Math.abs(C)>Math.abs(w)?"h":"v";if("touches"in m&&S==="h"&&y.type==="range")return!1;var L=window.getSelection(),F=L&&L.anchorNode,E=F?F===y||F.contains(y):!1;if(E)return!1;var q=Qa(S,y);if(!q)return!0;if(q?b=S:(b=S==="v"?"h":"v",q=Qa(S,y)),!q)return!1;if(!o.current&&"changedTouches"in m&&(C||w)&&(o.current=b),!b)return!0;var N=o.current||b;return Ur(N,x,m,N==="h"?C:w,!0)},[]),f=G.useCallback(function(m){var x=m;if(!(!ht.length||ht[ht.length-1]!==s)){var g="deltaY"in x?Nr(x):na(x),I=t.current.filter(function(b){return b.name===x.type&&(b.target===x.target||x.target===b.shadowParent)&&Vu(b.delta,g)})[0];if(I&&I.should){x.cancelable&&x.preventDefault();return}if(!I){var C=(n.current.shards||[]).map(_r).filter(Boolean).filter(function(b){return b.contains(x.target)}),w=C.length>0?l(x,C[0]):!n.current.noIsolation;w&&x.cancelable&&x.preventDefault()}}},[]),u=G.useCallback(function(m,x,g,I){var C={name:m,delta:x,target:g,should:I,shadowParent:ju(g)};t.current.push(C),setTimeout(function(){t.current=t.current.filter(function(w){return w!==C})},1)},[]),i=G.useCallback(function(m){a.current=na(m),o.current=void 0},[]),d=G.useCallback(function(m){u(m.type,Nr(m),m.target,l(m,e.lockRef.current))},[]),c=G.useCallback(function(m){u(m.type,na(m),m.target,l(m,e.lockRef.current))},[]);G.useEffect(function(){return ht.push(s),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:c}),document.addEventListener("wheel",f,$e),document.addEventListener("touchmove",f,$e),document.addEventListener("touchstart",i,$e),function(){ht=ht.filter(function(m){return m!==s}),document.removeEventListener("wheel",f,$e),document.removeEventListener("touchmove",f,$e),document.removeEventListener("touchstart",i,$e)}},[]);var p=e.removeScrollBar,h=e.inert;return G.createElement(G.Fragment,null,h?G.createElement(s,{styles:Xu(r)}):null,p?G.createElement(Za,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function ju(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Gr=Va(sa,Hr);var zr=la.forwardRef(function(e,t){return la.createElement(vt,fe({},e,{ref:t,sideCar:Gr}))});zr.classNames=vt.classNames;var eo=zr;var $u=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},xt=new WeakMap,ua=new WeakMap,da={},to=0,Wr=function(e){return e&&(e.host||Wr(e.parentNode))},Yu=function(e,t){return t.map(function(a){if(e.contains(a))return a;var o=Wr(a);return o&&e.contains(o)?o:(console.error("aria-hidden",a,"in not contained inside",e,". Doing nothing"),null)}).filter(function(a){return!!a})},Zu=function(e,t,a,o){var r=Yu(t,Array.isArray(e)?e:[e]);da[a]||(da[a]=new WeakMap);var s=da[a],n=[],l=new Set,f=new Set(r),u=function(d){!d||l.has(d)||(l.add(d),u(d.parentNode))};r.forEach(u);var i=function(d){!d||f.has(d)||Array.prototype.forEach.call(d.children,function(c){if(l.has(c))i(c);else try{var p=c.getAttribute(o),h=p!==null&&p!=="false",m=(xt.get(c)||0)+1,x=(s.get(c)||0)+1;xt.set(c,m),s.set(c,x),n.push(c),m===1&&h&&ua.set(c,!0),x===1&&c.setAttribute(a,"true"),h||c.setAttribute(o,"true")}catch(g){console.error("aria-hidden: cannot operate on ",c,g)}})};return i(t),l.clear(),to++,function(){n.forEach(function(d){var c=xt.get(d)-1,p=s.get(d)-1;xt.set(d,c),s.set(d,p),c||(ua.has(d)||d.removeAttribute(o),ua.delete(d)),p||d.removeAttribute(a)}),to--,to||(xt=new WeakMap,xt=new WeakMap,ua=new WeakMap,da={})}},Vr=function(e,t,a){a===void 0&&(a="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=t||$u(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),Zu(o,r,a,"aria-hidden")):function(){return null}};import*as Xr from"react";function Kr(e){let[t,a]=Xr.useState(void 0);return de(()=>{if(e){a({width:e.offsetWidth,height:e.offsetHeight});let o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;let s=r[0],n,l;if("borderBoxSize"in s){let f=s.borderBoxSize,u=Array.isArray(f)?f[0]:f;n=u.inlineSize,l=u.blockSize}else n=e.offsetWidth,l=e.offsetHeight;a({width:n,height:l})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else a(void 0)},[e]),t}import*as A from"react";import*as re from"react";var Yr=["top","right","bottom","left"];var Re=Math.min,ie=Math.max,Pt=Math.round,kt=Math.floor,Se=e=>({x:e,y:e}),Ju={left:"right",right:"left",bottom:"top",top:"bottom"};function fa(e,t,a){return ie(e,Re(t,a))}function Pe(e,t){return typeof e=="function"?e(t):e}function ke(e){return e.split("-")[0]}function Ye(e){return e.split("-")[1]}function ca(e){return e==="x"?"y":"x"}function pa(e){return e==="y"?"height":"width"}function ve(e){let t=e[0];return t==="t"||t==="b"?"y":"x"}function ma(e){return ca(ve(e))}function Zr(e,t,a){a===void 0&&(a=!1);let o=Ye(e),r=ma(e),s=pa(r),n=r==="x"?o===(a?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(n=Rt(n)),[n,Rt(n)]}function Jr(e){let t=Rt(e);return[ia(e),t,ia(t)]}function ia(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}var jr=["left","right"],$r=["right","left"],Qu=["top","bottom"],ed=["bottom","top"];function td(e,t,a){switch(e){case"top":case"bottom":return a?t?$r:jr:t?jr:$r;case"left":case"right":return t?Qu:ed;default:return[]}}function Qr(e,t,a,o){let r=Ye(e),s=td(ke(e),a==="start",o);return r&&(s=s.map(n=>n+"-"+r),t&&(s=s.concat(s.map(ia)))),s}function Rt(e){let t=ke(e);return Ju[t]+e.slice(t.length)}function ad(e){return{top:0,right:0,bottom:0,left:0,...e}}function ao(e){return typeof e!="number"?ad(e):{top:e,right:e,bottom:e,left:e}}function Ze(e){let{x:t,y:a,width:o,height:r}=e;return{width:o,height:r,top:a,left:t,right:t+o,bottom:a+r,x:t,y:a}}function es(e,t,a){let{reference:o,floating:r}=e,s=ve(t),n=ma(t),l=pa(n),f=ke(t),u=s==="y",i=o.x+o.width/2-r.width/2,d=o.y+o.height/2-r.height/2,c=o[l]/2-r[l]/2,p;switch(f){case"top":p={x:i,y:o.y-r.height};break;case"bottom":p={x:i,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:d};break;case"left":p={x:o.x-r.width,y:d};break;default:p={x:o.x,y:o.y}}switch(Ye(t)){case"start":p[n]-=c*(a&&u?-1:1);break;case"end":p[n]+=c*(a&&u?-1:1);break}return p}async function os(e,t){var a;t===void 0&&(t={});let{x:o,y:r,platform:s,rects:n,elements:l,strategy:f}=e,{boundary:u="clippingAncestors",rootBoundary:i="viewport",elementContext:d="floating",altBoundary:c=!1,padding:p=0}=Pe(t,e),h=ao(p),x=l[c?d==="floating"?"reference":"floating":d],g=Ze(await s.getClippingRect({element:(a=await(s.isElement==null?void 0:s.isElement(x)))==null||a?x:x.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:u,rootBoundary:i,strategy:f})),I=d==="floating"?{x:o,y:r,width:n.floating.width,height:n.floating.height}:n.reference,C=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),w=await(s.isElement==null?void 0:s.isElement(C))?await(s.getScale==null?void 0:s.getScale(C))||{x:1,y:1}:{x:1,y:1},b=Ze(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:I,offsetParent:C,strategy:f}):I);return{top:(g.top-b.top+h.top)/w.y,bottom:(b.bottom-g.bottom+h.bottom)/w.y,left:(g.left-b.left+h.left)/w.x,right:(b.right-g.right+h.right)/w.x}}var od=50,rs=async(e,t,a)=>{let{placement:o="bottom",strategy:r="absolute",middleware:s=[],platform:n}=a,l=n.detectOverflow?n:{...n,detectOverflow:os},f=await(n.isRTL==null?void 0:n.isRTL(t)),u=await n.getElementRects({reference:e,floating:t,strategy:r}),{x:i,y:d}=es(u,o,f),c=o,p=0,h={};for(let m=0;m({name:"arrow",options:e,async fn(t){let{x:a,y:o,placement:r,rects:s,platform:n,elements:l,middlewareData:f}=t,{element:u,padding:i=0}=Pe(e,t)||{};if(u==null)return{};let d=ao(i),c={x:a,y:o},p=ma(r),h=pa(p),m=await n.getDimensions(u),x=p==="y",g=x?"top":"left",I=x?"bottom":"right",C=x?"clientHeight":"clientWidth",w=s.reference[h]+s.reference[p]-c[p]-s.floating[h],b=c[p]-s.reference[p],y=await(n.getOffsetParent==null?void 0:n.getOffsetParent(u)),S=y?y[C]:0;(!S||!await(n.isElement==null?void 0:n.isElement(y)))&&(S=l.floating[C]||s.floating[h]);let L=w/2-b/2,F=S/2-m[h]/2-1,E=Re(d[g],F),q=Re(d[I],F),N=E,H=S-m[h]-q,U=S/2-m[h]/2+L,z=fa(N,U,H),T=!f.arrow&&Ye(r)!=null&&U!==z&&s.reference[h]/2-(UU<=0)){var q,N;let U=(((q=s.flip)==null?void 0:q.index)||0)+1,z=S[U];if(z&&(!(d==="alignment"?I!==ve(z):!1)||E.every(M=>ve(M.placement)===I?M.overflows[0]>0:!0)))return{data:{index:U,overflows:E},reset:{placement:z}};let T=(N=E.filter(_=>_.overflows[0]<=0).sort((_,M)=>_.overflows[1]-M.overflows[1])[0])==null?void 0:N.placement;if(!T)switch(p){case"bestFit":{var H;let _=(H=E.filter(M=>{if(y){let k=ve(M.placement);return k===I||k==="y"}return!0}).map(M=>[M.placement,M.overflows.filter(k=>k>0).reduce((k,v)=>k+v,0)]).sort((M,k)=>M[1]-k[1])[0])==null?void 0:H[0];_&&(T=_);break}case"initialPlacement":T=l;break}if(r!==T)return{reset:{placement:T}}}return{}}}};function ts(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function as(e){return Yr.some(t=>e[t]>=0)}var ls=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){let{rects:a,platform:o}=t,{strategy:r="referenceHidden",...s}=Pe(e,t);switch(r){case"referenceHidden":{let n=await o.detectOverflow(t,{...s,elementContext:"reference"}),l=ts(n,a.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:as(l)}}}case"escaped":{let n=await o.detectOverflow(t,{...s,altBoundary:!0}),l=ts(n,a.floating);return{data:{escapedOffsets:l,escaped:as(l)}}}default:return{}}}}};var us=new Set(["left","top"]);async function rd(e,t){let{placement:a,platform:o,elements:r}=e,s=await(o.isRTL==null?void 0:o.isRTL(r.floating)),n=ke(a),l=Ye(a),f=ve(a)==="y",u=us.has(n)?-1:1,i=s&&f?-1:1,d=Pe(t,e),{mainAxis:c,crossAxis:p,alignmentAxis:h}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&typeof h=="number"&&(p=l==="end"?h*-1:h),f?{x:p*i,y:c*u}:{x:c*u,y:p*i}}var ds=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var a,o;let{x:r,y:s,placement:n,middlewareData:l}=t,f=await rd(t,e);return n===((a=l.offset)==null?void 0:a.placement)&&(o=l.arrow)!=null&&o.alignmentOffset?{}:{x:r+f.x,y:s+f.y,data:{...f,placement:n}}}}},is=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:a,y:o,placement:r,platform:s}=t,{mainAxis:n=!0,crossAxis:l=!1,limiter:f={fn:g=>{let{x:I,y:C}=g;return{x:I,y:C}}},...u}=Pe(e,t),i={x:a,y:o},d=await s.detectOverflow(t,u),c=ve(ke(r)),p=ca(c),h=i[p],m=i[c];if(n){let g=p==="y"?"top":"left",I=p==="y"?"bottom":"right",C=h+d[g],w=h-d[I];h=fa(C,h,w)}if(l){let g=c==="y"?"top":"left",I=c==="y"?"bottom":"right",C=m+d[g],w=m-d[I];m=fa(C,m,w)}let x=f.fn({...t,[p]:h,[c]:m});return{...x,data:{x:x.x-a,y:x.y-o,enabled:{[p]:n,[c]:l}}}}}},fs=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:a,y:o,placement:r,rects:s,middlewareData:n}=t,{offset:l=0,mainAxis:f=!0,crossAxis:u=!0}=Pe(e,t),i={x:a,y:o},d=ve(r),c=ca(d),p=i[c],h=i[d],m=Pe(l,t),x=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(f){let C=c==="y"?"height":"width",w=s.reference[c]-s.floating[C]+x.mainAxis,b=s.reference[c]+s.reference[C]-x.mainAxis;pb&&(p=b)}if(u){var g,I;let C=c==="y"?"width":"height",w=us.has(ke(r)),b=s.reference[d]-s.floating[C]+(w&&((g=n.offset)==null?void 0:g[d])||0)+(w?0:x.crossAxis),y=s.reference[d]+s.reference[C]+(w?0:((I=n.offset)==null?void 0:I[d])||0)-(w?x.crossAxis:0);hy&&(h=y)}return{[c]:p,[d]:h}}}},cs=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var a,o;let{placement:r,rects:s,platform:n,elements:l}=t,{apply:f=()=>{},...u}=Pe(e,t),i=await n.detectOverflow(t,u),d=ke(r),c=Ye(r),p=ve(r)==="y",{width:h,height:m}=s.floating,x,g;d==="top"||d==="bottom"?(x=d,g=c===(await(n.isRTL==null?void 0:n.isRTL(l.floating))?"start":"end")?"left":"right"):(g=d,x=c==="end"?"top":"bottom");let I=m-i.top-i.bottom,C=h-i.left-i.right,w=Re(m-i[x],I),b=Re(h-i[g],C),y=!t.middlewareData.shift,S=w,L=b;if((a=t.middlewareData.shift)!=null&&a.enabled.x&&(L=C),(o=t.middlewareData.shift)!=null&&o.enabled.y&&(S=I),y&&!c){let E=ie(i.left,0),q=ie(i.right,0),N=ie(i.top,0),H=ie(i.bottom,0);p?L=h-2*(E!==0||q!==0?E+q:ie(i.left,i.right)):S=m-2*(N!==0||H!==0?N+H:ie(i.top,i.bottom))}await f({...t,availableWidth:L,availableHeight:S});let F=await n.getDimensions(l.floating);return h!==F.width||m!==F.height?{reset:{rects:!0}}:{}}}};function ha(){return typeof window<"u"}function et(e){return ms(e)?(e.nodeName||"").toLowerCase():"#document"}function ce(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function be(e){var t;return(t=(ms(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function ms(e){return ha()?e instanceof Node||e instanceof ce(e).Node:!1}function xe(e){return ha()?e instanceof Element||e instanceof ce(e).Element:!1}function Ae(e){return ha()?e instanceof HTMLElement||e instanceof ce(e).HTMLElement:!1}function ps(e){return!ha()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof ce(e).ShadowRoot}function gt(e){let{overflow:t,overflowX:a,overflowY:o,display:r}=ge(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+a)&&r!=="inline"&&r!=="contents"}function hs(e){return/^(table|td|th)$/.test(et(e))}function At(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}var sd=/transform|translate|scale|rotate|perspective|filter/,nd=/paint|layout|strict|content/,Je=e=>!!e&&e!=="none",oo;function xa(e){let t=xe(e)?ge(e):e;return Je(t.transform)||Je(t.translate)||Je(t.scale)||Je(t.rotate)||Je(t.perspective)||!ga()&&(Je(t.backdropFilter)||Je(t.filter))||sd.test(t.willChange||"")||nd.test(t.contain||"")}function xs(e){let t=Ee(e);for(;Ae(t)&&!tt(t);){if(xa(t))return t;if(At(t))return null;t=Ee(t)}return null}function ga(){return oo==null&&(oo=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),oo}function tt(e){return/^(html|body|#document)$/.test(et(e))}function ge(e){return ce(e).getComputedStyle(e)}function Mt(e){return xe(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ee(e){if(et(e)==="html")return e;let t=e.assignedSlot||e.parentNode||ps(e)&&e.host||be(e);return ps(t)?t.host:t}function gs(e){let t=Ee(e);return tt(t)?e.ownerDocument?e.ownerDocument.body:e.body:Ae(t)&>(t)?t:gs(t)}function Qe(e,t,a){var o;t===void 0&&(t=[]),a===void 0&&(a=!0);let r=gs(e),s=r===((o=e.ownerDocument)==null?void 0:o.body),n=ce(r);if(s){let l=La(n);return t.concat(n,n.visualViewport||[],gt(r)?r:[],l&&a?Qe(l):[])}else return t.concat(r,Qe(r,[],a))}function La(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function ws(e){let t=ge(e),a=parseFloat(t.width)||0,o=parseFloat(t.height)||0,r=Ae(e),s=r?e.offsetWidth:a,n=r?e.offsetHeight:o,l=Pt(a)!==s||Pt(o)!==n;return l&&(a=s,o=n),{width:a,height:o,$:l}}function so(e){return xe(e)?e:e.contextElement}function Lt(e){let t=so(e);if(!Ae(t))return Se(1);let a=t.getBoundingClientRect(),{width:o,height:r,$:s}=ws(t),n=(s?Pt(a.width):a.width)/o,l=(s?Pt(a.height):a.height)/r;return(!n||!Number.isFinite(n))&&(n=1),(!l||!Number.isFinite(l))&&(l=1),{x:n,y:l}}var ld=Se(0);function Ss(e){let t=ce(e);return!ga()||!t.visualViewport?ld:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ud(e,t,a){return t===void 0&&(t=!1),!a||t&&a!==ce(e)?!1:t}function at(e,t,a,o){t===void 0&&(t=!1),a===void 0&&(a=!1);let r=e.getBoundingClientRect(),s=so(e),n=Se(1);t&&(o?xe(o)&&(n=Lt(o)):n=Lt(e));let l=ud(s,a,o)?Ss(s):Se(0),f=(r.left+l.x)/n.x,u=(r.top+l.y)/n.y,i=r.width/n.x,d=r.height/n.y;if(s){let c=ce(s),p=o&&xe(o)?ce(o):o,h=c,m=La(h);for(;m&&o&&p!==h;){let x=Lt(m),g=m.getBoundingClientRect(),I=ge(m),C=g.left+(m.clientLeft+parseFloat(I.paddingLeft))*x.x,w=g.top+(m.clientTop+parseFloat(I.paddingTop))*x.y;f*=x.x,u*=x.y,i*=x.x,d*=x.y,f+=C,u+=w,h=ce(m),m=La(h)}}return Ze({width:i,height:d,x:f,y:u})}function Ia(e,t){let a=Mt(e).scrollLeft;return t?t.left+a:at(be(e)).left+a}function vs(e,t){let a=e.getBoundingClientRect(),o=a.left+t.scrollLeft-Ia(e,a),r=a.top+t.scrollTop;return{x:o,y:r}}function dd(e){let{elements:t,rect:a,offsetParent:o,strategy:r}=e,s=r==="fixed",n=be(o),l=t?At(t.floating):!1;if(o===n||l&&s)return a;let f={scrollLeft:0,scrollTop:0},u=Se(1),i=Se(0),d=Ae(o);if((d||!d&&!s)&&((et(o)!=="body"||gt(n))&&(f=Mt(o)),d)){let p=at(o);u=Lt(o),i.x=p.x+o.clientLeft,i.y=p.y+o.clientTop}let c=n&&!d&&!s?vs(n,f):Se(0);return{width:a.width*u.x,height:a.height*u.y,x:a.x*u.x-f.scrollLeft*u.x+i.x+c.x,y:a.y*u.y-f.scrollTop*u.y+i.y+c.y}}function id(e){return Array.from(e.getClientRects())}function fd(e){let t=be(e),a=Mt(e),o=e.ownerDocument.body,r=ie(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),s=ie(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight),n=-a.scrollLeft+Ia(e),l=-a.scrollTop;return ge(o).direction==="rtl"&&(n+=ie(t.clientWidth,o.clientWidth)-r),{width:r,height:s,x:n,y:l}}var Ls=25;function cd(e,t){let a=ce(e),o=be(e),r=a.visualViewport,s=o.clientWidth,n=o.clientHeight,l=0,f=0;if(r){s=r.width,n=r.height;let i=ga();(!i||i&&t==="fixed")&&(l=r.offsetLeft,f=r.offsetTop)}let u=Ia(o);if(u<=0){let i=o.ownerDocument,d=i.body,c=getComputedStyle(d),p=i.compatMode==="CSS1Compat"&&parseFloat(c.marginLeft)+parseFloat(c.marginRight)||0,h=Math.abs(o.clientWidth-d.clientWidth-p);h<=Ls&&(s-=h)}else u<=Ls&&(s+=u);return{width:s,height:n,x:l,y:f}}function pd(e,t){let a=at(e,!0,t==="fixed"),o=a.top+e.clientTop,r=a.left+e.clientLeft,s=Ae(e)?Lt(e):Se(1),n=e.clientWidth*s.x,l=e.clientHeight*s.y,f=r*s.x,u=o*s.y;return{width:n,height:l,x:f,y:u}}function Is(e,t,a){let o;if(t==="viewport")o=cd(e,a);else if(t==="document")o=fd(be(e));else if(xe(t))o=pd(t,a);else{let r=Ss(e);o={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return Ze(o)}function bs(e,t){let a=Ee(e);return a===t||!xe(a)||tt(a)?!1:ge(a).position==="fixed"||bs(a,t)}function md(e,t){let a=t.get(e);if(a)return a;let o=Qe(e,[],!1).filter(l=>xe(l)&&et(l)!=="body"),r=null,s=ge(e).position==="fixed",n=s?Ee(e):e;for(;xe(n)&&!tt(n);){let l=ge(n),f=xa(n);!f&&l.position==="fixed"&&(r=null),(s?!f&&!r:!f&&l.position==="static"&&!!r&&(r.position==="absolute"||r.position==="fixed")||gt(n)&&!f&&bs(e,n))?o=o.filter(i=>i!==n):r=l,n=Ee(n)}return t.set(e,o),o}function hd(e){let{element:t,boundary:a,rootBoundary:o,strategy:r}=e,n=[...a==="clippingAncestors"?At(t)?[]:md(t,this._c):[].concat(a),o],l=Is(t,n[0],r),f=l.top,u=l.right,i=l.bottom,d=l.left;for(let c=1;c{n(!1,1e-7)},1e3)}S===1&&!Ps(u,e.getBoundingClientRect())&&n(),w=!1}try{a=new IntersectionObserver(b,{...C,root:r.ownerDocument})}catch{a=new IntersectionObserver(b,C)}a.observe(e)}return n(!0),s}function no(e,t,a,o){o===void 0&&(o={});let{ancestorScroll:r=!0,ancestorResize:s=!0,elementResize:n=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:f=!1}=o,u=so(e),i=r||s?[...u?Qe(u):[],...t?Qe(t):[]]:[];i.forEach(g=>{r&&g.addEventListener("scroll",a,{passive:!0}),s&&g.addEventListener("resize",a)});let d=u&&l?Cd(u,a):null,c=-1,p=null;n&&(p=new ResizeObserver(g=>{let[I]=g;I&&I.target===u&&p&&t&&(p.unobserve(t),cancelAnimationFrame(c),c=requestAnimationFrame(()=>{var C;(C=p)==null||C.observe(t)})),a()}),u&&!f&&p.observe(u),t&&p.observe(t));let h,m=f?at(e):null;f&&x();function x(){let g=at(e);m&&!Ps(m,g)&&a(),m=g,h=requestAnimationFrame(x)}return a(),()=>{var g;i.forEach(I=>{r&&I.removeEventListener("scroll",a),s&&I.removeEventListener("resize",a)}),d?.(),(g=p)==null||g.disconnect(),p=null,f&&cancelAnimationFrame(h)}}var ks=ds;var As=is,Ms=ns,Ds=cs,Ts=ls,lo=ss;var Fs=fs,uo=(e,t,a)=>{let o=new Map,r={platform:Rs,...a},s={...r.platform,_c:o};return rs(e,t,{...r,platform:s})};import*as Z from"react";import{useLayoutEffect as wd}from"react";import*as Bs from"react-dom";var Sd=typeof document<"u",vd=function(){},Ca=Sd?wd:vd;function wa(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let a,o,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(a=e.length,a!==t.length)return!1;for(o=a;o--!==0;)if(!wa(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),a=r.length,a!==Object.keys(t).length)return!1;for(o=a;o--!==0;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=a;o--!==0;){let s=r[o];if(!(s==="_owner"&&e.$$typeof)&&!wa(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function Es(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Os(e,t){let a=Es(e);return Math.round(t*a)/a}function io(e){let t=Z.useRef(e);return Ca(()=>{t.current=e}),t}function qs(e){e===void 0&&(e={});let{placement:t="bottom",strategy:a="absolute",middleware:o=[],platform:r,elements:{reference:s,floating:n}={},transform:l=!0,whileElementsMounted:f,open:u}=e,[i,d]=Z.useState({x:0,y:0,strategy:a,placement:t,middlewareData:{},isPositioned:!1}),[c,p]=Z.useState(o);wa(c,o)||p(o);let[h,m]=Z.useState(null),[x,g]=Z.useState(null),I=Z.useCallback(M=>{M!==y.current&&(y.current=M,m(M))},[]),C=Z.useCallback(M=>{M!==S.current&&(S.current=M,g(M))},[]),w=s||h,b=n||x,y=Z.useRef(null),S=Z.useRef(null),L=Z.useRef(i),F=f!=null,E=io(f),q=io(r),N=io(u),H=Z.useCallback(()=>{if(!y.current||!S.current)return;let M={placement:t,strategy:a,middleware:c};q.current&&(M.platform=q.current),uo(y.current,S.current,M).then(k=>{let v={...k,isPositioned:N.current!==!1};U.current&&!wa(L.current,v)&&(L.current=v,Bs.flushSync(()=>{d(v)}))})},[c,t,a,q,N]);Ca(()=>{u===!1&&L.current.isPositioned&&(L.current.isPositioned=!1,d(M=>({...M,isPositioned:!1})))},[u]);let U=Z.useRef(!1);Ca(()=>(U.current=!0,()=>{U.current=!1}),[]),Ca(()=>{if(w&&(y.current=w),b&&(S.current=b),w&&b){if(E.current)return E.current(w,b,H);H()}},[w,b,H,E,F]);let z=Z.useMemo(()=>({reference:y,floating:S,setReference:I,setFloating:C}),[I,C]),T=Z.useMemo(()=>({reference:w,floating:b}),[w,b]),_=Z.useMemo(()=>{let M={position:a,left:0,top:0};if(!T.floating)return M;let k=Os(T.floating,i.x),v=Os(T.floating,i.y);return l?{...M,transform:"translate("+k+"px, "+v+"px)",...Es(T.floating)>=1.5&&{willChange:"transform"}}:{position:a,left:k,top:v}},[a,l,T.floating,i.x,i.y]);return Z.useMemo(()=>({...i,update:H,refs:z,elements:T,floatingStyles:_}),[i,H,z,T,_])}var bd=e=>{function t(a){return{}.hasOwnProperty.call(a,"current")}return{name:"arrow",options:e,fn(a){let{element:o,padding:r}=typeof e=="function"?e(a):e;return o&&t(o)?o.current!=null?lo({element:o.current,padding:r}).fn(a):{}:o?lo({element:o,padding:r}).fn(a):{}}}},Us=(e,t)=>{let a=ks(e);return{name:a.name,fn:a.fn,options:[e,t]}},Ns=(e,t)=>{let a=As(e);return{name:a.name,fn:a.fn,options:[e,t]}},_s=(e,t)=>({fn:Fs(e).fn,options:[e,t]}),Hs=(e,t)=>{let a=Ms(e);return{name:a.name,fn:a.fn,options:[e,t]}},Gs=(e,t)=>{let a=Ds(e);return{name:a.name,fn:a.fn,options:[e,t]}};var zs=(e,t)=>{let a=Ts(e);return{name:a.name,fn:a.fn,options:[e,t]}};var Ws=(e,t)=>{let a=bd(e);return{name:a.name,fn:a.fn,options:[e,t]}};import*as Xs from"react";import{jsx as Vs}from"react/jsx-runtime";var yd="Arrow",Ks=Xs.forwardRef((e,t)=>{let{children:a,width:o=10,height:r=5,...s}=e;return Vs(V.svg,{...s,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?a:Vs("polygon",{points:"0,0 30,0 15,10"})})});Ks.displayName=yd;var js=Ks;import{jsx as ot}from"react/jsx-runtime";var fo="Popper",[$s,co]=ye(fo),[Pd,Ys]=$s(fo),Zs=e=>{let{__scopePopper:t,children:a}=e,[o,r]=re.useState(null),[s,n]=re.useState(void 0);return ot(Pd,{scope:t,anchor:o,onAnchorChange:r,placementState:s,setPlacementState:n,children:a})};Zs.displayName=fo;var Js="PopperAnchor",Qs=re.forwardRef((e,t)=>{let{__scopePopper:a,virtualRef:o,...r}=e,s=Ys(Js,a),n=re.useRef(null),l=s.onAnchorChange,f=re.useCallback(h=>{n.current=h,h&&l(h)},[l]),u=j(t,f),i=re.useRef(null);re.useEffect(()=>{if(!o)return;let h=i.current;i.current=o.current,h!==i.current&&l(i.current)});let d=s.placementState&&mo(s.placementState),c=d?.[0],p=d?.[1];return o?null:ot(V.div,{"data-radix-popper-side":c,"data-radix-popper-align":p,...r,ref:u})});Qs.displayName=Js;var po="PopperContent",[kd,Ad]=$s(po),en=re.forwardRef((e,t)=>{let{__scopePopper:a,side:o="bottom",sideOffset:r=0,align:s="center",alignOffset:n=0,arrowPadding:l=0,avoidCollisions:f=!0,collisionBoundary:u,collisionPadding:i=0,sticky:d="partial",hideWhenDetached:c=!1,updatePositionStrategy:p="optimized",onPlaced:h,...m}=e,x=Ys(po,a),[g,I]=re.useState(null),C=j(t,Ce=>I(Ce)),[w,b]=re.useState(null),y=Kr(w),S=y?.width??0,L=y?.height??0,F=o+(s!=="center"?"-"+s:""),E=typeof i=="number"?i:{top:0,right:0,bottom:0,left:0,...i},q=u?Array.isArray(u)?u:[u]:void 0,N=q!==void 0&&q.length>0,H={padding:E,boundary:q?.filter(Dd),altBoundary:N},{refs:U,floatingStyles:z,placement:T,isPositioned:_,middlewareData:M}=qs({strategy:"fixed",placement:F,whileElementsMounted:(...Ce)=>no(...Ce,{animationFrame:p==="always"}),elements:{reference:x.anchor},middleware:[Us({mainAxis:r+L,alignmentAxis:n}),f&&Ns({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?_s():void 0,...H}),f&&Hs({...H}),Gs({...H,apply:({elements:Ce,rects:K,availableWidth:Ht,availableHeight:ut})=>{let{width:dt,height:It}=K.reference,Fe=Ce.floating.style;Fe.setProperty("--radix-popper-available-width",`${Ht}px`),Fe.setProperty("--radix-popper-available-height",`${ut}px`),Fe.setProperty("--radix-popper-anchor-width",`${dt}px`),Fe.setProperty("--radix-popper-anchor-height",`${It}px`)}}),w&&Ws({element:w,padding:l}),Td({arrowWidth:S,arrowHeight:L}),c&&zs({strategy:"referenceHidden",...H})]}),k=x.setPlacementState;de(()=>(k(T),()=>{k(void 0)}),[T,k]);let[v,pe]=mo(T),Ie=ne(h);de(()=>{_&&Ie?.()},[_,Ie]);let Ne=M.arrow?.x,Te=M.arrow?.y,$=M.arrow?.centerOffset!==0,[W,Y]=re.useState();return de(()=>{g&&Y(window.getComputedStyle(g).zIndex)},[g]),ot("div",{ref:U.setFloating,"data-radix-popper-content-wrapper":"",style:{...z,transform:_?z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:W,"--radix-popper-transform-origin":[M.transformOrigin?.x,M.transformOrigin?.y].join(" "),...M.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:ot(kd,{scope:a,placedSide:v,placedAlign:pe,onArrowChange:b,arrowX:Ne,arrowY:Te,shouldHideArrow:$,children:ot(V.div,{"data-side":v,"data-align":pe,...m,ref:C,style:{...m.style,animation:_?void 0:"none"}})})})});en.displayName=po;var tn="PopperArrow",Md={top:"bottom",right:"left",bottom:"top",left:"right"},an=re.forwardRef(function(t,a){let{__scopePopper:o,...r}=t,s=Ad(tn,o),n=Md[s.placedSide];return ot("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[n]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:ot(js,{...r,ref:a,style:{...r.style,display:"block"}})})});an.displayName=tn;function Dd(e){return e!==null}var Td=e=>({name:"transformOrigin",options:e,fn(t){let{placement:a,rects:o,middlewareData:r}=t,n=r.arrow?.centerOffset!==0,l=n?0:e.arrowWidth,f=n?0:e.arrowHeight,[u,i]=mo(a),d={start:"0%",center:"50%",end:"100%"}[i],c=(r.arrow?.x??0)+l/2,p=(r.arrow?.y??0)+f/2,h="",m="";return u==="bottom"?(h=n?d:`${c}px`,m=`${-f}px`):u==="top"?(h=n?d:`${c}px`,m=`${o.floating.height+f}px`):u==="right"?(h=`${-f}px`,m=n?d:`${p}px`):u==="left"&&(h=`${o.floating.width+f}px`,m=n?d:`${p}px`),{data:{x:h,y:m}}}});function mo(e){let[t,a="center"]=e.split("-");return[t,a]}var ho=Zs,on=Qs,rn=en,sn=an;import*as ee from"react";import{jsx as rt}from"react/jsx-runtime";var xo="rovingFocusGroup.onEntryFocus",Od={bubbles:!1,cancelable:!0},Dt="RovingFocusGroup",[go,nn,Bd]=jt(Dt),[Ed,Lo]=ye(Dt,[Bd]),[qd,Ud]=Ed(Dt),ln=ee.forwardRef((e,t)=>rt(go.Provider,{scope:e.__scopeRovingFocusGroup,children:rt(go.Slot,{scope:e.__scopeRovingFocusGroup,children:rt(Nd,{...e,ref:t})})}));ln.displayName=Dt;var Nd=ee.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:a,orientation:o,loop:r=!1,dir:s,currentTabStopId:n,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:f,onEntryFocus:u,preventScrollOnEntryFocus:i=!1,...d}=e,c=ee.useRef(null),p=j(t,c),h=Qt(s),[m,x]=St({prop:n,defaultProp:l??null,onChange:f,caller:Dt}),[g,I]=ee.useState(!1),C=ne(u),w=nn(a),b=ee.useRef(!1),[y,S]=ee.useState(0);return ee.useEffect(()=>{let L=c.current;if(L)return L.addEventListener(xo,C),()=>L.removeEventListener(xo,C)},[C]),rt(qd,{scope:a,orientation:o,dir:h,loop:r,currentTabStopId:m,onItemFocus:ee.useCallback(L=>x(L),[x]),onItemShiftTab:ee.useCallback(()=>I(!0),[]),onFocusableItemAdd:ee.useCallback(()=>S(L=>L+1),[]),onFocusableItemRemove:ee.useCallback(()=>S(L=>L-1),[]),children:rt(V.div,{tabIndex:g||y===0?-1:0,"data-orientation":o,...d,ref:p,style:{outline:"none",...e.style},onMouseDown:B(e.onMouseDown,()=>{b.current=!0}),onFocus:B(e.onFocus,L=>{let F=!b.current;if(L.target===L.currentTarget&&F&&!g){let E=new CustomEvent(xo,Od);if(L.currentTarget.dispatchEvent(E),!E.defaultPrevented){let q=w().filter(T=>T.focusable),N=q.find(T=>T.active),H=q.find(T=>T.id===m),z=[N,H,...q].filter(Boolean).map(T=>T.ref.current);fn(z,i)}}b.current=!1}),onBlur:B(e.onBlur,()=>I(!1))})})}),un="RovingFocusGroupItem",dn=ee.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:a,focusable:o=!0,active:r=!1,tabStopId:s,children:n,...l}=e,f=He(),u=s||f,i=Ud(un,a),d=i.currentTabStopId===u,c=nn(a),{onFocusableItemAdd:p,onFocusableItemRemove:h,currentTabStopId:m}=i;return ee.useEffect(()=>{if(o)return p(),()=>h()},[o,p,h]),rt(go.ItemSlot,{scope:a,id:u,focusable:o,active:r,children:rt(V.span,{tabIndex:d?0:-1,"data-orientation":i.orientation,...l,ref:t,onMouseDown:B(e.onMouseDown,x=>{o?i.onItemFocus(u):x.preventDefault()}),onFocus:B(e.onFocus,()=>i.onItemFocus(u)),onKeyDown:B(e.onKeyDown,x=>{if(x.key==="Tab"&&x.shiftKey){i.onItemShiftTab();return}if(x.target!==x.currentTarget)return;let g=Gd(x,i.orientation,i.dir);if(g!==void 0){if(x.metaKey||x.ctrlKey||x.altKey||x.shiftKey)return;x.preventDefault();let C=c().filter(w=>w.focusable).map(w=>w.ref.current);if(g==="last")C.reverse();else if(g==="prev"||g==="next"){g==="prev"&&C.reverse();let w=C.indexOf(x.currentTarget);C=i.loop?zd(C,w+1):C.slice(w+1)}setTimeout(()=>fn(C))}}),children:typeof n=="function"?n({isCurrentTabStop:d,hasTabStop:m!=null}):n})})});dn.displayName=un;var _d={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Hd(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Gd(e,t,a){let o=Hd(e.key,a);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return _d[o]}function fn(e,t=!1){let a=document.activeElement;for(let o of e)if(o===a||(o.focus({preventScroll:t}),document.activeElement!==a))return}function zd(e,t){return e.map((a,o)=>e[(t+o)%e.length])}var cn=ln,pn=dn;import{jsx as D}from"react/jsx-runtime";var Io=["Enter"," "],Vd=["ArrowDown","PageUp","Home"],hn=["ArrowUp","PageDown","End"],Xd=[...Vd,...hn],Kd={ltr:[...Io,"ArrowRight"],rtl:[...Io,"ArrowLeft"]},jd={ltr:["ArrowLeft"],rtl:["ArrowRight"]},Bt="Menu",[Ft,$d,Yd]=jt(Bt),[st,Co]=ye(Bt,[Yd,co,Lo]),Et=co(),xn=Lo(),[gn,ze]=st(Bt),[Zd,qt]=st(Bt),Ln=e=>{let{__scopeMenu:t,open:a=!1,children:o,dir:r,onOpenChange:s,modal:n=!0}=e,l=Et(t),[f,u]=A.useState(null),i=A.useRef(!1),d=ne(s),c=Qt(r);return A.useEffect(()=>{let p=()=>{i.current=!0,document.addEventListener("pointerdown",h,{capture:!0,once:!0}),document.addEventListener("pointermove",h,{capture:!0,once:!0})},h=()=>i.current=!1;return document.addEventListener("keydown",p,{capture:!0}),()=>{document.removeEventListener("keydown",p,{capture:!0}),document.removeEventListener("pointerdown",h,{capture:!0}),document.removeEventListener("pointermove",h,{capture:!0})}},[]),D(ho,{...l,children:D(gn,{scope:t,open:a,onOpenChange:d,content:f,onContentChange:u,children:D(Zd,{scope:t,onClose:A.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:i,dir:c,modal:n,children:o})})})};Ln.displayName=Bt;var Jd="MenuAnchor",wo=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e,r=Et(a);return D(on,{...r,...o,ref:t})});wo.displayName=Jd;var So="MenuPortal",[Qd,In]=st(So,{forceMount:void 0}),Cn=e=>{let{__scopeMenu:t,forceMount:a,children:o,container:r}=e,s=ze(So,t);return D(Qd,{scope:t,forceMount:a,children:D(it,{present:a||s.open,children:D(_a,{asChild:!0,container:r,children:o})})})};Cn.displayName=So;var Le="MenuContent",[ei,vo]=st(Le),wn=A.forwardRef((e,t)=>{let a=In(Le,e.__scopeMenu),{forceMount:o=a.forceMount,...r}=e,s=ze(Le,e.__scopeMenu),n=qt(Le,e.__scopeMenu);return D(Ft.Provider,{scope:e.__scopeMenu,children:D(it,{present:o||s.open,children:D(Ft.Slot,{scope:e.__scopeMenu,children:n.modal?D(ti,{...r,ref:t}):D(ai,{...r,ref:t})})})})}),ti=A.forwardRef((e,t)=>{let a=ze(Le,e.__scopeMenu),o=A.useRef(null),r=j(t,o);return A.useEffect(()=>{let s=o.current;if(s)return Vr(s)},[]),D(bo,{...e,ref:r,trapFocus:a.open,disableOutsidePointerEvents:a.open,disableOutsideScroll:!0,onFocusOutside:B(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>a.onOpenChange(!1)})}),ai=A.forwardRef((e,t)=>{let a=ze(Le,e.__scopeMenu);return D(bo,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>a.onOpenChange(!1)})}),oi=Oe("MenuContent.ScrollLock"),bo=A.forwardRef((e,t)=>{let{__scopeMenu:a,loop:o=!1,trapFocus:r,onOpenAutoFocus:s,onCloseAutoFocus:n,disableOutsidePointerEvents:l,onEntryFocus:f,onEscapeKeyDown:u,onPointerDownOutside:i,onFocusOutside:d,onInteractOutside:c,onDismiss:p,disableOutsideScroll:h,...m}=e,x=ze(Le,a),g=qt(Le,a),I=Et(a),C=xn(a),w=$d(a),[b,y]=A.useState(null),S=A.useRef(null),L=j(t,S,x.onContentChange),F=A.useRef(0),E=A.useRef(""),q=A.useRef(0),N=A.useRef(null),H=A.useRef("right"),U=A.useRef(0),z=h?eo:A.Fragment,T=h?{as:oi,allowPinchZoom:!0}:void 0,_=k=>{let v=E.current+k,pe=w().filter(Y=>!Y.disabled),Ie=document.activeElement,Ne=pe.find(Y=>Y.ref.current===Ie)?.textValue,Te=pe.map(Y=>Y.textValue),$=hi(Te,v,Ne),W=pe.find(Y=>Y.textValue===$)?.ref.current;(function Y(Ce){E.current=Ce,window.clearTimeout(F.current),Ce!==""&&(F.current=window.setTimeout(()=>Y(""),1e3))})(v),W&&setTimeout(()=>W.focus())};A.useEffect(()=>()=>window.clearTimeout(F.current),[]),yr();let M=A.useCallback(k=>H.current===N.current?.side&&gi(k,N.current?.area),[]);return D(ei,{scope:a,searchRef:E,onItemEnter:A.useCallback(k=>{M(k)&&k.preventDefault()},[M]),onItemLeave:A.useCallback(k=>{M(k)||(S.current?.focus(),y(null))},[M]),onTriggerLeave:A.useCallback(k=>{M(k)&&k.preventDefault()},[M]),pointerGraceTimerRef:q,onPointerGraceIntentChange:A.useCallback(k=>{N.current=k},[]),children:D(z,{...T,children:D(Na,{asChild:!0,trapped:r,onMountAutoFocus:B(s,k=>{k.preventDefault(),S.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:n,children:D(Ea,{asChild:!0,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:i,onFocusOutside:d,onInteractOutside:c,onDismiss:p,children:D(cn,{asChild:!0,...C,dir:g.dir,orientation:"vertical",loop:o,currentTabStopId:b,onCurrentTabStopIdChange:y,onEntryFocus:B(f,k=>{g.isUsingKeyboardRef.current||k.preventDefault()}),preventScrollOnEntryFocus:!0,children:D(rn,{role:"menu","aria-orientation":"vertical","data-state":Un(x.open),"data-radix-menu-content":"",dir:g.dir,...I,...m,ref:L,style:{outline:"none",...m.style},onKeyDown:B(m.onKeyDown,k=>{let pe=k.target.closest("[data-radix-menu-content]")===k.currentTarget,Ie=k.ctrlKey||k.altKey||k.metaKey,Ne=k.key.length===1;pe&&(k.key==="Tab"&&k.preventDefault(),!Ie&&Ne&&_(k.key));let Te=S.current;if(k.target!==Te||!Xd.includes(k.key))return;k.preventDefault();let W=w().filter(Y=>!Y.disabled).map(Y=>Y.ref.current);hn.includes(k.key)&&W.reverse(),pi(W)}),onBlur:B(e.onBlur,k=>{k.currentTarget.contains(k.target)||(window.clearTimeout(F.current),E.current="")}),onPointerMove:B(e.onPointerMove,Ot(k=>{let v=k.target,pe=U.current!==k.clientX;if(k.currentTarget.contains(v)&&pe){let Ie=k.clientX>U.current?"right":"left";H.current=Ie,U.current=k.clientX}}))})})})})})})});wn.displayName=Le;var ri="MenuGroup",yo=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e;return D(V.div,{role:"group",...o,ref:t})});yo.displayName=ri;var si="MenuLabel",Sn=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e;return D(V.div,{...o,ref:t})});Sn.displayName=si;var Sa="MenuItem",mn="menu.itemSelect",ba=A.forwardRef((e,t)=>{let{disabled:a=!1,onSelect:o,...r}=e,s=A.useRef(null),n=qt(Sa,e.__scopeMenu),l=vo(Sa,e.__scopeMenu),f=j(t,s),u=A.useRef(!1),i=()=>{let d=s.current;if(!a&&d){let c=new CustomEvent(mn,{bubbles:!0,cancelable:!0});d.addEventListener(mn,p=>o?.(p),{once:!0}),Kt(d,c),c.defaultPrevented?u.current=!1:n.onClose()}};return D(vn,{...r,ref:f,disabled:a,onClick:B(e.onClick,i),onPointerDown:d=>{e.onPointerDown?.(d),u.current=!0},onPointerUp:B(e.onPointerUp,d=>{u.current||d.currentTarget?.click()}),onKeyDown:B(e.onKeyDown,d=>{let c=l.searchRef.current!=="";a||c&&d.key===" "||Io.includes(d.key)&&(d.currentTarget.click(),d.preventDefault())})})});ba.displayName=Sa;var vn=A.forwardRef((e,t)=>{let{__scopeMenu:a,disabled:o=!1,textValue:r,...s}=e,n=vo(Sa,a),l=xn(a),f=A.useRef(null),u=j(t,f),[i,d]=A.useState(!1),[c,p]=A.useState("");return A.useEffect(()=>{let h=f.current;h&&p((h.textContent??"").trim())},[s.children]),D(Ft.ItemSlot,{scope:a,disabled:o,textValue:r??c,children:D(pn,{asChild:!0,...l,focusable:!o,children:D(V.div,{role:"menuitem","data-highlighted":i?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...s,ref:u,onPointerMove:B(e.onPointerMove,Ot(h=>{o?n.onItemLeave(h):(n.onItemEnter(h),h.defaultPrevented||h.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:B(e.onPointerLeave,Ot(h=>n.onItemLeave(h))),onFocus:B(e.onFocus,()=>d(!0)),onBlur:B(e.onBlur,()=>d(!1))})})})}),ni="MenuCheckboxItem",bn=A.forwardRef((e,t)=>{let{checked:a=!1,onCheckedChange:o,...r}=e;return D(An,{scope:e.__scopeMenu,checked:a,children:D(ba,{role:"menuitemcheckbox","aria-checked":va(a)?"mixed":a,...r,ref:t,"data-state":ko(a),onSelect:B(r.onSelect,()=>o?.(va(a)?!0:!a),{checkForDefaultPrevented:!1})})})});bn.displayName=ni;var yn="MenuRadioGroup",[li,ui]=st(yn,{value:void 0,onValueChange:()=>{}}),Rn=A.forwardRef((e,t)=>{let{value:a,onValueChange:o,...r}=e,s=ne(o);return D(li,{scope:e.__scopeMenu,value:a,onValueChange:s,children:D(yo,{...r,ref:t})})});Rn.displayName=yn;var Pn="MenuRadioItem",kn=A.forwardRef((e,t)=>{let{value:a,...o}=e,r=ui(Pn,e.__scopeMenu),s=a===r.value;return D(An,{scope:e.__scopeMenu,checked:s,children:D(ba,{role:"menuitemradio","aria-checked":s,...o,ref:t,"data-state":ko(s),onSelect:B(o.onSelect,()=>r.onValueChange?.(a),{checkForDefaultPrevented:!1})})})});kn.displayName=Pn;var Ro="MenuItemIndicator",[An,di]=st(Ro,{checked:!1}),Mn=A.forwardRef((e,t)=>{let{__scopeMenu:a,forceMount:o,...r}=e,s=di(Ro,a);return D(it,{present:o||va(s.checked)||s.checked===!0,children:D(V.span,{...r,ref:t,"data-state":ko(s.checked)})})});Mn.displayName=Ro;var ii="MenuSeparator",Dn=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e;return D(V.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})});Dn.displayName=ii;var fi="MenuArrow",Tn=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e,r=Et(a);return D(sn,{...r,...o,ref:t})});Tn.displayName=fi;var Po="MenuSub",[ci,Fn]=st(Po),On=e=>{let{__scopeMenu:t,children:a,open:o=!1,onOpenChange:r}=e,s=ze(Po,t),n=Et(t),[l,f]=A.useState(null),[u,i]=A.useState(null),d=ne(r);return A.useEffect(()=>(s.open===!1&&d(!1),()=>d(!1)),[s.open,d]),D(ho,{...n,children:D(gn,{scope:t,open:o,onOpenChange:d,content:u,onContentChange:i,children:D(ci,{scope:t,contentId:He(),triggerId:He(),trigger:l,onTriggerChange:f,children:a})})})};On.displayName=Po;var Tt="MenuSubTrigger",Bn=A.forwardRef((e,t)=>{let a=ze(Tt,e.__scopeMenu),o=qt(Tt,e.__scopeMenu),r=Fn(Tt,e.__scopeMenu),s=vo(Tt,e.__scopeMenu),n=A.useRef(null),{pointerGraceTimerRef:l,onPointerGraceIntentChange:f}=s,u={__scopeMenu:e.__scopeMenu},i=A.useCallback(()=>{n.current&&window.clearTimeout(n.current),n.current=null},[]);return A.useEffect(()=>i,[i]),A.useEffect(()=>{let d=l.current;return()=>{window.clearTimeout(d),f(null)}},[l,f]),D(wo,{asChild:!0,...u,children:D(vn,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?r.contentId:void 0,"data-state":Un(a.open),...e,ref:wt(t,r.onTriggerChange),onClick:d=>{e.onClick?.(d),!(e.disabled||d.defaultPrevented)&&(d.currentTarget.focus(),a.open||a.onOpenChange(!0))},onPointerMove:B(e.onPointerMove,Ot(d=>{s.onItemEnter(d),!d.defaultPrevented&&!e.disabled&&!a.open&&!n.current&&(s.onPointerGraceIntentChange(null),n.current=window.setTimeout(()=>{a.onOpenChange(!0),i()},100))})),onPointerLeave:B(e.onPointerLeave,Ot(d=>{i();let c=a.content?.getBoundingClientRect();if(c){let p=a.content?.dataset.side,h=p==="right",m=h?-5:5,x=c[h?"left":"right"],g=c[h?"right":"left"];s.onPointerGraceIntentChange({area:[{x:d.clientX+m,y:d.clientY},{x,y:c.top},{x:g,y:c.top},{x:g,y:c.bottom},{x,y:c.bottom}],side:p}),window.clearTimeout(l.current),l.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(d),d.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:B(e.onKeyDown,d=>{let c=s.searchRef.current!=="";e.disabled||c&&d.key===" "||Kd[o.dir].includes(d.key)&&(a.onOpenChange(!0),a.content?.focus(),d.preventDefault())})})})});Bn.displayName=Tt;var En="MenuSubContent",qn=A.forwardRef((e,t)=>{let a=In(Le,e.__scopeMenu),{forceMount:o=a.forceMount,align:r="start",...s}=e,n=ze(Le,e.__scopeMenu),l=qt(Le,e.__scopeMenu),f=Fn(En,e.__scopeMenu),u=A.useRef(null),i=j(t,u);return D(Ft.Provider,{scope:e.__scopeMenu,children:D(it,{present:o||n.open,children:D(Ft.Slot,{scope:e.__scopeMenu,children:D(bo,{id:f.contentId,"aria-labelledby":f.triggerId,...s,ref:i,align:r,side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{l.isUsingKeyboardRef.current&&u.current?.focus(),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:B(e.onFocusOutside,d=>{d.target!==f.trigger&&n.onOpenChange(!1)}),onEscapeKeyDown:B(e.onEscapeKeyDown,d=>{l.onClose(),d.preventDefault()}),onKeyDown:B(e.onKeyDown,d=>{let c=d.currentTarget.contains(d.target),p=jd[l.dir].includes(d.key);c&&p&&(n.onOpenChange(!1),f.trigger?.focus(),d.preventDefault())})})})})})});qn.displayName=En;function Un(e){return e?"open":"closed"}function va(e){return e==="indeterminate"}function ko(e){return va(e)?"indeterminate":e?"checked":"unchecked"}function pi(e){let t=document.activeElement;for(let a of e)if(a===t||(a.focus(),document.activeElement!==t))return}function mi(e,t){return e.map((a,o)=>e[(t+o)%e.length])}function hi(e,t,a){let r=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,s=a?e.indexOf(a):-1,n=mi(e,Math.max(s,0));r.length===1&&(n=n.filter(u=>u!==a));let f=n.find(u=>u.toLowerCase().startsWith(r.toLowerCase()));return f!==a?f:void 0}function xi(e,t){let{x:a,y:o}=e,r=!1;for(let s=0,n=t.length-1;so!=c>o&&a<(d-u)*(o-i)/(c-i)+u&&(r=!r)}return r}function gi(e,t){if(!t)return!1;let a={x:e.clientX,y:e.clientY};return xi(a,t)}function Ot(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Nn=Ln,_n=wo,Hn=Cn,Gn=wn,zn=yo,Wn=Sn,Vn=ba,Xn=bn,Kn=Rn,jn=kn,$n=Mn,Yn=Dn,Zn=Tn,Jn=On,Qn=Bn,el=qn;var We={};$o(We,{Arrow:()=>Xi,CheckboxItem:()=>Hi,Content:()=>qi,DropdownMenu:()=>Ao,DropdownMenuArrow:()=>Ho,DropdownMenuCheckboxItem:()=>Eo,DropdownMenuContent:()=>To,DropdownMenuGroup:()=>Fo,DropdownMenuItem:()=>Bo,DropdownMenuItemIndicator:()=>No,DropdownMenuLabel:()=>Oo,DropdownMenuPortal:()=>Do,DropdownMenuRadioGroup:()=>qo,DropdownMenuRadioItem:()=>Uo,DropdownMenuSeparator:()=>_o,DropdownMenuSub:()=>rl,DropdownMenuSubContent:()=>zo,DropdownMenuSubTrigger:()=>Go,DropdownMenuTrigger:()=>Mo,Group:()=>Ui,Item:()=>_i,ItemIndicator:()=>Wi,Label:()=>Ni,Portal:()=>Ei,RadioGroup:()=>Gi,RadioItem:()=>zi,Root:()=>Oi,Separator:()=>Vi,Sub:()=>Ki,SubContent:()=>$i,SubTrigger:()=>ji,Trigger:()=>Bi,createDropdownMenuScope:()=>Ci});import*as J from"react";import{jsx as te}from"react/jsx-runtime";var ya="DropdownMenu",[Ii,Ci]=ye(ya,[Co]),ue=Co(),[wi,tl]=Ii(ya),Ao=e=>{let{__scopeDropdownMenu:t,children:a,dir:o,open:r,defaultOpen:s,onOpenChange:n,modal:l=!0}=e,f=ue(t),u=J.useRef(null),[i,d]=St({prop:r,defaultProp:s??!1,onChange:n,caller:ya});return te(wi,{scope:t,triggerId:He(),triggerRef:u,contentId:He(),open:i,onOpenChange:d,onOpenToggle:J.useCallback(()=>d(c=>!c),[d]),modal:l,children:te(Nn,{...f,open:i,onOpenChange:d,dir:o,modal:l,children:a})})};Ao.displayName=ya;var al="DropdownMenuTrigger",Mo=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,disabled:o=!1,...r}=e,s=tl(al,a),n=ue(a);return te(_n,{asChild:!0,...n,children:te(V.button,{type:"button",id:s.triggerId,"aria-haspopup":"menu","aria-expanded":s.open,"aria-controls":s.open?s.contentId:void 0,"data-state":s.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:wt(t,s.triggerRef),onPointerDown:B(e.onPointerDown,l=>{!o&&l.button===0&&l.ctrlKey===!1&&(s.onOpenToggle(),s.open||l.preventDefault())}),onKeyDown:B(e.onKeyDown,l=>{o||(["Enter"," "].includes(l.key)&&s.onOpenToggle(),l.key==="ArrowDown"&&s.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(l.key)&&l.preventDefault())})})})});Mo.displayName=al;var Si="DropdownMenuPortal",Do=e=>{let{__scopeDropdownMenu:t,...a}=e,o=ue(t);return te(Hn,{...o,...a})};Do.displayName=Si;var ol="DropdownMenuContent",To=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=tl(ol,a),s=ue(a),n=J.useRef(!1);return te(Gn,{id:r.contentId,"aria-labelledby":r.triggerId,...s,...o,ref:t,onCloseAutoFocus:B(e.onCloseAutoFocus,l=>{n.current||r.triggerRef.current?.focus(),n.current=!1,l.preventDefault()}),onInteractOutside:B(e.onInteractOutside,l=>{let f=l.detail.originalEvent,u=f.button===0&&f.ctrlKey===!0,i=f.button===2||u;(!r.modal||i)&&(n.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});To.displayName=ol;var vi="DropdownMenuGroup",Fo=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(zn,{...r,...o,ref:t})});Fo.displayName=vi;var bi="DropdownMenuLabel",Oo=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(Wn,{...r,...o,ref:t})});Oo.displayName=bi;var yi="DropdownMenuItem",Bo=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(Vn,{...r,...o,ref:t})});Bo.displayName=yi;var Ri="DropdownMenuCheckboxItem",Eo=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(Xn,{...r,...o,ref:t})});Eo.displayName=Ri;var Pi="DropdownMenuRadioGroup",qo=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(Kn,{...r,...o,ref:t})});qo.displayName=Pi;var ki="DropdownMenuRadioItem",Uo=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(jn,{...r,...o,ref:t})});Uo.displayName=ki;var Ai="DropdownMenuItemIndicator",No=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te($n,{...r,...o,ref:t})});No.displayName=Ai;var Mi="DropdownMenuSeparator",_o=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(Yn,{...r,...o,ref:t})});_o.displayName=Mi;var Di="DropdownMenuArrow",Ho=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(Zn,{...r,...o,ref:t})});Ho.displayName=Di;var rl=e=>{let{__scopeDropdownMenu:t,children:a,open:o,onOpenChange:r,defaultOpen:s}=e,n=ue(t),[l,f]=St({prop:o,defaultProp:s??!1,onChange:r,caller:"DropdownMenuSub"});return te(Jn,{...n,open:l,onOpenChange:f,children:a})},Ti="DropdownMenuSubTrigger",Go=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(Qn,{...r,...o,ref:t})});Go.displayName=Ti;var Fi="DropdownMenuSubContent",zo=J.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=ue(a);return te(el,{...r,...o,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});zo.displayName=Fi;var Oi=Ao,Bi=Mo,Ei=Do,qi=To,Ui=Fo,Ni=Oo,_i=Bo,Hi=Eo,Gi=qo,zi=Uo,Wi=No,Vi=_o,Xi=Ho,Ki=rl,ji=Go,$i=zo;function sl(e){var t,a,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t{let a=new Array(e.length+t.length);for(let o=0;o({classGroupId:e,validator:t}),pl=(e=new Map,t=null,a)=>({nextPart:e,validators:t,classGroupId:a}),ka="-",ll=[],Ji="arbitrary..",Qi=e=>{let t=tf(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:n=>{if(n.startsWith("[")&&n.endsWith("]"))return ef(n);let l=n.split(ka),f=l[0]===""&&l.length>1?1:0;return ml(l,f,t)},getConflictingClassGroupIds:(n,l)=>{if(l){let f=o[n],u=a[n];return f?u?Yi(u,f):f:u||ll}return a[n]||ll}}},ml=(e,t,a)=>{if(e.length-t===0)return a.classGroupId;let r=e[t],s=a.nextPart.get(r);if(s){let u=ml(e,t+1,s);if(u)return u}let n=a.validators;if(n===null)return;let l=t===0?e.join(ka):e.slice(t).join(ka),f=n.length;for(let u=0;ue.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let t=e.slice(1,-1),a=t.indexOf(":"),o=t.slice(0,a);return o?Ji+o:void 0})(),tf=e=>{let{theme:t,classGroups:a}=e;return af(a,t)},af=(e,t)=>{let a=pl();for(let o in e){let r=e[o];Xo(r,a,o,t)}return a},Xo=(e,t,a,o)=>{let r=e.length;for(let s=0;s{if(typeof e=="string"){rf(e,t,a);return}if(typeof e=="function"){sf(e,t,a,o);return}nf(e,t,a,o)},rf=(e,t,a)=>{let o=e===""?t:hl(t,e);o.classGroupId=a},sf=(e,t,a,o)=>{if(lf(e)){Xo(e(o),t,a,o);return}t.validators===null&&(t.validators=[]),t.validators.push(Zi(a,e))},nf=(e,t,a,o)=>{let r=Object.entries(e),s=r.length;for(let n=0;n{let a=e,o=t.split(ka),r=o.length;for(let s=0;s"isThemeGetter"in e&&e.isThemeGetter===!0,uf=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,a=Object.create(null),o=Object.create(null),r=(s,n)=>{a[s]=n,t++,t>e&&(t=0,o=a,a=Object.create(null))};return{get(s){let n=a[s];if(n!==void 0)return n;if((n=o[s])!==void 0)return r(s,n),n},set(s,n){s in a?a[s]=n:r(s,n)}}},Vo="!",ul=":",df=[],dl=(e,t,a,o,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:a,maybePostfixModifierPosition:o,isExternal:r}),ff=e=>{let{prefix:t,experimentalParseClassName:a}=e,o=r=>{let s=[],n=0,l=0,f=0,u,i=r.length;for(let m=0;mf?u-f:void 0;return dl(s,p,c,h)};if(t){let r=t+ul,s=o;o=n=>n.startsWith(r)?s(n.slice(r.length)):dl(df,!1,n,void 0,!0)}if(a){let r=o;o=s=>a({className:s,parseClassName:r})}return o},cf=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((a,o)=>{t.set(a,1e6+o)}),a=>{let o=[],r=[];for(let s=0;s0&&(r.sort(),o.push(...r),r=[]),o.push(n)):r.push(n)}return r.length>0&&(r.sort(),o.push(...r)),o}},pf=e=>({cache:uf(e.cacheSize),parseClassName:ff(e),sortModifiers:cf(e),postfixLookupClassGroupIds:mf(e),...Qi(e)}),mf=e=>{let t=Object.create(null),a=e.postfixLookupClassGroups;if(a)for(let o=0;o{let{parseClassName:a,getClassGroupId:o,getConflictingClassGroupIds:r,sortModifiers:s,postfixLookupClassGroupIds:n}=t,l=[],f=e.trim().split(hf),u="";for(let i=f.length-1;i>=0;i-=1){let d=f[i],{isExternal:c,modifiers:p,hasImportantModifier:h,baseClassName:m,maybePostfixModifierPosition:x}=a(d);if(c){u=d+(u.length>0?" "+u:u);continue}let g=!!x,I;if(g){let S=m.substring(0,x);I=o(S);let L=I&&n[I]?o(m):void 0;L&&L!==I&&(I=L,g=!1)}else I=o(m);if(!I){if(!g){u=d+(u.length>0?" "+u:u);continue}if(I=o(m),!I){u=d+(u.length>0?" "+u:u);continue}g=!1}let C=p.length===0?"":p.length===1?p[0]:s(p).join(":"),w=h?C+Vo:C,b=w+I;if(l.indexOf(b)>-1)continue;l.push(b);let y=r(I,g);for(let S=0;S0?" "+u:u)}return u},gf=(...e)=>{let t=0,a,o,r="";for(;t{if(typeof e=="string")return e;let t,a="";for(let o=0;o{let a,o,r,s,n=f=>{let u=t.reduce((i,d)=>d(i),e());return a=pf(u),o=a.cache.get,r=a.cache.set,s=l,l(f)},l=f=>{let u=o(f);if(u)return u;let i=xf(f,a);return r(f,i),i};return s=n,(...f)=>s(gf(...f))},If=[],Q=e=>{let t=a=>a[e]||If;return t.isThemeGetter=!0,t},gl=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Ll=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Cf=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,wf=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Sf=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,vf=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,bf=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,yf=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ve=e=>Cf.test(e),O=e=>!!e&&!Number.isNaN(Number(e)),Me=e=>!!e&&Number.isInteger(Number(e)),Wo=e=>e.endsWith("%")&&O(e.slice(0,-1)),qe=e=>wf.test(e),Il=()=>!0,Rf=e=>Sf.test(e)&&!vf.test(e),Ko=()=>!1,Pf=e=>bf.test(e),kf=e=>yf.test(e),Af=e=>!R(e)&&!P(e),Mf=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Df=e=>Xe(e,Sl,Ko),R=e=>gl.test(e),nt=e=>Xe(e,vl,Rf),il=e=>Xe(e,Nf,O),Tf=e=>Xe(e,yl,Il),Ff=e=>Xe(e,bl,Ko),fl=e=>Xe(e,Cl,Ko),Of=e=>Xe(e,wl,kf),Ra=e=>Xe(e,Rl,Pf),P=e=>Ll.test(e),Ut=e=>lt(e,vl),Bf=e=>lt(e,bl),cl=e=>lt(e,Cl),Ef=e=>lt(e,Sl),qf=e=>lt(e,wl),Pa=e=>lt(e,Rl,!0),Uf=e=>lt(e,yl,!0),Xe=(e,t,a)=>{let o=gl.exec(e);return o?o[1]?t(o[1]):a(o[2]):!1},lt=(e,t,a=!1)=>{let o=Ll.exec(e);return o?o[1]?t(o[1]):a:!1},Cl=e=>e==="position"||e==="percentage",wl=e=>e==="image"||e==="url",Sl=e=>e==="length"||e==="size"||e==="bg-size",vl=e=>e==="length",Nf=e=>e==="number",bl=e=>e==="family-name",yl=e=>e==="number"||e==="weight",Rl=e=>e==="shadow";var _f=()=>{let e=Q("color"),t=Q("font"),a=Q("text"),o=Q("font-weight"),r=Q("tracking"),s=Q("leading"),n=Q("breakpoint"),l=Q("container"),f=Q("spacing"),u=Q("radius"),i=Q("shadow"),d=Q("inset-shadow"),c=Q("text-shadow"),p=Q("drop-shadow"),h=Q("blur"),m=Q("perspective"),x=Q("aspect"),g=Q("ease"),I=Q("animate"),C=()=>["auto","avoid","all","avoid-page","page","left","right","column"],w=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],b=()=>[...w(),P,R],y=()=>["auto","hidden","clip","visible","scroll"],S=()=>["auto","contain","none"],L=()=>[P,R,f],F=()=>[Ve,"full","auto",...L()],E=()=>[Me,"none","subgrid",P,R],q=()=>["auto",{span:["full",Me,P,R]},Me,P,R],N=()=>[Me,"auto",P,R],H=()=>["auto","min","max","fr",P,R],U=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],z=()=>["start","end","center","stretch","center-safe","end-safe"],T=()=>["auto",...L()],_=()=>[Ve,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...L()],M=()=>[Ve,"screen","full","dvw","lvw","svw","min","max","fit",...L()],k=()=>[Ve,"screen","full","lh","dvh","lvh","svh","min","max","fit",...L()],v=()=>[e,P,R],pe=()=>[...w(),cl,fl,{position:[P,R]}],Ie=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Ne=()=>["auto","cover","contain",Ef,Df,{size:[P,R]}],Te=()=>[Wo,Ut,nt],$=()=>["","none","full",u,P,R],W=()=>["",O,Ut,nt],Y=()=>["solid","dashed","dotted","double"],Ce=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],K=()=>[O,Wo,cl,fl],Ht=()=>["","none",h,P,R],ut=()=>["none",O,P,R],dt=()=>["none",O,P,R],It=()=>[O,P,R],Fe=()=>[Ve,"full",...L()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[qe],breakpoint:[qe],color:[Il],container:[qe],"drop-shadow":[qe],ease:["in","out","in-out"],font:[Af],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[qe],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[qe],shadow:[qe],spacing:["px",O],text:[qe],"text-shadow":[qe],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",Ve,R,P,x]}],container:["container"],"container-type":[{"@container":["","normal","size",P,R]}],"container-named":[Mf],columns:[{columns:[O,R,P,l]}],"break-after":[{"break-after":C()}],"break-before":[{"break-before":C()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:b()}],overflow:[{overflow:y()}],"overflow-x":[{"overflow-x":y()}],"overflow-y":[{"overflow-y":y()}],overscroll:[{overscroll:S()}],"overscroll-x":[{"overscroll-x":S()}],"overscroll-y":[{"overscroll-y":S()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:F()}],"inset-x":[{"inset-x":F()}],"inset-y":[{"inset-y":F()}],start:[{"inset-s":F(),start:F()}],end:[{"inset-e":F(),end:F()}],"inset-bs":[{"inset-bs":F()}],"inset-be":[{"inset-be":F()}],top:[{top:F()}],right:[{right:F()}],bottom:[{bottom:F()}],left:[{left:F()}],visibility:["visible","invisible","collapse"],z:[{z:[Me,"auto",P,R]}],basis:[{basis:[Ve,"full","auto",l,...L()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[O,Ve,"auto","initial","none",R]}],grow:[{grow:["",O,P,R]}],shrink:[{shrink:["",O,P,R]}],order:[{order:[Me,"first","last","none",P,R]}],"grid-cols":[{"grid-cols":E()}],"col-start-end":[{col:q()}],"col-start":[{"col-start":N()}],"col-end":[{"col-end":N()}],"grid-rows":[{"grid-rows":E()}],"row-start-end":[{row:q()}],"row-start":[{"row-start":N()}],"row-end":[{"row-end":N()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":H()}],"auto-rows":[{"auto-rows":H()}],gap:[{gap:L()}],"gap-x":[{"gap-x":L()}],"gap-y":[{"gap-y":L()}],"justify-content":[{justify:[...U(),"normal"]}],"justify-items":[{"justify-items":[...z(),"normal"]}],"justify-self":[{"justify-self":["auto",...z()]}],"align-content":[{content:["normal",...U()]}],"align-items":[{items:[...z(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...z(),{baseline:["","last"]}]}],"place-content":[{"place-content":U()}],"place-items":[{"place-items":[...z(),"baseline"]}],"place-self":[{"place-self":["auto",...z()]}],p:[{p:L()}],px:[{px:L()}],py:[{py:L()}],ps:[{ps:L()}],pe:[{pe:L()}],pbs:[{pbs:L()}],pbe:[{pbe:L()}],pt:[{pt:L()}],pr:[{pr:L()}],pb:[{pb:L()}],pl:[{pl:L()}],m:[{m:T()}],mx:[{mx:T()}],my:[{my:T()}],ms:[{ms:T()}],me:[{me:T()}],mbs:[{mbs:T()}],mbe:[{mbe:T()}],mt:[{mt:T()}],mr:[{mr:T()}],mb:[{mb:T()}],ml:[{ml:T()}],"space-x":[{"space-x":L()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":L()}],"space-y-reverse":["space-y-reverse"],size:[{size:_()}],"inline-size":[{inline:["auto",...M()]}],"min-inline-size":[{"min-inline":["auto",...M()]}],"max-inline-size":[{"max-inline":["none",...M()]}],"block-size":[{block:["auto",...k()]}],"min-block-size":[{"min-block":["auto",...k()]}],"max-block-size":[{"max-block":["none",...k()]}],w:[{w:[l,"screen",..._()]}],"min-w":[{"min-w":[l,"screen","none",..._()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[n]},..._()]}],h:[{h:["screen","lh",..._()]}],"min-h":[{"min-h":["screen","lh","none",..._()]}],"max-h":[{"max-h":["screen","lh",..._()]}],"font-size":[{text:["base",a,Ut,nt]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,Uf,Tf]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Wo,R]}],"font-family":[{font:[Bf,Ff,t]}],"font-features":[{"font-features":[R]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,P,R]}],"line-clamp":[{"line-clamp":[O,"none",P,il]}],leading:[{leading:[s,...L()]}],"list-image":[{"list-image":["none",P,R]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",P,R]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:v()}],"text-color":[{text:v()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Y(),"wavy"]}],"text-decoration-thickness":[{decoration:[O,"from-font","auto",P,nt]}],"text-decoration-color":[{decoration:v()}],"underline-offset":[{"underline-offset":[O,"auto",P,R]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:L()}],"tab-size":[{tab:[Me,P,R]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",P,R]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",P,R]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:pe()}],"bg-repeat":[{bg:Ie()}],"bg-size":[{bg:Ne()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Me,P,R],radial:["",P,R],conic:[Me,P,R]},qf,Of]}],"bg-color":[{bg:v()}],"gradient-from-pos":[{from:Te()}],"gradient-via-pos":[{via:Te()}],"gradient-to-pos":[{to:Te()}],"gradient-from":[{from:v()}],"gradient-via":[{via:v()}],"gradient-to":[{to:v()}],rounded:[{rounded:$()}],"rounded-s":[{"rounded-s":$()}],"rounded-e":[{"rounded-e":$()}],"rounded-t":[{"rounded-t":$()}],"rounded-r":[{"rounded-r":$()}],"rounded-b":[{"rounded-b":$()}],"rounded-l":[{"rounded-l":$()}],"rounded-ss":[{"rounded-ss":$()}],"rounded-se":[{"rounded-se":$()}],"rounded-ee":[{"rounded-ee":$()}],"rounded-es":[{"rounded-es":$()}],"rounded-tl":[{"rounded-tl":$()}],"rounded-tr":[{"rounded-tr":$()}],"rounded-br":[{"rounded-br":$()}],"rounded-bl":[{"rounded-bl":$()}],"border-w":[{border:W()}],"border-w-x":[{"border-x":W()}],"border-w-y":[{"border-y":W()}],"border-w-s":[{"border-s":W()}],"border-w-e":[{"border-e":W()}],"border-w-bs":[{"border-bs":W()}],"border-w-be":[{"border-be":W()}],"border-w-t":[{"border-t":W()}],"border-w-r":[{"border-r":W()}],"border-w-b":[{"border-b":W()}],"border-w-l":[{"border-l":W()}],"divide-x":[{"divide-x":W()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":W()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...Y(),"hidden","none"]}],"divide-style":[{divide:[...Y(),"hidden","none"]}],"border-color":[{border:v()}],"border-color-x":[{"border-x":v()}],"border-color-y":[{"border-y":v()}],"border-color-s":[{"border-s":v()}],"border-color-e":[{"border-e":v()}],"border-color-bs":[{"border-bs":v()}],"border-color-be":[{"border-be":v()}],"border-color-t":[{"border-t":v()}],"border-color-r":[{"border-r":v()}],"border-color-b":[{"border-b":v()}],"border-color-l":[{"border-l":v()}],"divide-color":[{divide:v()}],"outline-style":[{outline:[...Y(),"none","hidden"]}],"outline-offset":[{"outline-offset":[O,P,R]}],"outline-w":[{outline:["",O,Ut,nt]}],"outline-color":[{outline:v()}],shadow:[{shadow:["","none",i,Pa,Ra]}],"shadow-color":[{shadow:v()}],"inset-shadow":[{"inset-shadow":["none",d,Pa,Ra]}],"inset-shadow-color":[{"inset-shadow":v()}],"ring-w":[{ring:W()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:v()}],"ring-offset-w":[{"ring-offset":[O,nt]}],"ring-offset-color":[{"ring-offset":v()}],"inset-ring-w":[{"inset-ring":W()}],"inset-ring-color":[{"inset-ring":v()}],"text-shadow":[{"text-shadow":["none",c,Pa,Ra]}],"text-shadow-color":[{"text-shadow":v()}],opacity:[{opacity:[O,P,R]}],"mix-blend":[{"mix-blend":[...Ce(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ce()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[O]}],"mask-image-linear-from-pos":[{"mask-linear-from":K()}],"mask-image-linear-to-pos":[{"mask-linear-to":K()}],"mask-image-linear-from-color":[{"mask-linear-from":v()}],"mask-image-linear-to-color":[{"mask-linear-to":v()}],"mask-image-t-from-pos":[{"mask-t-from":K()}],"mask-image-t-to-pos":[{"mask-t-to":K()}],"mask-image-t-from-color":[{"mask-t-from":v()}],"mask-image-t-to-color":[{"mask-t-to":v()}],"mask-image-r-from-pos":[{"mask-r-from":K()}],"mask-image-r-to-pos":[{"mask-r-to":K()}],"mask-image-r-from-color":[{"mask-r-from":v()}],"mask-image-r-to-color":[{"mask-r-to":v()}],"mask-image-b-from-pos":[{"mask-b-from":K()}],"mask-image-b-to-pos":[{"mask-b-to":K()}],"mask-image-b-from-color":[{"mask-b-from":v()}],"mask-image-b-to-color":[{"mask-b-to":v()}],"mask-image-l-from-pos":[{"mask-l-from":K()}],"mask-image-l-to-pos":[{"mask-l-to":K()}],"mask-image-l-from-color":[{"mask-l-from":v()}],"mask-image-l-to-color":[{"mask-l-to":v()}],"mask-image-x-from-pos":[{"mask-x-from":K()}],"mask-image-x-to-pos":[{"mask-x-to":K()}],"mask-image-x-from-color":[{"mask-x-from":v()}],"mask-image-x-to-color":[{"mask-x-to":v()}],"mask-image-y-from-pos":[{"mask-y-from":K()}],"mask-image-y-to-pos":[{"mask-y-to":K()}],"mask-image-y-from-color":[{"mask-y-from":v()}],"mask-image-y-to-color":[{"mask-y-to":v()}],"mask-image-radial":[{"mask-radial":[P,R]}],"mask-image-radial-from-pos":[{"mask-radial-from":K()}],"mask-image-radial-to-pos":[{"mask-radial-to":K()}],"mask-image-radial-from-color":[{"mask-radial-from":v()}],"mask-image-radial-to-color":[{"mask-radial-to":v()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":w()}],"mask-image-conic-pos":[{"mask-conic":[O]}],"mask-image-conic-from-pos":[{"mask-conic-from":K()}],"mask-image-conic-to-pos":[{"mask-conic-to":K()}],"mask-image-conic-from-color":[{"mask-conic-from":v()}],"mask-image-conic-to-color":[{"mask-conic-to":v()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:pe()}],"mask-repeat":[{mask:Ie()}],"mask-size":[{mask:Ne()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",P,R]}],filter:[{filter:["","none",P,R]}],blur:[{blur:Ht()}],brightness:[{brightness:[O,P,R]}],contrast:[{contrast:[O,P,R]}],"drop-shadow":[{"drop-shadow":["","none",p,Pa,Ra]}],"drop-shadow-color":[{"drop-shadow":v()}],grayscale:[{grayscale:["",O,P,R]}],"hue-rotate":[{"hue-rotate":[O,P,R]}],invert:[{invert:["",O,P,R]}],saturate:[{saturate:[O,P,R]}],sepia:[{sepia:["",O,P,R]}],"backdrop-filter":[{"backdrop-filter":["","none",P,R]}],"backdrop-blur":[{"backdrop-blur":Ht()}],"backdrop-brightness":[{"backdrop-brightness":[O,P,R]}],"backdrop-contrast":[{"backdrop-contrast":[O,P,R]}],"backdrop-grayscale":[{"backdrop-grayscale":["",O,P,R]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[O,P,R]}],"backdrop-invert":[{"backdrop-invert":["",O,P,R]}],"backdrop-opacity":[{"backdrop-opacity":[O,P,R]}],"backdrop-saturate":[{"backdrop-saturate":[O,P,R]}],"backdrop-sepia":[{"backdrop-sepia":["",O,P,R]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":L()}],"border-spacing-x":[{"border-spacing-x":L()}],"border-spacing-y":[{"border-spacing-y":L()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",P,R]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[O,"initial",P,R]}],ease:[{ease:["linear","initial",g,P,R]}],delay:[{delay:[O,P,R]}],animate:[{animate:["none",I,P,R]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,P,R]}],"perspective-origin":[{"perspective-origin":b()}],rotate:[{rotate:ut()}],"rotate-x":[{"rotate-x":ut()}],"rotate-y":[{"rotate-y":ut()}],"rotate-z":[{"rotate-z":ut()}],scale:[{scale:dt()}],"scale-x":[{"scale-x":dt()}],"scale-y":[{"scale-y":dt()}],"scale-z":[{"scale-z":dt()}],"scale-3d":["scale-3d"],skew:[{skew:It()}],"skew-x":[{"skew-x":It()}],"skew-y":[{"skew-y":It()}],transform:[{transform:[P,R,"","none","gpu","cpu"]}],"transform-origin":[{origin:b()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:Fe()}],"translate-x":[{"translate-x":Fe()}],"translate-y":[{"translate-y":Fe()}],"translate-z":[{"translate-z":Fe()}],"translate-none":["translate-none"],zoom:[{zoom:[Me,P,R]}],accent:[{accent:v()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:v()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",P,R]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":v()}],"scrollbar-track-color":[{"scrollbar-track":v()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":L()}],"scroll-mx":[{"scroll-mx":L()}],"scroll-my":[{"scroll-my":L()}],"scroll-ms":[{"scroll-ms":L()}],"scroll-me":[{"scroll-me":L()}],"scroll-mbs":[{"scroll-mbs":L()}],"scroll-mbe":[{"scroll-mbe":L()}],"scroll-mt":[{"scroll-mt":L()}],"scroll-mr":[{"scroll-mr":L()}],"scroll-mb":[{"scroll-mb":L()}],"scroll-ml":[{"scroll-ml":L()}],"scroll-p":[{"scroll-p":L()}],"scroll-px":[{"scroll-px":L()}],"scroll-py":[{"scroll-py":L()}],"scroll-ps":[{"scroll-ps":L()}],"scroll-pe":[{"scroll-pe":L()}],"scroll-pbs":[{"scroll-pbs":L()}],"scroll-pbe":[{"scroll-pbe":L()}],"scroll-pt":[{"scroll-pt":L()}],"scroll-pr":[{"scroll-pr":L()}],"scroll-pb":[{"scroll-pb":L()}],"scroll-pl":[{"scroll-pl":L()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",P,R]}],fill:[{fill:["none",...v()]}],"stroke-w":[{stroke:[O,Ut,nt,il]}],stroke:[{stroke:["none",...v()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var Pl=Lf(_f);function De(...e){return Pl(nl(e))}import{jsx as Ue,jsxs as Hf}from"react/jsx-runtime";function kl({...e}){return Ue("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...e})}function Al({className:e,...t}){return Ue("ol",{"data-slot":"breadcrumb-list",className:De("flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5",e),...t})}function Nt({className:e,...t}){return Ue("li",{"data-slot":"breadcrumb-item",className:De("inline-flex items-center gap-1.5",e),...t})}function jo({asChild:e,className:t,...a}){let o=e?Xt.Root:"a";return Ue(o,{"data-slot":"breadcrumb-link",className:De("transition-colors hover:text-foreground",t),...a})}function Ml({className:e,...t}){return Ue("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",className:De("font-normal text-foreground",e),...t})}function Aa({children:e,className:t,...a}){return Ue("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:De("[&>svg]:size-3.5",t),...a,children:e??Ue(Ct,{})})}function Dl({className:e,...t}){return Hf("span",{"data-slot":"breadcrumb-ellipsis",role:"presentation","aria-hidden":"true",className:De("flex size-9 items-center justify-center",e),...t,children:[Ue(_e,{className:"size-4"}),Ue("span",{className:"sr-only",children:"More"})]})}import{jsx as _t,jsxs as Nh}from"react/jsx-runtime";function Tl({...e}){return _t(We.Root,{"data-slot":"dropdown-menu",...e})}function Fl({...e}){return _t(We.Trigger,{"data-slot":"dropdown-menu-trigger",...e})}function Ol({className:e,sideOffset:t=4,...a}){return _t(We.Portal,{children:_t(We.Content,{"data-slot":"dropdown-menu-content",sideOffset:t,className:De("z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",e),...a})})}function Ma({className:e,inset:t,variant:a="default",...o}){return _t(We.Item,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":a,className:De("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",e),...o})}import{jsx as ae,jsxs as Da}from"react/jsx-runtime";function Gf(){return ae(kl,{children:Da(Al,{children:[ae(Nt,{children:ae(jo,{asChild:!0,children:ae(Ta,{href:"/",children:"Home"})})}),ae(Aa,{}),ae(Nt,{children:Da(Tl,{children:[Da(Fl,{className:"flex items-center gap-1",children:[ae(Dl,{className:"size-4"}),ae("span",{className:"sr-only",children:"Toggle menu"})]}),Da(Ol,{align:"start",children:[ae(Ma,{children:"Documentation"}),ae(Ma,{children:"Themes"}),ae(Ma,{children:"GitHub"})]})]})}),ae(Aa,{}),ae(Nt,{children:ae(jo,{asChild:!0,children:ae(Ta,{href:"/docs/components",children:"Components"})})}),ae(Aa,{}),ae(Nt,{children:ae(Ml,{children:"Breadcrumb"})})]})})}export{Gf as default}; +/*! Bundled license information: + +lucide-react/dist/esm/shared/src/utils.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/defaultAttributes.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/Icon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/createLucideIcon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/chevron-right.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/ellipsis.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/lucide-react.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/b/3de4a9e0ac75a24a4034d023b95c2723ed7e0c1a74407c9e73c12af9751e4121 b/b/3de4a9e0ac75a24a4034d023b95c2723ed7e0c1a74407c9e73c12af9751e4121 new file mode 100644 index 0000000000000000000000000000000000000000..bd73333fa4547a57c434fd8daec526b82e09aaca --- /dev/null +++ b/b/3de4a9e0ac75a24a4034d023b95c2723ed7e0c1a74407c9e73c12af9751e4121 @@ -0,0 +1,20 @@ +{ + "id": "org.hologram.ui.sparkles-text", + "name": "sparkles-text", + "tier": "component", + "library": "magicui", + "category": "Text", + "upstream": "https://magicui.design/r/sparkles-text.json", + "did": "did:holo:sha256:7c9d0b86faa2b9be99c16ea90c8167119a1d3408545a8fc0094342c27ed9aa13", + "import": "holo://sha256:17b312a39b53300e1ff786cf79c6bba15818d930733b888d3800fdaca3e263b2", + "integrity": "sha256-F7MSo5tTMA4f94bPeca7oVgY2TBzO4iNOAD9rKPiY7I=", + "kappa": "sha256:7c9d0b86faa2b9be99c16ea90c8167119a1d3408545a8fc0094342c27ed9aa13", + "moduleKappa": "sha256:17b312a39b53300e1ff786cf79c6bba15818d930733b888d3800fdaca3e263b2", + "renderExport": "SparklesText", + "source": "components/ui/sparkles-text.tsx", + "module": "vendor/components/sparkles-text.js", + "exports": [ + "SparklesText" + ], + "license": "MIT" +} diff --git a/b/3dfee700d5bc589b9a1d08b404cdcf89dfa56b38252d98f5c6da7a7f22c411d7 b/b/3dfee700d5bc589b9a1d08b404cdcf89dfa56b38252d98f5c6da7a7f22c411d7 new file mode 100644 index 0000000000000000000000000000000000000000..074a09033349a75f25fc14cb177fe850bcf82130 --- /dev/null +++ b/b/3dfee700d5bc589b9a1d08b404cdcf89dfa56b38252d98f5c6da7a7f22c411d7 @@ -0,0 +1,217 @@ +var Fd=Object.defineProperty;var lt=(e,t)=>{for(var a in t)Fd(e,a,{get:t[a],enumerable:!0})};import*as Kn from"react";import{forwardRef as Bd,createElement as Nd}from"react";var Yn=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),za=(...e)=>e.filter((t,a,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===a).join(" ").trim();import{forwardRef as Ed,createElement as Jn}from"react";var Zn={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Qn=Ed(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:r="",children:n,iconNode:s,...l},i)=>Jn("svg",{ref:i,...Zn,width:t,height:t,stroke:e,strokeWidth:o?Number(a)*24/Number(t):a,className:za("lucide",r),...l},[...s.map(([u,c])=>Jn(u,c)),...Array.isArray(n)?n:[n]]));var G=(e,t)=>{let a=Bd(({className:o,...r},n)=>Nd(Qn,{ref:n,iconNode:t,className:za(`lucide-${Yn(e)}`,o),...r}));return a.displayName=`${e}`,a};var ea=G("ArchiveX",[["rect",{width:"20",height:"5",x:"2",y:"3",rx:"1",key:"1wp1u1"}],["path",{d:"M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8",key:"1s80jp"}],["path",{d:"m9.5 17 5-5",key:"nakeu6"}],["path",{d:"m9.5 12 5 5",key:"1hccrj"}]]);var ut=G("BadgeCheck",[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);var ta=G("Bell",[["path",{d:"M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9",key:"1qo2s2"}],["path",{d:"M10.3 21a1.94 1.94 0 0 0 3.4 0",key:"qgo35s"}]]);var aa=G("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var oa=G("ChevronsUpDown",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var ra=G("Command",[["path",{d:"M15 6v12a3 3 0 1 0 3-3H6a3 3 0 1 0 3 3V6a3 3 0 1 0-3 3h12a3 3 0 1 0-3-3",key:"11bfej"}]]);var na=G("CreditCard",[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]]);var sa=G("File",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}]]);var la=G("Inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);var ua=G("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);var it=G("PanelLeft",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]]);var ia=G("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);var dt=G("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);var da=G("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);var ca=G("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);import*as ss from"react";import*as rs from"react";import*as ns from"react-dom";var ct={};lt(ct,{Root:()=>_d,Slot:()=>_d,Slottable:()=>qd,createSlot:()=>_e,createSlottable:()=>Wa});import*as pe from"react";import*as ts from"react";function es(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function fa(...e){return t=>{let a=!1,o=e.map(r=>{let n=es(r,t);return!a&&typeof n=="function"&&(a=!0),n});if(a)return()=>{for(let r=0;r{let{children:r,...n}=a,s=null,l=!1,i=[];as(r)&&typeof Ga=="function"&&(r=Ga(r._payload)),pe.Children.forEach(r,f=>{if(Gd(f)){l=!0;let p=f,h="child"in p.props?p.props.child:p.props.children;as(h)&&typeof Ga=="function"&&(h=Ga(h._payload)),s=Ud(p,h),i.push(s?.props?.children)}else i.push(f)}),s?s=pe.cloneElement(s,void 0,i):!l&&pe.Children.count(r)===1&&pe.isValidElement(r)&&(s=r);let u=s?zd(s):void 0,c=U(o,u);if(!s){if(r||r===0)throw new Error(l?Xd(e):jd(e));return r}let d=Hd(n,s.props??{});return s.type!==pe.Fragment&&(d.ref=o?c:u),pe.cloneElement(s,d)});return t.displayName=`${e}.Slot`,t}var _d=_e("Slot"),os=Symbol.for("radix.slottable");function Wa(e){let t=a=>"child"in a?a.children(a.child):a.children;return t.displayName=`${e}.Slottable`,t.__radixId=os,t}var qd=Wa("Slottable"),Ud=(e,t)=>{if("child"in e.props){let a=e.props.child;return pe.isValidElement(a)?pe.cloneElement(a,void 0,e.props.children(a.props.children)):null}return pe.isValidElement(t)?t:null};function Hd(e,t){let a={...t};for(let o in t){let r=e[o],n=t[o];/^on[A-Z]/.test(o)?r&&n?a[o]=(...l)=>{let i=n(...l);return r(...l),i}:r&&(a[o]=r):o==="style"?a[o]={...r,...n}:o==="className"&&(a[o]=[r,n].filter(Boolean).join(" "))}return{...e,...a}}function zd(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning;return a?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}function Gd(e){return pe.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===os}var Wd=Symbol.for("react.lazy");function as(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Wd&&"_payload"in e&&Vd(e._payload)}function Vd(e){return typeof e=="object"&&e!==null&&"then"in e}var jd=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Xd=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,Ga=pe[" use ".trim().toString()];import{jsx as Kd}from"react/jsx-runtime";var $d=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],T=$d.reduce((e,t)=>{let a=_e(`Primitive.${t}`),o=rs.forwardRef((r,n)=>{let{asChild:s,...l}=r,i=s?a:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),Kd(i,{...l,ref:n})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function Va(e,t){e&&ns.flushSync(()=>e.dispatchEvent(t))}import{jsx as Yd}from"react/jsx-runtime";var Zd=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Jd="VisuallyHidden",ls=ss.forwardRef((e,t)=>Yd(T.span,{...e,ref:t,style:{...Zd,...e.style}}));ls.displayName=Jd;var us=ls;import*as Ae from"react";import{jsx as is}from"react/jsx-runtime";function ds(e,t){let a=Ae.createContext(t);a.displayName=e+"Context";let o=n=>{let{children:s,...l}=n,i=Ae.useMemo(()=>l,Object.values(l));return is(a.Provider,{value:i,children:s})};o.displayName=e+"Provider";function r(n){let s=Ae.useContext(a);if(s)return s;if(t!==void 0)return t;throw new Error(`\`${n}\` must be used within \`${e}\``)}return[o,r]}function ie(e,t=[]){let a=[];function o(n,s){let l=Ae.createContext(s);l.displayName=n+"Context";let i=a.length;a=[...a,s];let u=d=>{let{scope:f,children:p,...h}=d,m=f?.[e]?.[i]||l,g=Ae.useMemo(()=>h,Object.values(h));return is(m.Provider,{value:g,children:p})};u.displayName=n+"Provider";function c(d,f){let p=f?.[e]?.[i]||l,h=Ae.useContext(p);if(h)return h;if(s!==void 0)return s;throw new Error(`\`${d}\` must be used within \`${n}\``)}return[u,c]}let r=()=>{let n=a.map(s=>Ae.createContext(s));return function(l){let i=l?.[e]||n;return Ae.useMemo(()=>({[`__scope${e}`]:{...l,[e]:i}}),[l,i])}};return r.scopeName=e,[o,ec(r,...t)]}function ec(...e){let t=e[0];if(e.length===1)return t;let a=()=>{let o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(n){let s=o.reduce((l,{useScope:i,scopeName:u})=>{let d=i(n)[`__scope${u}`];return{...l,...d}},{});return Ae.useMemo(()=>({[`__scope${t.scopeName}`]:s}),[s])}};return a.scopeName=t.scopeName,a}import*as qe from"react";import{jsx as Yo}from"react/jsx-runtime";import*as Xa from"react";import{jsx as Ox}from"react/jsx-runtime";function ja(e){let t=e+"CollectionProvider",[a,o]=ie(t),[r,n]=a(t,{collectionRef:{current:null},itemMap:new Map}),s=m=>{let{scope:g,children:x}=m,L=qe.useRef(null),I=qe.useRef(new Map).current;return Yo(r,{scope:g,itemMap:I,collectionRef:L,children:x})};s.displayName=t;let l=e+"CollectionSlot",i=_e(l),u=qe.forwardRef((m,g)=>{let{scope:x,children:L}=m,I=n(l,x),C=U(g,I.collectionRef);return Yo(i,{ref:C,children:L})});u.displayName=l;let c=e+"CollectionItemSlot",d="data-radix-collection-item",f=_e(c),p=qe.forwardRef((m,g)=>{let{scope:x,children:L,...I}=m,C=qe.useRef(null),w=U(g,C),S=n(c,x);return qe.useEffect(()=>(S.itemMap.set(C,{ref:C,...I}),()=>void S.itemMap.delete(C))),Yo(f,{[d]:"",ref:w,children:L})});p.displayName=c;function h(m){let g=n(e+"CollectionConsumer",m);return qe.useCallback(()=>{let L=g.collectionRef.current;if(!L)return[];let I=Array.from(L.querySelectorAll(`[${d}]`));return Array.from(g.itemMap.values()).sort((S,b)=>I.indexOf(S.ref.current)-I.indexOf(b.ref.current))},[g.collectionRef,g.itemMap])}return[{Provider:s,Slot:u,ItemSlot:p},h,o]}var Ex=!!(typeof window<"u"&&window.document&&window.document.createElement);function M(e,t,{checkForDefaultPrevented:a=!0}={}){return function(r){if(e?.(r),a===!1||!r.defaultPrevented)return t?.(r)}}import*as Me from"react";import*as cs from"react";var se=globalThis?.document?cs.useLayoutEffect:()=>{};import*as Ka from"react";var tc=Me[" useInsertionEffect ".trim().toString()]||se;function Ue({prop:e,defaultProp:t,onChange:a=()=>{},caller:o}){let[r,n,s]=ac({defaultProp:t,onChange:a}),l=e!==void 0,i=l?e:r;{let c=Me.useRef(e!==void 0);Me.useEffect(()=>{let d=c.current;d!==l&&console.warn(`${o} is changing from ${d?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),c.current=l},[l,o])}let u=Me.useCallback(c=>{if(l){let d=oc(c)?c(e):c;d!==e&&s.current?.(d)}else n(c)},[l,e,n,s]);return[i,u]}function ac({defaultProp:e,onChange:t}){let[a,o]=Me.useState(e),r=Me.useRef(a),n=Me.useRef(t);return tc(()=>{n.current=t},[t]),Me.useEffect(()=>{r.current!==a&&(n.current?.(a),r.current=a)},[a,r]),[a,o,n]}function oc(e){return typeof e=="function"}var qx=Symbol("RADIX:SYNC_STATE");import*as ge from"react";import*as ps from"react";function rc(e,t){return ps.useReducer((a,o)=>t[a][o]??a,e)}var Pe=e=>{let{present:t,children:a}=e,o=nc(t),r=typeof a=="function"?a({present:o.isPresent}):ge.Children.only(a),n=sc(o.ref,lc(r));return typeof a=="function"||o.isPresent?ge.cloneElement(r,{ref:n}):null};Pe.displayName="Presence";function nc(e){let[t,a]=ge.useState(),o=ge.useRef(null),r=ge.useRef(e),n=ge.useRef("none"),s=e?"mounted":"unmounted",[l,i]=rc(s,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return ge.useEffect(()=>{let u=$a(o.current);n.current=l==="mounted"?u:"none"},[l]),se(()=>{let u=o.current,c=r.current;if(c!==e){let f=n.current,p=$a(u);e?i("MOUNT"):p==="none"||u?.display==="none"?i("UNMOUNT"):i(c&&f!==p?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,i]),se(()=>{if(t){let u,c=t.ownerDocument.defaultView??window,d=p=>{let m=$a(o.current).includes(CSS.escape(p.animationName));if(p.target===t&&m&&(i("ANIMATION_END"),!r.current)){let g=t.style.animationFillMode;t.style.animationFillMode="forwards",u=c.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=g)})}},f=p=>{p.target===t&&(n.current=$a(o.current))};return t.addEventListener("animationstart",f),t.addEventListener("animationcancel",d),t.addEventListener("animationend",d),()=>{c.clearTimeout(u),t.removeEventListener("animationstart",f),t.removeEventListener("animationcancel",d),t.removeEventListener("animationend",d)}}else i("ANIMATION_END")},[t,i]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:ge.useCallback(u=>{o.current=u?getComputedStyle(u):null,a(u)},[])}}function fs(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function sc(...e){let t=ge.useRef(e);return t.current=e,ge.useCallback(a=>{let o=t.current,r=!1,n=o.map(s=>{let l=fs(s,a);return!r&&typeof l=="function"&&(r=!0),l});if(r)return()=>{for(let s=0;s{}),ic=0;function ve(e){let[t,a]=Zo.useState(uc());return se(()=>{e||a(o=>o??String(ic++))},[e]),e||(t?`radix-${t}`:"")}import*as Ya from"react";import{jsx as jx}from"react/jsx-runtime";var dc=Ya.createContext(void 0);function Za(e){let t=Ya.useContext(dc);return e||t||"ltr"}var Ke={};lt(Ke,{Close:()=>Lf,Content:()=>hf,Description:()=>xf,Dialog:()=>hr,DialogClose:()=>Sr,DialogContent:()=>Cr,DialogDescription:()=>wr,DialogOverlay:()=>Ir,DialogPortal:()=>Lr,DialogTitle:()=>br,DialogTrigger:()=>gr,Overlay:()=>mf,Portal:()=>pf,Root:()=>cf,Title:()=>gf,Trigger:()=>ff,WarningProvider:()=>sf,createDialogScope:()=>Qc});import*as K from"react";import*as Q from"react";import*as Ut from"react";function de(e){let t=Ut.useRef(e);return Ut.useEffect(()=>{t.current=e}),Ut.useMemo(()=>(...a)=>t.current?.(...a),[])}import*as ms from"react";function hs(e,t=globalThis?.document){let a=de(e);ms.useEffect(()=>{let o=r=>{r.key==="Escape"&&a(r)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[a,t])}import{jsx as Ls}from"react/jsx-runtime";var cc="DismissableLayer",Jo="dismissableLayer.update",fc="dismissableLayer.pointerDownOutside",pc="dismissableLayer.focusOutside",gs,Is=Q.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),xt=Q.forwardRef((e,t)=>{let{disableOutsidePointerEvents:a=!1,onEscapeKeyDown:o,onPointerDownOutside:r,onFocusOutside:n,onInteractOutside:s,onDismiss:l,...i}=e,u=Q.useContext(Is),[c,d]=Q.useState(null),f=c?.ownerDocument??globalThis?.document,[,p]=Q.useState({}),h=U(t,b=>d(b)),m=Array.from(u.layers),[g]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),x=m.indexOf(g),L=c?m.indexOf(c):-1,I=u.layersWithOutsidePointerEventsDisabled.size>0,C=L>=x,w=gc(b=>{let v=b.target,E=[...u.branches].some(_=>_.contains(v));!C||E||(r?.(b),s?.(b),b.defaultPrevented||l?.())},f),S=xc(b=>{let v=b.target;[...u.branches].some(_=>_.contains(v))||(n?.(b),s?.(b),b.defaultPrevented||l?.())},f);return hs(b=>{L===u.layers.size-1&&(o?.(b),!b.defaultPrevented&&l&&(b.preventDefault(),l()))},f),Q.useEffect(()=>{if(c)return a&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(gs=f.body.style.pointerEvents,f.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(c)),u.layers.add(c),xs(),()=>{a&&(u.layersWithOutsidePointerEventsDisabled.delete(c),u.layersWithOutsidePointerEventsDisabled.size===0&&(f.body.style.pointerEvents=gs))}},[c,f,a,u]),Q.useEffect(()=>()=>{c&&(u.layers.delete(c),u.layersWithOutsidePointerEventsDisabled.delete(c),xs())},[c,u]),Q.useEffect(()=>{let b=()=>p({});return document.addEventListener(Jo,b),()=>document.removeEventListener(Jo,b)},[]),Ls(T.div,{...i,ref:h,style:{pointerEvents:I?C?"auto":"none":void 0,...e.style},onFocusCapture:M(e.onFocusCapture,S.onFocusCapture),onBlurCapture:M(e.onBlurCapture,S.onBlurCapture),onPointerDownCapture:M(e.onPointerDownCapture,w.onPointerDownCapture)})});xt.displayName=cc;var mc="DismissableLayerBranch",hc=Q.forwardRef((e,t)=>{let a=Q.useContext(Is),o=Q.useRef(null),r=U(t,o);return Q.useEffect(()=>{let n=o.current;if(n)return a.branches.add(n),()=>{a.branches.delete(n)}},[a.branches]),Ls(T.div,{...e,ref:r})});hc.displayName=mc;function gc(e,t=globalThis?.document){let a=de(e),o=Q.useRef(!1),r=Q.useRef(()=>{});return Q.useEffect(()=>{let n=l=>{if(l.target&&!o.current){let u=function(){Cs(fc,a,c,{discrete:!0})};var i=u;let c={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=u,t.addEventListener("click",r.current,{once:!0})):u()}else t.removeEventListener("click",r.current);o.current=!1},s=window.setTimeout(()=>{t.addEventListener("pointerdown",n)},0);return()=>{window.clearTimeout(s),t.removeEventListener("pointerdown",n),t.removeEventListener("click",r.current)}},[t,a]),{onPointerDownCapture:()=>o.current=!0}}function xc(e,t=globalThis?.document){let a=de(e),o=Q.useRef(!1);return Q.useEffect(()=>{let r=n=>{n.target&&!o.current&&Cs(pc,a,{originalEvent:n},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,a]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function xs(){let e=new CustomEvent(Jo);document.dispatchEvent(e)}function Cs(e,t,a,{discrete:o}){let r=a.originalEvent.target,n=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:a});t&&r.addEventListener(e,t,{once:!0}),o?Va(r,n):r.dispatchEvent(n)}import*as De from"react";import{jsx as Lc}from"react/jsx-runtime";var Qo="focusScope.autoFocusOnMount",er="focusScope.autoFocusOnUnmount",vs={bubbles:!1,cancelable:!0},Ic="FocusScope",pa=De.forwardRef((e,t)=>{let{loop:a=!1,trapped:o=!1,onMountAutoFocus:r,onUnmountAutoFocus:n,...s}=e,[l,i]=De.useState(null),u=de(r),c=de(n),d=De.useRef(null),f=U(t,m=>i(m)),p=De.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;De.useEffect(()=>{if(o){let L=function(S){if(p.paused||!l)return;let b=S.target;l.contains(b)?d.current=b:ft(d.current,{select:!0})},I=function(S){if(p.paused||!l)return;let b=S.relatedTarget;b!==null&&(l.contains(b)||ft(d.current,{select:!0}))},C=function(S){if(document.activeElement===document.body)for(let v of S)v.removedNodes.length>0&&ft(l)};var m=L,g=I,x=C;document.addEventListener("focusin",L),document.addEventListener("focusout",I);let w=new MutationObserver(C);return l&&w.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",L),document.removeEventListener("focusout",I),w.disconnect()}}},[o,l,p.paused]),De.useEffect(()=>{if(l){ws.add(p);let m=document.activeElement;if(!l.contains(m)){let x=new CustomEvent(Qo,vs);l.addEventListener(Qo,u),l.dispatchEvent(x),x.defaultPrevented||(Cc(yc(ys(l)),{select:!0}),document.activeElement===m&&ft(l))}return()=>{l.removeEventListener(Qo,u),setTimeout(()=>{let x=new CustomEvent(er,vs);l.addEventListener(er,c),l.dispatchEvent(x),x.defaultPrevented||ft(m??document.body,{select:!0}),l.removeEventListener(er,c),ws.remove(p)},0)}}},[l,u,c,p]);let h=De.useCallback(m=>{if(!a&&!o||p.paused)return;let g=m.key==="Tab"&&!m.altKey&&!m.ctrlKey&&!m.metaKey,x=document.activeElement;if(g&&x){let L=m.currentTarget,[I,C]=vc(L);I&&C?!m.shiftKey&&x===C?(m.preventDefault(),a&&ft(I,{select:!0})):m.shiftKey&&x===I&&(m.preventDefault(),a&&ft(C,{select:!0})):x===L&&m.preventDefault()}},[a,o,p.paused]);return Lc(T.div,{tabIndex:-1,...s,ref:f,onKeyDown:h})});pa.displayName=Ic;function Cc(e,{select:t=!1}={}){let a=document.activeElement;for(let o of e)if(ft(o,{select:t}),document.activeElement!==a)return}function vc(e){let t=ys(e),a=bs(t,e),o=bs(t.reverse(),e);return[a,o]}function ys(e){let t=[],a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{let r=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||r?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;a.nextNode();)t.push(a.currentNode);return t}function bs(e,t){for(let a of e)if(!bc(a,{upTo:t}))return a}function bc(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function wc(e){return e instanceof HTMLInputElement&&"select"in e}function ft(e,{select:t=!1}={}){if(e&&e.focus){let a=document.activeElement;e.focus({preventScroll:!0}),e!==a&&wc(e)&&t&&e.select()}}var ws=Sc();function Sc(){let e=[];return{add(t){let a=e[0];t!==a&&a?.pause(),e=Ss(e,t),e.unshift(t)},remove(t){e=Ss(e,t),e[0]?.resume()}}}function Ss(e,t){let a=[...e],o=a.indexOf(t);return o!==-1&&a.splice(o,1),a}function yc(e){return e.filter(t=>t.tagName!=="A")}import*as Ja from"react";import*as Rs from"react-dom";import{jsx as Rc}from"react/jsx-runtime";var Pc="Portal",Lt=Ja.forwardRef((e,t)=>{let{container:a,...o}=e,[r,n]=Ja.useState(!1);se(()=>n(!0),[]);let s=a||r&&globalThis?.document?.body;return s?Rs.createPortal(Rc(T.div,{...o,ref:t}),s):null});Lt.displayName=Pc;import*as ks from"react";var Qa=0,Ht=null;function eo(){ks.useEffect(()=>{Ht||(Ht={start:Ps(),end:Ps()});let{start:e,end:t}=Ht;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),Qa++,()=>{Qa===1&&(Ht?.start.remove(),Ht?.end.remove(),Ht=null),Qa=Math.max(0,Qa-1)}},[])}function Ps(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var be=function(){return be=Object.assign||function(t){for(var a,o=1,r=arguments.length;o"u")return Ec;var t=Bc(e),a=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-a+t[2]-t[0])}};var Nc=ha(),zt="data-scroll-locked",_c=function(e,t,a,o){var r=e.left,n=e.top,s=e.right,l=e.gap;return a===void 0&&(a="margin"),` + .`.concat(tr,` { + overflow: hidden `).concat(o,`; + padding-right: `).concat(l,"px ").concat(o,`; + } + body[`).concat(zt,`] { + overflow: hidden `).concat(o,`; + overscroll-behavior: contain; + `).concat([t&&"position: relative ".concat(o,";"),a==="margin"&&` + padding-left: `.concat(r,`px; + padding-top: `).concat(n,`px; + padding-right: `).concat(s,`px; + margin-left:0; + margin-top:0; + margin-right: `).concat(l,"px ").concat(o,`; + `),a==="padding"&&"padding-right: ".concat(l,"px ").concat(o,";")].filter(Boolean).join(""),` + } + + .`).concat(It,` { + right: `).concat(l,"px ").concat(o,`; + } + + .`).concat(Ct,` { + margin-right: `).concat(l,"px ").concat(o,`; + } + + .`).concat(It," .").concat(It,` { + right: 0 `).concat(o,`; + } + + .`).concat(Ct," .").concat(Ct,` { + margin-right: 0 `).concat(o,`; + } + + body[`).concat(zt,`] { + `).concat(ar,": ").concat(l,`px; + } +`)},Ns=function(){var e=parseInt(document.body.getAttribute(zt)||"0",10);return isFinite(e)?e:0},qc=function(){Gt.useEffect(function(){return document.body.setAttribute(zt,(Ns()+1).toString()),function(){var e=Ns()-1;e<=0?document.body.removeAttribute(zt):document.body.setAttribute(zt,e.toString())}},[])},cr=function(e){var t=e.noRelative,a=e.noImportant,o=e.gapMode,r=o===void 0?"margin":o;qc();var n=Gt.useMemo(function(){return dr(r)},[r]);return Gt.createElement(Nc,{styles:_c(n,!t,r,a?"":"!important")})};var fr=!1;if(typeof window<"u")try{ga=Object.defineProperty({},"passive",{get:function(){return fr=!0,!0}}),window.addEventListener("test",ga,ga),window.removeEventListener("test",ga,ga)}catch{fr=!1}var ga,vt=fr?{passive:!1}:!1;var Uc=function(e){return e.tagName==="TEXTAREA"},_s=function(e,t){if(!(e instanceof Element))return!1;var a=window.getComputedStyle(e);return a[t]!=="hidden"&&!(a.overflowY===a.overflowX&&!Uc(e)&&a[t]==="visible")},Hc=function(e){return _s(e,"overflowY")},zc=function(e){return _s(e,"overflowX")},pr=function(e,t){var a=t.ownerDocument,o=t;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var r=qs(e,o);if(r){var n=Us(e,o),s=n[1],l=n[2];if(s>l)return!0}o=o.parentNode}while(o&&o!==a.body);return!1},Gc=function(e){var t=e.scrollTop,a=e.scrollHeight,o=e.clientHeight;return[t,a,o]},Wc=function(e){var t=e.scrollLeft,a=e.scrollWidth,o=e.clientWidth;return[t,a,o]},qs=function(e,t){return e==="v"?Hc(t):zc(t)},Us=function(e,t){return e==="v"?Gc(t):Wc(t)},Vc=function(e,t){return e==="h"&&t==="rtl"?-1:1},Hs=function(e,t,a,o,r){var n=Vc(e,window.getComputedStyle(t).direction),s=n*o,l=a.target,i=t.contains(l),u=!1,c=s>0,d=0,f=0;do{if(!l)break;var p=Us(e,l),h=p[0],m=p[1],g=p[2],x=m-g-n*h;(h||x)&&qs(e,l)&&(d+=x,f+=h);var L=l.parentNode;l=L&&L.nodeType===Node.DOCUMENT_FRAGMENT_NODE?L.host:L}while(!i&&l!==document.body||i&&(t.contains(l)||t===l));return(c&&(r&&Math.abs(d)<1||!r&&s>d)||!c&&(r&&Math.abs(f)<1||!r&&-s>f))&&(u=!0),u};var no=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},zs=function(e){return[e.deltaX,e.deltaY]},Gs=function(e){return e&&"current"in e?e.current:e},jc=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Xc=function(e){return` + .block-interactivity-`.concat(e,` {pointer-events: none;} + .allow-interactivity-`).concat(e,` {pointer-events: all;} +`)},Kc=0,Wt=[];function Ws(e){var t=$.useRef([]),a=$.useRef([0,0]),o=$.useRef(),r=$.useState(Kc++)[0],n=$.useState(ha)[0],s=$.useRef(e);$.useEffect(function(){s.current=e},[e]),$.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(r));var m=As([e.lockRef.current],(e.shards||[]).map(Gs),!0).filter(Boolean);return m.forEach(function(g){return g.classList.add("allow-interactivity-".concat(r))}),function(){document.body.classList.remove("block-interactivity-".concat(r)),m.forEach(function(g){return g.classList.remove("allow-interactivity-".concat(r))})}}},[e.inert,e.lockRef.current,e.shards]);var l=$.useCallback(function(m,g){if("touches"in m&&m.touches.length===2||m.type==="wheel"&&m.ctrlKey)return!s.current.allowPinchZoom;var x=no(m),L=a.current,I="deltaX"in m?m.deltaX:L[0]-x[0],C="deltaY"in m?m.deltaY:L[1]-x[1],w,S=m.target,b=Math.abs(I)>Math.abs(C)?"h":"v";if("touches"in m&&b==="h"&&S.type==="range")return!1;var v=window.getSelection(),E=v&&v.anchorNode,_=E?E===S||E.contains(S):!1;if(_)return!1;var H=pr(b,S);if(!H)return!0;if(H?w=b:(w=b==="v"?"h":"v",H=pr(b,S)),!H)return!1;if(!o.current&&"changedTouches"in m&&(I||C)&&(o.current=w),!w)return!0;var W=o.current||w;return Hs(W,g,m,W==="h"?I:C,!0)},[]),i=$.useCallback(function(m){var g=m;if(!(!Wt.length||Wt[Wt.length-1]!==n)){var x="deltaY"in g?zs(g):no(g),L=t.current.filter(function(w){return w.name===g.type&&(w.target===g.target||g.target===w.shadowParent)&&jc(w.delta,x)})[0];if(L&&L.should){g.cancelable&&g.preventDefault();return}if(!L){var I=(s.current.shards||[]).map(Gs).filter(Boolean).filter(function(w){return w.contains(g.target)}),C=I.length>0?l(g,I[0]):!s.current.noIsolation;C&&g.cancelable&&g.preventDefault()}}},[]),u=$.useCallback(function(m,g,x,L){var I={name:m,delta:g,target:x,should:L,shadowParent:$c(x)};t.current.push(I),setTimeout(function(){t.current=t.current.filter(function(C){return C!==I})},1)},[]),c=$.useCallback(function(m){a.current=no(m),o.current=void 0},[]),d=$.useCallback(function(m){u(m.type,zs(m),m.target,l(m,e.lockRef.current))},[]),f=$.useCallback(function(m){u(m.type,no(m),m.target,l(m,e.lockRef.current))},[]);$.useEffect(function(){return Wt.push(n),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener("wheel",i,vt),document.addEventListener("touchmove",i,vt),document.addEventListener("touchstart",c,vt),function(){Wt=Wt.filter(function(m){return m!==n}),document.removeEventListener("wheel",i,vt),document.removeEventListener("touchmove",i,vt),document.removeEventListener("touchstart",c,vt)}},[]);var p=e.removeScrollBar,h=e.inert;return $.createElement($.Fragment,null,h?$.createElement(n,{styles:Xc(r)}):null,p?$.createElement(cr,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function $c(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Vs=nr(ro,Ws);var js=so.forwardRef(function(e,t){return so.createElement(ma,be({},e,{ref:t,sideCar:Vs}))});js.classNames=ma.classNames;var xa=js;var Yc=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Vt=new WeakMap,lo=new WeakMap,uo={},mr=0,Xs=function(e){return e&&(e.host||Xs(e.parentNode))},Zc=function(e,t){return t.map(function(a){if(e.contains(a))return a;var o=Xs(a);return o&&e.contains(o)?o:(console.error("aria-hidden",a,"in not contained inside",e,". Doing nothing"),null)}).filter(function(a){return!!a})},Jc=function(e,t,a,o){var r=Zc(t,Array.isArray(e)?e:[e]);uo[a]||(uo[a]=new WeakMap);var n=uo[a],s=[],l=new Set,i=new Set(r),u=function(d){!d||l.has(d)||(l.add(d),u(d.parentNode))};r.forEach(u);var c=function(d){!d||i.has(d)||Array.prototype.forEach.call(d.children,function(f){if(l.has(f))c(f);else try{var p=f.getAttribute(o),h=p!==null&&p!=="false",m=(Vt.get(f)||0)+1,g=(n.get(f)||0)+1;Vt.set(f,m),n.set(f,g),s.push(f),m===1&&h&&lo.set(f,!0),g===1&&f.setAttribute(a,"true"),h||f.setAttribute(o,"true")}catch(x){console.error("aria-hidden: cannot operate on ",f,x)}})};return c(t),l.clear(),mr++,function(){s.forEach(function(d){var f=Vt.get(d)-1,p=n.get(d)-1;Vt.set(d,f),n.set(d,p),f||(lo.has(d)||d.removeAttribute(o),lo.delete(d)),p||d.removeAttribute(a)}),mr--,mr||(Vt=new WeakMap,Vt=new WeakMap,lo=new WeakMap,uo={})}},io=function(e,t,a){a===void 0&&(a="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),r=t||Yc(e);return r?(o.push.apply(o,Array.from(r.querySelectorAll("[aria-live], script"))),Jc(o,r,a,"aria-hidden")):function(){return null}};import{Fragment as Ks,jsx as ae,jsxs as $s}from"react/jsx-runtime";var fo="Dialog",[Ys,Qc]=ie(fo),[ef,He]=Ys(fo),hr=e=>{let{__scopeDialog:t,children:a,open:o,defaultOpen:r,onOpenChange:n,modal:s=!0}=e,l=K.useRef(null),i=K.useRef(null),[u,c]=Ue({prop:o,defaultProp:r??!1,onChange:n,caller:fo});return ae(ef,{scope:t,triggerRef:l,contentRef:i,contentId:ve(),titleId:ve(),descriptionId:ve(),open:u,onOpenChange:c,onOpenToggle:K.useCallback(()=>c(d=>!d),[c]),modal:s,children:a})};hr.displayName=fo;var Zs="DialogTrigger",gr=K.forwardRef((e,t)=>{let{__scopeDialog:a,...o}=e,r=He(Zs,a),n=U(t,r.triggerRef);return ae(T.button,{type:"button","aria-haspopup":"dialog","aria-expanded":r.open,"aria-controls":r.open?r.contentId:void 0,"data-state":yr(r.open),...o,ref:n,onClick:M(e.onClick,r.onOpenToggle)})});gr.displayName=Zs;var xr="DialogPortal",[tf,Js]=Ys(xr,{forceMount:void 0}),Lr=e=>{let{__scopeDialog:t,forceMount:a,children:o,container:r}=e,n=He(xr,t);return ae(tf,{scope:t,forceMount:a,children:K.Children.map(o,s=>ae(Pe,{present:a||n.open,children:ae(Lt,{asChild:!0,container:r,children:s})}))})};Lr.displayName=xr;var co="DialogOverlay",Ir=K.forwardRef((e,t)=>{let a=Js(co,e.__scopeDialog),{forceMount:o=a.forceMount,...r}=e,n=He(co,e.__scopeDialog);return n.modal?ae(Pe,{present:o||n.open,children:ae(of,{...r,ref:t})}):null});Ir.displayName=co;var af=_e("DialogOverlay.RemoveScroll"),of=K.forwardRef((e,t)=>{let{__scopeDialog:a,...o}=e,r=He(co,a);return ae(xa,{as:af,allowPinchZoom:!0,shards:[r.contentRef],children:ae(T.div,{"data-state":yr(r.open),...o,ref:t,style:{pointerEvents:"auto",...o.style}})})}),bt="DialogContent",Cr=K.forwardRef((e,t)=>{let a=Js(bt,e.__scopeDialog),{forceMount:o=a.forceMount,...r}=e,n=He(bt,e.__scopeDialog);return ae(Pe,{present:o||n.open,children:n.modal?ae(rf,{...r,ref:t}):ae(nf,{...r,ref:t})})});Cr.displayName=bt;var rf=K.forwardRef((e,t)=>{let a=He(bt,e.__scopeDialog),o=K.useRef(null),r=U(t,a.contentRef,o);return K.useEffect(()=>{let n=o.current;if(n)return io(n)},[]),ae(Qs,{...e,ref:r,trapFocus:a.open,disableOutsidePointerEvents:a.open,onCloseAutoFocus:M(e.onCloseAutoFocus,n=>{n.preventDefault(),a.triggerRef.current?.focus()}),onPointerDownOutside:M(e.onPointerDownOutside,n=>{let s=n.detail.originalEvent,l=s.button===0&&s.ctrlKey===!0;(s.button===2||l)&&n.preventDefault()}),onFocusOutside:M(e.onFocusOutside,n=>n.preventDefault())})}),nf=K.forwardRef((e,t)=>{let a=He(bt,e.__scopeDialog),o=K.useRef(!1),r=K.useRef(!1);return ae(Qs,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:n=>{e.onCloseAutoFocus?.(n),n.defaultPrevented||(o.current||a.triggerRef.current?.focus(),n.preventDefault()),o.current=!1,r.current=!1},onInteractOutside:n=>{e.onInteractOutside?.(n),n.defaultPrevented||(o.current=!0,n.detail.originalEvent.type==="pointerdown"&&(r.current=!0));let s=n.target;a.triggerRef.current?.contains(s)&&n.preventDefault(),n.detail.originalEvent.type==="focusin"&&r.current&&n.preventDefault()}})}),Qs=K.forwardRef((e,t)=>{let{__scopeDialog:a,trapFocus:o,onOpenAutoFocus:r,onCloseAutoFocus:n,...s}=e,l=He(bt,a),i=K.useRef(null),u=U(t,i);return eo(),$s(Ks,{children:[ae(pa,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:r,onUnmountAutoFocus:n,children:ae(xt,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":yr(l.open),...s,ref:u,onDismiss:()=>l.onOpenChange(!1)})}),$s(Ks,{children:[ae(lf,{titleId:l.titleId}),ae(df,{contentRef:i,descriptionId:l.descriptionId})]})]})}),vr="DialogTitle",br=K.forwardRef((e,t)=>{let{__scopeDialog:a,...o}=e,r=He(vr,a);return ae(T.h2,{id:r.titleId,...o,ref:t})});br.displayName=vr;var el="DialogDescription",wr=K.forwardRef((e,t)=>{let{__scopeDialog:a,...o}=e,r=He(el,a);return ae(T.p,{id:r.descriptionId,...o,ref:t})});wr.displayName=el;var tl="DialogClose",Sr=K.forwardRef((e,t)=>{let{__scopeDialog:a,...o}=e,r=He(tl,a);return ae(T.button,{type:"button",...o,ref:t,onClick:M(e.onClick,()=>r.onOpenChange(!1))})});Sr.displayName=tl;function yr(e){return e?"open":"closed"}var al="DialogTitleWarning",[sf,ol]=ds(al,{contentName:bt,titleName:vr,docsSlug:"dialog"}),lf=({titleId:e})=>{let t=ol(al),a=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. + +If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. + +For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return K.useEffect(()=>{e&&(document.getElementById(e)||console.error(a))},[a,e]),null},uf="DialogDescriptionWarning",df=({contentRef:e,descriptionId:t})=>{let o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${ol(uf).contentName}}.`;return K.useEffect(()=>{let r=e.current?.getAttribute("aria-describedby");t&&r&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null},cf=hr,ff=gr,pf=Lr,mf=Ir,hf=Cr,gf=br,xf=wr,Lf=Sr;var jt={};lt(jt,{Avatar:()=>kr,AvatarFallback:()=>Mr,AvatarImage:()=>Ar,Fallback:()=>Af,Image:()=>kf,Root:()=>Pf,createAvatarScope:()=>Sf});import*as Te from"react";import*as If from"react";import*as po from"react";var Rr=!1;function Cf(){let[e,t]=po.useState(Rr);return po.useEffect(()=>{Rr||(Rr=!0,t(!0))},[]),e}var rl=If[" useSyncExternalStore ".trim().toString()];function vf(){return()=>{}}function bf(){return rl(vf,()=>!0,()=>!1)}var nl=typeof rl=="function"?bf:Cf;import{jsx as mo}from"react/jsx-runtime";var Pr="Avatar",[wf,Sf]=ie(Pr),[yf,ll]=wf(Pr),kr=Te.forwardRef((e,t)=>{let{__scopeAvatar:a,...o}=e,[r,n]=Te.useState("idle");return mo(yf,{scope:a,imageLoadingStatus:r,onImageLoadingStatusChange:n,children:mo(T.span,{...o,ref:t})})});kr.displayName=Pr;var ul="AvatarImage",Ar=Te.forwardRef((e,t)=>{let{__scopeAvatar:a,src:o,onLoadingStatusChange:r=()=>{},...n}=e,s=ll(ul,a),l=Rf(o,n),i=de(u=>{r(u),s.onImageLoadingStatusChange(u)});return se(()=>{l!=="idle"&&i(l)},[l,i]),l==="loaded"?mo(T.img,{...n,ref:t,src:o}):null});Ar.displayName=ul;var il="AvatarFallback",Mr=Te.forwardRef((e,t)=>{let{__scopeAvatar:a,delayMs:o,...r}=e,n=ll(il,a),[s,l]=Te.useState(o===void 0);return Te.useEffect(()=>{if(o!==void 0){let i=window.setTimeout(()=>l(!0),o);return()=>window.clearTimeout(i)}},[o]),s&&n.imageLoadingStatus!=="loaded"?mo(T.span,{...r,ref:t}):null});Mr.displayName=il;function sl(e,t){return e?t?(e.src!==t&&(e.src=t),e.complete&&e.naturalWidth>0?"loaded":"loading"):"error":"idle"}function Rf(e,{referrerPolicy:t,crossOrigin:a}){let o=nl(),r=Te.useRef(null),n=o?(r.current||(r.current=new window.Image),r.current):null,[s,l]=Te.useState(()=>sl(n,e));return se(()=>{l(sl(n,e))},[n,e]),se(()=>{let i=d=>()=>{l(d)};if(!n)return;let u=i("loaded"),c=i("error");return n.addEventListener("load",u),n.addEventListener("error",c),t&&(n.referrerPolicy=t),typeof a=="string"&&(n.crossOrigin=a),()=>{n.removeEventListener("load",u),n.removeEventListener("error",c)}},[n,a,t]),s}var Pf=kr,kf=Ar,Af=Mr;import*as ho from"react";function dl(e){let t=ho.useRef({value:e,previous:e});return ho.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}import*as cl from"react";function go(e){let[t,a]=cl.useState(void 0);return se(()=>{if(e){a({width:e.offsetWidth,height:e.offsetHeight});let o=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;let n=r[0],s,l;if("borderBoxSize"in n){let i=n.borderBoxSize,u=Array.isArray(i)?i[0]:i;s=u.inlineSize,l=u.blockSize}else s=e.offsetWidth,l=e.offsetHeight;a({width:s,height:l})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else a(void 0)},[e]),t}import*as A from"react";import*as me from"react";var ml=["top","right","bottom","left"];var $e=Math.min,Ce=Math.max,Ia=Math.round,Ca=Math.floor,ze=e=>({x:e,y:e}),Mf={left:"right",right:"left",bottom:"top",top:"bottom"};function Lo(e,t,a){return Ce(e,$e(t,a))}function Ye(e,t){return typeof e=="function"?e(t):e}function Ze(e){return e.split("-")[0]}function wt(e){return e.split("-")[1]}function Io(e){return e==="x"?"y":"x"}function Co(e){return e==="y"?"height":"width"}function Ge(e){let t=e[0];return t==="t"||t==="b"?"y":"x"}function vo(e){return Io(Ge(e))}function hl(e,t,a){a===void 0&&(a=!1);let o=wt(e),r=vo(e),n=Co(r),s=r==="x"?o===(a?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[n]>t.floating[n]&&(s=La(s)),[s,La(s)]}function gl(e){let t=La(e);return[xo(e),t,xo(t)]}function xo(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}var fl=["left","right"],pl=["right","left"],Df=["top","bottom"],Tf=["bottom","top"];function Of(e,t,a){switch(e){case"top":case"bottom":return a?t?pl:fl:t?fl:pl;case"left":case"right":return t?Df:Tf;default:return[]}}function xl(e,t,a,o){let r=wt(e),n=Of(Ze(e),a==="start",o);return r&&(n=n.map(s=>s+"-"+r),t&&(n=n.concat(n.map(xo)))),n}function La(e){let t=Ze(e);return Mf[t]+e.slice(t.length)}function Ff(e){return{top:0,right:0,bottom:0,left:0,...e}}function Dr(e){return typeof e!="number"?Ff(e):{top:e,right:e,bottom:e,left:e}}function St(e){let{x:t,y:a,width:o,height:r}=e;return{width:o,height:r,top:a,left:t,right:t+o,bottom:a+r,x:t,y:a}}function Ll(e,t,a){let{reference:o,floating:r}=e,n=Ge(t),s=vo(t),l=Co(s),i=Ze(t),u=n==="y",c=o.x+o.width/2-r.width/2,d=o.y+o.height/2-r.height/2,f=o[l]/2-r[l]/2,p;switch(i){case"top":p={x:c,y:o.y-r.height};break;case"bottom":p={x:c,y:o.y+o.height};break;case"right":p={x:o.x+o.width,y:d};break;case"left":p={x:o.x-r.width,y:d};break;default:p={x:o.x,y:o.y}}switch(wt(t)){case"start":p[s]-=f*(a&&u?-1:1);break;case"end":p[s]+=f*(a&&u?-1:1);break}return p}async function vl(e,t){var a;t===void 0&&(t={});let{x:o,y:r,platform:n,rects:s,elements:l,strategy:i}=e,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:d="floating",altBoundary:f=!1,padding:p=0}=Ye(t,e),h=Dr(p),g=l[f?d==="floating"?"reference":"floating":d],x=St(await n.getClippingRect({element:(a=await(n.isElement==null?void 0:n.isElement(g)))==null||a?g:g.contextElement||await(n.getDocumentElement==null?void 0:n.getDocumentElement(l.floating)),boundary:u,rootBoundary:c,strategy:i})),L=d==="floating"?{x:o,y:r,width:s.floating.width,height:s.floating.height}:s.reference,I=await(n.getOffsetParent==null?void 0:n.getOffsetParent(l.floating)),C=await(n.isElement==null?void 0:n.isElement(I))?await(n.getScale==null?void 0:n.getScale(I))||{x:1,y:1}:{x:1,y:1},w=St(n.convertOffsetParentRelativeRectToViewportRelativeRect?await n.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:L,offsetParent:I,strategy:i}):L);return{top:(x.top-w.top+h.top)/C.y,bottom:(w.bottom-x.bottom+h.bottom)/C.y,left:(x.left-w.left+h.left)/C.x,right:(w.right-x.right+h.right)/C.x}}var Ef=50,bl=async(e,t,a)=>{let{placement:o="bottom",strategy:r="absolute",middleware:n=[],platform:s}=a,l=s.detectOverflow?s:{...s,detectOverflow:vl},i=await(s.isRTL==null?void 0:s.isRTL(t)),u=await s.getElementRects({reference:e,floating:t,strategy:r}),{x:c,y:d}=Ll(u,o,i),f=o,p=0,h={};for(let m=0;m({name:"arrow",options:e,async fn(t){let{x:a,y:o,placement:r,rects:n,platform:s,elements:l,middlewareData:i}=t,{element:u,padding:c=0}=Ye(e,t)||{};if(u==null)return{};let d=Dr(c),f={x:a,y:o},p=vo(r),h=Co(p),m=await s.getDimensions(u),g=p==="y",x=g?"top":"left",L=g?"bottom":"right",I=g?"clientHeight":"clientWidth",C=n.reference[h]+n.reference[p]-f[p]-n.floating[h],w=f[p]-n.reference[p],S=await(s.getOffsetParent==null?void 0:s.getOffsetParent(u)),b=S?S[I]:0;(!b||!await(s.isElement==null?void 0:s.isElement(S)))&&(b=l.floating[I]||n.floating[h]);let v=C/2-w/2,E=b/2-m[h]/2-1,_=$e(d[x],E),H=$e(d[L],E),W=_,X=b-m[h]-H,z=b/2-m[h]/2+v,Z=Lo(W,z,X),F=!i.arrow&&wt(r)!=null&&z!==Z&&n.reference[h]/2-(zz<=0)){var H,W;let z=(((H=n.flip)==null?void 0:H.index)||0)+1,Z=b[z];if(Z&&(!(d==="alignment"?L!==Ge(Z):!1)||_.every(D=>Ge(D.placement)===L?D.overflows[0]>0:!0)))return{data:{index:z,overflows:_},reset:{placement:Z}};let F=(W=_.filter(V=>V.overflows[0]<=0).sort((V,D)=>V.overflows[1]-D.overflows[1])[0])==null?void 0:W.placement;if(!F)switch(p){case"bestFit":{var X;let V=(X=_.filter(D=>{if(S){let k=Ge(D.placement);return k===L||k==="y"}return!0}).map(D=>[D.placement,D.overflows.filter(k=>k>0).reduce((k,y)=>k+y,0)]).sort((D,k)=>D[1]-k[1])[0])==null?void 0:X[0];V&&(F=V);break}case"initialPlacement":F=l;break}if(r!==F)return{reset:{placement:F}}}return{}}}};function Il(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Cl(e){return ml.some(t=>e[t]>=0)}var yl=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){let{rects:a,platform:o}=t,{strategy:r="referenceHidden",...n}=Ye(e,t);switch(r){case"referenceHidden":{let s=await o.detectOverflow(t,{...n,elementContext:"reference"}),l=Il(s,a.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:Cl(l)}}}case"escaped":{let s=await o.detectOverflow(t,{...n,altBoundary:!0}),l=Il(s,a.floating);return{data:{escapedOffsets:l,escaped:Cl(l)}}}default:return{}}}}};var Rl=new Set(["left","top"]);async function Bf(e,t){let{placement:a,platform:o,elements:r}=e,n=await(o.isRTL==null?void 0:o.isRTL(r.floating)),s=Ze(a),l=wt(a),i=Ge(a)==="y",u=Rl.has(s)?-1:1,c=n&&i?-1:1,d=Ye(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:h}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&typeof h=="number"&&(p=l==="end"?h*-1:h),i?{x:p*c,y:f*u}:{x:f*u,y:p*c}}var Pl=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var a,o;let{x:r,y:n,placement:s,middlewareData:l}=t,i=await Bf(t,e);return s===((a=l.offset)==null?void 0:a.placement)&&(o=l.arrow)!=null&&o.alignmentOffset?{}:{x:r+i.x,y:n+i.y,data:{...i,placement:s}}}}},kl=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){let{x:a,y:o,placement:r,platform:n}=t,{mainAxis:s=!0,crossAxis:l=!1,limiter:i={fn:x=>{let{x:L,y:I}=x;return{x:L,y:I}}},...u}=Ye(e,t),c={x:a,y:o},d=await n.detectOverflow(t,u),f=Ge(Ze(r)),p=Io(f),h=c[p],m=c[f];if(s){let x=p==="y"?"top":"left",L=p==="y"?"bottom":"right",I=h+d[x],C=h-d[L];h=Lo(I,h,C)}if(l){let x=f==="y"?"top":"left",L=f==="y"?"bottom":"right",I=m+d[x],C=m-d[L];m=Lo(I,m,C)}let g=i.fn({...t,[p]:h,[f]:m});return{...g,data:{x:g.x-a,y:g.y-o,enabled:{[p]:s,[f]:l}}}}}},Al=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:a,y:o,placement:r,rects:n,middlewareData:s}=t,{offset:l=0,mainAxis:i=!0,crossAxis:u=!0}=Ye(e,t),c={x:a,y:o},d=Ge(r),f=Io(d),p=c[f],h=c[d],m=Ye(l,t),g=typeof m=="number"?{mainAxis:m,crossAxis:0}:{mainAxis:0,crossAxis:0,...m};if(i){let I=f==="y"?"height":"width",C=n.reference[f]-n.floating[I]+g.mainAxis,w=n.reference[f]+n.reference[I]-g.mainAxis;pw&&(p=w)}if(u){var x,L;let I=f==="y"?"width":"height",C=Rl.has(Ze(r)),w=n.reference[d]-n.floating[I]+(C&&((x=s.offset)==null?void 0:x[d])||0)+(C?0:g.crossAxis),S=n.reference[d]+n.reference[I]+(C?0:((L=s.offset)==null?void 0:L[d])||0)-(C?g.crossAxis:0);hS&&(h=S)}return{[f]:p,[d]:h}}}},Ml=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var a,o;let{placement:r,rects:n,platform:s,elements:l}=t,{apply:i=()=>{},...u}=Ye(e,t),c=await s.detectOverflow(t,u),d=Ze(r),f=wt(r),p=Ge(r)==="y",{width:h,height:m}=n.floating,g,x;d==="top"||d==="bottom"?(g=d,x=f===(await(s.isRTL==null?void 0:s.isRTL(l.floating))?"start":"end")?"left":"right"):(x=d,g=f==="end"?"top":"bottom");let L=m-c.top-c.bottom,I=h-c.left-c.right,C=$e(m-c[g],L),w=$e(h-c[x],I),S=!t.middlewareData.shift,b=C,v=w;if((a=t.middlewareData.shift)!=null&&a.enabled.x&&(v=I),(o=t.middlewareData.shift)!=null&&o.enabled.y&&(b=L),S&&!f){let _=Ce(c.left,0),H=Ce(c.right,0),W=Ce(c.top,0),X=Ce(c.bottom,0);p?v=h-2*(_!==0||H!==0?_+H:Ce(c.left,c.right)):b=m-2*(W!==0||X!==0?W+X:Ce(c.top,c.bottom))}await i({...t,availableWidth:v,availableHeight:b});let E=await s.getDimensions(l.floating);return h!==E.width||m!==E.height?{reset:{rects:!0}}:{}}}};function bo(){return typeof window<"u"}function Pt(e){return Tl(e)?(e.nodeName||"").toLowerCase():"#document"}function we(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function We(e){var t;return(t=(Tl(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Tl(e){return bo()?e instanceof Node||e instanceof we(e).Node:!1}function Oe(e){return bo()?e instanceof Element||e instanceof we(e).Element:!1}function Je(e){return bo()?e instanceof HTMLElement||e instanceof we(e).HTMLElement:!1}function Dl(e){return!bo()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof we(e).ShadowRoot}function Xt(e){let{overflow:t,overflowX:a,overflowY:o,display:r}=Fe(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+a)&&r!=="inline"&&r!=="contents"}function Ol(e){return/^(table|td|th)$/.test(Pt(e))}function va(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}var Nf=/transform|translate|scale|rotate|perspective|filter/,_f=/paint|layout|strict|content/,yt=e=>!!e&&e!=="none",Tr;function wo(e){let t=Oe(e)?Fe(e):e;return yt(t.transform)||yt(t.translate)||yt(t.scale)||yt(t.rotate)||yt(t.perspective)||!So()&&(yt(t.backdropFilter)||yt(t.filter))||Nf.test(t.willChange||"")||_f.test(t.contain||"")}function Fl(e){let t=at(e);for(;Je(t)&&!kt(t);){if(wo(t))return t;if(va(t))return null;t=at(t)}return null}function So(){return Tr==null&&(Tr=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Tr}function kt(e){return/^(html|body|#document)$/.test(Pt(e))}function Fe(e){return we(e).getComputedStyle(e)}function ba(e){return Oe(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function at(e){if(Pt(e)==="html")return e;let t=e.assignedSlot||e.parentNode||Dl(e)&&e.host||We(e);return Dl(t)?t.host:t}function El(e){let t=at(e);return kt(t)?e.ownerDocument?e.ownerDocument.body:e.body:Je(t)&&Xt(t)?t:El(t)}function Rt(e,t,a){var o;t===void 0&&(t=[]),a===void 0&&(a=!0);let r=El(e),n=r===((o=e.ownerDocument)==null?void 0:o.body),s=we(r);if(n){let l=yo(s);return t.concat(s,s.visualViewport||[],Xt(r)?r:[],l&&a?Rt(l):[])}else return t.concat(r,Rt(r,[],a))}function yo(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function ql(e){let t=Fe(e),a=parseFloat(t.width)||0,o=parseFloat(t.height)||0,r=Je(e),n=r?e.offsetWidth:a,s=r?e.offsetHeight:o,l=Ia(a)!==n||Ia(o)!==s;return l&&(a=n,o=s),{width:a,height:o,$:l}}function Fr(e){return Oe(e)?e:e.contextElement}function Kt(e){let t=Fr(e);if(!Je(t))return ze(1);let a=t.getBoundingClientRect(),{width:o,height:r,$:n}=ql(t),s=(n?Ia(a.width):a.width)/o,l=(n?Ia(a.height):a.height)/r;return(!s||!Number.isFinite(s))&&(s=1),(!l||!Number.isFinite(l))&&(l=1),{x:s,y:l}}var qf=ze(0);function Ul(e){let t=we(e);return!So()||!t.visualViewport?qf:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Uf(e,t,a){return t===void 0&&(t=!1),!a||t&&a!==we(e)?!1:t}function At(e,t,a,o){t===void 0&&(t=!1),a===void 0&&(a=!1);let r=e.getBoundingClientRect(),n=Fr(e),s=ze(1);t&&(o?Oe(o)&&(s=Kt(o)):s=Kt(e));let l=Uf(n,a,o)?Ul(n):ze(0),i=(r.left+l.x)/s.x,u=(r.top+l.y)/s.y,c=r.width/s.x,d=r.height/s.y;if(n){let f=we(n),p=o&&Oe(o)?we(o):o,h=f,m=yo(h);for(;m&&o&&p!==h;){let g=Kt(m),x=m.getBoundingClientRect(),L=Fe(m),I=x.left+(m.clientLeft+parseFloat(L.paddingLeft))*g.x,C=x.top+(m.clientTop+parseFloat(L.paddingTop))*g.y;i*=g.x,u*=g.y,c*=g.x,d*=g.y,i+=I,u+=C,h=we(m),m=yo(h)}}return St({width:c,height:d,x:i,y:u})}function Ro(e,t){let a=ba(e).scrollLeft;return t?t.left+a:At(We(e)).left+a}function Hl(e,t){let a=e.getBoundingClientRect(),o=a.left+t.scrollLeft-Ro(e,a),r=a.top+t.scrollTop;return{x:o,y:r}}function Hf(e){let{elements:t,rect:a,offsetParent:o,strategy:r}=e,n=r==="fixed",s=We(o),l=t?va(t.floating):!1;if(o===s||l&&n)return a;let i={scrollLeft:0,scrollTop:0},u=ze(1),c=ze(0),d=Je(o);if((d||!d&&!n)&&((Pt(o)!=="body"||Xt(s))&&(i=ba(o)),d)){let p=At(o);u=Kt(o),c.x=p.x+o.clientLeft,c.y=p.y+o.clientTop}let f=s&&!d&&!n?Hl(s,i):ze(0);return{width:a.width*u.x,height:a.height*u.y,x:a.x*u.x-i.scrollLeft*u.x+c.x+f.x,y:a.y*u.y-i.scrollTop*u.y+c.y+f.y}}function zf(e){return Array.from(e.getClientRects())}function Gf(e){let t=We(e),a=ba(e),o=e.ownerDocument.body,r=Ce(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),n=Ce(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight),s=-a.scrollLeft+Ro(e),l=-a.scrollTop;return Fe(o).direction==="rtl"&&(s+=Ce(t.clientWidth,o.clientWidth)-r),{width:r,height:n,x:s,y:l}}var Bl=25;function Wf(e,t){let a=we(e),o=We(e),r=a.visualViewport,n=o.clientWidth,s=o.clientHeight,l=0,i=0;if(r){n=r.width,s=r.height;let c=So();(!c||c&&t==="fixed")&&(l=r.offsetLeft,i=r.offsetTop)}let u=Ro(o);if(u<=0){let c=o.ownerDocument,d=c.body,f=getComputedStyle(d),p=c.compatMode==="CSS1Compat"&&parseFloat(f.marginLeft)+parseFloat(f.marginRight)||0,h=Math.abs(o.clientWidth-d.clientWidth-p);h<=Bl&&(n-=h)}else u<=Bl&&(n+=u);return{width:n,height:s,x:l,y:i}}function Vf(e,t){let a=At(e,!0,t==="fixed"),o=a.top+e.clientTop,r=a.left+e.clientLeft,n=Je(e)?Kt(e):ze(1),s=e.clientWidth*n.x,l=e.clientHeight*n.y,i=r*n.x,u=o*n.y;return{width:s,height:l,x:i,y:u}}function Nl(e,t,a){let o;if(t==="viewport")o=Wf(e,a);else if(t==="document")o=Gf(We(e));else if(Oe(t))o=Vf(t,a);else{let r=Ul(e);o={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return St(o)}function zl(e,t){let a=at(e);return a===t||!Oe(a)||kt(a)?!1:Fe(a).position==="fixed"||zl(a,t)}function jf(e,t){let a=t.get(e);if(a)return a;let o=Rt(e,[],!1).filter(l=>Oe(l)&&Pt(l)!=="body"),r=null,n=Fe(e).position==="fixed",s=n?at(e):e;for(;Oe(s)&&!kt(s);){let l=Fe(s),i=wo(s);!i&&l.position==="fixed"&&(r=null),(n?!i&&!r:!i&&l.position==="static"&&!!r&&(r.position==="absolute"||r.position==="fixed")||Xt(s)&&!i&&zl(e,s))?o=o.filter(c=>c!==s):r=l,s=at(s)}return t.set(e,o),o}function Xf(e){let{element:t,boundary:a,rootBoundary:o,strategy:r}=e,s=[...a==="clippingAncestors"?va(t)?[]:jf(t,this._c):[].concat(a),o],l=Nl(t,s[0],r),i=l.top,u=l.right,c=l.bottom,d=l.left;for(let f=1;f{s(!1,1e-7)},1e3)}b===1&&!Vl(u,e.getBoundingClientRect())&&s(),C=!1}try{a=new IntersectionObserver(w,{...I,root:r.ownerDocument})}catch{a=new IntersectionObserver(w,I)}a.observe(e)}return s(!0),n}function Er(e,t,a,o){o===void 0&&(o={});let{ancestorScroll:r=!0,ancestorResize:n=!0,elementResize:s=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:i=!1}=o,u=Fr(e),c=r||n?[...u?Rt(u):[],...t?Rt(t):[]]:[];c.forEach(x=>{r&&x.addEventListener("scroll",a,{passive:!0}),n&&x.addEventListener("resize",a)});let d=u&&l?Jf(u,a):null,f=-1,p=null;s&&(p=new ResizeObserver(x=>{let[L]=x;L&&L.target===u&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var I;(I=p)==null||I.observe(t)})),a()}),u&&!i&&p.observe(u),t&&p.observe(t));let h,m=i?At(e):null;i&&g();function g(){let x=At(e);m&&!Vl(m,x)&&a(),m=x,h=requestAnimationFrame(g)}return a(),()=>{var x;c.forEach(L=>{r&&L.removeEventListener("scroll",a),n&&L.removeEventListener("resize",a)}),d?.(),(x=p)==null||x.disconnect(),p=null,i&&cancelAnimationFrame(h)}}var jl=Pl;var Xl=kl,Kl=Sl,$l=Ml,Yl=yl,Br=wl;var Zl=Al,Nr=(e,t,a)=>{let o=new Map,r={platform:Wl,...a},n={...r.platform,_c:o};return bl(e,t,{...r,platform:n})};import*as ne from"react";import{useLayoutEffect as Qf}from"react";import*as Ql from"react-dom";var ep=typeof document<"u",tp=function(){},Po=ep?Qf:tp;function ko(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let a,o,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(a=e.length,a!==t.length)return!1;for(o=a;o--!==0;)if(!ko(e[o],t[o]))return!1;return!0}if(r=Object.keys(e),a=r.length,a!==Object.keys(t).length)return!1;for(o=a;o--!==0;)if(!{}.hasOwnProperty.call(t,r[o]))return!1;for(o=a;o--!==0;){let n=r[o];if(!(n==="_owner"&&e.$$typeof)&&!ko(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function eu(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Jl(e,t){let a=eu(e);return Math.round(t*a)/a}function _r(e){let t=ne.useRef(e);return Po(()=>{t.current=e}),t}function tu(e){e===void 0&&(e={});let{placement:t="bottom",strategy:a="absolute",middleware:o=[],platform:r,elements:{reference:n,floating:s}={},transform:l=!0,whileElementsMounted:i,open:u}=e,[c,d]=ne.useState({x:0,y:0,strategy:a,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=ne.useState(o);ko(f,o)||p(o);let[h,m]=ne.useState(null),[g,x]=ne.useState(null),L=ne.useCallback(D=>{D!==S.current&&(S.current=D,m(D))},[]),I=ne.useCallback(D=>{D!==b.current&&(b.current=D,x(D))},[]),C=n||h,w=s||g,S=ne.useRef(null),b=ne.useRef(null),v=ne.useRef(c),E=i!=null,_=_r(i),H=_r(r),W=_r(u),X=ne.useCallback(()=>{if(!S.current||!b.current)return;let D={placement:t,strategy:a,middleware:f};H.current&&(D.platform=H.current),Nr(S.current,b.current,D).then(k=>{let y={...k,isPositioned:W.current!==!1};z.current&&!ko(v.current,y)&&(v.current=y,Ql.flushSync(()=>{d(y)}))})},[f,t,a,H,W]);Po(()=>{u===!1&&v.current.isPositioned&&(v.current.isPositioned=!1,d(D=>({...D,isPositioned:!1})))},[u]);let z=ne.useRef(!1);Po(()=>(z.current=!0,()=>{z.current=!1}),[]),Po(()=>{if(C&&(S.current=C),w&&(b.current=w),C&&w){if(_.current)return _.current(C,w,X);X()}},[C,w,X,_,E]);let Z=ne.useMemo(()=>({reference:S,floating:b,setReference:L,setFloating:I}),[L,I]),F=ne.useMemo(()=>({reference:C,floating:w}),[C,w]),V=ne.useMemo(()=>{let D={position:a,left:0,top:0};if(!F.floating)return D;let k=Jl(F.floating,c.x),y=Jl(F.floating,c.y);return l?{...D,transform:"translate("+k+"px, "+y+"px)",...eu(F.floating)>=1.5&&{willChange:"transform"}}:{position:a,left:k,top:y}},[a,l,F.floating,c.x,c.y]);return ne.useMemo(()=>({...c,update:X,refs:Z,elements:F,floatingStyles:V}),[c,X,Z,F,V])}var ap=e=>{function t(a){return{}.hasOwnProperty.call(a,"current")}return{name:"arrow",options:e,fn(a){let{element:o,padding:r}=typeof e=="function"?e(a):e;return o&&t(o)?o.current!=null?Br({element:o.current,padding:r}).fn(a):{}:o?Br({element:o,padding:r}).fn(a):{}}}},au=(e,t)=>{let a=jl(e);return{name:a.name,fn:a.fn,options:[e,t]}},ou=(e,t)=>{let a=Xl(e);return{name:a.name,fn:a.fn,options:[e,t]}},ru=(e,t)=>({fn:Zl(e).fn,options:[e,t]}),nu=(e,t)=>{let a=Kl(e);return{name:a.name,fn:a.fn,options:[e,t]}},su=(e,t)=>{let a=$l(e);return{name:a.name,fn:a.fn,options:[e,t]}};var lu=(e,t)=>{let a=Yl(e);return{name:a.name,fn:a.fn,options:[e,t]}};var uu=(e,t)=>{let a=ap(e);return{name:a.name,fn:a.fn,options:[e,t]}};import*as du from"react";import{jsx as iu}from"react/jsx-runtime";var op="Arrow",cu=du.forwardRef((e,t)=>{let{children:a,width:o=10,height:r=5,...n}=e;return iu(T.svg,{...n,ref:t,width:o,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?a:iu("polygon",{points:"0,0 30,0 15,10"})})});cu.displayName=op;var fu=cu;import{jsx as Mt}from"react/jsx-runtime";var qr="Popper",[pu,$t]=ie(qr),[np,mu]=pu(qr),hu=e=>{let{__scopePopper:t,children:a}=e,[o,r]=me.useState(null),[n,s]=me.useState(void 0);return Mt(np,{scope:t,anchor:o,onAnchorChange:r,placementState:n,setPlacementState:s,children:a})};hu.displayName=qr;var gu="PopperAnchor",xu=me.forwardRef((e,t)=>{let{__scopePopper:a,virtualRef:o,...r}=e,n=mu(gu,a),s=me.useRef(null),l=n.onAnchorChange,i=me.useCallback(h=>{s.current=h,h&&l(h)},[l]),u=U(t,i),c=me.useRef(null);me.useEffect(()=>{if(!o)return;let h=c.current;c.current=o.current,h!==c.current&&l(c.current)});let d=n.placementState&&Hr(n.placementState),f=d?.[0],p=d?.[1];return o?null:Mt(T.div,{"data-radix-popper-side":f,"data-radix-popper-align":p,...r,ref:u})});xu.displayName=gu;var Ur="PopperContent",[sp,lp]=pu(Ur),Lu=me.forwardRef((e,t)=>{let{__scopePopper:a,side:o="bottom",sideOffset:r=0,align:n="center",alignOffset:s=0,arrowPadding:l=0,avoidCollisions:i=!0,collisionBoundary:u,collisionPadding:c=0,sticky:d="partial",hideWhenDetached:f=!1,updatePositionStrategy:p="optimized",onPlaced:h,...m}=e,g=mu(Ur,a),[x,L]=me.useState(null),I=U(t,Ne=>L(Ne)),[C,w]=me.useState(null),S=go(C),b=S?.width??0,v=S?.height??0,E=o+(n!=="center"?"-"+n:""),_=typeof c=="number"?c:{top:0,right:0,bottom:0,left:0,...c},H=u?Array.isArray(u)?u:[u]:void 0,W=H!==void 0&&H.length>0,X={padding:_,boundary:H?.filter(ip),altBoundary:W},{refs:z,floatingStyles:Z,placement:F,isPositioned:V,middlewareData:D}=tu({strategy:"fixed",placement:E,whileElementsMounted:(...Ne)=>Er(...Ne,{animationFrame:p==="always"}),elements:{reference:g.anchor},middleware:[au({mainAxis:r+v,alignmentAxis:s}),i&&ou({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?ru():void 0,...X}),i&&nu({...X}),su({...X,apply:({elements:Ne,rects:te,availableWidth:Ha,availableHeight:_t})=>{let{width:qt,height:Qt}=te.reference,tt=Ne.floating.style;tt.setProperty("--radix-popper-available-width",`${Ha}px`),tt.setProperty("--radix-popper-available-height",`${_t}px`),tt.setProperty("--radix-popper-anchor-width",`${qt}px`),tt.setProperty("--radix-popper-anchor-height",`${Qt}px`)}}),C&&uu({element:C,padding:l}),dp({arrowWidth:b,arrowHeight:v}),f&&lu({strategy:"referenceHidden",...X})]}),k=g.setPlacementState;se(()=>(k(F),()=>{k(void 0)}),[F,k]);let[y,Re]=Hr(F),Be=de(h);se(()=>{V&&Be?.()},[V,Be]);let st=D.arrow?.x,et=D.arrow?.y,oe=D.arrow?.centerOffset!==0,[J,re]=me.useState();return se(()=>{x&&re(window.getComputedStyle(x).zIndex)},[x]),Mt("div",{ref:z.setFloating,"data-radix-popper-content-wrapper":"",style:{...Z,transform:V?Z.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:J,"--radix-popper-transform-origin":[D.transformOrigin?.x,D.transformOrigin?.y].join(" "),...D.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:Mt(sp,{scope:a,placedSide:y,placedAlign:Re,onArrowChange:w,arrowX:st,arrowY:et,shouldHideArrow:oe,children:Mt(T.div,{"data-side":y,"data-align":Re,...m,ref:I,style:{...m.style,animation:V?void 0:"none"}})})})});Lu.displayName=Ur;var Iu="PopperArrow",up={top:"bottom",right:"left",bottom:"top",left:"right"},Cu=me.forwardRef(function(t,a){let{__scopePopper:o,...r}=t,n=lp(Iu,o),s=up[n.placedSide];return Mt("span",{ref:n.onArrowChange,style:{position:"absolute",left:n.arrowX,top:n.arrowY,[s]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[n.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[n.placedSide],visibility:n.shouldHideArrow?"hidden":void 0},children:Mt(fu,{...r,ref:a,style:{...r.style,display:"block"}})})});Cu.displayName=Iu;function ip(e){return e!==null}var dp=e=>({name:"transformOrigin",options:e,fn(t){let{placement:a,rects:o,middlewareData:r}=t,s=r.arrow?.centerOffset!==0,l=s?0:e.arrowWidth,i=s?0:e.arrowHeight,[u,c]=Hr(a),d={start:"0%",center:"50%",end:"100%"}[c],f=(r.arrow?.x??0)+l/2,p=(r.arrow?.y??0)+i/2,h="",m="";return u==="bottom"?(h=s?d:`${f}px`,m=`${-i}px`):u==="top"?(h=s?d:`${f}px`,m=`${o.floating.height+i}px`):u==="right"?(h=`${-i}px`,m=s?d:`${p}px`):u==="left"&&(h=`${o.floating.width+i}px`,m=s?d:`${p}px`),{data:{x:h,y:m}}}});function Hr(e){let[t,a="center"]=e.split("-");return[t,a]}var wa=hu,Ao=xu,Mo=Lu,Do=Cu;import*as ce from"react";import{jsx as Dt}from"react/jsx-runtime";var zr="rovingFocusGroup.onEntryFocus",cp={bubbles:!1,cancelable:!0},Sa="RovingFocusGroup",[Gr,bu,fp]=ja(Sa),[pp,Wr]=ie(Sa,[fp]),[mp,hp]=pp(Sa),wu=ce.forwardRef((e,t)=>Dt(Gr.Provider,{scope:e.__scopeRovingFocusGroup,children:Dt(Gr.Slot,{scope:e.__scopeRovingFocusGroup,children:Dt(gp,{...e,ref:t})})}));wu.displayName=Sa;var gp=ce.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:a,orientation:o,loop:r=!1,dir:n,currentTabStopId:s,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:i,onEntryFocus:u,preventScrollOnEntryFocus:c=!1,...d}=e,f=ce.useRef(null),p=U(t,f),h=Za(n),[m,g]=Ue({prop:s,defaultProp:l??null,onChange:i,caller:Sa}),[x,L]=ce.useState(!1),I=de(u),C=bu(a),w=ce.useRef(!1),[S,b]=ce.useState(0);return ce.useEffect(()=>{let v=f.current;if(v)return v.addEventListener(zr,I),()=>v.removeEventListener(zr,I)},[I]),Dt(mp,{scope:a,orientation:o,dir:h,loop:r,currentTabStopId:m,onItemFocus:ce.useCallback(v=>g(v),[g]),onItemShiftTab:ce.useCallback(()=>L(!0),[]),onFocusableItemAdd:ce.useCallback(()=>b(v=>v+1),[]),onFocusableItemRemove:ce.useCallback(()=>b(v=>v-1),[]),children:Dt(T.div,{tabIndex:x||S===0?-1:0,"data-orientation":o,...d,ref:p,style:{outline:"none",...e.style},onMouseDown:M(e.onMouseDown,()=>{w.current=!0}),onFocus:M(e.onFocus,v=>{let E=!w.current;if(v.target===v.currentTarget&&E&&!x){let _=new CustomEvent(zr,cp);if(v.currentTarget.dispatchEvent(_),!_.defaultPrevented){let H=C().filter(F=>F.focusable),W=H.find(F=>F.active),X=H.find(F=>F.id===m),Z=[W,X,...H].filter(Boolean).map(F=>F.ref.current);Ru(Z,c)}}w.current=!1}),onBlur:M(e.onBlur,()=>L(!1))})})}),Su="RovingFocusGroupItem",yu=ce.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:a,focusable:o=!0,active:r=!1,tabStopId:n,children:s,...l}=e,i=ve(),u=n||i,c=hp(Su,a),d=c.currentTabStopId===u,f=bu(a),{onFocusableItemAdd:p,onFocusableItemRemove:h,currentTabStopId:m}=c;return ce.useEffect(()=>{if(o)return p(),()=>h()},[o,p,h]),Dt(Gr.ItemSlot,{scope:a,id:u,focusable:o,active:r,children:Dt(T.span,{tabIndex:d?0:-1,"data-orientation":c.orientation,...l,ref:t,onMouseDown:M(e.onMouseDown,g=>{o?c.onItemFocus(u):g.preventDefault()}),onFocus:M(e.onFocus,()=>c.onItemFocus(u)),onKeyDown:M(e.onKeyDown,g=>{if(g.key==="Tab"&&g.shiftKey){c.onItemShiftTab();return}if(g.target!==g.currentTarget)return;let x=Ip(g,c.orientation,c.dir);if(x!==void 0){if(g.metaKey||g.ctrlKey||g.altKey||g.shiftKey)return;g.preventDefault();let I=f().filter(C=>C.focusable).map(C=>C.ref.current);if(x==="last")I.reverse();else if(x==="prev"||x==="next"){x==="prev"&&I.reverse();let C=I.indexOf(g.currentTarget);I=c.loop?Cp(I,C+1):I.slice(C+1)}setTimeout(()=>Ru(I))}}),children:typeof s=="function"?s({isCurrentTabStop:d,hasTabStop:m!=null}):s})})});yu.displayName=Su;var xp={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Lp(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Ip(e,t,a){let o=Lp(e.key,a);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return xp[o]}function Ru(e,t=!1){let a=document.activeElement;for(let o of e)if(o===a||(o.focus({preventScroll:t}),document.activeElement!==a))return}function Cp(e,t){return e.map((a,o)=>e[(t+o)%e.length])}var Pu=wu,ku=yu;import{jsx as O}from"react/jsx-runtime";var Vr=["Enter"," "],bp=["ArrowDown","PageUp","Home"],Mu=["ArrowUp","PageDown","End"],wp=[...bp,...Mu],Sp={ltr:[...Vr,"ArrowRight"],rtl:[...Vr,"ArrowLeft"]},yp={ltr:["ArrowLeft"],rtl:["ArrowRight"]},ka="Menu",[Ra,Rp,Pp]=ja(ka),[Tt,jr]=ie(ka,[Pp,$t,Wr]),Aa=$t(),Du=Wr(),[Tu,pt]=Tt(ka),[kp,Ma]=Tt(ka),Ou=e=>{let{__scopeMenu:t,open:a=!1,children:o,dir:r,onOpenChange:n,modal:s=!0}=e,l=Aa(t),[i,u]=A.useState(null),c=A.useRef(!1),d=de(n),f=Za(r);return A.useEffect(()=>{let p=()=>{c.current=!0,document.addEventListener("pointerdown",h,{capture:!0,once:!0}),document.addEventListener("pointermove",h,{capture:!0,once:!0})},h=()=>c.current=!1;return document.addEventListener("keydown",p,{capture:!0}),()=>{document.removeEventListener("keydown",p,{capture:!0}),document.removeEventListener("pointerdown",h,{capture:!0}),document.removeEventListener("pointermove",h,{capture:!0})}},[]),O(wa,{...l,children:O(Tu,{scope:t,open:a,onOpenChange:d,content:i,onContentChange:u,children:O(kp,{scope:t,onClose:A.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:c,dir:f,modal:s,children:o})})})};Ou.displayName=ka;var Ap="MenuAnchor",Xr=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e,r=Aa(a);return O(Ao,{...r,...o,ref:t})});Xr.displayName=Ap;var Kr="MenuPortal",[Mp,Fu]=Tt(Kr,{forceMount:void 0}),Eu=e=>{let{__scopeMenu:t,forceMount:a,children:o,container:r}=e,n=pt(Kr,t);return O(Mp,{scope:t,forceMount:a,children:O(Pe,{present:a||n.open,children:O(Lt,{asChild:!0,container:r,children:o})})})};Eu.displayName=Kr;var Ee="MenuContent",[Dp,$r]=Tt(Ee),Bu=A.forwardRef((e,t)=>{let a=Fu(Ee,e.__scopeMenu),{forceMount:o=a.forceMount,...r}=e,n=pt(Ee,e.__scopeMenu),s=Ma(Ee,e.__scopeMenu);return O(Ra.Provider,{scope:e.__scopeMenu,children:O(Pe,{present:o||n.open,children:O(Ra.Slot,{scope:e.__scopeMenu,children:s.modal?O(Tp,{...r,ref:t}):O(Op,{...r,ref:t})})})})}),Tp=A.forwardRef((e,t)=>{let a=pt(Ee,e.__scopeMenu),o=A.useRef(null),r=U(t,o);return A.useEffect(()=>{let n=o.current;if(n)return io(n)},[]),O(Yr,{...e,ref:r,trapFocus:a.open,disableOutsidePointerEvents:a.open,disableOutsideScroll:!0,onFocusOutside:M(e.onFocusOutside,n=>n.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>a.onOpenChange(!1)})}),Op=A.forwardRef((e,t)=>{let a=pt(Ee,e.__scopeMenu);return O(Yr,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>a.onOpenChange(!1)})}),Fp=_e("MenuContent.ScrollLock"),Yr=A.forwardRef((e,t)=>{let{__scopeMenu:a,loop:o=!1,trapFocus:r,onOpenAutoFocus:n,onCloseAutoFocus:s,disableOutsidePointerEvents:l,onEntryFocus:i,onEscapeKeyDown:u,onPointerDownOutside:c,onFocusOutside:d,onInteractOutside:f,onDismiss:p,disableOutsideScroll:h,...m}=e,g=pt(Ee,a),x=Ma(Ee,a),L=Aa(a),I=Du(a),C=Rp(a),[w,S]=A.useState(null),b=A.useRef(null),v=U(t,b,g.onContentChange),E=A.useRef(0),_=A.useRef(""),H=A.useRef(0),W=A.useRef(null),X=A.useRef("right"),z=A.useRef(0),Z=h?xa:A.Fragment,F=h?{as:Fp,allowPinchZoom:!0}:void 0,V=k=>{let y=_.current+k,Re=C().filter(re=>!re.disabled),Be=document.activeElement,st=Re.find(re=>re.ref.current===Be)?.textValue,et=Re.map(re=>re.textValue),oe=jp(et,y,st),J=Re.find(re=>re.textValue===oe)?.ref.current;(function re(Ne){_.current=Ne,window.clearTimeout(E.current),Ne!==""&&(E.current=window.setTimeout(()=>re(""),1e3))})(y),J&&setTimeout(()=>J.focus())};A.useEffect(()=>()=>window.clearTimeout(E.current),[]),eo();let D=A.useCallback(k=>X.current===W.current?.side&&Kp(k,W.current?.area),[]);return O(Dp,{scope:a,searchRef:_,onItemEnter:A.useCallback(k=>{D(k)&&k.preventDefault()},[D]),onItemLeave:A.useCallback(k=>{D(k)||(b.current?.focus(),S(null))},[D]),onTriggerLeave:A.useCallback(k=>{D(k)&&k.preventDefault()},[D]),pointerGraceTimerRef:H,onPointerGraceIntentChange:A.useCallback(k=>{W.current=k},[]),children:O(Z,{...F,children:O(pa,{asChild:!0,trapped:r,onMountAutoFocus:M(n,k=>{k.preventDefault(),b.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:s,children:O(xt,{asChild:!0,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:c,onFocusOutside:d,onInteractOutside:f,onDismiss:p,children:O(Pu,{asChild:!0,...I,dir:x.dir,orientation:"vertical",loop:o,currentTabStopId:w,onCurrentTabStopIdChange:S,onEntryFocus:M(i,k=>{x.isUsingKeyboardRef.current||k.preventDefault()}),preventScrollOnEntryFocus:!0,children:O(Mo,{role:"menu","aria-orientation":"vertical","data-state":Qu(g.open),"data-radix-menu-content":"",dir:x.dir,...L,...m,ref:v,style:{outline:"none",...m.style},onKeyDown:M(m.onKeyDown,k=>{let Re=k.target.closest("[data-radix-menu-content]")===k.currentTarget,Be=k.ctrlKey||k.altKey||k.metaKey,st=k.key.length===1;Re&&(k.key==="Tab"&&k.preventDefault(),!Be&&st&&V(k.key));let et=b.current;if(k.target!==et||!wp.includes(k.key))return;k.preventDefault();let J=C().filter(re=>!re.disabled).map(re=>re.ref.current);Mu.includes(k.key)&&J.reverse(),Wp(J)}),onBlur:M(e.onBlur,k=>{k.currentTarget.contains(k.target)||(window.clearTimeout(E.current),_.current="")}),onPointerMove:M(e.onPointerMove,Pa(k=>{let y=k.target,Re=z.current!==k.clientX;if(k.currentTarget.contains(y)&&Re){let Be=k.clientX>z.current?"right":"left";X.current=Be,z.current=k.clientX}}))})})})})})})});Bu.displayName=Ee;var Ep="MenuGroup",Zr=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e;return O(T.div,{role:"group",...o,ref:t})});Zr.displayName=Ep;var Bp="MenuLabel",Nu=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e;return O(T.div,{...o,ref:t})});Nu.displayName=Bp;var To="MenuItem",Au="menu.itemSelect",Fo=A.forwardRef((e,t)=>{let{disabled:a=!1,onSelect:o,...r}=e,n=A.useRef(null),s=Ma(To,e.__scopeMenu),l=$r(To,e.__scopeMenu),i=U(t,n),u=A.useRef(!1),c=()=>{let d=n.current;if(!a&&d){let f=new CustomEvent(Au,{bubbles:!0,cancelable:!0});d.addEventListener(Au,p=>o?.(p),{once:!0}),Va(d,f),f.defaultPrevented?u.current=!1:s.onClose()}};return O(_u,{...r,ref:i,disabled:a,onClick:M(e.onClick,c),onPointerDown:d=>{e.onPointerDown?.(d),u.current=!0},onPointerUp:M(e.onPointerUp,d=>{u.current||d.currentTarget?.click()}),onKeyDown:M(e.onKeyDown,d=>{let f=l.searchRef.current!=="";a||f&&d.key===" "||Vr.includes(d.key)&&(d.currentTarget.click(),d.preventDefault())})})});Fo.displayName=To;var _u=A.forwardRef((e,t)=>{let{__scopeMenu:a,disabled:o=!1,textValue:r,...n}=e,s=$r(To,a),l=Du(a),i=A.useRef(null),u=U(t,i),[c,d]=A.useState(!1),[f,p]=A.useState("");return A.useEffect(()=>{let h=i.current;h&&p((h.textContent??"").trim())},[n.children]),O(Ra.ItemSlot,{scope:a,disabled:o,textValue:r??f,children:O(ku,{asChild:!0,...l,focusable:!o,children:O(T.div,{role:"menuitem","data-highlighted":c?"":void 0,"aria-disabled":o||void 0,"data-disabled":o?"":void 0,...n,ref:u,onPointerMove:M(e.onPointerMove,Pa(h=>{o?s.onItemLeave(h):(s.onItemEnter(h),h.defaultPrevented||h.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:M(e.onPointerLeave,Pa(h=>s.onItemLeave(h))),onFocus:M(e.onFocus,()=>d(!0)),onBlur:M(e.onBlur,()=>d(!1))})})})}),Np="MenuCheckboxItem",qu=A.forwardRef((e,t)=>{let{checked:a=!1,onCheckedChange:o,...r}=e;return O(Wu,{scope:e.__scopeMenu,checked:a,children:O(Fo,{role:"menuitemcheckbox","aria-checked":Oo(a)?"mixed":a,...r,ref:t,"data-state":en(a),onSelect:M(r.onSelect,()=>o?.(Oo(a)?!0:!a),{checkForDefaultPrevented:!1})})})});qu.displayName=Np;var Uu="MenuRadioGroup",[_p,qp]=Tt(Uu,{value:void 0,onValueChange:()=>{}}),Hu=A.forwardRef((e,t)=>{let{value:a,onValueChange:o,...r}=e,n=de(o);return O(_p,{scope:e.__scopeMenu,value:a,onValueChange:n,children:O(Zr,{...r,ref:t})})});Hu.displayName=Uu;var zu="MenuRadioItem",Gu=A.forwardRef((e,t)=>{let{value:a,...o}=e,r=qp(zu,e.__scopeMenu),n=a===r.value;return O(Wu,{scope:e.__scopeMenu,checked:n,children:O(Fo,{role:"menuitemradio","aria-checked":n,...o,ref:t,"data-state":en(n),onSelect:M(o.onSelect,()=>r.onValueChange?.(a),{checkForDefaultPrevented:!1})})})});Gu.displayName=zu;var Jr="MenuItemIndicator",[Wu,Up]=Tt(Jr,{checked:!1}),Vu=A.forwardRef((e,t)=>{let{__scopeMenu:a,forceMount:o,...r}=e,n=Up(Jr,a);return O(Pe,{present:o||Oo(n.checked)||n.checked===!0,children:O(T.span,{...r,ref:t,"data-state":en(n.checked)})})});Vu.displayName=Jr;var Hp="MenuSeparator",ju=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e;return O(T.div,{role:"separator","aria-orientation":"horizontal",...o,ref:t})});ju.displayName=Hp;var zp="MenuArrow",Xu=A.forwardRef((e,t)=>{let{__scopeMenu:a,...o}=e,r=Aa(a);return O(Do,{...r,...o,ref:t})});Xu.displayName=zp;var Qr="MenuSub",[Gp,Ku]=Tt(Qr),$u=e=>{let{__scopeMenu:t,children:a,open:o=!1,onOpenChange:r}=e,n=pt(Qr,t),s=Aa(t),[l,i]=A.useState(null),[u,c]=A.useState(null),d=de(r);return A.useEffect(()=>(n.open===!1&&d(!1),()=>d(!1)),[n.open,d]),O(wa,{...s,children:O(Tu,{scope:t,open:o,onOpenChange:d,content:u,onContentChange:c,children:O(Gp,{scope:t,contentId:ve(),triggerId:ve(),trigger:l,onTriggerChange:i,children:a})})})};$u.displayName=Qr;var ya="MenuSubTrigger",Yu=A.forwardRef((e,t)=>{let a=pt(ya,e.__scopeMenu),o=Ma(ya,e.__scopeMenu),r=Ku(ya,e.__scopeMenu),n=$r(ya,e.__scopeMenu),s=A.useRef(null),{pointerGraceTimerRef:l,onPointerGraceIntentChange:i}=n,u={__scopeMenu:e.__scopeMenu},c=A.useCallback(()=>{s.current&&window.clearTimeout(s.current),s.current=null},[]);return A.useEffect(()=>c,[c]),A.useEffect(()=>{let d=l.current;return()=>{window.clearTimeout(d),i(null)}},[l,i]),O(Xr,{asChild:!0,...u,children:O(_u,{id:r.triggerId,"aria-haspopup":"menu","aria-expanded":a.open,"aria-controls":a.open?r.contentId:void 0,"data-state":Qu(a.open),...e,ref:fa(t,r.onTriggerChange),onClick:d=>{e.onClick?.(d),!(e.disabled||d.defaultPrevented)&&(d.currentTarget.focus(),a.open||a.onOpenChange(!0))},onPointerMove:M(e.onPointerMove,Pa(d=>{n.onItemEnter(d),!d.defaultPrevented&&!e.disabled&&!a.open&&!s.current&&(n.onPointerGraceIntentChange(null),s.current=window.setTimeout(()=>{a.onOpenChange(!0),c()},100))})),onPointerLeave:M(e.onPointerLeave,Pa(d=>{c();let f=a.content?.getBoundingClientRect();if(f){let p=a.content?.dataset.side,h=p==="right",m=h?-5:5,g=f[h?"left":"right"],x=f[h?"right":"left"];n.onPointerGraceIntentChange({area:[{x:d.clientX+m,y:d.clientY},{x:g,y:f.top},{x,y:f.top},{x,y:f.bottom},{x:g,y:f.bottom}],side:p}),window.clearTimeout(l.current),l.current=window.setTimeout(()=>n.onPointerGraceIntentChange(null),300)}else{if(n.onTriggerLeave(d),d.defaultPrevented)return;n.onPointerGraceIntentChange(null)}})),onKeyDown:M(e.onKeyDown,d=>{let f=n.searchRef.current!=="";e.disabled||f&&d.key===" "||Sp[o.dir].includes(d.key)&&(a.onOpenChange(!0),a.content?.focus(),d.preventDefault())})})})});Yu.displayName=ya;var Zu="MenuSubContent",Ju=A.forwardRef((e,t)=>{let a=Fu(Ee,e.__scopeMenu),{forceMount:o=a.forceMount,align:r="start",...n}=e,s=pt(Ee,e.__scopeMenu),l=Ma(Ee,e.__scopeMenu),i=Ku(Zu,e.__scopeMenu),u=A.useRef(null),c=U(t,u);return O(Ra.Provider,{scope:e.__scopeMenu,children:O(Pe,{present:o||s.open,children:O(Ra.Slot,{scope:e.__scopeMenu,children:O(Yr,{id:i.contentId,"aria-labelledby":i.triggerId,...n,ref:c,align:r,side:l.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:d=>{l.isUsingKeyboardRef.current&&u.current?.focus(),d.preventDefault()},onCloseAutoFocus:d=>d.preventDefault(),onFocusOutside:M(e.onFocusOutside,d=>{d.target!==i.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:M(e.onEscapeKeyDown,d=>{l.onClose(),d.preventDefault()}),onKeyDown:M(e.onKeyDown,d=>{let f=d.currentTarget.contains(d.target),p=yp[l.dir].includes(d.key);f&&p&&(s.onOpenChange(!1),i.trigger?.focus(),d.preventDefault())})})})})})});Ju.displayName=Zu;function Qu(e){return e?"open":"closed"}function Oo(e){return e==="indeterminate"}function en(e){return Oo(e)?"indeterminate":e?"checked":"unchecked"}function Wp(e){let t=document.activeElement;for(let a of e)if(a===t||(a.focus(),document.activeElement!==t))return}function Vp(e,t){return e.map((a,o)=>e[(t+o)%e.length])}function jp(e,t,a){let r=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,n=a?e.indexOf(a):-1,s=Vp(e,Math.max(n,0));r.length===1&&(s=s.filter(u=>u!==a));let i=s.find(u=>u.toLowerCase().startsWith(r.toLowerCase()));return i!==a?i:void 0}function Xp(e,t){let{x:a,y:o}=e,r=!1;for(let n=0,s=t.length-1;no!=f>o&&a<(d-u)*(o-c)/(f-c)+u&&(r=!r)}return r}function Kp(e,t){if(!t)return!1;let a={x:e.clientX,y:e.clientY};return Xp(a,t)}function Pa(e){return t=>t.pointerType==="mouse"?e(t):void 0}var ei=Ou,ti=Xr,ai=Eu,oi=Bu,ri=Zr,ni=Nu,si=Fo,li=qu,ui=Hu,ii=Gu,di=Vu,ci=ju,fi=Xu,pi=$u,mi=Yu,hi=Ju;var Ve={};lt(Ve,{Arrow:()=>wm,CheckboxItem:()=>Lm,Content:()=>mm,DropdownMenu:()=>tn,DropdownMenuArrow:()=>mn,DropdownMenuCheckboxItem:()=>un,DropdownMenuContent:()=>rn,DropdownMenuGroup:()=>nn,DropdownMenuItem:()=>ln,DropdownMenuItemIndicator:()=>fn,DropdownMenuLabel:()=>sn,DropdownMenuPortal:()=>on,DropdownMenuRadioGroup:()=>dn,DropdownMenuRadioItem:()=>cn,DropdownMenuSeparator:()=>pn,DropdownMenuSub:()=>Ii,DropdownMenuSubContent:()=>gn,DropdownMenuSubTrigger:()=>hn,DropdownMenuTrigger:()=>an,Group:()=>hm,Item:()=>xm,ItemIndicator:()=>vm,Label:()=>gm,Portal:()=>pm,RadioGroup:()=>Im,RadioItem:()=>Cm,Root:()=>cm,Separator:()=>bm,Sub:()=>Sm,SubContent:()=>Rm,SubTrigger:()=>ym,Trigger:()=>fm,createDropdownMenuScope:()=>Zp});import*as le from"react";import{jsx as fe}from"react/jsx-runtime";var Eo="DropdownMenu",[Yp,Zp]=ie(Eo,[jr]),Le=jr(),[Jp,gi]=Yp(Eo),tn=e=>{let{__scopeDropdownMenu:t,children:a,dir:o,open:r,defaultOpen:n,onOpenChange:s,modal:l=!0}=e,i=Le(t),u=le.useRef(null),[c,d]=Ue({prop:r,defaultProp:n??!1,onChange:s,caller:Eo});return fe(Jp,{scope:t,triggerId:ve(),triggerRef:u,contentId:ve(),open:c,onOpenChange:d,onOpenToggle:le.useCallback(()=>d(f=>!f),[d]),modal:l,children:fe(ei,{...i,open:c,onOpenChange:d,dir:o,modal:l,children:a})})};tn.displayName=Eo;var xi="DropdownMenuTrigger",an=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,disabled:o=!1,...r}=e,n=gi(xi,a),s=Le(a);return fe(ti,{asChild:!0,...s,children:fe(T.button,{type:"button",id:n.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":n.open?n.contentId:void 0,"data-state":n.open?"open":"closed","data-disabled":o?"":void 0,disabled:o,...r,ref:fa(t,n.triggerRef),onPointerDown:M(e.onPointerDown,l=>{!o&&l.button===0&&l.ctrlKey===!1&&(n.onOpenToggle(),n.open||l.preventDefault())}),onKeyDown:M(e.onKeyDown,l=>{o||(["Enter"," "].includes(l.key)&&n.onOpenToggle(),l.key==="ArrowDown"&&n.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(l.key)&&l.preventDefault())})})})});an.displayName=xi;var Qp="DropdownMenuPortal",on=e=>{let{__scopeDropdownMenu:t,...a}=e,o=Le(t);return fe(ai,{...o,...a})};on.displayName=Qp;var Li="DropdownMenuContent",rn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=gi(Li,a),n=Le(a),s=le.useRef(!1);return fe(oi,{id:r.contentId,"aria-labelledby":r.triggerId,...n,...o,ref:t,onCloseAutoFocus:M(e.onCloseAutoFocus,l=>{s.current||r.triggerRef.current?.focus(),s.current=!1,l.preventDefault()}),onInteractOutside:M(e.onInteractOutside,l=>{let i=l.detail.originalEvent,u=i.button===0&&i.ctrlKey===!0,c=i.button===2||u;(!r.modal||c)&&(s.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});rn.displayName=Li;var em="DropdownMenuGroup",nn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(ri,{...r,...o,ref:t})});nn.displayName=em;var tm="DropdownMenuLabel",sn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(ni,{...r,...o,ref:t})});sn.displayName=tm;var am="DropdownMenuItem",ln=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(si,{...r,...o,ref:t})});ln.displayName=am;var om="DropdownMenuCheckboxItem",un=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(li,{...r,...o,ref:t})});un.displayName=om;var rm="DropdownMenuRadioGroup",dn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(ui,{...r,...o,ref:t})});dn.displayName=rm;var nm="DropdownMenuRadioItem",cn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(ii,{...r,...o,ref:t})});cn.displayName=nm;var sm="DropdownMenuItemIndicator",fn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(di,{...r,...o,ref:t})});fn.displayName=sm;var lm="DropdownMenuSeparator",pn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(ci,{...r,...o,ref:t})});pn.displayName=lm;var um="DropdownMenuArrow",mn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(fi,{...r,...o,ref:t})});mn.displayName=um;var Ii=e=>{let{__scopeDropdownMenu:t,children:a,open:o,onOpenChange:r,defaultOpen:n}=e,s=Le(t),[l,i]=Ue({prop:o,defaultProp:n??!1,onChange:r,caller:"DropdownMenuSub"});return fe(pi,{...s,open:l,onOpenChange:i,children:a})},im="DropdownMenuSubTrigger",hn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(mi,{...r,...o,ref:t})});hn.displayName=im;var dm="DropdownMenuSubContent",gn=le.forwardRef((e,t)=>{let{__scopeDropdownMenu:a,...o}=e,r=Le(a);return fe(hi,{...r,...o,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});gn.displayName=dm;var cm=tn,fm=an,pm=on,mm=rn,hm=nn,gm=sn,xm=ln,Lm=un,Im=dn,Cm=cn,vm=fn,bm=pn,wm=mn,Sm=Ii,ym=hn,Rm=gn;var Bo={};lt(Bo,{Label:()=>xn,Root:()=>Am});import*as Ci from"react";import{jsx as Pm}from"react/jsx-runtime";var km="Label",xn=Ci.forwardRef((e,t)=>Pm(T.label,{...e,ref:t,onMouseDown:a=>{a.target.closest("button, input, select, textarea")||(e.onMouseDown?.(a),!a.defaultPrevented&&a.detail>1&&a.preventDefault())}}));xn.displayName=km;var Am=xn;var No={};lt(No,{Root:()=>Fm,Separator:()=>Ln});import*as bi from"react";import{jsx as Mm}from"react/jsx-runtime";var Dm="Separator",vi="horizontal",Tm=["horizontal","vertical"],Ln=bi.forwardRef((e,t)=>{let{decorative:a,orientation:o=vi,...r}=e,n=Om(o)?o:vi,l=a?{role:"none"}:{"aria-orientation":n==="vertical"?n:void 0,role:"separator"};return Mm(T.div,{"data-orientation":n,...l,...r,ref:t})});Ln.displayName=Dm;function Om(e){return Tm.includes(e)}var Fm=Ln;var Da={};lt(Da,{Root:()=>yi,Switch:()=>yi,SwitchThumb:()=>Pi,Thumb:()=>Pi,createSwitchScope:()=>_m,unstable_BubbleInput:()=>vn,unstable_Provider:()=>wi,unstable_SwitchBubbleInput:()=>vn,unstable_SwitchProvider:()=>wi,unstable_SwitchTrigger:()=>Cn,unstable_Trigger:()=>Cn});import*as ke from"react";import{Fragment as Em,jsx as Ot,jsxs as Bm}from"react/jsx-runtime";var _o="Switch",[Nm,_m]=ie(_o),[qm,In]=Nm(_o);function wi(e){let{__scopeSwitch:t,checked:a,children:o,defaultChecked:r,disabled:n,form:s,name:l,onCheckedChange:i,required:u,value:c="on",internal_do_not_use_render:d}=e,[f,p]=Ue({prop:a,defaultProp:r??!1,onChange:i,caller:_o}),[h,m]=ke.useState(null),[g,x]=ke.useState(null),L=ke.useRef(!1),I=h?!!s||!!h.closest("form"):!0,C={checked:f,setChecked:p,disabled:n,control:h,setControl:m,name:l,form:s,value:c,hasConsumerStoppedPropagationRef:L,required:u,defaultChecked:r,isFormControl:I,bubbleInput:g,setBubbleInput:x};return Ot(qm,{scope:t,...C,children:Um(d)?d(C):o})}var Si="SwitchTrigger",Cn=ke.forwardRef(({__scopeSwitch:e,onClick:t,...a},o)=>{let{value:r,disabled:n,checked:s,required:l,setControl:i,setChecked:u,hasConsumerStoppedPropagationRef:c,isFormControl:d,bubbleInput:f}=In(Si,e),p=U(o,i);return Ot(T.button,{type:"button",role:"switch","aria-checked":s,"aria-required":l,"data-state":Ai(s),"data-disabled":n?"":void 0,disabled:n,value:r,...a,ref:p,onClick:M(t,h=>{u(m=>!m),f&&d&&(c.current=h.isPropagationStopped(),c.current||h.stopPropagation())})})});Cn.displayName=Si;var yi=ke.forwardRef((e,t)=>{let{__scopeSwitch:a,name:o,checked:r,defaultChecked:n,required:s,disabled:l,value:i,onCheckedChange:u,form:c,...d}=e;return Ot(wi,{__scopeSwitch:a,checked:r,defaultChecked:n,disabled:l,required:s,onCheckedChange:u,name:o,form:c,value:i,internal_do_not_use_render:({isFormControl:f})=>Bm(Em,{children:[Ot(Cn,{...d,ref:t,__scopeSwitch:a}),f&&Ot(vn,{__scopeSwitch:a})]})})});yi.displayName=_o;var Ri="SwitchThumb",Pi=ke.forwardRef((e,t)=>{let{__scopeSwitch:a,...o}=e,r=In(Ri,a);return Ot(T.span,{"data-state":Ai(r.checked),"data-disabled":r.disabled?"":void 0,...o,ref:t})});Pi.displayName=Ri;var ki="SwitchBubbleInput",vn=ke.forwardRef(({__scopeSwitch:e,...t},a)=>{let{control:o,hasConsumerStoppedPropagationRef:r,checked:n,defaultChecked:s,required:l,disabled:i,name:u,value:c,form:d,bubbleInput:f,setBubbleInput:p}=In(ki,e),h=U(a,p),m=dl(n),g=go(o);ke.useEffect(()=>{let L=f;if(!L)return;let I=window.HTMLInputElement.prototype,w=Object.getOwnPropertyDescriptor(I,"checked").set,S=!r.current;if(m!==n&&w){let b=new Event("click",{bubbles:S});w.call(L,n),L.dispatchEvent(b)}},[f,m,n,r]);let x=ke.useRef(n);return Ot(T.input,{type:"checkbox","aria-hidden":!0,defaultChecked:s??x.current,required:l,disabled:i,name:u,value:c,form:d,...t,tabIndex:-1,ref:h,style:{...t.style,...g,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});vn.displayName=ki;function Um(e){return typeof e=="function"}function Ai(e){return e?"checked":"unchecked"}var ot={};lt(ot,{Arrow:()=>ih,Content:()=>uh,Portal:()=>lh,Provider:()=>rh,Root:()=>nh,Tooltip:()=>Rn,TooltipArrow:()=>Dn,TooltipContent:()=>Mn,TooltipPortal:()=>An,TooltipProvider:()=>yn,TooltipTrigger:()=>Pn,Trigger:()=>sh,createTooltipScope:()=>zm});import*as B from"react";import{jsx as he,jsxs as Hm}from"react/jsx-runtime";var[qo,zm]=ie("Tooltip",[$t]),Uo=$t(),Mi="TooltipProvider",Gm=700,bn="tooltip.open",[Wm,Sn]=qo(Mi),yn=e=>{let{__scopeTooltip:t,delayDuration:a=Gm,skipDelayDuration:o=300,disableHoverableContent:r=!1,children:n}=e,s=B.useRef(!0),l=B.useRef(!1),i=B.useRef(0);return B.useEffect(()=>{let u=i.current;return()=>window.clearTimeout(u)},[]),he(Wm,{scope:t,isOpenDelayedRef:s,delayDuration:a,onOpen:B.useCallback(()=>{o<=0||(window.clearTimeout(i.current),s.current=!1)},[o]),onClose:B.useCallback(()=>{o<=0||(window.clearTimeout(i.current),i.current=window.setTimeout(()=>s.current=!0,o))},[o]),isPointerInTransitRef:l,onPointerInTransitChange:B.useCallback(u=>{l.current=u},[]),disableHoverableContent:r,children:n})};yn.displayName=Mi;var Ta="Tooltip",[Vm,Oa]=qo(Ta),Rn=e=>{let{__scopeTooltip:t,children:a,open:o,defaultOpen:r,onOpenChange:n,disableHoverableContent:s,delayDuration:l}=e,i=Sn(Ta,e.__scopeTooltip),u=Uo(t),[c,d]=B.useState(null),f=ve(),p=B.useRef(0),h=s??i.disableHoverableContent,m=l??i.delayDuration,g=B.useRef(!1),[x,L]=Ue({prop:o,defaultProp:r??!1,onChange:b=>{b?(i.onOpen(),document.dispatchEvent(new CustomEvent(bn))):i.onClose(),n?.(b)},caller:Ta}),I=B.useMemo(()=>x?g.current?"delayed-open":"instant-open":"closed",[x]),C=B.useCallback(()=>{window.clearTimeout(p.current),p.current=0,g.current=!1,L(!0)},[L]),w=B.useCallback(()=>{window.clearTimeout(p.current),p.current=0,L(!1)},[L]),S=B.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{g.current=!0,L(!0),p.current=0},m)},[m,L]);return B.useEffect(()=>()=>{p.current&&(window.clearTimeout(p.current),p.current=0)},[]),he(wa,{...u,children:he(Vm,{scope:t,contentId:f,open:x,stateAttribute:I,trigger:c,onTriggerChange:d,onTriggerEnter:B.useCallback(()=>{i.isOpenDelayedRef.current?S():C()},[i.isOpenDelayedRef,S,C]),onTriggerLeave:B.useCallback(()=>{h?w():(window.clearTimeout(p.current),p.current=0)},[w,h]),onOpen:C,onClose:w,disableHoverableContent:h,children:a})})};Rn.displayName=Ta;var wn="TooltipTrigger",Pn=B.forwardRef((e,t)=>{let{__scopeTooltip:a,...o}=e,r=Oa(wn,a),n=Sn(wn,a),s=Uo(a),l=B.useRef(null),i=U(t,l,r.onTriggerChange),u=B.useRef(!1),c=B.useRef(!1),d=B.useCallback(()=>u.current=!1,[]);return B.useEffect(()=>()=>document.removeEventListener("pointerup",d),[d]),he(Ao,{asChild:!0,...s,children:he(T.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...o,ref:i,onPointerMove:M(e.onPointerMove,f=>{f.pointerType!=="touch"&&!c.current&&!n.isPointerInTransitRef.current&&(r.onTriggerEnter(),c.current=!0)}),onPointerLeave:M(e.onPointerLeave,()=>{r.onTriggerLeave(),c.current=!1}),onPointerDown:M(e.onPointerDown,()=>{r.open&&r.onClose(),u.current=!0,document.addEventListener("pointerup",d,{once:!0})}),onFocus:M(e.onFocus,()=>{u.current||r.onOpen()}),onBlur:M(e.onBlur,r.onClose),onClick:M(e.onClick,r.onClose)})})});Pn.displayName=wn;var kn="TooltipPortal",[jm,Xm]=qo(kn,{forceMount:void 0}),An=e=>{let{__scopeTooltip:t,forceMount:a,children:o,container:r}=e,n=Oa(kn,t);return he(jm,{scope:t,forceMount:a,children:he(Pe,{present:a||n.open,children:he(Lt,{asChild:!0,container:r,children:o})})})};An.displayName=kn;var Yt="TooltipContent",Mn=B.forwardRef((e,t)=>{let a=Xm(Yt,e.__scopeTooltip),{forceMount:o=a.forceMount,side:r="top",...n}=e,s=Oa(Yt,e.__scopeTooltip);return he(Pe,{present:o||s.open,children:s.disableHoverableContent?he(Di,{side:r,...n,ref:t}):he(Km,{side:r,...n,ref:t})})}),Km=B.forwardRef((e,t)=>{let a=Oa(Yt,e.__scopeTooltip),o=Sn(Yt,e.__scopeTooltip),r=B.useRef(null),n=U(t,r),[s,l]=B.useState(null),{trigger:i,onClose:u}=a,c=r.current,{onPointerInTransitChange:d}=o,f=B.useCallback(()=>{l(null),d(!1)},[d]),p=B.useCallback((h,m)=>{let g=h.currentTarget,x={x:h.clientX,y:h.clientY},L=Jm(x,g.getBoundingClientRect()),I=Qm(x,L),C=eh(m.getBoundingClientRect()),w=ah([...I,...C]);l(w),d(!0)},[d]);return B.useEffect(()=>()=>f(),[f]),B.useEffect(()=>{if(i&&c){let h=g=>p(g,c),m=g=>p(g,i);return i.addEventListener("pointerleave",h),c.addEventListener("pointerleave",m),()=>{i.removeEventListener("pointerleave",h),c.removeEventListener("pointerleave",m)}}},[i,c,p,f]),B.useEffect(()=>{if(s){let h=m=>{let g=m.target,x={x:m.clientX,y:m.clientY},L=i?.contains(g)||c?.contains(g),I=!th(x,s);L?f():I&&(f(),u())};return document.addEventListener("pointermove",h),()=>document.removeEventListener("pointermove",h)}},[i,c,s,u,f]),he(Di,{...e,ref:n})}),[$m,Ym]=qo(Ta,{isInside:!1}),Zm=Wa("TooltipContent"),Di=B.forwardRef((e,t)=>{let{__scopeTooltip:a,children:o,"aria-label":r,onEscapeKeyDown:n,onPointerDownOutside:s,...l}=e,i=Oa(Yt,a),u=Uo(a),{onClose:c}=i;return B.useEffect(()=>(document.addEventListener(bn,c),()=>document.removeEventListener(bn,c)),[c]),B.useEffect(()=>{if(i.trigger){let d=f=>{f.target instanceof Node&&f.target.contains(i.trigger)&&c()};return window.addEventListener("scroll",d,{capture:!0}),()=>window.removeEventListener("scroll",d,{capture:!0})}},[i.trigger,c]),he(xt,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:n,onPointerDownOutside:s,onFocusOutside:d=>d.preventDefault(),onDismiss:c,children:Hm(Mo,{"data-state":i.stateAttribute,...u,...l,ref:t,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[he(Zm,{children:o}),he($m,{scope:a,isInside:!0,children:he(us,{id:i.contentId,role:"tooltip",children:r||o})})]})})});Mn.displayName=Yt;var Ti="TooltipArrow",Dn=B.forwardRef((e,t)=>{let{__scopeTooltip:a,...o}=e,r=Uo(a);return Ym(Ti,a).isInside?null:he(Do,{...r,...o,ref:t})});Dn.displayName=Ti;function Jm(e,t){let a=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),r=Math.abs(t.right-e.x),n=Math.abs(t.left-e.x);switch(Math.min(a,o,r,n)){case n:return"left";case r:return"right";case a:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function Qm(e,t,a=5){let o=[];switch(t){case"top":o.push({x:e.x-a,y:e.y+a},{x:e.x+a,y:e.y+a});break;case"bottom":o.push({x:e.x-a,y:e.y-a},{x:e.x+a,y:e.y-a});break;case"left":o.push({x:e.x+a,y:e.y-a},{x:e.x+a,y:e.y+a});break;case"right":o.push({x:e.x-a,y:e.y-a},{x:e.x-a,y:e.y+a});break}return o}function eh(e){let{top:t,right:a,bottom:o,left:r}=e;return[{x:r,y:t},{x:a,y:t},{x:a,y:o},{x:r,y:o}]}function th(e,t){let{x:a,y:o}=e,r=!1;for(let n=0,s=t.length-1;no!=f>o&&a<(d-u)*(o-c)/(f-c)+u&&(r=!r)}return r}function ah(e){let t=e.slice();return t.sort((a,o)=>a.xo.x?1:a.yo.y?1:0),oh(t)}function oh(e){if(e.length<=1)return e.slice();let t=[];for(let o=0;o=2;){let n=t[t.length-1],s=t[t.length-2];if((n.x-s.x)*(r.y-s.y)>=(n.y-s.y)*(r.x-s.x))t.pop();else break}t.push(r)}t.pop();let a=[];for(let o=e.length-1;o>=0;o--){let r=e[o];for(;a.length>=2;){let n=a[a.length-1],s=a[a.length-2];if((n.x-s.x)*(r.y-s.y)>=(n.y-s.y)*(r.x-s.x))a.pop();else break}a.push(r)}return a.pop(),t.length===1&&a.length===1&&t[0].x===a[0].x&&t[0].y===a[0].y?t:t.concat(a)}var rh=yn,nh=Rn,sh=Pn,lh=An,uh=Mn,ih=Dn;function Oi(e){var t,a,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t{let a=new Array(e.length+t.length);for(let o=0;o({classGroupId:e,validator:t}),Ui=(e=new Map,t=null,a)=>({nextPart:e,validators:t,classGroupId:a}),Go="-",Fi=[],fh="arbitrary..",ph=e=>{let t=hh(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:s=>{if(s.startsWith("[")&&s.endsWith("]"))return mh(s);let l=s.split(Go),i=l[0]===""&&l.length>1?1:0;return Hi(l,i,t)},getConflictingClassGroupIds:(s,l)=>{if(l){let i=o[s],u=a[s];return i?u?dh(u,i):i:u||Fi}return a[s]||Fi}}},Hi=(e,t,a)=>{if(e.length-t===0)return a.classGroupId;let r=e[t],n=a.nextPart.get(r);if(n){let u=Hi(e,t+1,n);if(u)return u}let s=a.validators;if(s===null)return;let l=t===0?e.join(Go):e.slice(t).join(Go),i=s.length;for(let u=0;ue.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let t=e.slice(1,-1),a=t.indexOf(":"),o=t.slice(0,a);return o?fh+o:void 0})(),hh=e=>{let{theme:t,classGroups:a}=e;return gh(a,t)},gh=(e,t)=>{let a=Ui();for(let o in e){let r=e[o];Fn(r,a,o,t)}return a},Fn=(e,t,a,o)=>{let r=e.length;for(let n=0;n{if(typeof e=="string"){Lh(e,t,a);return}if(typeof e=="function"){Ih(e,t,a,o);return}Ch(e,t,a,o)},Lh=(e,t,a)=>{let o=e===""?t:zi(t,e);o.classGroupId=a},Ih=(e,t,a,o)=>{if(vh(e)){Fn(e(o),t,a,o);return}t.validators===null&&(t.validators=[]),t.validators.push(ch(a,e))},Ch=(e,t,a,o)=>{let r=Object.entries(e),n=r.length;for(let s=0;s{let a=e,o=t.split(Go),r=o.length;for(let n=0;n"isThemeGetter"in e&&e.isThemeGetter===!0,bh=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,a=Object.create(null),o=Object.create(null),r=(n,s)=>{a[n]=s,t++,t>e&&(t=0,o=a,a=Object.create(null))};return{get(n){let s=a[n];if(s!==void 0)return s;if((s=o[n])!==void 0)return r(n,s),s},set(n,s){n in a?a[n]=s:r(n,s)}}},On="!",Ei=":",wh=[],Bi=(e,t,a,o,r)=>({modifiers:e,hasImportantModifier:t,baseClassName:a,maybePostfixModifierPosition:o,isExternal:r}),Sh=e=>{let{prefix:t,experimentalParseClassName:a}=e,o=r=>{let n=[],s=0,l=0,i=0,u,c=r.length;for(let m=0;mi?u-i:void 0;return Bi(n,p,f,h)};if(t){let r=t+Ei,n=o;o=s=>s.startsWith(r)?n(s.slice(r.length)):Bi(wh,!1,s,void 0,!0)}if(a){let r=o;o=n=>a({className:n,parseClassName:r})}return o},yh=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((a,o)=>{t.set(a,1e6+o)}),a=>{let o=[],r=[];for(let n=0;n0&&(r.sort(),o.push(...r),r=[]),o.push(s)):r.push(s)}return r.length>0&&(r.sort(),o.push(...r)),o}},Rh=e=>({cache:bh(e.cacheSize),parseClassName:Sh(e),sortModifiers:yh(e),postfixLookupClassGroupIds:Ph(e),...ph(e)}),Ph=e=>{let t=Object.create(null),a=e.postfixLookupClassGroups;if(a)for(let o=0;o{let{parseClassName:a,getClassGroupId:o,getConflictingClassGroupIds:r,sortModifiers:n,postfixLookupClassGroupIds:s}=t,l=[],i=e.trim().split(kh),u="";for(let c=i.length-1;c>=0;c-=1){let d=i[c],{isExternal:f,modifiers:p,hasImportantModifier:h,baseClassName:m,maybePostfixModifierPosition:g}=a(d);if(f){u=d+(u.length>0?" "+u:u);continue}let x=!!g,L;if(x){let b=m.substring(0,g);L=o(b);let v=L&&s[L]?o(m):void 0;v&&v!==L&&(L=v,x=!1)}else L=o(m);if(!L){if(!x){u=d+(u.length>0?" "+u:u);continue}if(L=o(m),!L){u=d+(u.length>0?" "+u:u);continue}x=!1}let I=p.length===0?"":p.length===1?p[0]:n(p).join(":"),C=h?I+On:I,w=C+L;if(l.indexOf(w)>-1)continue;l.push(w);let S=r(L,x);for(let b=0;b0?" "+u:u)}return u},Mh=(...e)=>{let t=0,a,o,r="";for(;t{if(typeof e=="string")return e;let t,a="";for(let o=0;o{let a,o,r,n,s=i=>{let u=t.reduce((c,d)=>d(c),e());return a=Rh(u),o=a.cache.get,r=a.cache.set,n=l,l(i)},l=i=>{let u=o(i);if(u)return u;let c=Ah(i,a);return r(i,c),c};return n=s,(...i)=>n(Mh(...i))},Th=[],ue=e=>{let t=a=>a[e]||Th;return t.isThemeGetter=!0,t},Wi=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Vi=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Oh=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Fh=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Eh=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Bh=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Nh=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,_h=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,mt=e=>Oh.test(e),N=e=>!!e&&!Number.isNaN(Number(e)),Qe=e=>!!e&&Number.isInteger(Number(e)),Tn=e=>e.endsWith("%")&&N(e.slice(0,-1)),rt=e=>Fh.test(e),ji=()=>!0,qh=e=>Eh.test(e)&&!Bh.test(e),En=()=>!1,Uh=e=>Nh.test(e),Hh=e=>_h.test(e),zh=e=>!R(e)&&!P(e),Gh=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Wh=e=>ht(e,$i,En),R=e=>Wi.test(e),Ft=e=>ht(e,Yi,qh),Ni=e=>ht(e,Jh,N),Vh=e=>ht(e,Ji,ji),jh=e=>ht(e,Zi,En),_i=e=>ht(e,Xi,En),Xh=e=>ht(e,Ki,Hh),Ho=e=>ht(e,Qi,Uh),P=e=>Vi.test(e),Fa=e=>Et(e,Yi),Kh=e=>Et(e,Zi),qi=e=>Et(e,Xi),$h=e=>Et(e,$i),Yh=e=>Et(e,Ki),zo=e=>Et(e,Qi,!0),Zh=e=>Et(e,Ji,!0),ht=(e,t,a)=>{let o=Wi.exec(e);return o?o[1]?t(o[1]):a(o[2]):!1},Et=(e,t,a=!1)=>{let o=Vi.exec(e);return o?o[1]?t(o[1]):a:!1},Xi=e=>e==="position"||e==="percentage",Ki=e=>e==="image"||e==="url",$i=e=>e==="length"||e==="size"||e==="bg-size",Yi=e=>e==="length",Jh=e=>e==="number",Zi=e=>e==="family-name",Ji=e=>e==="number"||e==="weight",Qi=e=>e==="shadow";var Qh=()=>{let e=ue("color"),t=ue("font"),a=ue("text"),o=ue("font-weight"),r=ue("tracking"),n=ue("leading"),s=ue("breakpoint"),l=ue("container"),i=ue("spacing"),u=ue("radius"),c=ue("shadow"),d=ue("inset-shadow"),f=ue("text-shadow"),p=ue("drop-shadow"),h=ue("blur"),m=ue("perspective"),g=ue("aspect"),x=ue("ease"),L=ue("animate"),I=()=>["auto","avoid","all","avoid-page","page","left","right","column"],C=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],w=()=>[...C(),P,R],S=()=>["auto","hidden","clip","visible","scroll"],b=()=>["auto","contain","none"],v=()=>[P,R,i],E=()=>[mt,"full","auto",...v()],_=()=>[Qe,"none","subgrid",P,R],H=()=>["auto",{span:["full",Qe,P,R]},Qe,P,R],W=()=>[Qe,"auto",P,R],X=()=>["auto","min","max","fr",P,R],z=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],Z=()=>["start","end","center","stretch","center-safe","end-safe"],F=()=>["auto",...v()],V=()=>[mt,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...v()],D=()=>[mt,"screen","full","dvw","lvw","svw","min","max","fit",...v()],k=()=>[mt,"screen","full","lh","dvh","lvh","svh","min","max","fit",...v()],y=()=>[e,P,R],Re=()=>[...C(),qi,_i,{position:[P,R]}],Be=()=>["no-repeat",{repeat:["","x","y","space","round"]}],st=()=>["auto","cover","contain",$h,Wh,{size:[P,R]}],et=()=>[Tn,Fa,Ft],oe=()=>["","none","full",u,P,R],J=()=>["",N,Fa,Ft],re=()=>["solid","dashed","dotted","double"],Ne=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],te=()=>[N,Tn,qi,_i],Ha=()=>["","none",h,P,R],_t=()=>["none",N,P,R],qt=()=>["none",N,P,R],Qt=()=>[N,P,R],tt=()=>[mt,"full",...v()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[rt],breakpoint:[rt],color:[ji],container:[rt],"drop-shadow":[rt],ease:["in","out","in-out"],font:[zh],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[rt],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[rt],shadow:[rt],spacing:["px",N],text:[rt],"text-shadow":[rt],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",mt,R,P,g]}],container:["container"],"container-type":[{"@container":["","normal","size",P,R]}],"container-named":[Gh],columns:[{columns:[N,R,P,l]}],"break-after":[{"break-after":I()}],"break-before":[{"break-before":I()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:w()}],overflow:[{overflow:S()}],"overflow-x":[{"overflow-x":S()}],"overflow-y":[{"overflow-y":S()}],overscroll:[{overscroll:b()}],"overscroll-x":[{"overscroll-x":b()}],"overscroll-y":[{"overscroll-y":b()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:E()}],"inset-x":[{"inset-x":E()}],"inset-y":[{"inset-y":E()}],start:[{"inset-s":E(),start:E()}],end:[{"inset-e":E(),end:E()}],"inset-bs":[{"inset-bs":E()}],"inset-be":[{"inset-be":E()}],top:[{top:E()}],right:[{right:E()}],bottom:[{bottom:E()}],left:[{left:E()}],visibility:["visible","invisible","collapse"],z:[{z:[Qe,"auto",P,R]}],basis:[{basis:[mt,"full","auto",l,...v()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[N,mt,"auto","initial","none",R]}],grow:[{grow:["",N,P,R]}],shrink:[{shrink:["",N,P,R]}],order:[{order:[Qe,"first","last","none",P,R]}],"grid-cols":[{"grid-cols":_()}],"col-start-end":[{col:H()}],"col-start":[{"col-start":W()}],"col-end":[{"col-end":W()}],"grid-rows":[{"grid-rows":_()}],"row-start-end":[{row:H()}],"row-start":[{"row-start":W()}],"row-end":[{"row-end":W()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":X()}],"auto-rows":[{"auto-rows":X()}],gap:[{gap:v()}],"gap-x":[{"gap-x":v()}],"gap-y":[{"gap-y":v()}],"justify-content":[{justify:[...z(),"normal"]}],"justify-items":[{"justify-items":[...Z(),"normal"]}],"justify-self":[{"justify-self":["auto",...Z()]}],"align-content":[{content:["normal",...z()]}],"align-items":[{items:[...Z(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...Z(),{baseline:["","last"]}]}],"place-content":[{"place-content":z()}],"place-items":[{"place-items":[...Z(),"baseline"]}],"place-self":[{"place-self":["auto",...Z()]}],p:[{p:v()}],px:[{px:v()}],py:[{py:v()}],ps:[{ps:v()}],pe:[{pe:v()}],pbs:[{pbs:v()}],pbe:[{pbe:v()}],pt:[{pt:v()}],pr:[{pr:v()}],pb:[{pb:v()}],pl:[{pl:v()}],m:[{m:F()}],mx:[{mx:F()}],my:[{my:F()}],ms:[{ms:F()}],me:[{me:F()}],mbs:[{mbs:F()}],mbe:[{mbe:F()}],mt:[{mt:F()}],mr:[{mr:F()}],mb:[{mb:F()}],ml:[{ml:F()}],"space-x":[{"space-x":v()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":v()}],"space-y-reverse":["space-y-reverse"],size:[{size:V()}],"inline-size":[{inline:["auto",...D()]}],"min-inline-size":[{"min-inline":["auto",...D()]}],"max-inline-size":[{"max-inline":["none",...D()]}],"block-size":[{block:["auto",...k()]}],"min-block-size":[{"min-block":["auto",...k()]}],"max-block-size":[{"max-block":["none",...k()]}],w:[{w:[l,"screen",...V()]}],"min-w":[{"min-w":[l,"screen","none",...V()]}],"max-w":[{"max-w":[l,"screen","none","prose",{screen:[s]},...V()]}],h:[{h:["screen","lh",...V()]}],"min-h":[{"min-h":["screen","lh","none",...V()]}],"max-h":[{"max-h":["screen","lh",...V()]}],"font-size":[{text:["base",a,Fa,Ft]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,Zh,Vh]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Tn,R]}],"font-family":[{font:[Kh,jh,t]}],"font-features":[{"font-features":[R]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[r,P,R]}],"line-clamp":[{"line-clamp":[N,"none",P,Ni]}],leading:[{leading:[n,...v()]}],"list-image":[{"list-image":["none",P,R]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",P,R]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:y()}],"text-color":[{text:y()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...re(),"wavy"]}],"text-decoration-thickness":[{decoration:[N,"from-font","auto",P,Ft]}],"text-decoration-color":[{decoration:y()}],"underline-offset":[{"underline-offset":[N,"auto",P,R]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:v()}],"tab-size":[{tab:[Qe,P,R]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",P,R]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",P,R]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:Re()}],"bg-repeat":[{bg:Be()}],"bg-size":[{bg:st()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Qe,P,R],radial:["",P,R],conic:[Qe,P,R]},Yh,Xh]}],"bg-color":[{bg:y()}],"gradient-from-pos":[{from:et()}],"gradient-via-pos":[{via:et()}],"gradient-to-pos":[{to:et()}],"gradient-from":[{from:y()}],"gradient-via":[{via:y()}],"gradient-to":[{to:y()}],rounded:[{rounded:oe()}],"rounded-s":[{"rounded-s":oe()}],"rounded-e":[{"rounded-e":oe()}],"rounded-t":[{"rounded-t":oe()}],"rounded-r":[{"rounded-r":oe()}],"rounded-b":[{"rounded-b":oe()}],"rounded-l":[{"rounded-l":oe()}],"rounded-ss":[{"rounded-ss":oe()}],"rounded-se":[{"rounded-se":oe()}],"rounded-ee":[{"rounded-ee":oe()}],"rounded-es":[{"rounded-es":oe()}],"rounded-tl":[{"rounded-tl":oe()}],"rounded-tr":[{"rounded-tr":oe()}],"rounded-br":[{"rounded-br":oe()}],"rounded-bl":[{"rounded-bl":oe()}],"border-w":[{border:J()}],"border-w-x":[{"border-x":J()}],"border-w-y":[{"border-y":J()}],"border-w-s":[{"border-s":J()}],"border-w-e":[{"border-e":J()}],"border-w-bs":[{"border-bs":J()}],"border-w-be":[{"border-be":J()}],"border-w-t":[{"border-t":J()}],"border-w-r":[{"border-r":J()}],"border-w-b":[{"border-b":J()}],"border-w-l":[{"border-l":J()}],"divide-x":[{"divide-x":J()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":J()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...re(),"hidden","none"]}],"divide-style":[{divide:[...re(),"hidden","none"]}],"border-color":[{border:y()}],"border-color-x":[{"border-x":y()}],"border-color-y":[{"border-y":y()}],"border-color-s":[{"border-s":y()}],"border-color-e":[{"border-e":y()}],"border-color-bs":[{"border-bs":y()}],"border-color-be":[{"border-be":y()}],"border-color-t":[{"border-t":y()}],"border-color-r":[{"border-r":y()}],"border-color-b":[{"border-b":y()}],"border-color-l":[{"border-l":y()}],"divide-color":[{divide:y()}],"outline-style":[{outline:[...re(),"none","hidden"]}],"outline-offset":[{"outline-offset":[N,P,R]}],"outline-w":[{outline:["",N,Fa,Ft]}],"outline-color":[{outline:y()}],shadow:[{shadow:["","none",c,zo,Ho]}],"shadow-color":[{shadow:y()}],"inset-shadow":[{"inset-shadow":["none",d,zo,Ho]}],"inset-shadow-color":[{"inset-shadow":y()}],"ring-w":[{ring:J()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:y()}],"ring-offset-w":[{"ring-offset":[N,Ft]}],"ring-offset-color":[{"ring-offset":y()}],"inset-ring-w":[{"inset-ring":J()}],"inset-ring-color":[{"inset-ring":y()}],"text-shadow":[{"text-shadow":["none",f,zo,Ho]}],"text-shadow-color":[{"text-shadow":y()}],opacity:[{opacity:[N,P,R]}],"mix-blend":[{"mix-blend":[...Ne(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":Ne()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[N]}],"mask-image-linear-from-pos":[{"mask-linear-from":te()}],"mask-image-linear-to-pos":[{"mask-linear-to":te()}],"mask-image-linear-from-color":[{"mask-linear-from":y()}],"mask-image-linear-to-color":[{"mask-linear-to":y()}],"mask-image-t-from-pos":[{"mask-t-from":te()}],"mask-image-t-to-pos":[{"mask-t-to":te()}],"mask-image-t-from-color":[{"mask-t-from":y()}],"mask-image-t-to-color":[{"mask-t-to":y()}],"mask-image-r-from-pos":[{"mask-r-from":te()}],"mask-image-r-to-pos":[{"mask-r-to":te()}],"mask-image-r-from-color":[{"mask-r-from":y()}],"mask-image-r-to-color":[{"mask-r-to":y()}],"mask-image-b-from-pos":[{"mask-b-from":te()}],"mask-image-b-to-pos":[{"mask-b-to":te()}],"mask-image-b-from-color":[{"mask-b-from":y()}],"mask-image-b-to-color":[{"mask-b-to":y()}],"mask-image-l-from-pos":[{"mask-l-from":te()}],"mask-image-l-to-pos":[{"mask-l-to":te()}],"mask-image-l-from-color":[{"mask-l-from":y()}],"mask-image-l-to-color":[{"mask-l-to":y()}],"mask-image-x-from-pos":[{"mask-x-from":te()}],"mask-image-x-to-pos":[{"mask-x-to":te()}],"mask-image-x-from-color":[{"mask-x-from":y()}],"mask-image-x-to-color":[{"mask-x-to":y()}],"mask-image-y-from-pos":[{"mask-y-from":te()}],"mask-image-y-to-pos":[{"mask-y-to":te()}],"mask-image-y-from-color":[{"mask-y-from":y()}],"mask-image-y-to-color":[{"mask-y-to":y()}],"mask-image-radial":[{"mask-radial":[P,R]}],"mask-image-radial-from-pos":[{"mask-radial-from":te()}],"mask-image-radial-to-pos":[{"mask-radial-to":te()}],"mask-image-radial-from-color":[{"mask-radial-from":y()}],"mask-image-radial-to-color":[{"mask-radial-to":y()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":C()}],"mask-image-conic-pos":[{"mask-conic":[N]}],"mask-image-conic-from-pos":[{"mask-conic-from":te()}],"mask-image-conic-to-pos":[{"mask-conic-to":te()}],"mask-image-conic-from-color":[{"mask-conic-from":y()}],"mask-image-conic-to-color":[{"mask-conic-to":y()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:Re()}],"mask-repeat":[{mask:Be()}],"mask-size":[{mask:st()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",P,R]}],filter:[{filter:["","none",P,R]}],blur:[{blur:Ha()}],brightness:[{brightness:[N,P,R]}],contrast:[{contrast:[N,P,R]}],"drop-shadow":[{"drop-shadow":["","none",p,zo,Ho]}],"drop-shadow-color":[{"drop-shadow":y()}],grayscale:[{grayscale:["",N,P,R]}],"hue-rotate":[{"hue-rotate":[N,P,R]}],invert:[{invert:["",N,P,R]}],saturate:[{saturate:[N,P,R]}],sepia:[{sepia:["",N,P,R]}],"backdrop-filter":[{"backdrop-filter":["","none",P,R]}],"backdrop-blur":[{"backdrop-blur":Ha()}],"backdrop-brightness":[{"backdrop-brightness":[N,P,R]}],"backdrop-contrast":[{"backdrop-contrast":[N,P,R]}],"backdrop-grayscale":[{"backdrop-grayscale":["",N,P,R]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[N,P,R]}],"backdrop-invert":[{"backdrop-invert":["",N,P,R]}],"backdrop-opacity":[{"backdrop-opacity":[N,P,R]}],"backdrop-saturate":[{"backdrop-saturate":[N,P,R]}],"backdrop-sepia":[{"backdrop-sepia":["",N,P,R]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":v()}],"border-spacing-x":[{"border-spacing-x":v()}],"border-spacing-y":[{"border-spacing-y":v()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",P,R]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[N,"initial",P,R]}],ease:[{ease:["linear","initial",x,P,R]}],delay:[{delay:[N,P,R]}],animate:[{animate:["none",L,P,R]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[m,P,R]}],"perspective-origin":[{"perspective-origin":w()}],rotate:[{rotate:_t()}],"rotate-x":[{"rotate-x":_t()}],"rotate-y":[{"rotate-y":_t()}],"rotate-z":[{"rotate-z":_t()}],scale:[{scale:qt()}],"scale-x":[{"scale-x":qt()}],"scale-y":[{"scale-y":qt()}],"scale-z":[{"scale-z":qt()}],"scale-3d":["scale-3d"],skew:[{skew:Qt()}],"skew-x":[{"skew-x":Qt()}],"skew-y":[{"skew-y":Qt()}],transform:[{transform:[P,R,"","none","gpu","cpu"]}],"transform-origin":[{origin:w()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:tt()}],"translate-x":[{"translate-x":tt()}],"translate-y":[{"translate-y":tt()}],"translate-z":[{"translate-z":tt()}],"translate-none":["translate-none"],zoom:[{zoom:[Qe,P,R]}],accent:[{accent:y()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:y()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",P,R]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":y()}],"scrollbar-track-color":[{"scrollbar-track":y()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":v()}],"scroll-mx":[{"scroll-mx":v()}],"scroll-my":[{"scroll-my":v()}],"scroll-ms":[{"scroll-ms":v()}],"scroll-me":[{"scroll-me":v()}],"scroll-mbs":[{"scroll-mbs":v()}],"scroll-mbe":[{"scroll-mbe":v()}],"scroll-mt":[{"scroll-mt":v()}],"scroll-mr":[{"scroll-mr":v()}],"scroll-mb":[{"scroll-mb":v()}],"scroll-ml":[{"scroll-ml":v()}],"scroll-p":[{"scroll-p":v()}],"scroll-px":[{"scroll-px":v()}],"scroll-py":[{"scroll-py":v()}],"scroll-ps":[{"scroll-ps":v()}],"scroll-pe":[{"scroll-pe":v()}],"scroll-pbs":[{"scroll-pbs":v()}],"scroll-pbe":[{"scroll-pbe":v()}],"scroll-pt":[{"scroll-pt":v()}],"scroll-pr":[{"scroll-pr":v()}],"scroll-pb":[{"scroll-pb":v()}],"scroll-pl":[{"scroll-pl":v()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",P,R]}],fill:[{fill:["none",...y()]}],"stroke-w":[{stroke:[N,Fa,Ft,Ni]}],stroke:[{stroke:["none",...y()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var Wo=Dh(Qh);function q(...e){return Wo(Zt(e))}import{jsx as qn}from"react/jsx-runtime";function Bn({className:e,size:t="default",...a}){return qn(jt.Root,{"data-slot":"avatar","data-size":t,className:q("group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6",e),...a})}function Nn({className:e,...t}){return qn(jt.Image,{"data-slot":"avatar-image",className:q("aspect-square size-full",e),...t})}function _n({className:e,...t}){return qn(jt.Fallback,{"data-slot":"avatar-fallback",className:q("flex size-full items-center justify-center rounded-full bg-muted text-sm text-muted-foreground group-data-[size=sm]/avatar:text-xs",e),...t})}import{jsx as gt,jsxs as Wv}from"react/jsx-runtime";function ed({...e}){return gt(Ve.Root,{"data-slot":"dropdown-menu",...e})}function td({...e}){return gt(Ve.Trigger,{"data-slot":"dropdown-menu-trigger",...e})}function ad({className:e,sideOffset:t=4,...a}){return gt(Ve.Portal,{children:gt(Ve.Content,{"data-slot":"dropdown-menu-content",sideOffset:t,className:q("z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",e),...a})})}function Un({...e}){return gt(Ve.Group,{"data-slot":"dropdown-menu-group",...e})}function Jt({className:e,inset:t,variant:a="default",...o}){return gt(Ve.Item,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":a,className:q("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",e),...o})}function od({className:e,inset:t,...a}){return gt(Ve.Label,{"data-slot":"dropdown-menu-label","data-inset":t,className:q("px-2 py-1.5 text-sm font-medium data-[inset]:pl-8",e),...a})}function Vo({className:e,...t}){return gt(Ve.Separator,{"data-slot":"dropdown-menu-separator",className:q("-mx-1 my-1 h-px bg-border",e),...t})}import*as Se from"react";var rd=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,nd=Zt,jo=(e,t)=>a=>{var o;if(t?.variants==null)return nd(e,a?.class,a?.className);let{variants:r,defaultVariants:n}=t,s=Object.keys(r).map(u=>{let c=a?.[u],d=n?.[u];if(c===null)return null;let f=rd(c)||rd(d);return r[u][f]}),l=a&&Object.entries(a).reduce((u,c)=>{let[d,f]=c;return f===void 0||(u[d]=f),u},{}),i=t==null||(o=t.compoundVariants)===null||o===void 0?void 0:o.reduce((u,c)=>{let{class:d,className:f,...p}=c;return Object.entries(p).every(h=>{let[m,g]=h;return Array.isArray(g)?g.includes({...n,...l}[m]):{...n,...l}[m]===g})?[...u,d,f]:u},[]);return nd(e,s,i,a?.class,a?.className)};import*as Xo from"react";var Hn=768;function sd(){let[e,t]=Xo.useState(void 0);return Xo.useEffect(()=>{let a=window.matchMedia(`(max-width: ${Hn-1}px)`),o=()=>{t(window.innerWidtha.removeEventListener("change",o)},[]),!!e}function Ie(...e){return Wo(Zt(e))}import{jsx as tg}from"react/jsx-runtime";var eg=jo("inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",xs:"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9","icon-xs":"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-8","icon-lg":"size-10"}},defaultVariants:{variant:"default",size:"default"}});function ld({className:e,variant:t="default",size:a="default",asChild:o=!1,...r}){let n=o?ct.Root:"button";return tg(n,{"data-slot":"button","data-variant":t,"data-size":a,className:q(eg({variant:t,size:a,className:e})),...r})}import{jsx as ag}from"react/jsx-runtime";function ud({className:e,type:t,...a}){return ag("input",{type:t,"data-slot":"input",className:q("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...a})}import{jsx as og}from"react/jsx-runtime";function zn({className:e,orientation:t="horizontal",decorative:a=!0,...o}){return og(No.Root,{"data-slot":"separator",decorative:a,orientation:t,className:q("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px",e),...o})}import{jsx as nt,jsxs as Gn}from"react/jsx-runtime";function id({...e}){return nt(Ke.Root,{"data-slot":"sheet",...e})}function rg({...e}){return nt(Ke.Portal,{"data-slot":"sheet-portal",...e})}function ng({className:e,...t}){return nt(Ke.Overlay,{"data-slot":"sheet-overlay",className:q("fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0",e),...t})}function dd({className:e,children:t,side:a="right",showCloseButton:o=!0,...r}){return Gn(rg,{children:[nt(ng,{}),Gn(Ke.Content,{"data-slot":"sheet-content",className:q("fixed z-50 flex flex-col gap-4 bg-background shadow-lg transition ease-in-out data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:animate-in data-[state=open]:duration-500",a==="right"&&"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm",a==="left"&&"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm",a==="top"&&"inset-x-0 top-0 h-auto border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top",a==="bottom"&&"inset-x-0 bottom-0 h-auto border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom",e),...r,children:[t,o&&Gn(Ke.Close,{className:"absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none data-[state=open]:bg-secondary",children:[nt(ca,{className:"size-4"}),nt("span",{className:"sr-only",children:"Close"})]})]})]})}function cd({className:e,...t}){return nt("div",{"data-slot":"sheet-header",className:q("flex flex-col gap-1.5 p-4",e),...t})}function fd({className:e,...t}){return nt(Ke.Title,{"data-slot":"sheet-title",className:q("font-semibold text-foreground",e),...t})}function pd({className:e,...t}){return nt(Ke.Description,{"data-slot":"sheet-description",className:q("text-sm text-muted-foreground",e),...t})}import{jsx as xb}from"react/jsx-runtime";import{jsx as Ea,jsxs as sg}from"react/jsx-runtime";function md({delayDuration:e=0,...t}){return Ea(ot.Provider,{"data-slot":"tooltip-provider",delayDuration:e,...t})}function hd({...e}){return Ea(ot.Root,{"data-slot":"tooltip",...e})}function gd({...e}){return Ea(ot.Trigger,{"data-slot":"tooltip-trigger",...e})}function xd({className:e,sideOffset:t=0,children:a,...o}){return Ea(ot.Portal,{children:sg(ot.Content,{"data-slot":"tooltip-content",sideOffset:t,className:q("z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",e),...o,children:[a,Ea(ot.Arrow,{className:"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground"})]})})}import{jsx as Y,jsxs as Ba}from"react/jsx-runtime";var lg="sidebar_state",ug=60*60*24*7,ig="16rem",dg="18rem",cg="3rem",fg="b",Ld=Se.createContext(null);function Bt(){let e=Se.useContext(Ld);if(!e)throw new Error("useSidebar must be used within a SidebarProvider.");return e}function Id({defaultOpen:e=!0,open:t,onOpenChange:a,className:o,style:r,children:n,...s}){let l=sd(),[i,u]=Se.useState(!1),[c,d]=Se.useState(e),f=t??c,p=Se.useCallback(x=>{let L=typeof x=="function"?x(f):x;a?a(L):d(L),document.cookie=`${lg}=${L}; path=/; max-age=${ug}`},[a,f]),h=Se.useCallback(()=>l?u(x=>!x):p(x=>!x),[l,p,u]);Se.useEffect(()=>{let x=L=>{L.key===fg&&(L.metaKey||L.ctrlKey)&&(L.preventDefault(),h())};return window.addEventListener("keydown",x),()=>window.removeEventListener("keydown",x)},[h]);let m=f?"expanded":"collapsed",g=Se.useMemo(()=>({state:m,open:f,setOpen:p,isMobile:l,openMobile:i,setOpenMobile:u,toggleSidebar:h}),[m,f,p,l,i,u,h]);return Y(Ld.Provider,{value:g,children:Y(md,{delayDuration:0,children:Y("div",{"data-slot":"sidebar-wrapper",style:{"--sidebar-width":ig,"--sidebar-width-icon":cg,...r},className:Ie("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",o),...s,children:n})})})}function Ko({side:e="left",variant:t="sidebar",collapsible:a="offcanvas",className:o,children:r,...n}){let{isMobile:s,state:l,openMobile:i,setOpenMobile:u}=Bt();return a==="none"?Y("div",{"data-slot":"sidebar",className:Ie("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",o),...n,children:r}):s?Y(id,{open:i,onOpenChange:u,...n,children:Ba(dd,{"data-sidebar":"sidebar","data-slot":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":dg},side:e,children:[Ba(cd,{className:"sr-only",children:[Y(fd,{children:"Sidebar"}),Y(pd,{children:"Displays the mobile sidebar."})]}),Y("div",{className:"flex h-full w-full flex-col",children:r})]})}):Ba("div",{className:"group peer hidden text-sidebar-foreground md:block","data-state":l,"data-collapsible":l==="collapsed"?a:"","data-variant":t,"data-side":e,"data-slot":"sidebar",children:[Y("div",{"data-slot":"sidebar-gap",className:Ie("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180",t==="floating"||t==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),Y("div",{"data-slot":"sidebar-container",className:Ie("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",e==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",t==="floating"||t==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",o),...n,children:Y("div",{"data-sidebar":"sidebar","data-slot":"sidebar-inner",className:"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",children:r})})]})}function Cd({className:e,onClick:t,...a}){let{toggleSidebar:o}=Bt();return Ba(ld,{"data-sidebar":"trigger","data-slot":"sidebar-trigger",variant:"ghost",size:"icon",className:Ie("size-7",e),onClick:r=>{t?.(r),o()},...a,children:[Y(it,{}),Y("span",{className:"sr-only",children:"Toggle Sidebar"})]})}function vd({className:e,...t}){return Y("main",{"data-slot":"sidebar-inset",className:Ie("relative flex w-full flex-1 flex-col bg-background","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",e),...t})}function bd({className:e,...t}){return Y(ud,{"data-slot":"sidebar-input","data-sidebar":"input",className:Ie("h-8 w-full bg-background shadow-none",e),...t})}function Wn({className:e,...t}){return Y("div",{"data-slot":"sidebar-header","data-sidebar":"header",className:Ie("flex flex-col gap-2 p-2",e),...t})}function wd({className:e,...t}){return Y("div",{"data-slot":"sidebar-footer","data-sidebar":"footer",className:Ie("flex flex-col gap-2 p-2",e),...t})}function Vn({className:e,...t}){return Y("div",{"data-slot":"sidebar-content","data-sidebar":"content",className:Ie("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",e),...t})}function jn({className:e,...t}){return Y("div",{"data-slot":"sidebar-group","data-sidebar":"group",className:Ie("relative flex w-full min-w-0 flex-col p-2",e),...t})}function Xn({className:e,...t}){return Y("div",{"data-slot":"sidebar-group-content","data-sidebar":"group-content",className:Ie("w-full text-sm",e),...t})}function Na({className:e,...t}){return Y("ul",{"data-slot":"sidebar-menu","data-sidebar":"menu",className:Ie("flex w-full min-w-0 flex-col gap-1",e),...t})}function _a({className:e,...t}){return Y("li",{"data-slot":"sidebar-menu-item","data-sidebar":"menu-item",className:Ie("group/menu-item relative",e),...t})}var pg=jo("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-background shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}});function qa({asChild:e=!1,isActive:t=!1,variant:a="default",size:o="default",tooltip:r,className:n,...s}){let l=e?ct.Root:"button",{isMobile:i,state:u}=Bt(),c=Y(l,{"data-slot":"sidebar-menu-button","data-sidebar":"menu-button","data-size":o,"data-active":t,className:Ie(pg({variant:a,size:o}),n),...s});return r?(typeof r=="string"&&(r={children:r}),Ba(hd,{children:[Y(gd,{asChild:!0,children:c}),Y(xd,{side:"right",align:"center",hidden:u!=="collapsed"||i,...r})]})):c}import{jsx as ee,jsxs as ye}from"react/jsx-runtime";function Sd({user:e}){let{isMobile:t}=Bt();return ee(Na,{children:ee(_a,{children:ye(ed,{children:[ee(td,{asChild:!0,children:ye(qa,{size:"lg",className:"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground md:h-8 md:p-0",children:[ye(Bn,{className:"h-8 w-8 rounded-lg",children:[ee(Nn,{src:e.avatar,alt:e.name}),ee(_n,{className:"rounded-lg",children:"CN"})]}),ye("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[ee("span",{className:"truncate font-medium",children:e.name}),ee("span",{className:"truncate text-xs",children:e.email})]}),ee(oa,{className:"ml-auto size-4"})]})}),ye(ad,{className:"w-(--radix-dropdown-menu-trigger-width) min-w-56 rounded-lg",side:t?"bottom":"right",align:"end",sideOffset:4,children:[ee(od,{className:"p-0 font-normal",children:ye("div",{className:"flex items-center gap-2 px-1 py-1.5 text-left text-sm",children:[ye(Bn,{className:"h-8 w-8 rounded-lg",children:[ee(Nn,{src:e.avatar,alt:e.name}),ee(_n,{className:"rounded-lg",children:"CN"})]}),ye("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[ee("span",{className:"truncate font-medium",children:e.name}),ee("span",{className:"truncate text-xs",children:e.email})]})]})}),ee(Vo,{}),ee(Un,{children:ye(Jt,{children:[ee(dt,{}),"Upgrade to Pro"]})}),ee(Vo,{}),ye(Un,{children:[ye(Jt,{children:[ee(ut,{}),"Account"]}),ye(Jt,{children:[ee(na,{}),"Billing"]}),ye(Jt,{children:[ee(ta,{}),"Notifications"]})]}),ee(Vo,{}),ye(Jt,{children:[ee(ua,{}),"Log out"]})]})]})})})}import{jsx as mg}from"react/jsx-runtime";function yd({className:e,...t}){return mg(Bo.Root,{"data-slot":"label",className:q("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",e),...t})}import{jsx as Rd}from"react/jsx-runtime";function Pd({className:e,size:t="default",...a}){return Rd(Da.Root,{"data-slot":"switch","data-size":t,className:q("peer group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80",e),...a,children:Rd(Da.Thumb,{"data-slot":"switch-thumb",className:q("pointer-events-none block rounded-full bg-background ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0 dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground")})})}import{jsx as j,jsxs as je}from"react/jsx-runtime";var Ua={user:{name:"shadcn",email:"m@example.com",avatar:"/avatars/shadcn.jpg"},navMain:[{title:"Inbox",url:"#",icon:la,isActive:!0},{title:"Drafts",url:"#",icon:sa,isActive:!1},{title:"Sent",url:"#",icon:ia,isActive:!1},{title:"Junk",url:"#",icon:ea,isActive:!1},{title:"Trash",url:"#",icon:da,isActive:!1}],mails:[{name:"William Smith",email:"williamsmith@example.com",subject:"Meeting Tomorrow",date:"09:34 AM",teaser:`Hi team, just a reminder about our meeting tomorrow at 10 AM. +Please come prepared with your project updates.`},{name:"Alice Smith",email:"alicesmith@example.com",subject:"Re: Project Update",date:"Yesterday",teaser:`Thanks for the update. The progress looks great so far. +Let's schedule a call to discuss the next steps.`},{name:"Bob Johnson",email:"bobjohnson@example.com",subject:"Weekend Plans",date:"2 days ago",teaser:`Hey everyone! I'm thinking of organizing a team outing this weekend. +Would you be interested in a hiking trip or a beach day?`},{name:"Emily Davis",email:"emilydavis@example.com",subject:"Re: Question about Budget",date:"2 days ago",teaser:`I've reviewed the budget numbers you sent over. +Can we set up a quick call to discuss some potential adjustments?`},{name:"Michael Wilson",email:"michaelwilson@example.com",subject:"Important Announcement",date:"1 week ago",teaser:`Please join us for an all-hands meeting this Friday at 3 PM. +We have some exciting news to share about the company's future.`},{name:"Sarah Brown",email:"sarahbrown@example.com",subject:"Re: Feedback on Proposal",date:"1 week ago",teaser:`Thank you for sending over the proposal. I've reviewed it and have some thoughts. +Could we schedule a meeting to discuss my feedback in detail?`},{name:"David Lee",email:"davidlee@example.com",subject:"New Project Idea",date:"1 week ago",teaser:`I've been brainstorming and came up with an interesting project concept. +Do you have time this week to discuss its potential impact and feasibility?`},{name:"Olivia Wilson",email:"oliviawilson@example.com",subject:"Vacation Plans",date:"1 week ago",teaser:`Just a heads up that I'll be taking a two-week vacation next month. +I'll make sure all my projects are up to date before I leave.`},{name:"James Martin",email:"jamesmartin@example.com",subject:"Re: Conference Registration",date:"1 week ago",teaser:`I've completed the registration for the upcoming tech conference. +Let me know if you need any additional information from my end.`},{name:"Sophia White",email:"sophiawhite@example.com",subject:"Team Dinner",date:"1 week ago",teaser:`To celebrate our recent project success, I'd like to organize a team dinner. +Are you available next Friday evening? Please let me know your preferences.`}]};function kd({...e}){let[t,a]=Kn.useState(Ua.navMain[0]),[o,r]=Kn.useState(Ua.mails),{setOpen:n}=Bt();return je(Ko,{collapsible:"icon",className:"overflow-hidden *:data-[sidebar=sidebar]:flex-row",...e,children:[je(Ko,{collapsible:"none",className:"w-[calc(var(--sidebar-width-icon)+1px)]! border-r",children:[j(Wn,{children:j(Na,{children:j(_a,{children:j(qa,{size:"lg",asChild:!0,className:"md:h-8 md:p-0",children:je("a",{href:"#",children:[j("div",{className:"flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground",children:j(ra,{className:"size-4"})}),je("div",{className:"grid flex-1 text-left text-sm leading-tight",children:[j("span",{className:"truncate font-medium",children:"Acme Inc"}),j("span",{className:"truncate text-xs",children:"Enterprise"})]})]})})})})}),j(Vn,{children:j(jn,{children:j(Xn,{className:"px-1.5 md:px-0",children:j(Na,{children:Ua.navMain.map(s=>j(_a,{children:je(qa,{tooltip:{children:s.title,hidden:!1},onClick:()=>{a(s);let l=Ua.mails.sort(()=>Math.random()-.5);r(l.slice(0,Math.max(5,Math.floor(Math.random()*10)+1))),n(!0)},isActive:t?.title===s.title,className:"px-2.5 md:px-2",children:[j(s.icon,{}),j("span",{children:s.title})]})},s.title))})})})}),j(wd,{children:j(Sd,{user:Ua.user})})]}),je(Ko,{collapsible:"none",className:"hidden flex-1 md:flex",children:[je(Wn,{className:"gap-3.5 border-b p-4",children:[je("div",{className:"flex w-full items-center justify-between",children:[j("div",{className:"text-base font-medium text-foreground",children:t?.title}),je(yd,{className:"flex items-center gap-2 text-sm",children:[j("span",{children:"Unreads"}),j(Pd,{className:"shadow-none"})]})]}),j(bd,{placeholder:"Type to search..."})]}),j(Vn,{children:j(jn,{className:"px-0",children:j(Xn,{children:o.map(s=>je("a",{href:"#",className:"flex flex-col items-start gap-2 border-b p-4 text-sm leading-tight whitespace-nowrap last:border-b-0 hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",children:[je("div",{className:"flex w-full items-center gap-2",children:[j("span",{children:s.name})," ",j("span",{className:"ml-auto text-xs",children:s.date})]}),j("span",{className:"font-medium",children:s.subject}),j("span",{className:"line-clamp-2 w-[260px] text-xs whitespace-break-spaces",children:s.teaser})]},s.email))})})})]})]})}import{jsx as Nt,jsxs as iw}from"react/jsx-runtime";function Ad({...e}){return Nt("nav",{"aria-label":"breadcrumb","data-slot":"breadcrumb",...e})}function Md({className:e,...t}){return Nt("ol",{"data-slot":"breadcrumb-list",className:q("flex flex-wrap items-center gap-1.5 text-sm break-words text-muted-foreground sm:gap-2.5",e),...t})}function $n({className:e,...t}){return Nt("li",{"data-slot":"breadcrumb-item",className:q("inline-flex items-center gap-1.5",e),...t})}function Dd({asChild:e,className:t,...a}){let o=e?ct.Root:"a";return Nt(o,{"data-slot":"breadcrumb-link",className:q("transition-colors hover:text-foreground",t),...a})}function Td({className:e,...t}){return Nt("span",{"data-slot":"breadcrumb-page",role:"link","aria-disabled":"true","aria-current":"page",className:q("font-normal text-foreground",e),...t})}function Od({children:e,className:t,...a}){return Nt("li",{"data-slot":"breadcrumb-separator",role:"presentation","aria-hidden":"true",className:q("[&>svg]:size-3.5",t),...a,children:e??Nt(aa,{})})}import{jsx as Xe,jsxs as $o}from"react/jsx-runtime";function hg(){return $o(Id,{style:{"--sidebar-width":"350px"},children:[Xe(kd,{}),$o(vd,{children:[$o("header",{className:"sticky top-0 flex shrink-0 items-center gap-2 border-b bg-background p-4",children:[Xe(Cd,{className:"-ml-1"}),Xe(zn,{orientation:"vertical",className:"mr-2 data-[orientation=vertical]:h-4"}),Xe(Ad,{children:$o(Md,{children:[Xe($n,{className:"hidden md:block",children:Xe(Dd,{href:"#",children:"All Inboxes"})}),Xe(Od,{className:"hidden md:block"}),Xe($n,{children:Xe(Td,{children:"Inbox"})})]})})]}),Xe("div",{className:"flex flex-1 flex-col gap-4 p-4",children:Array.from({length:24}).map((e,t)=>Xe("div",{className:"aspect-video h-12 w-full rounded-lg bg-muted/50"},t))})]})]})}export{hg as default}; +/*! Bundled license information: + +lucide-react/dist/esm/shared/src/utils.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/defaultAttributes.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/Icon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/createLucideIcon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/archive-x.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/badge-check.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/bell.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/chevron-right.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/chevrons-up-down.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/command.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/credit-card.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/file.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/inbox.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/log-out.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/panel-left.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/send.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/sparkles.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/trash-2.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/x.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/lucide-react.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/b/3e11af7b1acbe5312e8fd449c0a06783c539ae2f6fa21e5f64b9536fbaa8c8b9 b/b/3e11af7b1acbe5312e8fd449c0a06783c539ae2f6fa21e5f64b9536fbaa8c8b9 new file mode 100644 index 0000000000000000000000000000000000000000..acf57dc5a534792273b8fb86227e92e001f3dc53 --- /dev/null +++ b/b/3e11af7b1acbe5312e8fd449c0a06783c539ae2f6fa21e5f64b9536fbaa8c8b9 @@ -0,0 +1,92 @@ +import * as React from "react" + +import { cn } from "@/lib/utils" + +function Card({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardHeader({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardTitle({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardDescription({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardAction({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardContent({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +function CardFooter({ className, ...props }: React.ComponentProps<"div">) { + return ( +
+ ) +} + +export { + Card, + CardHeader, + CardFooter, + CardTitle, + CardAction, + CardDescription, + CardContent, +} diff --git a/b/3e12ffa4ec770cd4dbca4cfbd9cc93088a0062a96612bb3af097b66871c473d5 b/b/3e12ffa4ec770cd4dbca4cfbd9cc93088a0062a96612bb3af097b66871c473d5 new file mode 100644 index 0000000000000000000000000000000000000000..3c7665abac6ebb0ff622266d5345e94434379e90 --- /dev/null +++ b/b/3e12ffa4ec770cd4dbca4cfbd9cc93088a0062a96612bb3af097b66871c473d5 @@ -0,0 +1,22 @@ +{ + "id": "org.hologram.ui.dock", + "name": "dock", + "tier": "component", + "library": "magicui", + "category": "Components", + "upstream": "https://magicui.design/r/dock.json", + "did": "did:holo:sha256:17d63047cde505a9bc01ad8048508d950f42ee3de2370a9b92039c031582648f", + "import": "holo://sha256:c7f1200f2e05e1e59fdea464c4a76719a811d48b88c9306e3fd17877b82149a9", + "integrity": "sha256-x/EgDy4F4eWf3qRkxKdnGagR1IuIyTBuP9F4d7ghSak=", + "kappa": "sha256:17d63047cde505a9bc01ad8048508d950f42ee3de2370a9b92039c031582648f", + "moduleKappa": "sha256:c7f1200f2e05e1e59fdea464c4a76719a811d48b88c9306e3fd17877b82149a9", + "renderExport": "Dock", + "source": "components/ui/dock.tsx", + "module": "vendor/components/dock.js", + "exports": [ + "Dock", + "DockIcon", + "dockVariants" + ], + "license": "MIT" +} diff --git a/b/3e19f60f29e05eaf2aca42efe2f6c1738ee874b4f80a71cf351b9032833e4ce6 b/b/3e19f60f29e05eaf2aca42efe2f6c1738ee874b4f80a71cf351b9032833e4ce6 new file mode 100644 index 0000000000000000000000000000000000000000..6ef0584c39adc5a2b4eb9667f71e97189cf4e6e4 --- /dev/null +++ b/b/3e19f60f29e05eaf2aca42efe2f6c1738ee874b4f80a71cf351b9032833e4ce6 @@ -0,0 +1,49 @@ +import { + CheckIcon, + CreditCardIcon, + InfoIcon, + MailIcon, + SearchIcon, + StarIcon, +} from "lucide-react" + +import { + InputGroup, + InputGroupAddon, + InputGroupInput, +} from "@/registry/new-york-v4/ui/input-group" + +export default function InputGroupIcon() { + return ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ) +} diff --git a/b/3e1fb00e818d7ad9c0d554ba97fcb498188d13c9e8bea464efaf480f04e45ac6 b/b/3e1fb00e818d7ad9c0d554ba97fcb498188d13c9e8bea464efaf480f04e45ac6 new file mode 100644 index 0000000000000000000000000000000000000000..a4f56bacffc0a120232bd0c8f222bb7b21bcb746 --- /dev/null +++ b/b/3e1fb00e818d7ad9c0d554ba97fcb498188d13c9e8bea464efaf480f04e45ac6 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:669aae570d7c6706aac7b21476eaa0672e9a4794288d41552e31e2dc396a1981 +size 624384 diff --git a/b/3e2658a9796d793a1b112e861dd81a9ce096053da2b5ba75aa9ba39b87e918a9 b/b/3e2658a9796d793a1b112e861dd81a9ce096053da2b5ba75aa9ba39b87e918a9 new file mode 100644 index 0000000000000000000000000000000000000000..e2ea6142b3f51acaf5c5ac2fc09b951bb65eb603 --- /dev/null +++ b/b/3e2658a9796d793a1b112e861dd81a9ce096053da2b5ba75aa9ba39b87e918a9 @@ -0,0 +1,127 @@ +"use client" + +import React, { useImperativeHandle, useLayoutEffect, useRef } from "react" + +import { cn } from "@/lib/utils" + +interface PulsatingButtonProps extends React.ButtonHTMLAttributes { + pulseColor?: string + duration?: string + distance?: string + variant?: "pulse" | "ripple" +} + +export const PulsatingButton = React.forwardRef< + HTMLButtonElement, + PulsatingButtonProps +>( + ( + { + className, + children, + pulseColor, + duration = "1.5s", + distance = "8px", + variant = "pulse", + ...props + }, + ref + ) => { + const innerRef = useRef(null) + useImperativeHandle(ref, () => innerRef.current!) + + useLayoutEffect(() => { + const button = innerRef.current + if (!button) return + + if (pulseColor) { + button.style.removeProperty("--bg") + return + } + + let animationFrameId = 0 + let currentBg = "" + + const updateBg = () => { + animationFrameId = 0 + + const nextBg = getComputedStyle(button).backgroundColor + if (nextBg === currentBg) return + + currentBg = nextBg + button.style.setProperty("--bg", nextBg) + } + + const scheduleBgUpdate = () => { + if (animationFrameId) return + animationFrameId = window.requestAnimationFrame(updateBg) + } + + updateBg() + + const themeObserver = new MutationObserver(scheduleBgUpdate) + themeObserver.observe(document.documentElement, { + attributes: true, + attributeFilter: ["class"], + }) + + const buttonObserver = new MutationObserver(scheduleBgUpdate) + buttonObserver.observe(button, { + attributes: true, + }) + + const syncEvents = [ + "blur", + "focus", + "pointerenter", + "pointerleave", + ] as const + + for (const eventName of syncEvents) { + button.addEventListener(eventName, scheduleBgUpdate) + } + + return () => { + if (animationFrameId) { + window.cancelAnimationFrame(animationFrameId) + } + + themeObserver.disconnect() + buttonObserver.disconnect() + + for (const eventName of syncEvents) { + button.removeEventListener(eventName, scheduleBgUpdate) + } + } + }, [pulseColor]) + + return ( + + ) + } +) + +PulsatingButton.displayName = "PulsatingButton" diff --git a/b/3e2b4fbdb738c4e8671cd8a7ba76b44f664163d34aeff3747f9357ace6299d7f b/b/3e2b4fbdb738c4e8671cd8a7ba76b44f664163d34aeff3747f9357ace6299d7f new file mode 100644 index 0000000000000000000000000000000000000000..cfc2573ff780ec1a3a24c8b557d32908c2ffaaf6 --- /dev/null +++ b/b/3e2b4fbdb738c4e8671cd8a7ba76b44f664163d34aeff3747f9357ace6299d7f @@ -0,0 +1,27 @@ +{ + "id": "org.hologram.ui.daisyui.mockup", + "name": "daisyui-mockup", + "tier": "component", + "library": "daisyui", + "category": "Device Mocks", + "upstream": "https://cdn.jsdelivr.net/npm/daisyui@5.5.23/components/mockup.css", + "docs": "https://daisyui.com/components/mockup/", + "did": "did:holo:sha256:20a596ab900c78e75e3fc0b53e2112538dbbbffd668cff4f7dc5160b13b143f5", + "import": "holo://sha256:20a596ab900c78e75e3fc0b53e2112538dbbbffd668cff4f7dc5160b13b143f5", + "integrity": "sha256-IKWWq5AMeOdeP8C1PiESU427v/1mjP9PfcUWCxOxQ/U=", + "kappa": "sha256:20a596ab900c78e75e3fc0b53e2112538dbbbffd668cff4f7dc5160b13b143f5", + "moduleKappa": "sha256:20a596ab900c78e75e3fc0b53e2112538dbbbffd668cff4f7dc5160b13b143f5", + "renderExport": null, + "format": "css", + "source": "components/mockup.css", + "module": "vendor/daisyui/components/mockup.css", + "exports": [], + "bytes": 3117, + "provenance": { + "package": "daisyui", + "version": "5.5.23", + "integrity": "sha512-xuheNUSL4T6ZVtWXoioqcNkjoyGX85QTDz4HTw2aBPfqk4fuMjax5HDo8qCmpV6M1YN8bGvfx5BpYCoDeRlt+A==", + "file": "components/mockup.css" + }, + "license": "MIT" +} diff --git a/b/3e4e9bf6dc144aac9957862810adbbfa5c023332a467561a8826737023efa9b4 b/b/3e4e9bf6dc144aac9957862810adbbfa5c023332a467561a8826737023efa9b4 new file mode 100644 index 0000000000000000000000000000000000000000..8f6127abbc1c42ead2cc5c2657e174ac8258b770 --- /dev/null +++ b/b/3e4e9bf6dc144aac9957862810adbbfa5c023332a467561a8826737023efa9b4 @@ -0,0 +1,66 @@ +// Holo Whisper S1 mel witness (fast, no model). Validates the STFT framing against +// physics: a pure tone lands in the DFT bin nearest its frequency, the log-mel is +// finite/normalized, and the WAV reader round-trips PCM16. (Exact whisper.cpp-framing +// parity is validated end-to-end by the real-audio transcription harness.) + +import assert from "node:assert"; +import { existsSync, readFileSync } from "node:fs"; +import { logMelSpectrogram, readWavPCM16, whisperDetok } from "./gguf-forge-whisper.mjs"; + +let pass = 0, fail = 0; +const t = (name, fn) => { try { fn(); pass++; console.log(" ok " + name); } catch (e) { fail++; console.log("FAIL " + name + "\n " + e.message); } }; + +const SR = 16000, NFFT = 400, NBINS = 201; +const tone = (hz, sec = 1) => { const x = new Float32Array(SR * sec); for (let i = 0; i < x.length; i++) x[i] = 0.5 * Math.sin(2 * Math.PI * hz * i / SR); return x; }; +// identity filterbank: mel bin k == DFT power bin k (k < nBins) +const identity = () => { const f = new Float32Array(80 * NBINS); for (let k = 0; k < 80; k++) f[k * NBINS + k] = 1; return f; }; + +t("pure tone peaks in the DFT bin nearest its frequency", () => { + for (const hz of [1000, 2000, 3000]) { + const expBin = Math.round(hz * NFFT / SR); // f·nFft/sr + const { mel, nFrames } = logMelSpectrogram(tone(hz, 30), identity()); // 30 s = fills all frames + const f = (nFrames / 2) | 0; + let best = 0; for (let k = 1; k < 80; k++) if (mel[k * nFrames + f] > mel[best * nFrames + f]) best = k; + assert.strictEqual(best, expBin, `${hz}Hz → bin ${best}, expected ${expBin}`); + } +}); + +t("log-mel is finite, shape [80,3000], clamp span = 2.0 (whisper normalization)", () => { + const { mel, nMel, nFrames } = logMelSpectrogram(tone(440, 30), identity()); + assert.strictEqual(nMel, 80); assert.strictEqual(nFrames, 3000); + assert.strictEqual(mel.length, 80 * 3000); + assert.ok(mel.every(Number.isFinite), "NaN/Inf in mel"); + let mn = Infinity, mx = -Infinity; for (const v of mel) { if (v < mn) mn = v; if (v > mx) mx = v; } + // log_spec = (max(lv, mmax−8) + 4)/4 → exact span (mmax − (mmax−8))/4 = 2.0 + assert.ok(Math.abs((mx - mn) - 2.0) < 1e-5, `clamp span ${mx - mn} ≠ 2.0`); +}); + +t("mel is deterministic", () => { + const x = tone(880), f = identity(); + const a = logMelSpectrogram(x, f).mel, b = logMelSpectrogram(x, f).mel; + for (let i = 0; i < a.length; i += 997) assert.strictEqual(a[i], b[i]); +}); + +t("WAV PCM16 reader round-trips a known buffer", () => { + // build a tiny WAV: 4 samples [0, 16384, -16384, 32767] + const samples = [0, 16384, -16384, 32767], n = samples.length; + const buf = new Uint8Array(44 + n * 2), dv = new DataView(buf.buffer); + buf.set(new TextEncoder().encode("RIFF"), 0); dv.setUint32(4, 36 + n * 2, true); buf.set(new TextEncoder().encode("WAVEfmt "), 8); + dv.setUint32(16, 16, true); dv.setUint16(20, 1, true); dv.setUint16(22, 1, true); dv.setUint32(24, SR, true); dv.setUint16(34, 16, true); + buf.set(new TextEncoder().encode("data"), 36); dv.setUint32(40, n * 2, true); + for (let i = 0; i < n; i++) dv.setInt16(44 + i * 2, samples[i], true); + const got = readWavPCM16(buf); + assert.strictEqual(got.length, n); + assert.ok(Math.abs(got[1] - 16384 / 32768) < 1e-6 && Math.abs(got[3] - 32767 / 32768) < 1e-6); +}); + +t("S5 detok: raw-UTF-8 vocab tokens concatenate to text WITH spaces", () => { + const MODEL = "C:/Users/pavel/Desktop/SovereignAI/1_Compute/whisper.cpp/ggml-small.bin"; + if (!existsSync(MODEL)) { console.log(" (skipped — model not present)"); return; } + const b = new Uint8Array(readFileSync(MODEL)); + // 40="I", 1062=" might", 314=" T" (verified token ids) → spaces preserved (whisper stores raw text) + assert.strictEqual(whisperDetok(b, [40, 1062, 314]), "I might T"); +}); + +console.log(`\n${pass} passed, ${fail} failed`); +process.exit(fail ? 1 : 0); diff --git a/b/3e650d49480c03122862ab83fa76d1efa54f1785d199b413921f3cf9cd43757b b/b/3e650d49480c03122862ab83fa76d1efa54f1785d199b413921f3cf9cd43757b new file mode 100644 index 0000000000000000000000000000000000000000..3317237c16e1b906bc27b703bdfa08790a653a47 --- /dev/null +++ b/b/3e650d49480c03122862ab83fa76d1efa54f1785d199b413921f3cf9cd43757b @@ -0,0 +1,59 @@ +var ma=Object.defineProperty;var La=(e,t)=>{for(var a in t)ma(e,a,{get:t[a],enumerable:!0})};import{forwardRef as xa,createElement as Ca}from"react";var ve=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),te=(...e)=>e.filter((t,a,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===a).join(" ").trim();import{forwardRef as Ia,createElement as qe}from"react";var Te={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Ue=Ia(({color:e="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:o,className:l="",children:r,iconNode:u,...c},p)=>qe("svg",{ref:p,...Te,width:t,height:t,stroke:e,strokeWidth:o?Number(a)*24/Number(t):a,className:te("lucide",l),...c},[...u.map(([f,L])=>qe(f,L)),...Array.isArray(r)?r:[r]]));var oe=(e,t)=>{let a=xa(({className:o,...l},r)=>Ca(Ue,{ref:r,iconNode:t,className:te(`lucide-${ve(e)}`,o),...l}));return a.displayName=`${e}`,a};var K=oe("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);var Z=oe("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);function Oe(e){var t,a,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var l=e.length;for(t=0;ttypeof e=="boolean"?`${e}`:e===0?"0":e,Ge=le,Le=(e,t)=>a=>{var o;if(t?.variants==null)return Ge(e,a?.class,a?.className);let{variants:l,defaultVariants:r}=t,u=Object.keys(l).map(f=>{let L=a?.[f],I=r?.[f];if(L===null)return null;let C=He(L)||He(I);return l[f][C]}),c=a&&Object.entries(a).reduce((f,L)=>{let[I,C]=L;return C===void 0||(f[I]=C),f},{}),p=t==null||(o=t.compoundVariants)===null||o===void 0?void 0:o.reduce((f,L)=>{let{class:I,className:C,...h}=L;return Object.entries(h).every(y=>{let[w,k]=y;return Array.isArray(k)?k.includes({...r,...c}[w]):{...r,...c}[w]===k})?[...f,I,C]:f},[]);return Ge(e,u,p,a?.class,a?.className)};var ue={};La(ue,{Root:()=>ha,Slot:()=>ha,Slottable:()=>Sa,createSlot:()=>Ne,createSlottable:()=>Ke});import*as S from"react";import*as Ve from"react";function ze(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function ga(...e){return t=>{let a=!1,o=e.map(l=>{let r=ze(l,t);return!a&&typeof r=="function"&&(a=!0),r});if(a)return()=>{for(let l=0;l{let{children:l,...r}=a,u=null,c=!1,p=[];We(l)&&typeof re=="function"&&(l=re(l._payload)),S.Children.forEach(l,C=>{if(Pa(C)){c=!0;let h=C,y="child"in h.props?h.props.child:h.props.children;We(y)&&typeof re=="function"&&(y=re(y._payload)),u=wa(h,y),p.push(u?.props?.children)}else p.push(C)}),u?u=S.cloneElement(u,void 0,p):!c&&S.Children.count(l)===1&&S.isValidElement(l)&&(u=l);let f=u?ba(u):void 0,L=Ee(o,f);if(!u){if(l||l===0)throw new Error(c?Ma(e):ya(e));return l}let I=ka(r,u.props??{});return u.type!==S.Fragment&&(I.ref=o?L:f),S.cloneElement(u,I)});return t.displayName=`${e}.Slot`,t}var ha=Ne("Slot"),Xe=Symbol.for("radix.slottable");function Ke(e){let t=a=>"child"in a?a.children(a.child):a.children;return t.displayName=`${e}.Slottable`,t.__radixId=Xe,t}var Sa=Ke("Slottable"),wa=(e,t)=>{if("child"in e.props){let a=e.props.child;return S.isValidElement(a)?S.cloneElement(a,void 0,e.props.children(a.props.children)):null}return S.isValidElement(t)?t:null};function ka(e,t){let a={...t};for(let o in t){let l=e[o],r=t[o];/^on[A-Z]/.test(o)?l&&r?a[o]=(...c)=>{let p=r(...c);return l(...c),p}:l&&(a[o]=l):o==="style"?a[o]={...l,...r}:o==="className"&&(a[o]=[l,r].filter(Boolean).join(" "))}return{...e,...a}}function ba(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning;return a?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,a=t&&"isReactWarning"in t&&t.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}function Pa(e){return S.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Xe}var Aa=Symbol.for("react.lazy");function We(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Aa&&"_payload"in e&&Ba(e._payload)}function Ba(e){return typeof e=="object"&&e!==null&&"then"in e}var ya=e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,Ma=e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,re=S[" use ".trim().toString()];var Fa=(e,t)=>{let a=new Array(e.length+t.length);for(let o=0;o({classGroupId:e,validator:t}),Ye=(e=new Map,t=null,a)=>({nextPart:e,validators:t,classGroupId:a}),fe="-",Ze=[],Ra="arbitrary..",va=e=>{let t=qa(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:u=>{if(u.startsWith("[")&&u.endsWith("]"))return Ta(u);let c=u.split(fe),p=c[0]===""&&c.length>1?1:0;return ea(c,p,t)},getConflictingClassGroupIds:(u,c)=>{if(c){let p=o[u],f=a[u];return p?f?Fa(f,p):p:f||Ze}return a[u]||Ze}}},ea=(e,t,a)=>{if(e.length-t===0)return a.classGroupId;let l=e[t],r=a.nextPart.get(l);if(r){let f=ea(e,t+1,r);if(f)return f}let u=a.validators;if(u===null)return;let c=t===0?e.join(fe):e.slice(t).join(fe),p=u.length;for(let f=0;fe.slice(1,-1).indexOf(":")===-1?void 0:(()=>{let t=e.slice(1,-1),a=t.indexOf(":"),o=t.slice(0,a);return o?Ra+o:void 0})(),qa=e=>{let{theme:t,classGroups:a}=e;return Ua(a,t)},Ua=(e,t)=>{let a=Ye();for(let o in e){let l=e[o];Ce(l,a,o,t)}return a},Ce=(e,t,a,o)=>{let l=e.length;for(let r=0;r{if(typeof e=="string"){Ha(e,t,a);return}if(typeof e=="function"){Ga(e,t,a,o);return}za(e,t,a,o)},Ha=(e,t,a)=>{let o=e===""?t:aa(t,e);o.classGroupId=a},Ga=(e,t,a,o)=>{if(Va(e)){Ce(e(o),t,a,o);return}t.validators===null&&(t.validators=[]),t.validators.push(Da(a,e))},za=(e,t,a,o)=>{let l=Object.entries(e),r=l.length;for(let u=0;u{let a=e,o=t.split(fe),l=o.length;for(let r=0;r"isThemeGetter"in e&&e.isThemeGetter===!0,Ea=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,a=Object.create(null),o=Object.create(null),l=(r,u)=>{a[r]=u,t++,t>e&&(t=0,o=a,a=Object.create(null))};return{get(r){let u=a[r];if(u!==void 0)return u;if((u=o[r])!==void 0)return l(r,u),u},set(r,u){r in a?a[r]=u:l(r,u)}}},xe="!",Je=":",Wa=[],_e=(e,t,a,o,l)=>({modifiers:e,hasImportantModifier:t,baseClassName:a,maybePostfixModifierPosition:o,isExternal:l}),Na=e=>{let{prefix:t,experimentalParseClassName:a}=e,o=l=>{let r=[],u=0,c=0,p=0,f,L=l.length;for(let w=0;wp?f-p:void 0;return _e(r,h,C,y)};if(t){let l=t+Je,r=o;o=u=>u.startsWith(l)?r(u.slice(l.length)):_e(Wa,!1,u,void 0,!0)}if(a){let l=o;o=r=>a({className:r,parseClassName:l})}return o},Xa=e=>{let t=new Map;return e.orderSensitiveModifiers.forEach((a,o)=>{t.set(a,1e6+o)}),a=>{let o=[],l=[];for(let r=0;r0&&(l.sort(),o.push(...l),l=[]),o.push(u)):l.push(u)}return l.length>0&&(l.sort(),o.push(...l)),o}},Ka=e=>({cache:Ea(e.cacheSize),parseClassName:Na(e),sortModifiers:Xa(e),postfixLookupClassGroupIds:Za(e),...va(e)}),Za=e=>{let t=Object.create(null),a=e.postfixLookupClassGroups;if(a)for(let o=0;o{let{parseClassName:a,getClassGroupId:o,getConflictingClassGroupIds:l,sortModifiers:r,postfixLookupClassGroupIds:u}=t,c=[],p=e.trim().split(Ja),f="";for(let L=p.length-1;L>=0;L-=1){let I=p[L],{isExternal:C,modifiers:h,hasImportantModifier:y,baseClassName:w,maybePostfixModifierPosition:k}=a(I);if(C){f=I+(f.length>0?" "+f:f);continue}let U=!!k,A;if(U){let R=w.substring(0,k);A=o(R);let i=A&&u[A]?o(w):void 0;i&&i!==A&&(A=i,U=!1)}else A=o(w);if(!A){if(!U){f=I+(f.length>0?" "+f:f);continue}if(A=o(w),!A){f=I+(f.length>0?" "+f:f);continue}U=!1}let X=h.length===0?"":h.length===1?h[0]:r(h).join(":"),V=y?X+xe:X,E=V+A;if(c.indexOf(E)>-1)continue;c.push(E);let W=l(A,U);for(let R=0;R0?" "+f:f)}return f},ja=(...e)=>{let t=0,a,o,l="";for(;t{if(typeof e=="string")return e;let t,a="";for(let o=0;o{let a,o,l,r,u=p=>{let f=t.reduce((L,I)=>I(L),e());return a=Ka(f),o=a.cache.get,l=a.cache.set,r=c,c(p)},c=p=>{let f=o(p);if(f)return f;let L=_a(p,a);return l(p,L),L};return r=u,(...p)=>r(ja(...p))},$a=[],x=e=>{let t=a=>a[e]||$a;return t.isThemeGetter=!0,t},oa=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,la=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Ya=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,et=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,at=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,tt=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,ot=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,lt=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,T=e=>Ya.test(e),m=e=>!!e&&!Number.isNaN(Number(e)),F=e=>!!e&&Number.isInteger(Number(e)),Ie=e=>e.endsWith("%")&&m(e.slice(0,-1)),v=e=>et.test(e),ra=()=>!0,rt=e=>at.test(e)&&!tt.test(e),ge=()=>!1,ut=e=>ot.test(e),dt=e=>lt.test(e),st=e=>!d(e)&&!s(e),ft=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),it=e=>q(e,sa,ge),d=e=>oa.test(e),H=e=>q(e,fa,rt),je=e=>q(e,Ct,m),nt=e=>q(e,na,ra),ct=e=>q(e,ia,ge),Qe=e=>q(e,ua,ge),pt=e=>q(e,da,dt),de=e=>q(e,ca,ut),s=e=>la.test(e),J=e=>G(e,fa),mt=e=>G(e,ia),$e=e=>G(e,ua),Lt=e=>G(e,sa),It=e=>G(e,da),se=e=>G(e,ca,!0),xt=e=>G(e,na,!0),q=(e,t,a)=>{let o=oa.exec(e);return o?o[1]?t(o[1]):a(o[2]):!1},G=(e,t,a=!1)=>{let o=la.exec(e);return o?o[1]?t(o[1]):a:!1},ua=e=>e==="position"||e==="percentage",da=e=>e==="image"||e==="url",sa=e=>e==="length"||e==="size"||e==="bg-size",fa=e=>e==="length",Ct=e=>e==="number",ia=e=>e==="family-name",na=e=>e==="number"||e==="weight",ca=e=>e==="shadow";var gt=()=>{let e=x("color"),t=x("font"),a=x("text"),o=x("font-weight"),l=x("tracking"),r=x("leading"),u=x("breakpoint"),c=x("container"),p=x("spacing"),f=x("radius"),L=x("shadow"),I=x("inset-shadow"),C=x("text-shadow"),h=x("drop-shadow"),y=x("blur"),w=x("perspective"),k=x("aspect"),U=x("ease"),A=x("animate"),X=()=>["auto","avoid","all","avoid-page","page","left","right","column"],V=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],E=()=>[...V(),s,d],W=()=>["auto","hidden","clip","visible","scroll"],R=()=>["auto","contain","none"],i=()=>[s,d,p],B=()=>[T,"full","auto",...i()],Pe=()=>[F,"none","subgrid",s,d],Ae=()=>["auto",{span:["full",F,s,d]},F,s,d],Q=()=>[F,"auto",s,d],Be=()=>["auto","min","max","fr",s,d],ie=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],N=()=>["start","end","center","stretch","center-safe","end-safe"],M=()=>["auto",...i()],O=()=>[T,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...i()],ne=()=>[T,"screen","full","dvw","lvw","svw","min","max","fit",...i()],ce=()=>[T,"screen","full","lh","dvh","lvh","svh","min","max","fit",...i()],n=()=>[e,s,d],ye=()=>[...V(),$e,Qe,{position:[s,d]}],Me=()=>["no-repeat",{repeat:["","x","y","space","round"]}],Fe=()=>["auto","cover","contain",Lt,it,{size:[s,d]}],pe=()=>[Ie,J,H],b=()=>["","none","full",f,s,d],P=()=>["",m,J,H],$=()=>["solid","dashed","dotted","double"],De=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],g=()=>[m,Ie,$e,Qe],Re=()=>["","none",y,s,d],Y=()=>["none",m,s,d],ee=()=>["none",m,s,d],me=()=>[m,s,d],ae=()=>[T,"full",...i()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[v],breakpoint:[v],color:[ra],container:[v],"drop-shadow":[v],ease:["in","out","in-out"],font:[st],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[v],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[v],shadow:[v],spacing:["px",m],text:[v],"text-shadow":[v],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",T,d,s,k]}],container:["container"],"container-type":[{"@container":["","normal","size",s,d]}],"container-named":[ft],columns:[{columns:[m,d,s,c]}],"break-after":[{"break-after":X()}],"break-before":[{"break-before":X()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:E()}],overflow:[{overflow:W()}],"overflow-x":[{"overflow-x":W()}],"overflow-y":[{"overflow-y":W()}],overscroll:[{overscroll:R()}],"overscroll-x":[{"overscroll-x":R()}],"overscroll-y":[{"overscroll-y":R()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:B()}],"inset-x":[{"inset-x":B()}],"inset-y":[{"inset-y":B()}],start:[{"inset-s":B(),start:B()}],end:[{"inset-e":B(),end:B()}],"inset-bs":[{"inset-bs":B()}],"inset-be":[{"inset-be":B()}],top:[{top:B()}],right:[{right:B()}],bottom:[{bottom:B()}],left:[{left:B()}],visibility:["visible","invisible","collapse"],z:[{z:[F,"auto",s,d]}],basis:[{basis:[T,"full","auto",c,...i()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[m,T,"auto","initial","none",d]}],grow:[{grow:["",m,s,d]}],shrink:[{shrink:["",m,s,d]}],order:[{order:[F,"first","last","none",s,d]}],"grid-cols":[{"grid-cols":Pe()}],"col-start-end":[{col:Ae()}],"col-start":[{"col-start":Q()}],"col-end":[{"col-end":Q()}],"grid-rows":[{"grid-rows":Pe()}],"row-start-end":[{row:Ae()}],"row-start":[{"row-start":Q()}],"row-end":[{"row-end":Q()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":Be()}],"auto-rows":[{"auto-rows":Be()}],gap:[{gap:i()}],"gap-x":[{"gap-x":i()}],"gap-y":[{"gap-y":i()}],"justify-content":[{justify:[...ie(),"normal"]}],"justify-items":[{"justify-items":[...N(),"normal"]}],"justify-self":[{"justify-self":["auto",...N()]}],"align-content":[{content:["normal",...ie()]}],"align-items":[{items:[...N(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...N(),{baseline:["","last"]}]}],"place-content":[{"place-content":ie()}],"place-items":[{"place-items":[...N(),"baseline"]}],"place-self":[{"place-self":["auto",...N()]}],p:[{p:i()}],px:[{px:i()}],py:[{py:i()}],ps:[{ps:i()}],pe:[{pe:i()}],pbs:[{pbs:i()}],pbe:[{pbe:i()}],pt:[{pt:i()}],pr:[{pr:i()}],pb:[{pb:i()}],pl:[{pl:i()}],m:[{m:M()}],mx:[{mx:M()}],my:[{my:M()}],ms:[{ms:M()}],me:[{me:M()}],mbs:[{mbs:M()}],mbe:[{mbe:M()}],mt:[{mt:M()}],mr:[{mr:M()}],mb:[{mb:M()}],ml:[{ml:M()}],"space-x":[{"space-x":i()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":i()}],"space-y-reverse":["space-y-reverse"],size:[{size:O()}],"inline-size":[{inline:["auto",...ne()]}],"min-inline-size":[{"min-inline":["auto",...ne()]}],"max-inline-size":[{"max-inline":["none",...ne()]}],"block-size":[{block:["auto",...ce()]}],"min-block-size":[{"min-block":["auto",...ce()]}],"max-block-size":[{"max-block":["none",...ce()]}],w:[{w:[c,"screen",...O()]}],"min-w":[{"min-w":[c,"screen","none",...O()]}],"max-w":[{"max-w":[c,"screen","none","prose",{screen:[u]},...O()]}],h:[{h:["screen","lh",...O()]}],"min-h":[{"min-h":["screen","lh","none",...O()]}],"max-h":[{"max-h":["screen","lh",...O()]}],"font-size":[{text:["base",a,J,H]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[o,xt,nt]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",Ie,d]}],"font-family":[{font:[mt,ct,t]}],"font-features":[{"font-features":[d]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[l,s,d]}],"line-clamp":[{"line-clamp":[m,"none",s,je]}],leading:[{leading:[r,...i()]}],"list-image":[{"list-image":["none",s,d]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",s,d]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:n()}],"text-color":[{text:n()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...$(),"wavy"]}],"text-decoration-thickness":[{decoration:[m,"from-font","auto",s,H]}],"text-decoration-color":[{decoration:n()}],"underline-offset":[{"underline-offset":[m,"auto",s,d]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:i()}],"tab-size":[{tab:[F,s,d]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",s,d]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",s,d]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:ye()}],"bg-repeat":[{bg:Me()}],"bg-size":[{bg:Fe()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},F,s,d],radial:["",s,d],conic:[F,s,d]},It,pt]}],"bg-color":[{bg:n()}],"gradient-from-pos":[{from:pe()}],"gradient-via-pos":[{via:pe()}],"gradient-to-pos":[{to:pe()}],"gradient-from":[{from:n()}],"gradient-via":[{via:n()}],"gradient-to":[{to:n()}],rounded:[{rounded:b()}],"rounded-s":[{"rounded-s":b()}],"rounded-e":[{"rounded-e":b()}],"rounded-t":[{"rounded-t":b()}],"rounded-r":[{"rounded-r":b()}],"rounded-b":[{"rounded-b":b()}],"rounded-l":[{"rounded-l":b()}],"rounded-ss":[{"rounded-ss":b()}],"rounded-se":[{"rounded-se":b()}],"rounded-ee":[{"rounded-ee":b()}],"rounded-es":[{"rounded-es":b()}],"rounded-tl":[{"rounded-tl":b()}],"rounded-tr":[{"rounded-tr":b()}],"rounded-br":[{"rounded-br":b()}],"rounded-bl":[{"rounded-bl":b()}],"border-w":[{border:P()}],"border-w-x":[{"border-x":P()}],"border-w-y":[{"border-y":P()}],"border-w-s":[{"border-s":P()}],"border-w-e":[{"border-e":P()}],"border-w-bs":[{"border-bs":P()}],"border-w-be":[{"border-be":P()}],"border-w-t":[{"border-t":P()}],"border-w-r":[{"border-r":P()}],"border-w-b":[{"border-b":P()}],"border-w-l":[{"border-l":P()}],"divide-x":[{"divide-x":P()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":P()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...$(),"hidden","none"]}],"divide-style":[{divide:[...$(),"hidden","none"]}],"border-color":[{border:n()}],"border-color-x":[{"border-x":n()}],"border-color-y":[{"border-y":n()}],"border-color-s":[{"border-s":n()}],"border-color-e":[{"border-e":n()}],"border-color-bs":[{"border-bs":n()}],"border-color-be":[{"border-be":n()}],"border-color-t":[{"border-t":n()}],"border-color-r":[{"border-r":n()}],"border-color-b":[{"border-b":n()}],"border-color-l":[{"border-l":n()}],"divide-color":[{divide:n()}],"outline-style":[{outline:[...$(),"none","hidden"]}],"outline-offset":[{"outline-offset":[m,s,d]}],"outline-w":[{outline:["",m,J,H]}],"outline-color":[{outline:n()}],shadow:[{shadow:["","none",L,se,de]}],"shadow-color":[{shadow:n()}],"inset-shadow":[{"inset-shadow":["none",I,se,de]}],"inset-shadow-color":[{"inset-shadow":n()}],"ring-w":[{ring:P()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:n()}],"ring-offset-w":[{"ring-offset":[m,H]}],"ring-offset-color":[{"ring-offset":n()}],"inset-ring-w":[{"inset-ring":P()}],"inset-ring-color":[{"inset-ring":n()}],"text-shadow":[{"text-shadow":["none",C,se,de]}],"text-shadow-color":[{"text-shadow":n()}],opacity:[{opacity:[m,s,d]}],"mix-blend":[{"mix-blend":[...De(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":De()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[m]}],"mask-image-linear-from-pos":[{"mask-linear-from":g()}],"mask-image-linear-to-pos":[{"mask-linear-to":g()}],"mask-image-linear-from-color":[{"mask-linear-from":n()}],"mask-image-linear-to-color":[{"mask-linear-to":n()}],"mask-image-t-from-pos":[{"mask-t-from":g()}],"mask-image-t-to-pos":[{"mask-t-to":g()}],"mask-image-t-from-color":[{"mask-t-from":n()}],"mask-image-t-to-color":[{"mask-t-to":n()}],"mask-image-r-from-pos":[{"mask-r-from":g()}],"mask-image-r-to-pos":[{"mask-r-to":g()}],"mask-image-r-from-color":[{"mask-r-from":n()}],"mask-image-r-to-color":[{"mask-r-to":n()}],"mask-image-b-from-pos":[{"mask-b-from":g()}],"mask-image-b-to-pos":[{"mask-b-to":g()}],"mask-image-b-from-color":[{"mask-b-from":n()}],"mask-image-b-to-color":[{"mask-b-to":n()}],"mask-image-l-from-pos":[{"mask-l-from":g()}],"mask-image-l-to-pos":[{"mask-l-to":g()}],"mask-image-l-from-color":[{"mask-l-from":n()}],"mask-image-l-to-color":[{"mask-l-to":n()}],"mask-image-x-from-pos":[{"mask-x-from":g()}],"mask-image-x-to-pos":[{"mask-x-to":g()}],"mask-image-x-from-color":[{"mask-x-from":n()}],"mask-image-x-to-color":[{"mask-x-to":n()}],"mask-image-y-from-pos":[{"mask-y-from":g()}],"mask-image-y-to-pos":[{"mask-y-to":g()}],"mask-image-y-from-color":[{"mask-y-from":n()}],"mask-image-y-to-color":[{"mask-y-to":n()}],"mask-image-radial":[{"mask-radial":[s,d]}],"mask-image-radial-from-pos":[{"mask-radial-from":g()}],"mask-image-radial-to-pos":[{"mask-radial-to":g()}],"mask-image-radial-from-color":[{"mask-radial-from":n()}],"mask-image-radial-to-color":[{"mask-radial-to":n()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":V()}],"mask-image-conic-pos":[{"mask-conic":[m]}],"mask-image-conic-from-pos":[{"mask-conic-from":g()}],"mask-image-conic-to-pos":[{"mask-conic-to":g()}],"mask-image-conic-from-color":[{"mask-conic-from":n()}],"mask-image-conic-to-color":[{"mask-conic-to":n()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:ye()}],"mask-repeat":[{mask:Me()}],"mask-size":[{mask:Fe()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",s,d]}],filter:[{filter:["","none",s,d]}],blur:[{blur:Re()}],brightness:[{brightness:[m,s,d]}],contrast:[{contrast:[m,s,d]}],"drop-shadow":[{"drop-shadow":["","none",h,se,de]}],"drop-shadow-color":[{"drop-shadow":n()}],grayscale:[{grayscale:["",m,s,d]}],"hue-rotate":[{"hue-rotate":[m,s,d]}],invert:[{invert:["",m,s,d]}],saturate:[{saturate:[m,s,d]}],sepia:[{sepia:["",m,s,d]}],"backdrop-filter":[{"backdrop-filter":["","none",s,d]}],"backdrop-blur":[{"backdrop-blur":Re()}],"backdrop-brightness":[{"backdrop-brightness":[m,s,d]}],"backdrop-contrast":[{"backdrop-contrast":[m,s,d]}],"backdrop-grayscale":[{"backdrop-grayscale":["",m,s,d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m,s,d]}],"backdrop-invert":[{"backdrop-invert":["",m,s,d]}],"backdrop-opacity":[{"backdrop-opacity":[m,s,d]}],"backdrop-saturate":[{"backdrop-saturate":[m,s,d]}],"backdrop-sepia":[{"backdrop-sepia":["",m,s,d]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":i()}],"border-spacing-x":[{"border-spacing-x":i()}],"border-spacing-y":[{"border-spacing-y":i()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",s,d]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[m,"initial",s,d]}],ease:[{ease:["linear","initial",U,s,d]}],delay:[{delay:[m,s,d]}],animate:[{animate:["none",A,s,d]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[w,s,d]}],"perspective-origin":[{"perspective-origin":E()}],rotate:[{rotate:Y()}],"rotate-x":[{"rotate-x":Y()}],"rotate-y":[{"rotate-y":Y()}],"rotate-z":[{"rotate-z":Y()}],scale:[{scale:ee()}],"scale-x":[{"scale-x":ee()}],"scale-y":[{"scale-y":ee()}],"scale-z":[{"scale-z":ee()}],"scale-3d":["scale-3d"],skew:[{skew:me()}],"skew-x":[{"skew-x":me()}],"skew-y":[{"skew-y":me()}],transform:[{transform:[s,d,"","none","gpu","cpu"]}],"transform-origin":[{origin:E()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:ae()}],"translate-x":[{"translate-x":ae()}],"translate-y":[{"translate-y":ae()}],"translate-z":[{"translate-z":ae()}],"translate-none":["translate-none"],zoom:[{zoom:[F,s,d]}],accent:[{accent:n()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:n()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",s,d]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":n()}],"scrollbar-track-color":[{"scrollbar-track":n()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":i()}],"scroll-mx":[{"scroll-mx":i()}],"scroll-my":[{"scroll-my":i()}],"scroll-ms":[{"scroll-ms":i()}],"scroll-me":[{"scroll-me":i()}],"scroll-mbs":[{"scroll-mbs":i()}],"scroll-mbe":[{"scroll-mbe":i()}],"scroll-mt":[{"scroll-mt":i()}],"scroll-mr":[{"scroll-mr":i()}],"scroll-mb":[{"scroll-mb":i()}],"scroll-ml":[{"scroll-ml":i()}],"scroll-p":[{"scroll-p":i()}],"scroll-px":[{"scroll-px":i()}],"scroll-py":[{"scroll-py":i()}],"scroll-ps":[{"scroll-ps":i()}],"scroll-pe":[{"scroll-pe":i()}],"scroll-pbs":[{"scroll-pbs":i()}],"scroll-pbe":[{"scroll-pbe":i()}],"scroll-pt":[{"scroll-pt":i()}],"scroll-pr":[{"scroll-pr":i()}],"scroll-pb":[{"scroll-pb":i()}],"scroll-pl":[{"scroll-pl":i()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",s,d]}],fill:[{fill:["none",...n()]}],"stroke-w":[{stroke:[m,J,H,je]}],stroke:[{stroke:["none",...n()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}};var pa=Qa(gt);function z(...e){return pa(le(e))}import{jsx as $t}from"react/jsx-runtime";import{jsx as _}from"react/jsx-runtime";var ht=Le("group/item flex flex-wrap items-center rounded-md border border-transparent text-sm transition-colors duration-100 outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 [a]:transition-colors [a]:hover:bg-accent/50",{variants:{variant:{default:"bg-transparent",outline:"border-border",muted:"bg-muted/50"},size:{default:"gap-4 p-4",sm:"gap-2.5 px-4 py-3"}},defaultVariants:{variant:"default",size:"default"}});function he({className:e,variant:t="default",size:a="default",asChild:o=!1,...l}){let r=o?ue.Root:"div";return _(r,{"data-slot":"item","data-variant":t,"data-size":a,className:z(ht({variant:t,size:a,className:e})),...l})}var ro=Le("flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:translate-y-0.5 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none",{variants:{variant:{default:"bg-transparent",icon:"size-8 rounded-sm border bg-muted [&_svg:not([class*='size-'])]:size-4",image:"size-10 overflow-hidden rounded-sm [&_img]:size-full [&_img]:object-cover"}},defaultVariants:{variant:"default"}});function Se({className:e,...t}){return _("div",{"data-slot":"item-content",className:z("flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none",e),...t})}function we({className:e,...t}){return _("div",{"data-slot":"item-title",className:z("flex w-fit items-center gap-2 text-sm leading-snug font-medium",e),...t})}function ke({className:e,...t}){return _("p",{"data-slot":"item-description",className:z("line-clamp-2 text-sm leading-normal font-normal text-balance text-muted-foreground","[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary",e),...t})}function be({className:e,...t}){return _("div",{"data-slot":"item-actions",className:z("flex items-center gap-2",e),...t})}import{jsx as D,jsxs as j}from"react/jsx-runtime";function St(){return j("div",{className:"flex w-full max-w-md flex-col gap-4",children:[D(he,{asChild:!0,children:j("a",{href:"#",children:[j(Se,{children:[D(we,{children:"Visit our documentation"}),D(ke,{children:"Learn how to get started with our components."})]}),D(be,{children:D(K,{className:"size-4"})})]})}),D(he,{variant:"outline",asChild:!0,children:j("a",{href:"#",target:"_blank",rel:"noopener noreferrer",children:[j(Se,{children:[D(we,{children:"External resource"}),D(ke,{children:"Opens in a new tab with security attributes."})]}),D(be,{children:D(Z,{className:"size-4"})})]})})]})}export{St as default}; +/*! Bundled license information: + +lucide-react/dist/esm/shared/src/utils.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/defaultAttributes.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/Icon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/createLucideIcon.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/chevron-right.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/icons/external-link.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) + +lucide-react/dist/esm/lucide-react.js: + (** + * @license lucide-react v0.456.0 - ISC + * + * This source code is licensed under the ISC license. + * See the LICENSE file in the root directory of this source tree. + *) +*/ diff --git a/b/3e82245a8e27f2f7be5939f6d444d7c728d05d39f48fc6f33f70e0ffb9a1625c b/b/3e82245a8e27f2f7be5939f6d444d7c728d05d39f48fc6f33f70e0ffb9a1625c new file mode 100644 index 0000000000000000000000000000000000000000..f6e6195adacfed08ceff9de241764f8988122737 --- /dev/null +++ b/b/3e82245a8e27f2f7be5939f6d444d7c728d05d39f48fc6f33f70e0ffb9a1625c @@ -0,0 +1,31 @@ +import { Button } from "@/registry/new-york-v4/ui/button" +import { + Empty, + EmptyContent, + EmptyDescription, + EmptyHeader, + EmptyMedia, + EmptyTitle, +} from "@/registry/new-york-v4/ui/empty" +import { Spinner } from "@/registry/new-york-v4/ui/spinner" + +export default function SpinnerEmpty() { + return ( + + + + + + Processing your request + + Please wait while we process your request. Do not refresh the page. + + + + + + + ) +} diff --git a/b/3e8f9dcafef6310d65f57c4fd9977e4bd32b36478b130b4349fdb040f9c319bf b/b/3e8f9dcafef6310d65f57c4fd9977e4bd32b36478b130b4349fdb040f9c319bf new file mode 100644 index 0000000000000000000000000000000000000000..f7a4c00985d6be884785e9558df4839fad280b86 --- /dev/null +++ b/b/3e8f9dcafef6310d65f57c4fd9977e4bd32b36478b130b4349fdb040f9c319bf @@ -0,0 +1,35 @@ +# Phase 1 — Moonshine Tier-A reference oracle (HF transformers = ground truth). +# Transcribe a wav, print token ids + text + timing. The κ-forge oracle must reproduce these ids. +# python run-moonshine-ref.py [model_dir] [wav] +import sys, json, time, struct, numpy as np +from transformers import AutoProcessor, MoonshineForConditionalGeneration + +MODEL = sys.argv[1] if len(sys.argv) > 1 else "./.models/moonshine-tiny" +WAV = sys.argv[2] if len(sys.argv) > 2 else "C:/Users/pavel/Desktop/SovereignAI/1_Compute/whisper.cpp/jo16.wav" +OUT = sys.argv[3] if len(sys.argv) > 3 else "./gpu/moonshine-tx-ref.json" + +def read_wav16(path): + b = open(path, "rb").read(); o = 12 + while o + 8 <= len(b): + cid = b[o:o+4]; sz = struct.unpack(" + + + CN + + + + ER + +
+ + + CN + + + + LR + + + + ER + +
+
+ ) +} diff --git a/b/3eb8c779ca469a7952a56858c24c006bc4fc8300f0b307242142edbff169dfcc b/b/3eb8c779ca469a7952a56858c24c006bc4fc8300f0b307242142edbff169dfcc new file mode 100644 index 0000000000000000000000000000000000000000..8ae4e16b2f03f9b3eb450d36bb4aae17a7fe3921 --- /dev/null +++ b/b/3eb8c779ca469a7952a56858c24c006bc4fc8300f0b307242142edbff169dfcc @@ -0,0 +1,133 @@ +// ui/composer.js — the message box: autosize, Enter/Ctrl+Enter send (configurable), Esc stop, +// `/` preset-prompt menu and `@` model-mention menu at the caret, and dictation via the +// browser's speech engine (Web Speech API — on-device on Chromium-class engines; no server). + +export function makeComposer({ ctx, els, t, act, toast }) { + const { state, bus, settings } = ctx; + const ta = els.user; + + const autosize = () => { ta.style.height = "auto"; ta.style.height = Math.min(ta.scrollHeight, 200) + "px"; }; + ta.addEventListener("input", () => { autosize(); maybeMenu(); }); + bus.on("composer-resize", autosize); + + ta.addEventListener("keydown", (e) => { + if (menuOpen()) { + if (e.key === "ArrowDown" || e.key === "ArrowUp") { e.preventDefault(); moveSel(e.key === "ArrowDown" ? 1 : -1); return; } + if (e.key === "Enter" || e.key === "Tab") { e.preventDefault(); pickSel(); return; } + if (e.key === "Escape") { e.preventDefault(); closeMenu(); return; } + } + const enterSends = settings.get("enterSend") !== false; + if (e.key === "Enter" && !e.shiftKey && enterSends) { e.preventDefault(); act.send(); } + }); + + els.submit.onclick = () => { if (state.streaming) act.stop(); else act.send(); }; + // "+" = the command door: opens the `/` menu (prompts · presets) right at the caret + if (els.plusbtn) els.plusbtn.onclick = () => { if (!/(^|\s)\/$/.test(ta.value)) ta.value += (ta.value && !/\s$/.test(ta.value) ? " " : "") + "/"; ta.focus(); ta.setSelectionRange(ta.value.length, ta.value.length); ta.dispatchEvent(new Event("input")); }; + bus.on("streaming", (on) => { els.submit.disabled = on ? false : !state.engine; }); + bus.on("engine-ready", () => { els.submit.disabled = false; ta.focus(); }); + + // ── `/` prompts (presets) and `@` models, anchored above the composer ──── + let menuKind = null, menuItems = [], menuSel = 0; + const menuOpen = () => !els.cmdmenu.hidden; + const closeMenu = () => { els.cmdmenu.hidden = true; menuKind = null; }; + + async function maybeMenu() { + const v = ta.value, pos = ta.selectionStart; + const head = v.slice(0, pos); + const slash = head.match(/(?:^|\s)\/([\w-]*)$/); + const at = head.match(/(?:^|\s)@([\w.-]*)$/); + if (slash) return openMenu("prompt", slash[1]); + if (at) return openMenu("model", at[1]); + closeMenu(); + } + + async function openMenu(kind, query) { + menuKind = kind; menuSel = 0; + if (kind === "prompt") { + // the prompts LIBRARY first (by /command, LibreChat semantics), then parameter presets + const q = (query || "").toLowerCase(); + const groups = ctx.promptsLib ? await ctx.promptsLib.list() : []; + const fromLib = groups + .filter((g) => !q || (g.command || "").includes(q) || g.name.toLowerCase().includes(q)) + .map((g) => ({ title: "/" + (g.command || g.name), desc: g.oneliner || g.name, apply: () => applyPromptGroup(g) })); + const ptrs = await ctx.presets.list(); + const loadedPresets = (await Promise.all(ptrs.map((p) => ctx.presets.get(p.presetId)))).filter(Boolean); + const fromPresets = loadedPresets + .filter((p) => !q || p.title.toLowerCase().includes(q)) + .map((p) => ({ title: p.title, desc: (p.promptPrefix || "").slice(0, 80) || "parameter preset", apply: () => applyPreset(p) })); + menuItems = [...fromLib, ...fromPresets]; + } else { + // @ = agents first (LibreChat's @-mention switches the agent), then models + const q = (query || "").toLowerCase(); + const agents = ctx.agents ? await ctx.agents.list() : []; + const fromAgents = agents + .filter((a) => !q || a.name.toLowerCase().includes(q)) + .map((a) => ({ title: "@" + a.name, desc: "agent", apply: async () => { eraseTrigger(); const full = await ctx.agents.get(a.id); if (full) { state.agent = full; state.agentId = a.id; bus.emit("agent-changed"); toast(full.name + " · active"); } } })); + const fromModels = ctx.loader.MODELS + .map((m, i) => ({ m, i })) + .filter(({ m }) => !q || m.name.toLowerCase().includes(q)) + .map(({ m, i }) => ({ title: m.name, desc: `${m.size} · ${m.fmt}`, apply: () => { eraseTrigger(); bus.emit("model-pick", i); } })); + menuItems = [...fromAgents, ...fromModels]; + } + if (!menuItems.length) { // never a dead door — say what lives here + els.cmdmenu.innerHTML = ``; + els.cmdmenu.hidden = false; + return; + } + els.cmdmenu.innerHTML = menuItems.map((it, i) => ``).join(""); + els.cmdmenu.hidden = false; + els.cmdmenu.querySelectorAll("button").forEach((b) => (b.onclick = () => { menuSel = +b.dataset.i; pickSel(); })); + } + const esc = (s) => String(s).replace(/&/g, "&").replace(/ b.classList.toggle("sel", i === menuSel)); } + function pickSel() { const it = menuItems[menuSel]; closeMenu(); if (it) it.apply(); } + function eraseTrigger() { + const v = ta.value, pos = ta.selectionStart; + ta.value = v.slice(0, pos).replace(/(?:^|\s)[/@][\w.-]*$/, (s) => (s.startsWith(" ") ? " " : "")) + v.slice(pos); + autosize(); + } + function applyPreset(p) { + eraseTrigger(); + state.preset = { ...p }; bus.emit("preset-changed"); + toast(`${p.title} · preset applied`); + ta.focus(); + } + async function applyPromptGroup(g) { + eraseTrigger(); + const prod = await ctx.promptsLib.production(g.groupId); + if (!prod) { toast(t("com_ui_integrity_refused")); return; } + const { fillPromptDialog } = await import("./vardialog.js"); + const filled = await fillPromptDialog({ els, t, promptText: prod.prompt, userName: "operator" }); + if (filled == null) { ta.focus(); return; } + await ctx.promptsLib.recordUse(g.groupId); + if (prod.type === "chat") { act.send(filled); } // chat prompts submit directly + else { ta.value = (ta.value ? ta.value + " " : "") + filled; autosize(); ta.focus(); } // text prompts insert + } + document.addEventListener("click", (e) => { if (!els.cmdmenu.contains(e.target) && e.target !== ta) closeMenu(); }); + + // ── dictation (Web Speech). Graceful: hidden when the engine is unavailable. ── + const SR = window.SpeechRecognition || window.webkitSpeechRecognition; + if (!SR) els.micbtn.style.display = "none"; + let rec = null; + els.micbtn.onclick = () => { + if (rec) { rec.stop(); return; } + try { + rec = new SR(); + rec.lang = settings.get("sttLang") || navigator.language || "en-US"; + rec.interimResults = true; rec.continuous = true; + const base = ta.value; + rec.onresult = (e) => { + let txt = ""; + for (const r of e.results) txt += r[0].transcript; + ta.value = (base ? base + " " : "") + txt; autosize(); + }; + rec.onend = () => { rec = null; els.micbtn.classList.remove("rec"); }; + rec.onerror = () => { rec = null; els.micbtn.classList.remove("rec"); }; + els.micbtn.classList.add("rec"); + rec.start(); + } catch { rec = null; els.micbtn.classList.remove("rec"); } + }; + + autosize(); + return { focus: () => ta.focus(), autosize }; +} diff --git a/b/3ed5c176980be8784bb1055619800c1b86f6e23ce3ac3f9e05852d8e923b0e79 b/b/3ed5c176980be8784bb1055619800c1b86f6e23ce3ac3f9e05852d8e923b0e79 new file mode 100644 index 0000000000000000000000000000000000000000..a459bd7b8ba170c2ba6732ba312d9c66a17332ef --- /dev/null +++ b/b/3ed5c176980be8784bb1055619800c1b86f6e23ce3ac3f9e05852d8e923b0e79 @@ -0,0 +1,31 @@ +:root:has(input.theme-controller[value=bumblebee]:checked),[data-theme="bumblebee"] { +color-scheme: light; +--color-base-100: oklch(100% 0 0); +--color-base-200: oklch(97% 0 0); +--color-base-300: oklch(92% 0 0); +--color-base-content: oklch(20% 0 0); +--color-primary: oklch(85% 0.199 91.936); +--color-primary-content: oklch(42% 0.095 57.708); +--color-secondary: oklch(75% 0.183 55.934); +--color-secondary-content: oklch(40% 0.123 38.172); +--color-accent: oklch(0% 0 0); +--color-accent-content: oklch(100% 0 0); +--color-neutral: oklch(37% 0.01 67.558); +--color-neutral-content: oklch(92% 0.003 48.717); +--color-info: oklch(74% 0.16 232.661); +--color-info-content: oklch(39% 0.09 240.876); +--color-success: oklch(76% 0.177 163.223); +--color-success-content: oklch(37% 0.077 168.94); +--color-warning: oklch(82% 0.189 84.429); +--color-warning-content: oklch(41% 0.112 45.904); +--color-error: oklch(70% 0.191 22.216); +--color-error-content: oklch(39% 0.141 25.723); +--radius-selector: 1rem; +--radius-field: 0.5rem; +--radius-box: 1rem; +--size-selector: 0.25rem; +--size-field: 0.25rem; +--border: 1px; +--depth: 1; +--noise: 0; +} diff --git a/b/3ee341074224cab122b74291d2ebbbc3bc278992712a39b00f0efb64c28ba3b4 b/b/3ee341074224cab122b74291d2ebbbc3bc278992712a39b00f0efb64c28ba3b4 new file mode 100644 index 0000000000000000000000000000000000000000..24e5a866b3ddc42342df9b3a986e35dc57958d3a --- /dev/null +++ b/b/3ee341074224cab122b74291d2ebbbc3bc278992712a39b00f0efb64c28ba3b4 @@ -0,0 +1,152 @@ +"use client" + +import * as React from "react" +import { zodResolver } from "@hookform/resolvers/zod" +import { Controller, useForm } from "react-hook-form" +import { toast } from "sonner" +import * as z from "zod" + +import { Button } from "@/registry/new-york-v4/ui/button" +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@/registry/new-york-v4/ui/card" +import { + Field, + FieldContent, + FieldDescription, + FieldError, + FieldGroup, + FieldLabel, + FieldLegend, + FieldSet, + FieldTitle, +} from "@/registry/new-york-v4/ui/field" +import { + RadioGroup, + RadioGroupItem, +} from "@/registry/new-york-v4/ui/radio-group" + +const plans = [ + { + id: "starter", + title: "Starter (100K tokens/month)", + description: "For everyday use with basic features.", + }, + { + id: "pro", + title: "Pro (1M tokens/month)", + description: "For advanced AI usage with more features.", + }, + { + id: "enterprise", + title: "Enterprise (Unlimited tokens)", + description: "For large teams and heavy usage.", + }, +] as const + +const formSchema = z.object({ + plan: z.string().min(1, "You must select a subscription plan to continue."), +}) + +export default function FormRhfRadioGroup() { + const form = useForm>({ + resolver: zodResolver(formSchema), + defaultValues: { + plan: "", + }, + }) + + function onSubmit(data: z.infer) { + toast("You submitted the following values:", { + description: ( +
+          {JSON.stringify(data, null, 2)}
+        
+ ), + position: "bottom-right", + classNames: { + content: "flex flex-col gap-2", + }, + style: { + "--border-radius": "calc(var(--radius) + 4px)", + } as React.CSSProperties, + }) + } + + return ( + + + Subscription Plan + + See pricing and features for each plan. + + + +
+ + ( +
+ Plan + + You can upgrade or downgrade your plan at any time. + + + {plans.map((plan) => ( + + + + {plan.title} + + {plan.description} + + + + + + ))} + + {fieldState.invalid && ( + + )} +
+ )} + /> +
+
+
+ + + + + + +
+ ) +} diff --git a/b/3ef25068a0ccc5509ee25a6584c8f372806f13522c0abec86c54299b68615a89 b/b/3ef25068a0ccc5509ee25a6584c8f372806f13522c0abec86c54299b68615a89 new file mode 100644 index 0000000000000000000000000000000000000000..199eb46fa886f86ef03a28cc3272c7f78ab967e7 --- /dev/null +++ b/b/3ef25068a0ccc5509ee25a6584c8f372806f13522c0abec86c54299b68615a89 @@ -0,0 +1 @@ +export default {":root":{"scrollbar-color":"color-mix(in oklch, currentColor 35%, #0000) #0000"}}; \ No newline at end of file diff --git a/b/3f04a9745b9cab0a5ff77bd08da449d0de2e1f97d88ee1efc81e42becbc7b1ad b/b/3f04a9745b9cab0a5ff77bd08da449d0de2e1f97d88ee1efc81e42becbc7b1ad new file mode 100644 index 0000000000000000000000000000000000000000..966a41e408ae65ec71c8b57141e58d5ab0b8a000 --- /dev/null +++ b/b/3f04a9745b9cab0a5ff77bd08da449d0de2e1f97d88ee1efc81e42becbc7b1ad @@ -0,0 +1,7 @@ +import acid from './object.js'; +import { addPrefix } from '../../functions/addPrefix.js'; + +export default ({ addBase, prefix = '' }) => { + const prefixedacid = addPrefix(acid, prefix); + addBase({ ...prefixedacid }); +}; diff --git a/b/3f1717d9a21cb1b5c661dbb407c60cc424d20609643f3d5f82a640d0234fe2dd b/b/3f1717d9a21cb1b5c661dbb407c60cc424d20609643f3d5f82a640d0234fe2dd new file mode 100644 index 0000000000000000000000000000000000000000..16349b0c1e7179ed9192163fa066622aec775e66 --- /dev/null +++ b/b/3f1717d9a21cb1b5c661dbb407c60cc424d20609643f3d5f82a640d0234fe2dd @@ -0,0 +1,7 @@ +import business from './object.js'; +import { addPrefix } from '../../functions/addPrefix.js'; + +export default ({ addBase, prefix = '' }) => { + const prefixedbusiness = addPrefix(business, prefix); + addBase({ ...prefixedbusiness }); +}; diff --git a/b/3f5ef8c0306fb8872126a706489cbdb3019b19f9ee7223b92013cae5afeefc22 b/b/3f5ef8c0306fb8872126a706489cbdb3019b19f9ee7223b92013cae5afeefc22 new file mode 100644 index 0000000000000000000000000000000000000000..27173a7d75bb0e701fa3f08ebf6482d96114b4bf --- /dev/null +++ b/b/3f5ef8c0306fb8872126a706489cbdb3019b19f9ee7223b92013cae5afeefc22 @@ -0,0 +1,19 @@ +// scan-space.mjs — flag any local JS import in dist-space/ whose target isn't in the bundle (completeness check). +import { readdirSync, existsSync, readFileSync } from "node:fs"; +import { join, dirname, resolve } from "node:path"; +const OUT = join(import.meta.dirname, "../q-live-space"); +const files = []; +(function walk(d) { for (const e of readdirSync(d, { withFileTypes: true })) { const p = join(d, e.name); if (e.isDirectory()) walk(p); else if (/\.(mjs|js)$/.test(e.name)) files.push(p); } })(OUT); +const missing = new Set(); +const re = /(?:from\s*|import\s*\(\s*)["'](\.[^"']*?|\/apps\/[^"']*?|\/_shared\/[^"']*?)["']/g; +for (const f of files) { + const src = readFileSync(f, "utf8"); let m; + while ((m = re.exec(src))) { + const spec = m[1].split("?")[0]; + if (!/\.(mjs|js)$/.test(spec)) continue; + const target = spec.startsWith("/") ? join(OUT, spec.slice(1)) : resolve(dirname(f), spec); + if (!existsSync(target)) missing.add(spec + " <- " + f.slice(OUT.length + 1).replace(/\\/g, "/")); + } +} +if (missing.size === 0) console.log("all local JS imports resolve inside the bundle"); +else { console.log("MISSING (" + missing.size + "):"); [...missing].sort().forEach((x) => console.log(" " + x)); } diff --git a/b/3f684f2e88ce586dfd5e3ba76e4a97c8cd3faeddbb48fad5715481d34a5af99a b/b/3f684f2e88ce586dfd5e3ba76e4a97c8cd3faeddbb48fad5715481d34a5af99a new file mode 100644 index 0000000000000000000000000000000000000000..d841fc19097658e502a4eabc00a2797d9eef40d4 --- /dev/null +++ b/b/3f684f2e88ce586dfd5e3ba76e4a97c8cd3faeddbb48fad5715481d34a5af99a @@ -0,0 +1,20 @@ +{ + "id": "org.hologram.ui.shimmer-button", + "name": "shimmer-button", + "tier": "component", + "library": "magicui", + "category": "Buttons", + "upstream": "https://magicui.design/r/shimmer-button.json", + "did": "did:holo:sha256:c85ffda63ba086d2078a8dacffdfc25f0b106e1566362fa251888a214ee3c010", + "import": "holo://sha256:21ac3fb17fb7987b70dcce32ec2c6cdcb95dacee187bb2d51ee3b5c80989cf59", + "integrity": "sha256-Iaw/sX+3mHtw3M4y7Cxs3LldrO4Ye7LVHuO1yAmJz1k=", + "kappa": "sha256:c85ffda63ba086d2078a8dacffdfc25f0b106e1566362fa251888a214ee3c010", + "moduleKappa": "sha256:21ac3fb17fb7987b70dcce32ec2c6cdcb95dacee187bb2d51ee3b5c80989cf59", + "renderExport": "ShimmerButton", + "source": "components/ui/shimmer-button.tsx", + "module": "vendor/components/shimmer-button.js", + "exports": [ + "ShimmerButton" + ], + "license": "MIT" +} diff --git a/b/3f82f6835af0fd3c3cdf172ea12975a9696fa79c71d1f91caad38e0159d3b4f3 b/b/3f82f6835af0fd3c3cdf172ea12975a9696fa79c71d1f91caad38e0159d3b4f3 new file mode 100644 index 0000000000000000000000000000000000000000..ad164cc34071c16f39308c82d390784cd072703e --- /dev/null +++ b/b/3f82f6835af0fd3c3cdf172ea12975a9696fa79c71d1f91caad38e0159d3b4f3 @@ -0,0 +1,47 @@ +import { SidebarLeft } from "@/registry/new-york-v4/blocks/sidebar-15/components/sidebar-left" +import { SidebarRight } from "@/registry/new-york-v4/blocks/sidebar-15/components/sidebar-right" +import { + Breadcrumb, + BreadcrumbItem, + BreadcrumbList, + BreadcrumbPage, +} from "@/registry/new-york-v4/ui/breadcrumb" +import { Separator } from "@/registry/new-york-v4/ui/separator" +import { + SidebarInset, + SidebarProvider, + SidebarTrigger, +} from "@/registry/new-york-v4/ui/sidebar" + +export default function Page() { + return ( + + + +
+
+ + + + + + + Project Management & Task Tracking + + + + +
+
+
+
+
+
+ + + + ) +} diff --git a/b/3f8942fa221606ad987fed56b5b84588ceabe82ccb4130904c5683f8217d5ac1 b/b/3f8942fa221606ad987fed56b5b84588ceabe82ccb4130904c5683f8217d5ac1 new file mode 100644 index 0000000000000000000000000000000000000000..46dd3c4405785da5a980cf30e2b010db79aee41e --- /dev/null +++ b/b/3f8942fa221606ad987fed56b5b84588ceabe82ccb4130904c5683f8217d5ac1 @@ -0,0 +1,38 @@ +"use client" + +import { ArrowLeftIcon, ArrowRightIcon } from "lucide-react" + +import { Button } from "@/registry/new-york-v4/ui/button" +import { ButtonGroup } from "@/registry/new-york-v4/ui/button-group" + +export default function ButtonGroupNested() { + return ( + + + + + + + + + + + + + + ) +} diff --git a/b/3f9f1c03b9d38717ab54d39aa977c506c92aef89eaa0011b9f8d8cb408d28249 b/b/3f9f1c03b9d38717ab54d39aa977c506c92aef89eaa0011b9f8d8cb408d28249 new file mode 100644 index 0000000000000000000000000000000000000000..e59ef284bc70072ad915033eaa0289aa66993d50 --- /dev/null +++ b/b/3f9f1c03b9d38717ab54d39aa977c506c92aef89eaa0011b9f8d8cb408d28249 @@ -0,0 +1,7 @@ +import carousel from './object.js'; +import { addPrefix } from '../../functions/addPrefix.js'; + +export default ({ addComponents, prefix = '' }) => { + const prefixedcarousel = addPrefix(carousel, prefix); + addComponents({ ...prefixedcarousel }); +}; diff --git a/b/3fb84366e64f69eb82bfb462842eead263dfa21e327bbafc5b604a444b60a0f4 b/b/3fb84366e64f69eb82bfb462842eead263dfa21e327bbafc5b604a444b60a0f4 new file mode 100644 index 0000000000000000000000000000000000000000..cc5852d9f75719f1896e67021d48ab74da1682bb --- /dev/null +++ b/b/3fb84366e64f69eb82bfb462842eead263dfa21e327bbafc5b604a444b60a0f4 @@ -0,0 +1,112 @@ +"use client" + +import * as React from "react" +import { Form, Field as FormischField, reset, useForm } from "@formisch/react" +import type { SubmitHandler } from "@formisch/react" +import { toast } from "sonner" +import * as v from "valibot" + +import { Button } from "@/registry/new-york-v4/ui/button" +import { + Card, + CardContent, + CardDescription, + CardFooter, + CardHeader, + CardTitle, +} from "@/registry/new-york-v4/ui/card" +import { + Field, + FieldDescription, + FieldError, + FieldGroup, + FieldLabel, +} from "@/registry/new-york-v4/ui/field" +import { Textarea } from "@/registry/new-york-v4/ui/textarea" + +const FormSchema = v.object({ + about: v.pipe( + v.string(), + v.minLength(10, "Please provide at least 10 characters."), + v.maxLength(200, "Please keep it under 200 characters.") + ), +}) + +export default function FormFormischTextarea() { + const form = useForm({ + schema: FormSchema, + initialInput: { + about: "", + }, + }) + + const handleSubmit: SubmitHandler = (output) => { + toast("You submitted the following values:", { + description: ( +
+          {JSON.stringify(output, null, 2)}
+        
+ ), + position: "bottom-right", + classNames: { + content: "flex flex-col gap-2", + }, + style: { + "--border-radius": "calc(var(--radius) + 4px)", + } as React.CSSProperties, + }) + } + + return ( + + + Personalization + + Customize your experience by telling us more about yourself. + + + +
+ + + {(field) => ( + + + More about you + +