diff --git a/dist/sigpro-ui.esm.js b/dist/sigpro-ui.esm.js index 1c4b86c..135871c 100644 --- a/dist/sigpro-ui.esm.js +++ b/dist/sigpro-ui.esm.js @@ -87,463 +87,32 @@ __export(exports_sigpro_ui, { Alert: () => Alert, Accordion: () => Accordion }); - -// node_modules/sigpro/dist/sigpro.esm.min.js -var y = (e) => typeof e === "function"; -var P = (e) => e && typeof e === "object"; -var b = Array.isArray; -var g = typeof document < "u" ? document : null; -var k = (e) => e?._isRuntime ? e.container : e instanceof Node ? e : g.createTextNode(e == null ? "" : String(e)); -var p = null; -var _ = null; -var x = false; -var A = 0; -var C = new Set; -var D = new WeakMap; -var $ = Symbol("iter"); -var B = new WeakMap; -var E = (e) => { - if (!e || e._disposed) - return; - e._disposed = true; - let o = [e]; - while (o.length) { - let n = o.pop(); - if (n._cleanups) - n._cleanups.forEach((i) => i()), n._cleanups.clear(); - if (n._children) - n._children.forEach((i) => o.push(i)), n._children.clear(); - if (n._deps) - n._deps.forEach((i) => i.delete(n)), n._deps.clear(); - } -}; -var N = (e) => { - if (_) - (_._cleanups ||= new Set).add(e); -}; -var V = (e) => { - let o = p; - p = null; - try { - return e(); - } finally { - p = o; - } -}; -var T = (e, o = false) => { - let n = () => { - if (n._disposed) - return; - if (n._deps) - n._deps.forEach((c) => c.delete(n)); - if (n._cleanups) - n._cleanups.forEach((c) => c()), n._cleanups.clear(); - let i = p, s = _; - p = _ = n; - try { - return n._result = e(); - } catch (c) { - console.error("[SigPro]", c); - } finally { - p = i, _ = s; - } - }; - if (n._deps = n._cleanups = n._children = null, n._disposed = false, n._isComputed = o, n._depth = p ? p._depth + 1 : 0, n._mounts = [], n._parent = _, _) - (_._children ||= new Set).add(n); - return n; -}; -var q = () => { - if (x) - return; - x = true; - let e = Array.from(C).sort((o, n) => o._depth - n._depth); - C.clear(); - for (let o of e) - if (!o._disposed) - o(); - x = false; -}; -var W = (e) => { - A++; - try { - return e(); - } finally { - if (A--, A === 0 && C.size > 0 && !x) - q(); - } -}; -var w = (e, o = false) => { - if (!o && p && !p._disposed) - e.add(p), (p._deps ||= new Set).add(e); - else if (o && e.size > 0) { - let n = false; - for (let i of e) { - if (i === p || i._disposed) - continue; - if (i._isComputed) { - if (i._dirty = true, i._subs) - w(i._subs, true); - } else - C.add(i), n = true; - } - if (n && !x && A === 0) - queueMicrotask(q); - } -}; -var S = (e, o = null) => { - let n = new Set; - if (y(e)) { - let i, s = () => { - if (s._dirty) { - let c = p; - p = s; - try { - let t = e(); - if (!Object.is(i, t)) - i = t, w(n, true); - } finally { - p = c; - } - s._dirty = false; - } - return w(n), i; - }; - if (s._isComputed = true, s._subs = n, s._dirty = true, s._deps = null, s._disposed = false, s.stop = () => {}, _) - N(s.stop); - return s; - } - if (o) - try { - e = JSON.parse(localStorage.getItem(o)) ?? e; - } catch (i) {} - return (...i) => { - if (i.length) { - let s = y(i[0]) ? i[0](e) : i[0]; - if (!Object.is(e, s)) { - if (e = s, o) - localStorage.setItem(o, JSON.stringify(e)); - w(n, true); - } - } - return w(n), e; - }; -}; -var I = (e) => { - if (!P(e)) - return e; - let o = D.get(e); - if (o) - return o; - let n = new Map, i = (c) => { - let t = n.get(c); - if (!t) - n.set(c, t = new Set); - return t; - }, s = new Proxy(e, { get(c, t, r) { - if (typeof t !== "symbol") - w(i(t)); - return I(Reflect.get(c, t, r)); - }, set(c, t, r, l) { - let u = Reflect.has(c, t), a = Reflect.get(c, t, l), f = Reflect.set(c, t, r, l); - if (f && !Object.is(a, r)) { - if (w(i(t), true), !u) - w(i($), true); - } - return f; - }, deleteProperty(c, t) { - let r = Reflect.deleteProperty(c, t); - if (r) - w(i(t), true), w(i($), true); - return r; - }, ownKeys(c) { - return w(i($)), Reflect.ownKeys(c); - } }); - return D.set(e, s), s; -}; -var R = (e, o) => { - if (o === undefined) { - let i = T(e); - return i(), () => E(i); - } - let n = T(() => { - let i = Array.isArray(e) ? e.map((s) => s()) : e(); - V(() => o(i)); - }); - return n(), () => E(n); -}; -var L = (e) => { - if (!e) - return; - if (e._cleanups) - e._cleanups.forEach((o) => o()), e._cleanups.clear(); - if (e._ownerEffect) - E(e._ownerEffect); - if (e.childNodes) - e.childNodes.forEach((o) => L(o)); -}; -var F = /^\s*(javascript|data|vbscript):/i; -var J = (e) => e === "src" || e === "href" || e.startsWith("on"); -var M = (e, o) => { - if (o == null || o === false) - return null; - if (J(e)) { - let n = String(o); - if (F.test(n)) - return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`), "#"; - } - return o; -}; -var O = (e, o = {}, n = []) => { - if (o instanceof Node || b(o) || !P(o)) - n = o, o = {}; - if (y(e)) { - let t = T(() => { - let a = e(o, { children: n, emit: (f, ...h) => o[`on${f[0].toUpperCase()}${f.slice(1)}`]?.(...h) }); - return t._result = a, a; - }); - t(); - let r = t._result; - if (r == null) - return null; - let l = r instanceof Node || b(r) && r.every((a) => a instanceof Node) ? r : g.createTextNode(String(r)), u = (a) => { - if (P(a) && !a._isRuntime) - a._mounts = t._mounts || [], a._cleanups = t._cleanups || new Set, a._ownerEffect = t; - }; - return b(l) ? l.forEach(u) : u(l), l; - } - let i = /^(svg|path|circle|rect|line|poly(line|gon)|g|defs|text(path)?|tspan|use|symbol|image|marker|ellipse)$/i.test(e), s = i ? g.createElementNS("http://www.w3.org/2000/svg", e) : g.createElement(e); - s._cleanups = new Set; - for (let t in o) { - if (!o.hasOwnProperty(t)) - continue; - let r = o[t]; - if (t === "ref") { - y(r) ? r(s) : r.current = s; - continue; - } - if (i && t.startsWith("xlink:")) { - r == null ? s.removeAttributeNS("http://www.w3.org/1999/xlink", t.slice(6)) : s.setAttributeNS("http://www.w3.org/1999/xlink", t.slice(6), r); - continue; - } - if (t.startsWith("on")) { - let l = t.slice(2).toLowerCase(); - s.addEventListener(l, r); - let u = () => s.removeEventListener(l, r); - s._cleanups.add(u), N(u); - } else if (y(r)) { - let l = T(() => { - let u = M(t, r()); - if (t === "class") - s.className = u || ""; - else if (u == null) - s.removeAttribute(t); - else if (t in s && !i) - s[t] = u; - else - s.setAttribute(t, u === true ? "" : u); - }); - if (l(), s._cleanups.add(() => E(l)), N(() => E(l)), /^(INPUT|TEXTAREA|SELECT)$/.test(s.tagName) && (t === "value" || t === "checked")) { - let u = t === "checked" ? "change" : "input"; - s.addEventListener(u, (a) => r(a.target[t])); - } - } else { - let l = M(t, r); - if (l != null) - if (t in s && !i) - s[t] = l; - else - s.setAttribute(t, l === true ? "" : l); - } - } - let c = (t) => { - if (b(t)) - return t.forEach(c); - if (y(t)) { - let r = g.createTextNode(""); - s.appendChild(r); - let l = [], u = T(() => { - let a = t(), f = (b(a) ? a : [a]).map(k); - l.forEach((d) => { - if (d._isRuntime) - d.destroy(); - else - L(d); - if (d.parentNode) - d.remove(); - }); - let h = r; - for (let d = f.length - 1;d >= 0; d--) { - let m = f[d]; - if (m.parentNode !== h.parentNode) - h.parentNode?.insertBefore(m, h); - if (m._mounts) - m._mounts.forEach((U) => U()); - h = m; - } - l = f; - }); - u(), s._cleanups.add(() => E(u)), N(() => E(u)); - } else { - let r = k(t); - if (s.appendChild(r), r._mounts) - r._mounts.forEach((l) => l()); - } - }; - return c(n), s; -}; -var j = (e) => { - let o = new Set, n = _, i = p, s = g.createElement("div"); - s.style.display = "contents", s.setAttribute("role", "presentation"), _ = { _cleanups: o }, p = null; - let c = (t) => { - if (!t) - return; - if (t._isRuntime) - o.add(t.destroy), s.appendChild(t.container); - else if (b(t)) - t.forEach(c); - else - s.appendChild(t instanceof Node ? t : g.createTextNode(String(t == null ? "" : t))); - }; - try { - c(e({ onCleanup: (t) => o.add(t) })); - } finally { - _ = n, p = i; - } - return { _isRuntime: true, container: s, destroy: () => { - o.forEach((t) => t()), L(s), s.remove(); - } }; -}; -var z = (e, o, n = null) => { - let i = g.createTextNode(""), s = O("div", { style: "display:contents" }, [i]), c = null; - return R(() => !!(y(e) ? e() : e), (t) => { - if (c) - c.destroy(), c = null; - let r = t ? o : n; - if (r) - c = j(() => y(r) ? r() : r), s.insertBefore(c.container, i); - }), N(() => c?.destroy()), s; -}; -var G = ({ name: e, duration: o = 200, scale: n, slide: i, rotate: s, blur: c }, t) => { - let r = typeof t === "function" ? t() : t; - if (!(r instanceof Node)) - return r; - if (e) - return r.style.animation = `${e}-in ${o}ms`, r; - let l = n || i || s || c, u = [n ? "scale(0.95)" : "", i ? "translateY(-10px)" : "", s ? "rotate(-2deg)" : ""].filter(Boolean).join(" "); - if (r.style.transition = `all ${o}ms ease`, r.style.opacity = "0", l) - r.style.transform = u; - if (c) - r.style.filter = "blur(4px)"; - return requestAnimationFrame(() => { - if (r.style.opacity = "1", l) - r.style.transform = "none"; - if (c) - r.style.filter = "none"; - }), r; -}; -var K = (e, o, n) => { - let i = g.createTextNode(""), s = O("div", { style: "display:contents" }, [i]), c = new Map; - return R(() => (y(e) ? e() : e) || [], (t) => { - let r = new Map, l = [], u = t || []; - for (let f = 0;f < u.length; f++) { - let h = u[f], d = n ? h?.[n] ?? f : h?.id ?? f, m = c.get(d); - if (!m) - m = j(() => o(h, f)); - else - c.delete(d); - r.set(d, m), l.push(m); - } - c.forEach((f) => f.destroy()); - let a = i; - for (let f = l.length - 1;f >= 0; f--) { - let d = l[f].container; - if (d.nextSibling !== a) - s.insertBefore(d, a); - a = d; - } - c = r; - }), s; -}; -var v = (e) => { - let o = () => window.location.hash.slice(1) || "/", n = S(o()), i = () => n(o()); - window.addEventListener("hashchange", i), N(() => window.removeEventListener("hashchange", i)); - let s = O("div", { class: "router-hook" }), c = null; - return R([n], () => { - let t = n(), r = e.find((l) => { - let u = l.path.split("/").filter(Boolean), a = t.split("/").filter(Boolean); - return u.length === a.length && u.every((f, h) => f[0] === ":" || f === a[h]); - }) || e.find((l) => l.path === "*"); - if (r) { - c?.destroy(); - let l = {}; - r.path.split("/").filter(Boolean).forEach((u, a) => { - if (u[0] === ":") - l[u.slice(1)] = t.split("/").filter(Boolean)[a]; - }), v.params(l), c = j(() => y(r.component) ? r.component(l) : r.component), s.replaceChildren(c.container); - } - }), s; -}; -v.params = S({}); -v.to = (e) => window.location.hash = e.replace(/^#?\/?/, "#/"); -v.back = () => window.history.back(); -v.path = () => window.location.hash.replace(/^#/, "") || "/"; -var Q = ({ url: e, method: o = "GET", headers: n = {} }) => { - let i = S(false), s = S(null), c = S(null), t = null, r = null; - return { run: async (a = null) => { - t?.abort(), clearTimeout(r), t = new AbortController, r = setTimeout(() => t.abort(), 1e4), i(true), s(null); - try { - let f = a instanceof FormData, h = await fetch(e, { method: o, headers: f ? n : { "Content-Type": "application/json", ...n }, body: f ? a : a ? JSON.stringify(a) : undefined, signal: t.signal }), d = await h.text(), m = d ? JSON.parse(d) : null; - if (!h.ok) - throw Error(m?.message || h.statusText); - return c(m), m; - } catch (f) { - if (f.name !== "AbortError") - s(f.message); - throw f; - } finally { - i(false), clearTimeout(r), t = null, r = null; - } - }, abort: () => t?.abort(), loading: i, error: s, data: c }; -}; -var H = (e, o) => { - let n = typeof o === "string" ? g.querySelector(o) : o; - if (!n) - return; - if (B.has(n)) - B.get(n).destroy(); - let i = j(y(e) ? e : () => e); - return n.replaceChildren(i.container), B.set(n, i), i; -}; -var X = Object.freeze({ $: S, $$: I, watch: R, h: O, when: z, each: K, fx: G, router: v, req: Q, mount: H, batch: W }); -if (typeof window < "u") - Object.assign(window, X), "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e) => { - window[e] = (o, n) => O(e, o, n); - }); +import { h, each, watch, when, mount, $ } from "sigpro"; // sigpro-helpers.js var get = (val) => typeof val === "function" ? val() : val; var getBy = (item, field = "label") => item && typeof item === "object" ? item[field] : item; var cls = (...classes) => classes.filter(Boolean).join(" ").trim(); var isFn = (f) => typeof f === "function"; -var filterBy = (items, query, field = "label", q2 = String(query).toLowerCase()) => !query ? get(items) : get(items).filter((item) => String(item && typeof item === "object" ? item[field] : item).toLowerCase().includes(q2)); +var filterBy = (items, query, field = "label", q = String(query).toLowerCase()) => !query ? get(items) : get(items).filter((item) => String(item && typeof item === "object" ? item[field] : item).toLowerCase().includes(q)); var rand = (r) => `${r}-${Math.random().toString(36).slice(2, 9)}`; var close = () => document.activeElement?.blur(); // sigpro-ui.js -var Accordion = (p2) => { - const name = p2.name || rand("acc"); - return K(p2.items, (it) => { - return O("div", { class: cls("collapse", p2.class) }, [ - O("input", { type: "radio", name, checked: it.open || undefined }), - it.title ? O("div", { class: cls("collapse-title", `${it.classTitle ?? " font-semibold"}`) }, it.title) : null, - it.content ? O("div", { class: cls("collapse-content text-sm", `${it.classContent ?? " font-semibold"}`) }, it.content) : null +var Accordion = (p) => { + const name = p.name || rand("acc"); + return each(p.items, (it) => { + return h("div", { class: cls("collapse", p.class) }, [ + h("input", { type: "radio", name, checked: it.open || undefined }), + it.title ? h("div", { class: cls("collapse-title", `${it.classTitle ?? " font-semibold"}`) }, it.title) : null, + it.content ? h("div", { class: cls("collapse-content text-sm", `${it.classContent ?? " font-semibold"}`) }, it.content) : null ]); }); }; -var Alert = (p2, c) => O("div", { ...p2, class: cls("alert", p2.class) }, c); +var Alert = (p, c) => h("div", { ...p, class: cls("alert", p.class) }, c); var Autocomplete = ({ items, value, onselect, placeholder = "...", ...props }) => { - const query = S(get(value) || ""); - const filtered = S(() => filterBy(items, query())); + const query = $(get(value) || ""); + const filtered = $(() => filterBy(items, query())); const pick = (item) => { const display = getBy(item); const actual = typeof item === "string" ? item : item.value; @@ -554,112 +123,112 @@ var Autocomplete = ({ items, value, onselect, placeholder = "...", ...props }) = close(); }; return Dropdown({ class: "w-full" }, [ - O("div", { tabindex: "0", role: "button", class: "w-full" }, Input({ + h("div", { tabindex: "0", role: "button", class: "w-full" }, Input({ ...props, placeholder, value: query, - left: O("span", { class: "icon-[lucide--search]" }), + left: h("span", { class: "icon-[lucide--search]" }), oninput: (e) => { query(e.target.value); if (isFn(value)) value(e.target.value); } })), - DropdownContent({ class: "p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50" }, O("ul", { class: "menu flex-col flex-nowrap w-full p-0" }, [ - K(filtered, (item) => O("li", {}, [ - O("a", { + DropdownContent({ class: "p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50" }, h("ul", { class: "menu flex-col flex-nowrap w-full p-0" }, [ + each(filtered, (item) => h("li", {}, [ + h("a", { onmousedown: (e) => e.preventDefault(), onclick: () => pick(item) }, getBy(item)) ]), (item) => getBy(item)), - () => filtered().length === 0 ? O("li", { class: "p-4 opacity-50 text-center" }, "Sin resultados") : null + () => filtered().length === 0 ? h("li", { class: "p-4 opacity-50 text-center" }, "Sin resultados") : null ])) ]); }; -var Badge = (p2, c) => O("span", { ...p2, class: cls("badge", p2.class) }, c); -var Button = (p2, c) => O("button", { ...p2, class: cls("btn", p2.class) }, c); -var Calendar = (p2) => { - const internalDate = S(new Date); - const hoverDate = S(null); - const startHour = S(0); - const endHour = S(0); +var Badge = (p, c) => h("span", { ...p, class: cls("badge", p.class) }, c); +var Button = (p, c) => h("button", { ...p, class: cls("btn", p.class) }, c); +var Calendar = (p) => { + const internalDate = $(new Date); + const hoverDate = $(null); + const startHour = $(0); + const endHour = $(0); const now = new Date; const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`; const fmt = (d) => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`; - const rangeMode = () => get(p2.range) === true; - const current = () => get(p2.value); + const rangeMode = () => get(p.range) === true; + const current = () => get(p.value); const selectDate = (date) => { const s = fmt(date); - const v2 = current(); + const v = current(); if (rangeMode()) { - if (!v2?.start || v2.start && v2.end) { - p2.onChange?.({ start: s, end: null, ...p2.hour && { startHour: startHour() } }); + if (!v?.start || v.start && v.end) { + p.onChange?.({ start: s, end: null, ...p.hour && { startHour: startHour() } }); } else { - const start = v2.start; + const start = v.start; const nv = s < start ? { start: s, end: start } : { start, end: s }; - if (p2.hour) { - nv.startHour = v2.startHour ?? startHour(); + if (p.hour) { + nv.startHour = v.startHour ?? startHour(); nv.endHour = endHour(); } - p2.onChange?.(nv); + p.onChange?.(nv); } } else { - p2.onChange?.(p2.hour ? `${s}T${String(startHour()).padStart(2, "0")}:00:00` : s); + p.onChange?.(p.hour ? `${s}T${String(startHour()).padStart(2, "0")}:00:00` : s); } }; const move = (m) => { const d = internalDate(); internalDate(new Date(d.getFullYear(), d.getMonth() + m, 1)); }; - const moveYear = (y2) => { + const moveYear = (y) => { const d = internalDate(); - internalDate(new Date(d.getFullYear() + y2, d.getMonth(), 1)); + internalDate(new Date(d.getFullYear() + y, d.getMonth(), 1)); }; - const HourSlider = ({ value: hVal, onChange: onH }) => O("div", { class: "flex-1" }, [ - O("div", { class: "flex gap-2 items-center" }, [ - O("input", { type: "range", min: 0, max: 23, value: hVal, class: "range range-xs flex-1", oninput: (e) => onH(+e.target.value) }), - O("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(get(hVal)).padStart(2, "0") + ":00") + const HourSlider = ({ value: hVal, onChange: onH }) => h("div", { class: "flex-1" }, [ + h("div", { class: "flex gap-2 items-center" }, [ + h("input", { type: "range", min: 0, max: 23, value: hVal, class: "range range-xs flex-1", oninput: (e) => onH(+e.target.value) }), + h("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(get(hVal)).padStart(2, "0") + ":00") ]) ]); - return O("div", { - class: cls("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none", p2.class) + return h("div", { + class: cls("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none", p.class) }, [ - O("div", { class: "flex justify-between items-center mb-4 gap-1" }, [ - O("div", { class: "flex gap-0.5" }, [ - O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, O("span", { class: "icon-[lucide--chevrons-left]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, O("span", { class: "icon-[lucide--chevron-left]" })) + h("div", { class: "flex justify-between items-center mb-4 gap-1" }, [ + h("div", { class: "flex gap-0.5" }, [ + h("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, h("span", { class: "icon-[lucide--chevrons-left]" })), + h("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, h("span", { class: "icon-[lucide--chevron-left]" })) ]), - O("span", { class: "font-bold uppercase flex-1 text-center" }, () => internalDate().toLocaleString("es-ES", { month: "short", year: "numeric" })), - O("div", { class: "flex gap-0.5" }, [ - O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, O("span", { class: "icon-[lucide--chevron-right]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, O("span", { class: "icon-[lucide--chevrons-right]" })) + h("span", { class: "font-bold uppercase flex-1 text-center" }, () => internalDate().toLocaleString("es-ES", { month: "short", year: "numeric" })), + h("div", { class: "flex gap-0.5" }, [ + h("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, h("span", { class: "icon-[lucide--chevron-right]" })), + h("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, h("span", { class: "icon-[lucide--chevrons-right]" })) ]) ]), - O("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [ - ...["L", "M", "X", "J", "V", "S", "D"].map((d) => O("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d)), + h("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [ + ...["L", "M", "X", "J", "V", "S", "D"].map((d) => h("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d)), () => { - const d = internalDate(), y2 = d.getFullYear(), m = d.getMonth(); - const firstDay = new Date(y2, m, 1).getDay(); + const d = internalDate(), y = d.getFullYear(), m = d.getMonth(); + const firstDay = new Date(y, m, 1).getDay(); const offset = firstDay === 0 ? 6 : firstDay - 1; - const dim = new Date(y2, m + 1, 0).getDate(); + const dim = new Date(y, m + 1, 0).getDate(); const cells = []; for (let i = 0;i < offset; i++) - cells.push(O("div")); + cells.push(h("div")); for (let i = 1;i <= dim; i++) { - const date = new Date(y2, m, i), ds = fmt(date); - cells.push(O("button", { + const date = new Date(y, m, i), ds = fmt(date); + cells.push(h("button", { type: "button", class: () => { - const v2 = current(), h = hoverDate(); - const isStart = typeof v2 === "string" ? v2.split("T")[0] === ds : v2?.start === ds; - const isEnd = v2?.end === ds; + const v = current(), h2 = hoverDate(); + const isStart = typeof v === "string" ? v.split("T")[0] === ds : v?.start === ds; + const isEnd = v?.end === ds; let inRange = false; - if (rangeMode() && v2?.start) { - const start = v2.start; - if (!v2.end && h) - inRange = ds > start && ds <= h || ds < start && ds >= h; - else if (v2.end) - inRange = ds > start && ds < v2.end; + if (rangeMode() && v?.start) { + const start = v.start; + if (!v.end && h2) + inRange = ds > start && ds <= h2 || ds < start && ds >= h2; + else if (v.end) + inRange = ds > start && ds < v.end; } const base = "btn btn-xs p-0 aspect-square min-h-0 h-auto font-normal relative"; const st = isStart || isEnd ? "btn-primary z-10" : inRange ? "bg-primary/20 border-none rounded-none" : "btn-ghost"; @@ -673,35 +242,35 @@ var Calendar = (p2) => { return cells; } ]), - p2.hour ? O("div", { class: "mt-3 pt-2 border-t border-base-300" }, rangeMode() ? O("div", { class: "flex gap-4" }, [HourSlider({ value: startHour, onChange: (h) => startHour(h) }), HourSlider({ value: endHour, onChange: (h) => endHour(h) })]) : HourSlider({ value: startHour, onChange: (h) => startHour(h) })) : null + p.hour ? h("div", { class: "mt-3 pt-2 border-t border-base-300" }, rangeMode() ? h("div", { class: "flex gap-4" }, [HourSlider({ value: startHour, onChange: (h2) => startHour(h2) }), HourSlider({ value: endHour, onChange: (h2) => endHour(h2) })]) : HourSlider({ value: startHour, onChange: (h2) => startHour(h2) })) : null ]); }; -var Card = (p2, c) => O("div", { ...p2, class: cls("card", p2.class) }, c); -var CardTitle = (p2, c) => O("div", { ...p2, class: cls("card-title", p2.class) }, c); -var CardBody = (p2, c) => O("div", { ...p2, class: cls("card-body", p2.class) }, c); -var CardActions = (p2, c) => O("div", { ...p2, class: cls("card-actions", p2.class) }, c); -var Carousel = (p2, c) => O("div", { ...p2, class: cls("carousel", p2.class) }, c); -var CarouselItem = (p2, c) => O("div", { ...p2, class: cls("carousel-item", p2.class) }, c); -var Chat = (p2, c) => O("div", { ...p2, class: cls("chat", p2.class) }, c); -var ChatBubble = (p2, c) => O("div", { ...p2, class: cls("chat-bubble", p2.class) }, c); -var ChatFooter = (p2, c) => O("div", { ...p2, class: cls("chat-footer", p2.class) }, c); -var ChatHeader = (p2, c) => O("div", { ...p2, class: cls("chat-header", p2.class) }, c); -var ChatImage = (p2, c) => O("div", { ...p2, class: cls("chat-image avatar", p2.class) }, O("div", { class: "w-10 rounded-full" }, typeof c === "string" ? O("img", { src: c, alt: "avatar" }) : c)); -var Checkbox = (p2) => O("input", { ...p2, type: "checkbox", class: cls("checkbox", p2.class) }); -var Colorpicker = (p2) => { - const current = () => get(p2.value) || "#000000"; +var Card = (p, c) => h("div", { ...p, class: cls("card", p.class) }, c); +var CardTitle = (p, c) => h("div", { ...p, class: cls("card-title", p.class) }, c); +var CardBody = (p, c) => h("div", { ...p, class: cls("card-body", p.class) }, c); +var CardActions = (p, c) => h("div", { ...p, class: cls("card-actions", p.class) }, c); +var Carousel = (p, c) => h("div", { ...p, class: cls("carousel", p.class) }, c); +var CarouselItem = (p, c) => h("div", { ...p, class: cls("carousel-item", p.class) }, c); +var Chat = (p, c) => h("div", { ...p, class: cls("chat", p.class) }, c); +var ChatBubble = (p, c) => h("div", { ...p, class: cls("chat-bubble", p.class) }, c); +var ChatFooter = (p, c) => h("div", { ...p, class: cls("chat-footer", p.class) }, c); +var ChatHeader = (p, c) => h("div", { ...p, class: cls("chat-header", p.class) }, c); +var ChatImage = (p, c) => h("div", { ...p, class: cls("chat-image avatar", p.class) }, h("div", { class: "w-10 rounded-full" }, typeof c === "string" ? h("img", { src: c, alt: "avatar" }) : c)); +var Checkbox = (p) => h("input", { ...p, type: "checkbox", class: cls("checkbox", p.class) }); +var Colorpicker = (p) => { + const current = () => get(p.value) || "#000000"; return Dropdown({}, [ DropdownButton({ class: "btn" }, [ - O("div", { class: "size-5 rounded-sm", style: () => `background-color: ${current()}` }), - p2.label && O("span", {}, p2.label) + h("div", { class: "size-5 rounded-sm", style: () => `background-color: ${current()}` }), + p.label && h("span", {}, p.label) ]), - DropdownContent({ class: "p-3 bg-base-100 rounded-box shadow-xl w-64" }, ColorPalette({ value: p2.value, onchange: (c) => { - isFn(p2.value) ? p2.value(c) : p2.onchange?.(c); + DropdownContent({ class: "p-3 bg-base-100 rounded-box shadow-xl w-64" }, ColorPalette({ value: p.value, onchange: (c) => { + isFn(p.value) ? p.value(c) : p.onchange?.(c); } })) ]); }; -var ColorPalette = (p2) => { - const current = () => get(p2.value) || "#000000"; +var ColorPalette = (p) => { + const current = () => get(p.value) || "#000000"; const palette = [ "#000", "#1A1A1A", @@ -768,8 +337,8 @@ var ColorPalette = (p2) => { "#d946ef", "#fae8ff" ]; - const pick = (c) => isFn(p2.value) ? p2.value(c) : p2.onchange?.(c); - return O("div", { class: "grid grid-cols-8 gap-1" }, palette.map((c) => O("button", { + const pick = (c) => isFn(p.value) ? p.value(c) : p.onchange?.(c); + return h("div", { class: "grid grid-cols-8 gap-1" }, palette.map((c) => h("button", { type: "button", style: `background-color: ${c}`, class: () => { @@ -782,106 +351,106 @@ var ColorPalette = (p2) => { } }))); }; -var Datepicker = (p2) => { - const displayValue = S(""); - const rangeMode = () => get(p2.range) === true; - R(() => { - const v2 = get(p2.value); - if (!v2) +var Datepicker = (p) => { + const displayValue = $(""); + const rangeMode = () => get(p.range) === true; + watch(() => { + const v = get(p.value); + if (!v) return displayValue(""); let text = ""; - if (typeof v2 === "string") { - text = p2.hour && v2.includes("T") ? v2.replace("T", " ") : v2; - } else if (v2.start && v2.end) { - const startStr = p2.hour && v2.startHour != null ? `${v2.start} ${String(v2.startHour).padStart(2, "0")}:00` : v2.start; - const endStr = p2.hour && v2.endHour != null ? `${v2.end} ${String(v2.endHour).padStart(2, "0")}:00` : v2.end; + if (typeof v === "string") { + text = p.hour && v.includes("T") ? v.replace("T", " ") : v; + } else if (v.start && v.end) { + const startStr = p.hour && v.startHour != null ? `${v.start} ${String(v.startHour).padStart(2, "0")}:00` : v.start; + const endStr = p.hour && v.endHour != null ? `${v.end} ${String(v.endHour).padStart(2, "0")}:00` : v.end; text = `${startStr} - ${endStr}`; - } else if (v2.start) { - const startStr = p2.hour && v2.startHour != null ? `${v2.start} ${String(v2.startHour).padStart(2, "0")}:00` : v2.start; + } else if (v.start) { + const startStr = p.hour && v.startHour != null ? `${v.start} ${String(v.startHour).padStart(2, "0")}:00` : v.start; text = `${startStr}...`; } displayValue(text); }); const handleChange = (val) => { - if (isFn(p2.value)) - p2.value(val); + if (isFn(p.value)) + p.value(val); else - p2.onChange?.(val); + p.onChange?.(val); if (!rangeMode() || val?.end != null) close(); }; - return Dropdown({ class: cls("w-full", p2.class) }, [ - O("label", { + return Dropdown({ class: cls("w-full", p.class) }, [ + h("label", { tabindex: "0", role: "button", class: "input input-bordered flex items-center gap-2 cursor-pointer" }, [ - O("span", { class: "icon-[lucide--calendar] shrink-0" }), - O("span", { + h("span", { class: "icon-[lucide--calendar] shrink-0" }), + h("span", { class: () => `grow text-left truncate ${!displayValue() ? "opacity-50" : ""}` - }, () => displayValue() || p2.placeholder || (rangeMode() ? "Seleccionar rango..." : "Seleccionar fecha...")), - () => displayValue() ? O("button", { + }, () => displayValue() || p.placeholder || (rangeMode() ? "Seleccionar rango..." : "Seleccionar fecha...")), + () => displayValue() ? h("button", { type: "button", class: "btn btn-ghost btn-xs btn-circle -mr-2", onmousedown: (e) => { e.preventDefault(); e.stopPropagation(); - if (isFn(p2.value)) - p2.value(null); + if (isFn(p.value)) + p.value(null); else - p2.onChange?.(null); + p.onChange?.(null); displayValue(""); } - }, O("span", { class: "icon-[lucide--x] opacity-50" })) : null + }, h("span", { class: "icon-[lucide--x] opacity-50" })) : null ]), DropdownContent({ class: "p-0 bg-base-100 rounded-box shadow-xl" }, Calendar({ - value: p2.value, + value: p.value, range: rangeMode(), - hour: p2.hour, + hour: p.hour, onChange: handleChange })) ]); }; -var Drawer = (p2, c) => div({ ...p2, class: cls("drawer", p2.class) }, c); -var DrawerToggle = (p2) => input({ ...p2, type: "checkbox", class: "drawer-toggle", checked: () => get(p2.checked), onchange: (e) => isFn(p2.checked) && p2.checked(e.target.checked) }); -var DrawerContent = (p2, c) => div({ ...p2, class: cls("drawer-content", p2.class) }, c); -var DrawerSide = (p2, c) => div({ ...p2, class: cls("drawer-side", p2.class) }, c); -var DrawerOverlay = (p2) => label({ ...p2, for: p2.for, class: cls("drawer-overlay", p2.class) }); -var Divider = (p2) => O("div", { ...p2, class: cls("divider", p2.class) }); -var Dropdown = (p2, c) => O("div", { ...p2, class: cls("dropdown", p2.class) }, c); -var DropdownButton = (p2, c) => O("div", { ...p2, tabindex: "0", role: "button", class: cls("btn", p2.class) }, c); -var DropdownContent = (p2, c) => O("div", { ...p2, tabindex: "0", class: cls("dropdown-content", p2.class) }, c); -var Fab = (p2, c) => O("div", { class: "fab" }, [O("div", { tabindex: "0", role: "button", class: cls("btn", p2.class) }, Icon(p2.icon)), c]); -var Fieldset = (p2, c) => O("fieldset", { class: cls("fieldset", p2.class) }, [O("legend", { class: "fieldset-legend" }, p2.label), c]); -var Fileinput = (p2) => { - const files = S([]); - const drag = S(false); - const error = S(null); - const maxBytes = (p2.max || 2) * 1024 * 1024; +var Drawer = (p, c) => div({ ...p, class: cls("drawer", p.class) }, c); +var DrawerToggle = (p) => input({ ...p, type: "checkbox", class: "drawer-toggle", checked: () => get(p.checked), onchange: (e) => isFn(p.checked) && p.checked(e.target.checked) }); +var DrawerContent = (p, c) => div({ ...p, class: cls("drawer-content", p.class) }, c); +var DrawerSide = (p, c) => div({ ...p, class: cls("drawer-side", p.class) }, c); +var DrawerOverlay = (p) => label({ ...p, for: p.for, class: cls("drawer-overlay", p.class) }); +var Divider = (p) => h("div", { ...p, class: cls("divider", p.class) }); +var Dropdown = (p, c) => h("div", { ...p, class: cls("dropdown", p.class) }, c); +var DropdownButton = (p, c) => h("div", { ...p, tabindex: "0", role: "button", class: cls("btn", p.class) }, c); +var DropdownContent = (p, c) => h("div", { ...p, tabindex: "0", class: cls("dropdown-content", p.class) }, c); +var Fab = (p, c) => h("div", { class: "fab" }, [h("div", { tabindex: "0", role: "button", class: cls("btn", p.class) }, Icon(p.icon)), c]); +var Fieldset = (p, c) => h("fieldset", { class: cls("fieldset", p.class) }, [h("legend", { class: "fieldset-legend" }, p.label), c]); +var Fileinput = (p) => { + const files = $([]); + const drag = $(false); + const error = $(null); + const maxBytes = (p.max || 2) * 1024 * 1024; const process = (fileList) => { const arr = Array.from(fileList); error(null); if (arr.some((f) => f.size > maxBytes)) { - error(`Máx ${p2.max || 2}MB`); + error(`Máx ${p.max || 2}MB`); return; } const updated = [...files(), ...arr]; files(updated); - if (isFn(p2.onselect)) - p2.onselect(updated); - else if (isFn(p2.value)) - p2.value(updated); + if (isFn(p.onselect)) + p.onselect(updated); + else if (isFn(p.value)) + p.value(updated); }; const remove = (idx) => { - const updated = files().filter((_2, i) => i !== idx); + const updated = files().filter((_, i) => i !== idx); files(updated); - if (isFn(p2.onselect)) - p2.onselect(updated); - else if (isFn(p2.value)) - p2.value(updated); + if (isFn(p.onselect)) + p.onselect(updated); + else if (isFn(p.value)) + p.value(updated); }; - return O("div", { class: cls("fieldset w-full p-0", p2.class) }, [ - O("label", { + return h("div", { class: cls("fieldset w-full p-0", p.class) }, [ + h("label", { class: () => `relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${drag() ? "border-primary bg-primary/10" : "border-base-content/20 bg-base-100 hover:bg-base-200"}`, ondragover: (e) => { e.preventDefault(); @@ -894,51 +463,51 @@ var Fileinput = (p2) => { process(e.dataTransfer.files); } }, [ - O("div", { class: "flex items-center gap-3 w-full" }, [ - O("span", { class: "icon-[lucide--upload]" }), - O("span", { class: "text-sm opacity-70 truncate grow text-left" }, "Arrastra o selecciona archivos..."), - O("span", { class: "text-[10px] opacity-40 shrink-0" }, `Máx ${p2.max || 2}MB`) + h("div", { class: "flex items-center gap-3 w-full" }, [ + h("span", { class: "icon-[lucide--upload]" }), + h("span", { class: "text-sm opacity-70 truncate grow text-left" }, "Arrastra o selecciona archivos..."), + h("span", { class: "text-[10px] opacity-40 shrink-0" }, `Máx ${p.max || 2}MB`) ]), - O("input", { + h("input", { type: "file", multiple: true, - accept: p2.accept || "*", + accept: p.accept || "*", class: "hidden", onchange: (e) => process(e.target.files) }) ]), - () => error() && O("span", { class: "text-[10px] text-error mt-1 px-1 font-medium" }, error()), - z(() => files().length > 0, () => O("ul", { class: "mt-2 space-y-1" }, K(files, (file, idx) => O("li", { class: "flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300" }, [ - O("div", { class: "flex items-center gap-2 truncate" }, [ - O("span", { class: "opacity-50" }, "\uD83D\uDCC4"), - O("span", { class: "truncate font-medium max-w-[200px]" }, file.name), - O("span", { class: "text-[9px] opacity-40" }, `(${(file.size / 1024).toFixed(0)} KB)`) + () => error() && h("span", { class: "text-[10px] text-error mt-1 px-1 font-medium" }, error()), + when(() => files().length > 0, () => h("ul", { class: "mt-2 space-y-1" }, each(files, (file, idx) => h("li", { class: "flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300" }, [ + h("div", { class: "flex items-center gap-2 truncate" }, [ + h("span", { class: "opacity-50" }, "\uD83D\uDCC4"), + h("span", { class: "truncate font-medium max-w-[200px]" }, file.name), + h("span", { class: "text-[9px] opacity-40" }, `(${(file.size / 1024).toFixed(0)} KB)`) ]), - O("button", { + h("button", { type: "button", class: "btn btn-ghost btn-xs btn-circle", onclick: (e) => { e.preventDefault(); remove(idx); } - }, O("span", { class: "icon-[lucide--x]" })) + }, h("span", { class: "icon-[lucide--x]" })) ])))) ]); }; -var Icon = (p2) => O("span", { class: p2.startsWith("icon-") ? p2 : "" }, p2.startsWith("icon-") ? null : p2); -var Indicator = (p2, c) => O("div", { ...p2, class: cls("indicator", p2.class) }, [p2.value && O("span", { class: cls("indicator-item badge", p2.class) }, p2.value), c]); -var Input = (p2) => { - const { label: label2, icon, float, placeholder, value, left, right, rule, hint, content, ...rest } = p2; - const showPassword = S(false); - const isPassword = p2.type === "password"; +var Icon = (p) => h("span", { class: p.startsWith("icon-") ? p : "" }, p.startsWith("icon-") ? null : p); +var Indicator = (p, c) => h("div", { ...p, class: cls("indicator", p.class) }, [p.value && h("span", { class: cls("indicator-item badge", p.class) }, p.value), c]); +var Input = (p) => { + const { label: label2, icon, float, placeholder, value, left, right, rule, hint, content, ...rest } = p; + const showPassword = $(false); + const isPassword = p.type === "password"; const pattern = rule ?? null; - const inputType = () => isPassword ? get(showPassword) ? "text" : "password" : p2.type || "search"; - return O("label", { class: float ? "floating-label" : "" }, [ - float ? O("span", {}, label2) : null, - O("label", { pattern, class: () => cls("input validator", p2.class) }, [ - label2 && !float ? O("span", { class: "label" }, label2) : null, + const inputType = () => isPassword ? get(showPassword) ? "text" : "password" : p.type || "search"; + return h("label", { class: float ? "floating-label" : "" }, [ + float ? h("span", {}, label2) : null, + h("label", { pattern, class: () => cls("input validator", p.class) }, [ + label2 && !float ? h("span", { class: "label" }, label2) : null, left ?? null, - O("input", { ...rest, type: inputType, class: "grow", pattern, placeholder: placeholder || label2 || " ", value }), + h("input", { ...rest, type: inputType, class: "grow", pattern, placeholder: placeholder || label2 || " ", value }), right ?? null, isPassword ? Swap({ class: "ml-2" }, [ SwapToggle({ value: showPassword, class: "swap-rotate" }), @@ -946,21 +515,21 @@ var Input = (p2) => { SwapOff({}, Icon("icon-[lucide--eye-off]")) ]) : null ]), - hint ? O("div", { class: "validator-hint" }, hint) : null + hint ? h("div", { class: "validator-hint" }, hint) : null ]); }; -var Kbd = (p2, c) => O("kbd", { ...p2, class: cls("kbd", p2.class) }, c); -var List = (p2, c) => O("ul", { ...p2, class: cls("list", p2.class) }, c); -var ListRows = (p2) => () => (get(p2.items) || []).map((item, idx) => O("li", { class: cls("list-row", p2.class, item?.class) }, typeof p2.render === "function" ? p2.render(item, idx) : item)); -var Loading = (p2, c) => O("span", { ...p2, class: cls("loading loading-spinner", p2.class) }, c); -var Menu = (p2) => { - if (p2.children !== undefined) - return O("ul", { class: cls("menu", p2.class), ...p2 }, p2.children); - const { items } = p2; - const render = (item) => item.children ? O("li", {}, O("details", { open: item.open || undefined }, [ - O("summary", {}, getBy(item)), - O("ul", {}, K(() => get(item.children) || [], render)) - ])) : O("li", {}, O("a", { +var Kbd = (p, c) => h("kbd", { ...p, class: cls("kbd", p.class) }, c); +var List = (p, c) => h("ul", { ...p, class: cls("list", p.class) }, c); +var ListRows = (p) => () => (get(p.items) || []).map((item, idx) => h("li", { class: cls("list-row", p.class, item?.class) }, typeof p.render === "function" ? p.render(item, idx) : item)); +var Loading = (p, c) => h("span", { ...p, class: cls("loading loading-spinner", p.class) }, c); +var Menu = (p) => { + if (p.children !== undefined) + return h("ul", { class: cls("menu", p.class), ...p }, p.children); + const { items } = p; + const render = (item) => item.children ? h("li", {}, h("details", { open: item.open || undefined }, [ + h("summary", {}, getBy(item)), + h("ul", {}, each(() => get(item.children) || [], render)) + ])) : h("li", {}, h("a", { href: item.href, onclick: item.onclick ? (e) => { if (!item.href) @@ -968,116 +537,116 @@ var Menu = (p2) => { item.onclick(e); } : null }, getBy(item))); - return O("ul", { class: cls("menu", p2.class) }, K(() => get(items) || [], render)); + return h("ul", { class: cls("menu", p.class) }, each(() => get(items) || [], render)); }; -var Modal = (p2) => { +var Modal = (p) => { let dialogRef = null; - R(() => { - const isOpen = get(p2.open); + watch(() => { + const isOpen = get(p.open); if (!dialogRef) return; isOpen ? dialogRef.showModal() : dialogRef.close(); }); - const close2 = () => isFn(p2.open) && p2.open(false); - return O("dialog", { - ...p2, + const close2 = () => isFn(p.open) && p.open(false); + return h("dialog", { + ...p, ref: (el) => dialogRef = el, - class: cls("modal", p2.class), + class: cls("modal", p.class), onclose: close2, oncancel: close2 }, [ - O("div", { class: "modal-box" }, [ - p2.title && O("h3", { class: "text-lg font-bold" }, p2.title), - p2.children, - O("div", { class: "modal-action" }, [ - p2.actions || Button({ class: "btn", onclick: close2 }, "Cerrar") + h("div", { class: "modal-box" }, [ + p.title && h("h3", { class: "text-lg font-bold" }, p.title), + p.children, + h("div", { class: "modal-action" }, [ + p.actions || Button({ class: "btn", onclick: close2 }, "Cerrar") ]) ]), - O("form", { method: "dialog", class: "modal-backdrop" }, [ - O("button", {}, "close") + h("form", { method: "dialog", class: "modal-backdrop" }, [ + h("button", {}, "close") ]) ]); }; -var Navbar = (p2, c) => O("div", { ...p2, class: cls("navbar", p2.class) }, c); -var Progress = (p2) => O("progress", { ...p2, class: cls("progress", p2.class) }); -var Radial = (p2, c) => O("div", { ...p2, class: cls("radial-progress", p2.class), style: `--value:${p2.value ?? 0};${p2.style ?? ""}`, role: "progressbar", "aria-valuenow": p2.value ?? 0 }, c ?? `${p2.value ?? 0}%`); -var Radio = (p2) => O("input", { ...p2, type: "radio", class: cls("radio", p2.class) }); -var Range = (p2) => O("input", { ...p2, type: "range", class: cls("range", p2.class) }); -var Rating = (p2, c) => O("div", { ...p2, class: "rating" }, c); -var RatingItems = (p2) => [...Array(p2.count)].map((_2, i) => O("input", { class: cls("mask", p2.class), name: p2.name, type: "radio", checked: () => get(p2.value) === i, onchange: () => isFn(p2.value) ? p2.value(i) : p2.onchange?.(i) })); -var Select = (p2, c) => { +var Navbar = (p, c) => h("div", { ...p, class: cls("navbar", p.class) }, c); +var Progress = (p) => h("progress", { ...p, class: cls("progress", p.class) }); +var Radial = (p, c) => h("div", { ...p, class: cls("radial-progress", p.class), style: `--value:${p.value ?? 0};${p.style ?? ""}`, role: "progressbar", "aria-valuenow": p.value ?? 0 }, c ?? `${p.value ?? 0}%`); +var Radio = (p) => h("input", { ...p, type: "radio", class: cls("radio", p.class) }); +var Range = (p) => h("input", { ...p, type: "range", class: cls("range", p.class) }); +var Rating = (p, c) => h("div", { ...p, class: "rating" }, c); +var RatingItems = (p) => [...Array(p.count)].map((_, i) => h("input", { class: cls("mask", p.class), name: p.name, type: "radio", checked: () => get(p.value) === i, onchange: () => isFn(p.value) ? p.value(i) : p.onchange?.(i) })); +var Select = (p, c) => { if (c !== undefined) - return O("select", { class: cls("select", p2.class), ...p2 }, c); - const { label: label2, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p2; + return h("select", { class: cls("select", p.class), ...p }, c); + const { label: label2, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p; const opts = () => { const raw = get(items) || []; const ph = placeholder ? [{ disabled: placeholderDisabled, label: placeholder, value: "" }] : []; return [...ph, ...raw]; }; - return O("label", { class: float ? "floating-label" : "" }, [ - float ? O("span", {}, label2) : null, - O("label", { class: cls("select", rest.class) }, [ - !float && label2 ? O("span", { class: "label" }, label2) : null, + return h("label", { class: float ? "floating-label" : "" }, [ + float ? h("span", {}, label2) : null, + h("label", { class: cls("select", rest.class) }, [ + !float && label2 ? h("span", { class: "label" }, label2) : null, left ?? null, - O("select", { + h("select", { value: () => get(value), onchange: (e) => isFn(value) ? value(e.target.value) : rest.onchange?.(e) - }, K(opts, (item) => { + }, each(opts, (item) => { const val = getBy(item, item.value !== undefined ? "value" : undefined); const lab = getBy(item, "label"); - return O("option", { value: val, disabled: item.disabled || undefined }, lab); + return h("option", { value: val, disabled: item.disabled || undefined }, lab); })), right ?? null ]), - hint ? O("div", { class: "validator-hint" }, hint) : null + hint ? h("div", { class: "validator-hint" }, hint) : null ]); }; -var Skeleton = (p2) => O("div", { ...p2, class: cls("skeleton", p2.class) }); -var SkeletonText = (p2) => O("span", { ...p2, class: cls("skeleton skeleton-text", p2.class) }); -var Stack = (p2, c) => O("div", { ...p2, class: cls("stack", p2.class) }, c); -var Stats = (p2, c) => O("div", { ...p2, class: cls("stats shadow", p2.class) }, c); -var Stat = (p2) => O("div", { ...p2, class: cls("stat", p2.class) }, [ - p2.title ? O("div", { class: "stat-title" }, p2.title) : null, - p2.value ? O("div", { class: "stat-value" }, p2.value) : null, - p2.desc ? O("div", { class: "stat-desc" }, p2.desc) : null +var Skeleton = (p) => h("div", { ...p, class: cls("skeleton", p.class) }); +var SkeletonText = (p) => h("span", { ...p, class: cls("skeleton skeleton-text", p.class) }); +var Stack = (p, c) => h("div", { ...p, class: cls("stack", p.class) }, c); +var Stats = (p, c) => h("div", { ...p, class: cls("stats shadow", p.class) }, c); +var Stat = (p) => h("div", { ...p, class: cls("stat", p.class) }, [ + p.title ? h("div", { class: "stat-title" }, p.title) : null, + p.value ? h("div", { class: "stat-value" }, p.value) : null, + p.desc ? h("div", { class: "stat-desc" }, p.desc) : null ]); -var Steps = (p2, c) => O("ul", { ...p2, class: cls("steps", p2.class) }, c); -var Step = (p2, c) => O("li", { ...p2, class: cls("step", p2.class), "data-content": p2.dataContent }, c); -var Swap = (p2, c) => O("label", { ...p2, class: cls("swap", p2.class) }, c); -var SwapToggle = (p2) => O("input", { type: "checkbox", checked: () => get(p2.value), onchange: (e) => isFn(p2.value) && p2.value(e.target.checked), class: p2.class }); -var SwapOn = (p2, c) => O("div", { ...p2, class: cls("swap-on", p2.class) }, c); -var SwapOff = (p2, c) => O("div", { ...p2, class: cls("swap-off", p2.class) }, c); -var Table = (p2, c) => O("table", { ...p2, class: cls("table", p2.class) }, c); +var Steps = (p, c) => h("ul", { ...p, class: cls("steps", p.class) }, c); +var Step = (p, c) => h("li", { ...p, class: cls("step", p.class), "data-content": p.dataContent }, c); +var Swap = (p, c) => h("label", { ...p, class: cls("swap", p.class) }, c); +var SwapToggle = (p) => h("input", { type: "checkbox", checked: () => get(p.value), onchange: (e) => isFn(p.value) && p.value(e.target.checked), class: p.class }); +var SwapOn = (p, c) => h("div", { ...p, class: cls("swap-on", p.class) }, c); +var SwapOff = (p, c) => h("div", { ...p, class: cls("swap-off", p.class) }, c); +var Table = (p, c) => h("table", { ...p, class: cls("table", p.class) }, c); var TableItems = ({ items, columns = [], header = true }) => { - const head = header !== false && columns.some((c) => c.label) ? O("thead", {}, O("tr", {}, columns.map((c) => O("th", { class: c.class }, c.label)))) : null; - const body = O("tbody", {}, () => { + const head = header !== false && columns.some((c) => c.label) ? h("thead", {}, h("tr", {}, columns.map((c) => h("th", { class: c.class }, c.label)))) : null; + const body = h("tbody", {}, () => { const list = get(items) || []; - return list.map((it, idx) => O("tr", {}, columns.map((c) => { - const v2 = c.render ? c.render(it, idx) : it[c.key]; - return O("td", { class: c.class }, v2); + return list.map((it, idx) => h("tr", {}, columns.map((c) => { + const v = c.render ? c.render(it, idx) : it[c.key]; + return h("td", { class: c.class }, v); }))); }); return [head, body].filter(Boolean); }; -var Tabs = (p2, c) => { - if (!p2.items) { - const { class: className2, ...rest2 } = p2; - return O("div", { ...rest2, class: cls("tabs", className2) }, c); +var Tabs = (p, c) => { + if (!p.items) { + const { class: className2, ...rest2 } = p; + return h("div", { ...rest2, class: cls("tabs", className2) }, c); } - const { items, activeIndex, onClose, class: className, ...rest } = p2; - const get2 = (x2) => isFn(x2) ? x2() : x2; + const { items, activeIndex, onClose, class: className, ...rest } = p; + const get2 = (x) => isFn(x) ? x() : x; const closeH = onClose || (isFn(items) ? (idx, item) => { const arr = get2(items); - const newArr = arr.filter((_2, i) => i !== idx); + const newArr = arr.filter((_, i) => i !== idx); items(newArr); if (activeIndex() >= newArr.length) activeIndex(Math.max(0, newArr.length - 1)); } : null); - return O("div", { ...rest, class: cls("tabs", className) }, () => { + return h("div", { ...rest, class: cls("tabs", className) }, () => { const list = get2(items) || []; return list.flatMap((it, idx) => { const isActive = () => activeIndex() === idx; - const button = O("button", { + const button = h("button", { class: () => `tab ${isActive() ? "tab-active" : ""} ${it.class || ""}`, onclick: (e) => { e.preventDefault(); @@ -1086,15 +655,15 @@ var Tabs = (p2, c) => { } }, [ getBy(it), - it.closable ? O("span", { + it.closable ? h("span", { class: "ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer", onclick: (e) => { e.stopPropagation(); closeH?.(idx, it); } - }, O("span", { class: "icon-[lucide--x] w-3 h-3" })) : null + }, h("span", { class: "icon-[lucide--x] w-3 h-3" })) : null ]); - const contentDiv = O("div", { + const contentDiv = h("div", { class: "tab-content bg-base-100 border-base-300 p-6", style: () => `display: ${isActive() ? "block" : "none"};` }, isFn(it.content) ? it.content() : it.content); @@ -1102,24 +671,24 @@ var Tabs = (p2, c) => { }); }); }; -var Textarea = (p2) => O("textarea", { ...p2, class: cls("textarea", p2.class) }); -var Textrotate = (p2, c) => O("span", { ...p2, class: cls("text-rotate", p2.class) }, c); -var Timeline = (p2, c) => O("ul", { ...p2, class: cls("timeline", p2.class) }, c); +var Textarea = (p) => h("textarea", { ...p, class: cls("textarea", p.class) }); +var Textrotate = (p, c) => h("span", { ...p, class: cls("text-rotate", p.class) }, c); +var Timeline = (p, c) => h("ul", { ...p, class: cls("timeline", p.class) }, c); var Toast = (message, type = "alert-success", duration = 3500) => { let container = document.getElementById("sigpro-toast-container"); if (!container) { - container = O("div", { + container = h("div", { id: "sigpro-toast-container", class: "fixed top-0 right-0 z-[9999] p-4 flex flex-col items-end gap-2 pointer-events-none" }); document.body.appendChild(container); } - const host = O("div", { style: "display: contents" }); + const host = h("div", { style: "display: contents" }); container.appendChild(host); let closeFn, timer, enterTimer; const ToastComponent = () => { - const visible = S(false); - const leaving = S(false); + const visible = $(false); + const leaving = $(false); closeFn = () => { if (leaving()) return; @@ -1135,8 +704,8 @@ var Toast = (message, type = "alert-success", duration = 3500) => { }; enterTimer = setTimeout(() => visible(true), 0); const content = typeof message === "function" ? get(message) : message; - const msgNode = typeof content === "string" ? O("span", {}, content) : content; - return O("div", { + const msgNode = typeof content === "string" ? h("span", {}, content) : content; + return h("div", { class: () => { const base = `alert alert-soft ${type} shadow-lg transition-all duration-300 inline-flex w-auto whitespace-nowrap pointer-events-auto`; if (leaving()) @@ -1147,34 +716,35 @@ var Toast = (message, type = "alert-success", duration = 3500) => { } }, [ msgNode, - O("button", { + h("button", { class: "btn btn-xs btn-circle btn-ghost", onclick: closeFn - }, O("span", { class: "icon-[lucide--x]" })) + }, h("span", { class: "icon-[lucide--x]" })) ]); }; - const instance = H(ToastComponent, host); + const instance = mount(ToastComponent, host); if (duration > 0) timer = setTimeout(closeFn, duration); return closeFn; }; -var Toggle = (p2) => O("input", { ...p2, type: "checkbox", class: cls("toggle", p2.class) }); -var Tooltip = (p2, c) => O("div", { ...p2, class: cls("tooltip", p2.class), "data-tip": p2.tip }, c); +var Toggle = (p) => h("input", { ...p, type: "checkbox", class: cls("toggle", p.class) }); +var Tooltip = (p, c) => h("div", { ...p, class: cls("tooltip", p.class), "data-tip": p.tip }, c); // sigpro-editor.js var exports_sigpro_editor = {}; __export(exports_sigpro_editor, { Editor: () => Editor }); -var Editor = (p2) => { - const { value, class: extraClass } = p2; +import { h as h2, $ as $2 } from "sigpro"; +var Editor = (p) => { + const { value, class: extraClass } = p; let editorRef = null; let savedRange = null; - const isSource = S(false); - const source = S(""); - const count = S(0); - const refreshTick = S(0); - const showEmojis = S(false); + const isSource = $2(false); + const source = $2(""); + const count = $2(0); + const refreshTick = $2(0); + const showEmojis = $2(false); const emojis = ["\uD83D\uDE00", "\uD83D\uDE0A", "\uD83D\uDE09", "\uD83E\uDDD0", "\uD83D\uDE2E", "\uD83E\uDD14", "\uD83D\uDE05", "\uD83D\uDE02", "\uD83D\uDE0D", "\uD83D\uDE18", "\uD83E\uDD70", "\uD83D\uDC4D", "\uD83D\uDC4E", "\uD83D\uDC4C", "\uD83E\uDD1D", "\uD83E\uDD1E", "\uD83D\uDC4B", "\uD83D\uDC4F", "\uD83D\uDE4C", "\uD83D\uDE4F", "\uD83D\uDCAA", "☝️", "\uD83D\uDC47", "\uD83D\uDC48", "\uD83D\uDC49", "\uD83D\uDD95", "✅", "⚠️", "\uD83D\uDE80", "\uD83D\uDCE2", "✉️", "❤️"]; const saveSelection = () => { const sel = window.getSelection(); @@ -1200,7 +770,7 @@ var Editor = (p2) => { if (isFn(value)) value(html); else - p2.onchange?.(html); + p.onchange?.(html); triggerRefresh(); }; const exec = (cmd, val = null) => { @@ -1257,63 +827,63 @@ var Editor = (p2) => { return false; } }; - const toolbar = O("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20" }, [ - O("div", { class: "flex flex-wrap gap-1 flex-1 items-center" }, [ - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("bold") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("bold") }, O("span", { class: "icon-[lucide--bold]" })), - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("italic") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("italic") }, O("span", { class: "icon-[lucide--italic]" })), - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("underline") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("underline") }, O("span", { class: "icon-[lucide--underline]" })), - O("input", { type: "color", class: "w-5 h-5 p-0 border-0 bg-transparent cursor-pointer", oninput: (e) => exec("foreColor", e.target.value) }), - O("span", { class: "w-px h-5 bg-base-300 mx-1" }), - O("button", { + const toolbar = h2("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20" }, [ + h2("div", { class: "flex flex-wrap gap-1 flex-1 items-center" }, [ + h2("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("bold") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("bold") }, h2("span", { class: "icon-[lucide--bold]" })), + h2("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("italic") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("italic") }, h2("span", { class: "icon-[lucide--italic]" })), + h2("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("underline") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("underline") }, h2("span", { class: "icon-[lucide--underline]" })), + h2("input", { type: "color", class: "w-5 h-5 p-0 border-0 bg-transparent cursor-pointer", oninput: (e) => exec("foreColor", e.target.value) }), + h2("span", { class: "w-px h-5 bg-base-300 mx-1" }), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("justifyLeft") - }, O("span", { class: "icon-[lucide--align-left]" })), - O("button", { + }, h2("span", { class: "icon-[lucide--align-left]" })), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("justifyCenter") - }, O("span", { class: "icon-[lucide--align-center]" })), - O("button", { + }, h2("span", { class: "icon-[lucide--align-center]" })), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("justifyRight") - }, O("span", { class: "icon-[lucide--align-right]" })), - O("span", { class: "w-px h-5 bg-base-300 mx-1" }), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertUnorderedList") }, O("span", { class: "icon-[lucide--list]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertOrderedList") }, O("span", { class: "icon-[lucide--list-ordered]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("outdent") }, O("span", { class: "icon-[lucide--indent-decrease]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("indent") }, O("span", { class: "icon-[lucide--indent-increase]" })), - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("formatBlock", "BLOCKQUOTE") ? "btn-active" : ""}`, onclick: () => exec("formatBlock", queryState("formatBlock", "BLOCKQUOTE") ? "P" : "BLOCKQUOTE") }, O("span", { class: "icon-[lucide--quote]" })), - O("span", { class: "w-px h-5 bg-base-300 mx-1" }), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { + }, h2("span", { class: "icon-[lucide--align-right]" })), + h2("span", { class: "w-px h-5 bg-base-300 mx-1" }), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertUnorderedList") }, h2("span", { class: "icon-[lucide--list]" })), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertOrderedList") }, h2("span", { class: "icon-[lucide--list-ordered]" })), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("outdent") }, h2("span", { class: "icon-[lucide--indent-decrease]" })), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("indent") }, h2("span", { class: "icon-[lucide--indent-increase]" })), + h2("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("formatBlock", "BLOCKQUOTE") ? "btn-active" : ""}`, onclick: () => exec("formatBlock", queryState("formatBlock", "BLOCKQUOTE") ? "P" : "BLOCKQUOTE") }, h2("span", { class: "icon-[lucide--quote]" })), + h2("span", { class: "w-px h-5 bg-base-300 mx-1" }), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { const url = window.prompt("URL:"); if (url) exec("createLink", url); - } }, O("span", { class: "icon-[lucide--link]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { + } }, h2("span", { class: "icon-[lucide--link]" })), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { const input2 = document.createElement("input"); input2.type = "file"; input2.onchange = (e) => handleUpload(e.target.files[0]); input2.click(); - } }, O("span", { class: "icon-[lucide--paperclip]" })), - O("div", { class: "relative" }, [ - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: (e) => { + } }, h2("span", { class: "icon-[lucide--paperclip]" })), + h2("div", { class: "relative" }, [ + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: (e) => { e.stopPropagation(); saveSelection(); showEmojis(!showEmojis()); - } }, O("span", { class: "icon-[lucide--smile]" })), - O("div", { class: "absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1", style: () => showEmojis() ? "display:flex" : "display:none" }, emojis.map((emo) => O("span", { class: "cursor-pointer hover:bg-base-200 p-1 rounded text-lg", onclick: (e) => { + } }, h2("span", { class: "icon-[lucide--smile]" })), + h2("div", { class: "absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1", style: () => showEmojis() ? "display:flex" : "display:none" }, emojis.map((emo) => h2("span", { class: "cursor-pointer hover:bg-base-200 p-1 rounded text-lg", onclick: (e) => { e.stopPropagation(); exec("insertText", emo); showEmojis(false); } }, emo))) ]), - O("span", { class: "w-px h-5 bg-base-300 mx-1" }), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo") }, O("span", { class: "icon-[lucide--undo-2]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo") }, O("span", { class: "icon-[lucide--redo-2]" })) + h2("span", { class: "w-px h-5 bg-base-300 mx-1" }), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo") }, h2("span", { class: "icon-[lucide--undo-2]" })), + h2("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo") }, h2("span", { class: "icon-[lucide--redo-2]" })) ]), - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${isSource() ? "btn-active" : ""}`, onclick: () => { + h2("button", { type: "button", class: () => `btn btn-ghost btn-xs ${isSource() ? "btn-active" : ""}`, onclick: () => { if (!isSource()) source(editorRef?.innerHTML || ""); else if (editorRef) { @@ -1321,7 +891,7 @@ var Editor = (p2) => { notify(); } isSource(!isSource()); - } }, O("span", { class: "icon-[lucide--code-2]" })) + } }, h2("span", { class: "icon-[lucide--code-2]" })) ]); if (typeof document !== "undefined" && !document.getElementById("editor-styles")) { const style = document.createElement("style"); @@ -1335,10 +905,10 @@ var Editor = (p2) => { `; document.head.appendChild(style); } - return O("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col", extraClass) }, [ + return h2("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col", extraClass) }, [ toolbar, - O("div", { class: "relative flex-1 flex flex-col", onclick: () => showEmojis(false) }, [ - O("div", { + h2("div", { class: "relative flex-1 flex flex-col", onclick: () => showEmojis(false) }, [ + h2("div", { ref: (el) => { if (!editorRef && el) { editorRef = el; @@ -1388,7 +958,7 @@ var Editor = (p2) => { handleUpload(e.dataTransfer.files[0]); } }), - O("textarea", { + h2("textarea", { class: "w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0", style: () => isSource() ? "" : "display:none", value: source, @@ -1396,17 +966,18 @@ var Editor = (p2) => { source(e.target.value); if (editorRef) editorRef.innerHTML = e.target.value; - p2.onchange?.(e.target.value); + p.onchange?.(e.target.value); } }) ]), - O("div", { class: "px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic" }, [ - O("span", () => `${count()} caracteres`) + h2("div", { class: "px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic" }, [ + h2("span", () => `${count()} caracteres`) ]) ]); }; // sigpro-locale.js +import { $ as $3, h as h3 } from "sigpro"; var i18n = { es: { close: "Cerrar", @@ -1425,7 +996,7 @@ var i18n = { nodata: "No data" } }; -var currentLocale = S("es"); +var currentLocale = $3("es"); var Locale = (t) => currentLocale(t); var tt = (t) => () => i18n[currentLocale()][t] || t; @@ -1438,17 +1009,6 @@ var Utils = { Locale, tt }; -if (typeof window !== "undefined") { - Object.entries({ ...Components, ...Utils }).forEach(([name, value]) => { - Object.defineProperty(window, name, { - value, - writable: false, - configurable: true, - enumerable: true - }); - }); - console.log("SigProUI DX installed"); -} export { Utils, Components diff --git a/dist/sigpro-ui.esm.min.js b/dist/sigpro-ui.esm.min.js index 688dedf..2cb49f1 100644 --- a/dist/sigpro-ui.esm.min.js +++ b/dist/sigpro-ui.esm.min.js @@ -1,7 +1,7 @@ -var zt=Object.defineProperty;var St=(t)=>t;function Bt(t,n){this[t]=St.bind(null,n)}var _t=(t,n)=>{for(var o in n)zt(t,o,{get:n[o],enumerable:!0,configurable:!0,set:Bt.bind(n,o)})};var lt={};_t(lt,{Tooltip:()=>Hn,Toggle:()=>Vn,Toast:()=>gn,Timeline:()=>In,Textrotate:()=>Yn,Textarea:()=>Un,Tabs:()=>qn,TableItems:()=>Gn,Table:()=>Zn,SwapToggle:()=>At,SwapOn:()=>Tt,SwapOff:()=>Wt,Swap:()=>Lt,Steps:()=>Qn,Step:()=>Mn,Stats:()=>Bn,Stat:()=>Pn,Stack:()=>Sn,SkeletonText:()=>zn,Skeleton:()=>Xn,Select:()=>On,RatingItems:()=>Kn,Rating:()=>Jn,Range:()=>$n,Radio:()=>Wn,Radial:()=>Tn,Progress:()=>An,Navbar:()=>Ln,Modal:()=>kn,Menu:()=>jn,Loading:()=>Cn,ListRows:()=>dn,List:()=>Nn,Kbd:()=>En,Input:()=>kt,Indicator:()=>yn,Icon:()=>m,Fileinput:()=>wn,Fieldset:()=>bn,Fab:()=>en,DropdownContent:()=>R,DropdownButton:()=>jt,Dropdown:()=>F,DrawerToggle:()=>un,DrawerSide:()=>an,DrawerOverlay:()=>_n,DrawerContent:()=>ln,Drawer:()=>fn,Divider:()=>sn,Datepicker:()=>on,Colorpicker:()=>rn,ColorPalette:()=>Ct,Checkbox:()=>nn,ChatImage:()=>tn,ChatHeader:()=>pt,ChatFooter:()=>ht,ChatBubble:()=>vt,Chat:()=>ct,CarouselItem:()=>Rt,Carousel:()=>Ft,CardTitle:()=>xt,CardBody:()=>Dt,CardActions:()=>mt,Card:()=>Ht,Calendar:()=>dt,Button:()=>Nt,Badge:()=>Vt,Autocomplete:()=>gt,Alert:()=>It,Accordion:()=>Yt});var z=(t)=>typeof t==="function",rt=(t)=>t&&typeof t==="object",q=Array.isArray,S=typeof document<"u"?document:null,st=(t)=>t?._isRuntime?t.container:t instanceof Node?t:S.createTextNode(t==null?"":String(t)),W=null,K=null,I=!1,V=0,H=new Set,it=new WeakMap,tt=Symbol("iter"),nt=new WeakMap,Z=(t)=>{if(!t||t._disposed)return;t._disposed=!0;let n=[t];while(n.length){let o=n.pop();if(o._cleanups)o._cleanups.forEach((u)=>u()),o._cleanups.clear();if(o._children)o._children.forEach((u)=>n.push(u)),o._children.clear();if(o._deps)o._deps.forEach((u)=>u.delete(o)),o._deps.clear()}},U=(t)=>{if(K)(K._cleanups||=new Set).add(t)},Pt=(t)=>{let n=W;W=null;try{return t()}finally{W=n}},g=(t,n=!1)=>{let o=()=>{if(o._disposed)return;if(o._deps)o._deps.forEach((_)=>_.delete(o));if(o._cleanups)o._cleanups.forEach((_)=>_()),o._cleanups.clear();let u=W,f=K;W=K=o;try{return o._result=t()}catch(_){console.error("[SigPro]",_)}finally{W=u,K=f}};if(o._deps=o._cleanups=o._children=null,o._disposed=!1,o._isComputed=n,o._depth=W?W._depth+1:0,o._mounts=[],o._parent=K,K)(K._children||=new Set).add(o);return o},bt=()=>{if(I)return;I=!0;let t=Array.from(H).sort((n,o)=>n._depth-o._depth);H.clear();for(let n of t)if(!n._disposed)n();I=!1},Qt=(t)=>{V++;try{return t()}finally{if(V--,V===0&&H.size>0&&!I)bt()}},X=(t,n=!1)=>{if(!n&&W&&!W._disposed)t.add(W),(W._deps||=new Set).add(t);else if(n&&t.size>0){let o=!1;for(let u of t){if(u===W||u._disposed)continue;if(u._isComputed){if(u._dirty=!0,u._subs)X(u._subs,!0)}else H.add(u),o=!0}if(o&&!I&&V===0)queueMicrotask(bt)}},k=(t,n=null)=>{let o=new Set;if(z(t)){let u,f=()=>{if(f._dirty){let _=W;W=f;try{let l=t();if(!Object.is(u,l))u=l,X(o,!0)}finally{W=_}f._dirty=!1}return X(o),u};if(f._isComputed=!0,f._subs=o,f._dirty=!0,f._deps=null,f._disposed=!1,f.stop=()=>{},K)U(f.stop);return f}if(n)try{t=JSON.parse(localStorage.getItem(n))??t}catch(u){}return(...u)=>{if(u.length){let f=z(u[0])?u[0](t):u[0];if(!Object.is(t,f)){if(t=f,n)localStorage.setItem(n,JSON.stringify(t));X(o,!0)}}return X(o),t}},wt=(t)=>{if(!rt(t))return t;let n=it.get(t);if(n)return n;let o=new Map,u=(_)=>{let l=o.get(_);if(!l)o.set(_,l=new Set);return l},f=new Proxy(t,{get(_,l,a){if(typeof l!=="symbol")X(u(l));return wt(Reflect.get(_,l,a))},set(_,l,a,s){let i=Reflect.has(_,l),y=Reflect.get(_,l,s),N=Reflect.set(_,l,a,s);if(N&&!Object.is(y,a)){if(X(u(l),!0),!i)X(u(tt),!0)}return N},deleteProperty(_,l){let a=Reflect.deleteProperty(_,l);if(a)X(u(l),!0),X(u(tt),!0);return a},ownKeys(_){return X(u(tt)),Reflect.ownKeys(_)}});return it.set(t,f),f},G=(t,n)=>{if(n===void 0){let u=g(t);return u(),()=>Z(u)}let o=g(()=>{let u=Array.isArray(t)?t.map((f)=>f()):t();Pt(()=>n(u))});return o(),()=>Z(o)},ot=(t)=>{if(!t)return;if(t._cleanups)t._cleanups.forEach((n)=>n()),t._cleanups.clear();if(t._ownerEffect)Z(t._ownerEffect);if(t.childNodes)t.childNodes.forEach((n)=>ot(n))},Mt=/^\s*(javascript|data|vbscript):/i,Zt=(t)=>t==="src"||t==="href"||t.startsWith("on"),et=(t,n)=>{if(n==null||n===!1)return null;if(Zt(t)){let o=String(n);if(Mt.test(o))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${t}`),"#"}return n},r=(t,n={},o=[])=>{if(n instanceof Node||q(n)||!rt(n))o=n,n={};if(z(t)){let l=g(()=>{let y=t(n,{children:o,emit:(N,...d)=>n[`on${N[0].toUpperCase()}${N.slice(1)}`]?.(...d)});return l._result=y,y});l();let a=l._result;if(a==null)return null;let s=a instanceof Node||q(a)&&a.every((y)=>y instanceof Node)?a:S.createTextNode(String(a)),i=(y)=>{if(rt(y)&&!y._isRuntime)y._mounts=l._mounts||[],y._cleanups=l._cleanups||new Set,y._ownerEffect=l};return q(s)?s.forEach(i):i(s),s}let u=/^(svg|path|circle|rect|line|poly(line|gon)|g|defs|text(path)?|tspan|use|symbol|image|marker|ellipse)$/i.test(t),f=u?S.createElementNS("http://www.w3.org/2000/svg",t):S.createElement(t);f._cleanups=new Set;for(let l in n){if(!n.hasOwnProperty(l))continue;let a=n[l];if(l==="ref"){z(a)?a(f):a.current=f;continue}if(u&&l.startsWith("xlink:")){a==null?f.removeAttributeNS("http://www.w3.org/1999/xlink",l.slice(6)):f.setAttributeNS("http://www.w3.org/1999/xlink",l.slice(6),a);continue}if(l.startsWith("on")){let s=l.slice(2).toLowerCase();f.addEventListener(s,a);let i=()=>f.removeEventListener(s,a);f._cleanups.add(i),U(i)}else if(z(a)){let s=g(()=>{let i=et(l,a());if(l==="class")f.className=i||"";else if(i==null)f.removeAttribute(l);else if(l in f&&!u)f[l]=i;else f.setAttribute(l,i===!0?"":i)});if(s(),f._cleanups.add(()=>Z(s)),U(()=>Z(s)),/^(INPUT|TEXTAREA|SELECT)$/.test(f.tagName)&&(l==="value"||l==="checked")){let i=l==="checked"?"change":"input";f.addEventListener(i,(y)=>a(y.target[l]))}}else{let s=et(l,a);if(s!=null)if(l in f&&!u)f[l]=s;else f.setAttribute(l,s===!0?"":s)}}let _=(l)=>{if(q(l))return l.forEach(_);if(z(l)){let a=S.createTextNode("");f.appendChild(a);let s=[],i=g(()=>{let y=l(),N=(q(y)?y:[y]).map(st);s.forEach((C)=>{if(C._isRuntime)C.destroy();else ot(C);if(C.parentNode)C.remove()});let d=a;for(let C=N.length-1;C>=0;C--){let w=N[C];if(w.parentNode!==d.parentNode)d.parentNode?.insertBefore(w,d);if(w._mounts)w._mounts.forEach((E)=>E());d=w}s=N});i(),f._cleanups.add(()=>Z(i)),U(()=>Z(i))}else{let a=st(l);if(f.appendChild(a),a._mounts)a._mounts.forEach((s)=>s())}};return _(o),f},x=(t)=>{let n=new Set,o=K,u=W,f=S.createElement("div");f.style.display="contents",f.setAttribute("role","presentation"),K={_cleanups:n},W=null;let _=(l)=>{if(!l)return;if(l._isRuntime)n.add(l.destroy),f.appendChild(l.container);else if(q(l))l.forEach(_);else f.appendChild(l instanceof Node?l:S.createTextNode(String(l==null?"":l)))};try{_(t({onCleanup:(l)=>n.add(l)}))}finally{K=o,W=u}return{_isRuntime:!0,container:f,destroy:()=>{n.forEach((l)=>l()),ot(f),f.remove()}}},ft=(t,n,o=null)=>{let u=S.createTextNode(""),f=r("div",{style:"display:contents"},[u]),_=null;return G(()=>!!(z(t)?t():t),(l)=>{if(_)_.destroy(),_=null;let a=l?n:o;if(a)_=x(()=>z(a)?a():a),f.insertBefore(_.container,u)}),U(()=>_?.destroy()),f},Gt=({name:t,duration:n=200,scale:o,slide:u,rotate:f,blur:_},l)=>{let a=typeof l==="function"?l():l;if(!(a instanceof Node))return a;if(t)return a.style.animation=`${t}-in ${n}ms`,a;let s=o||u||f||_,i=[o?"scale(0.95)":"",u?"translateY(-10px)":"",f?"rotate(-2deg)":""].filter(Boolean).join(" ");if(a.style.transition=`all ${n}ms ease`,a.style.opacity="0",s)a.style.transform=i;if(_)a.style.filter="blur(4px)";return requestAnimationFrame(()=>{if(a.style.opacity="1",s)a.style.transform="none";if(_)a.style.filter="none"}),a},M=(t,n,o)=>{let u=S.createTextNode(""),f=r("div",{style:"display:contents"},[u]),_=new Map;return G(()=>(z(t)?t():t)||[],(l)=>{let a=new Map,s=[],i=l||[];for(let N=0;Nn(d,N));else _.delete(C);a.set(C,w),s.push(w)}_.forEach((N)=>N.destroy());let y=u;for(let N=s.length-1;N>=0;N--){let d=s[N].container;if(d.nextSibling!==y)f.insertBefore(d,y);y=d}_=a}),f},Y=(t)=>{let n=()=>window.location.hash.slice(1)||"/",o=k(n()),u=()=>o(n());window.addEventListener("hashchange",u),U(()=>window.removeEventListener("hashchange",u));let f=r("div",{class:"router-hook"}),_=null;return G([o],()=>{let l=o(),a=t.find((s)=>{let i=s.path.split("/").filter(Boolean),y=l.split("/").filter(Boolean);return i.length===y.length&&i.every((N,d)=>N[0]===":"||N===y[d])})||t.find((s)=>s.path==="*");if(a){_?.destroy();let s={};a.path.split("/").filter(Boolean).forEach((i,y)=>{if(i[0]===":")s[i.slice(1)]=l.split("/").filter(Boolean)[y]}),Y.params(s),_=x(()=>z(a.component)?a.component(s):a.component),f.replaceChildren(_.container)}}),f};Y.params=k({});Y.to=(t)=>window.location.hash=t.replace(/^#?\/?/,"#/");Y.back=()=>window.history.back();Y.path=()=>window.location.hash.replace(/^#/,"")||"/";var qt=({url:t,method:n="GET",headers:o={}})=>{let u=k(!1),f=k(null),_=k(null),l=null,a=null;return{run:async(s=null)=>{l?.abort(),clearTimeout(a),l=new AbortController,a=setTimeout(()=>l.abort(),1e4),u(!0),f(null);try{let i=s instanceof FormData,y=await fetch(t,{method:n,headers:i?o:{"Content-Type":"application/json",...o},body:i?s:s?JSON.stringify(s):void 0,signal:l.signal}),N=await y.text(),d=N?JSON.parse(N):null;if(!y.ok)throw Error(d?.message||y.statusText);return _(d),d}catch(i){if(i.name!=="AbortError")f(i.message);throw i}finally{u(!1),clearTimeout(a),l=null,a=null}},abort:()=>l?.abort(),loading:u,error:f,data:_}},ut=(t,n)=>{let o=typeof n==="string"?S.querySelector(n):n;if(!o)return;if(nt.has(o))nt.get(o).destroy();let u=x(z(t)?t:()=>t);return o.replaceChildren(u.container),nt.set(o,u),u},Ut=Object.freeze({$:k,$$:wt,watch:G,h:r,when:ft,each:M,fx:Gt,router:Y,req:qt,mount:ut,batch:Qt});if(typeof window<"u")Object.assign(window,Ut),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((t)=>{window[t]=(n,o)=>r(t,n,o)});var L=(t)=>typeof t==="function"?t():t,Q=(t,n="label")=>t&&typeof t==="object"?t[n]:t,e=(...t)=>t.filter(Boolean).join(" ").trim(),A=(t)=>typeof t==="function",yt=(t,n,o="label",u=String(n).toLowerCase())=>!n?L(t):L(t).filter((f)=>String(f&&typeof f==="object"?f[o]:f).toLowerCase().includes(u)),Et=(t)=>`${t}-${Math.random().toString(36).slice(2,9)}`,D=()=>document.activeElement?.blur();var Yt=(t)=>{let n=t.name||Et("acc");return M(t.items,(o)=>{return r("div",{class:e("collapse",t.class)},[r("input",{type:"radio",name:n,checked:o.open||void 0}),o.title?r("div",{class:e("collapse-title",`${o.classTitle??" font-semibold"}`)},o.title):null,o.content?r("div",{class:e("collapse-content text-sm",`${o.classContent??" font-semibold"}`)},o.content):null])})},It=(t,n)=>r("div",{...t,class:e("alert",t.class)},n),gt=({items:t,value:n,onselect:o,placeholder:u="...",...f})=>{let _=k(L(n)||""),l=k(()=>yt(t,_())),a=(s)=>{let i=Q(s),y=typeof s==="string"?s:s.value;if(_(i),A(n))n(y);o?.(s),D()};return F({class:"w-full"},[r("div",{tabindex:"0",role:"button",class:"w-full"},kt({...f,placeholder:u,value:_,left:r("span",{class:"icon-[lucide--search]"}),oninput:(s)=>{if(_(s.target.value),A(n))n(s.target.value)}})),R({class:"p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50"},r("ul",{class:"menu flex-col flex-nowrap w-full p-0"},[M(l,(s)=>r("li",{},[r("a",{onmousedown:(i)=>i.preventDefault(),onclick:()=>a(s)},Q(s))]),(s)=>Q(s)),()=>l().length===0?r("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null]))])},Vt=(t,n)=>r("span",{...t,class:e("badge",t.class)},n),Nt=(t,n)=>r("button",{...t,class:e("btn",t.class)},n),dt=(t)=>{let n=k(new Date),o=k(null),u=k(0),f=k(0),_=new Date,l=`${_.getFullYear()}-${String(_.getMonth()+1).padStart(2,"0")}-${String(_.getDate()).padStart(2,"0")}`,a=(w)=>`${w.getFullYear()}-${String(w.getMonth()+1).padStart(2,"0")}-${String(w.getDate()).padStart(2,"0")}`,s=()=>L(t.range)===!0,i=()=>L(t.value),y=(w)=>{let E=a(w),J=i();if(s())if(!J?.start||J.start&&J.end)t.onChange?.({start:E,end:null,...t.hour&&{startHour:u()}});else{let B=J.start,O=E{let E=n();n(new Date(E.getFullYear(),E.getMonth()+w,1))},d=(w)=>{let E=n();n(new Date(E.getFullYear()+w,E.getMonth(),1))},C=({value:w,onChange:E})=>r("div",{class:"flex-1"},[r("div",{class:"flex gap-2 items-center"},[r("input",{type:"range",min:0,max:23,value:w,class:"range range-xs flex-1",oninput:(J)=>E(+J.target.value)}),r("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(L(w)).padStart(2,"0")+":00")])]);return r("div",{class:e("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",t.class)},[r("div",{class:"flex justify-between items-center mb-4 gap-1"},[r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(-1)},r("span",{class:"icon-[lucide--chevrons-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(-1)},r("span",{class:"icon-[lucide--chevron-left]"}))]),r("span",{class:"font-bold uppercase flex-1 text-center"},()=>n().toLocaleString("es-ES",{month:"short",year:"numeric"})),r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(1)},r("span",{class:"icon-[lucide--chevron-right]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(1)},r("span",{class:"icon-[lucide--chevrons-right]"}))])]),r("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>o(null)},[...["L","M","X","J","V","S","D"].map((w)=>r("div",{class:"text-[10px] opacity-40 font-bold text-center"},w)),()=>{let w=n(),E=w.getFullYear(),J=w.getMonth(),B=new Date(E,J,1).getDay(),O=B===0?6:B-1,c=new Date(E,J+1,0).getDate(),b=[];for(let j=0;j{let P=i(),v=o(),Ot=typeof P==="string"?P.split("T")[0]===$:P?.start===$,Xt=P?.end===$,h=!1;if(s()&&P?.start){let p=P.start;if(!P.end&&v)h=$>p&&$<=v||$=v;else if(P.end)h=$>p&&$s()&&o($),onclick:()=>y(T)},j.toString()))}return b}]),t.hour?r("div",{class:"mt-3 pt-2 border-t border-base-300"},s()?r("div",{class:"flex gap-4"},[C({value:u,onChange:(w)=>u(w)}),C({value:f,onChange:(w)=>f(w)})]):C({value:u,onChange:(w)=>u(w)})):null])},Ht=(t,n)=>r("div",{...t,class:e("card",t.class)},n),xt=(t,n)=>r("div",{...t,class:e("card-title",t.class)},n),Dt=(t,n)=>r("div",{...t,class:e("card-body",t.class)},n),mt=(t,n)=>r("div",{...t,class:e("card-actions",t.class)},n),Ft=(t,n)=>r("div",{...t,class:e("carousel",t.class)},n),Rt=(t,n)=>r("div",{...t,class:e("carousel-item",t.class)},n),ct=(t,n)=>r("div",{...t,class:e("chat",t.class)},n),vt=(t,n)=>r("div",{...t,class:e("chat-bubble",t.class)},n),ht=(t,n)=>r("div",{...t,class:e("chat-footer",t.class)},n),pt=(t,n)=>r("div",{...t,class:e("chat-header",t.class)},n),tn=(t,n)=>r("div",{...t,class:e("chat-image avatar",t.class)},r("div",{class:"w-10 rounded-full"},typeof n==="string"?r("img",{src:n,alt:"avatar"}):n)),nn=(t)=>r("input",{...t,type:"checkbox",class:e("checkbox",t.class)}),rn=(t)=>{let n=()=>L(t.value)||"#000000";return F({},[jt({class:"btn"},[r("div",{class:"size-5 rounded-sm",style:()=>`background-color: ${n()}`}),t.label&&r("span",{},t.label)]),R({class:"p-3 bg-base-100 rounded-box shadow-xl w-64"},Ct({value:t.value,onchange:(o)=>{A(t.value)?t.value(o):t.onchange?.(o)}}))])},Ct=(t)=>{let n=()=>L(t.value)||"#000000",o=["#000","#1A1A1A","#333","#4D4D4D","#666","#808080","#B3B3B3","#FFF","#450a0a","#7f1d1d","#991b1b","#b91c1c","#dc2626","#ef4444","#f87171","#fca5a5","#431407","#7c2d12","#9a3412","#c2410c","#ea580c","#f97316","#fb923c","#ffedd5","#713f12","#a16207","#ca8a04","#eab308","#facc15","#fde047","#fef08a","#fff9c4","#064e3b","#065f46","#059669","#10b981","#34d399","#4ade80","#84cc16","#d9f99d","#082f49","#075985","#0284c7","#0ea5e9","#38bdf8","#7dd3fc","#22d3ee","#cffafe","#1e1b4b","#312e81","#4338ca","#4f46e5","#6366f1","#818cf8","#a5b4fc","#e0e7ff","#2e1065","#4c1d95","#6d28d9","#7c3aed","#8b5cf6","#a855f7","#d946ef","#fae8ff"],u=(f)=>A(t.value)?t.value(f):t.onchange?.(f);return r("div",{class:"grid grid-cols-8 gap-1"},o.map((f)=>r("button",{type:"button",style:`background-color: ${f}`,class:()=>{return`size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${n().toLowerCase()===f.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>{u(f),D()}})))},on=(t)=>{let n=k(""),o=()=>L(t.range)===!0;G(()=>{let f=L(t.value);if(!f)return n("");let _="";if(typeof f==="string")_=t.hour&&f.includes("T")?f.replace("T"," "):f;else if(f.start&&f.end){let l=t.hour&&f.startHour!=null?`${f.start} ${String(f.startHour).padStart(2,"0")}:00`:f.start,a=t.hour&&f.endHour!=null?`${f.end} ${String(f.endHour).padStart(2,"0")}:00`:f.end;_=`${l} - ${a}`}else if(f.start)_=`${t.hour&&f.startHour!=null?`${f.start} ${String(f.startHour).padStart(2,"0")}:00`:f.start}...`;n(_)});let u=(f)=>{if(A(t.value))t.value(f);else t.onChange?.(f);if(!o()||f?.end!=null)D()};return F({class:e("w-full",t.class)},[r("label",{tabindex:"0",role:"button",class:"input input-bordered flex items-center gap-2 cursor-pointer"},[r("span",{class:"icon-[lucide--calendar] shrink-0"}),r("span",{class:()=>`grow text-left truncate ${!n()?"opacity-50":""}`},()=>n()||t.placeholder||(o()?"Seleccionar rango...":"Seleccionar fecha...")),()=>n()?r("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle -mr-2",onmousedown:(f)=>{if(f.preventDefault(),f.stopPropagation(),A(t.value))t.value(null);else t.onChange?.(null);n("")}},r("span",{class:"icon-[lucide--x] opacity-50"})):null]),R({class:"p-0 bg-base-100 rounded-box shadow-xl"},dt({value:t.value,range:o(),hour:t.hour,onChange:u}))])},fn=(t,n)=>div({...t,class:e("drawer",t.class)},n),un=(t)=>input({...t,type:"checkbox",class:"drawer-toggle",checked:()=>L(t.checked),onchange:(n)=>A(t.checked)&&t.checked(n.target.checked)}),ln=(t,n)=>div({...t,class:e("drawer-content",t.class)},n),an=(t,n)=>div({...t,class:e("drawer-side",t.class)},n),_n=(t)=>label({...t,for:t.for,class:e("drawer-overlay",t.class)}),sn=(t)=>r("div",{...t,class:e("divider",t.class)}),F=(t,n)=>r("div",{...t,class:e("dropdown",t.class)},n),jt=(t,n)=>r("div",{...t,tabindex:"0",role:"button",class:e("btn",t.class)},n),R=(t,n)=>r("div",{...t,tabindex:"0",class:e("dropdown-content",t.class)},n),en=(t,n)=>r("div",{class:"fab"},[r("div",{tabindex:"0",role:"button",class:e("btn",t.class)},m(t.icon)),n]),bn=(t,n)=>r("fieldset",{class:e("fieldset",t.class)},[r("legend",{class:"fieldset-legend"},t.label),n]),wn=(t)=>{let n=k([]),o=k(!1),u=k(null),f=(t.max||2)*1024*1024,_=(a)=>{let s=Array.from(a);if(u(null),s.some((y)=>y.size>f)){u(`Máx ${t.max||2}MB`);return}let i=[...n(),...s];if(n(i),A(t.onselect))t.onselect(i);else if(A(t.value))t.value(i)},l=(a)=>{let s=n().filter((i,y)=>y!==a);if(n(s),A(t.onselect))t.onselect(s);else if(A(t.value))t.value(s)};return r("div",{class:e("fieldset w-full p-0",t.class)},[r("label",{class:()=>`relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${o()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(a)=>{a.preventDefault(),o(!0)},ondragleave:()=>o(!1),ondrop:(a)=>{a.preventDefault(),o(!1),_(a.dataTransfer.files)}},[r("div",{class:"flex items-center gap-3 w-full"},[r("span",{class:"icon-[lucide--upload]"}),r("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),r("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${t.max||2}MB`)]),r("input",{type:"file",multiple:!0,accept:t.accept||"*",class:"hidden",onchange:(a)=>_(a.target.files)})]),()=>u()&&r("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},u()),ft(()=>n().length>0,()=>r("ul",{class:"mt-2 space-y-1"},M(n,(a,s)=>r("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[r("div",{class:"flex items-center gap-2 truncate"},[r("span",{class:"opacity-50"},"\uD83D\uDCC4"),r("span",{class:"truncate font-medium max-w-[200px]"},a.name),r("span",{class:"text-[9px] opacity-40"},`(${(a.size/1024).toFixed(0)} KB)`)]),r("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(i)=>{i.preventDefault(),l(s)}},r("span",{class:"icon-[lucide--x]"}))]))))])},m=(t)=>r("span",{class:t.startsWith("icon-")?t:""},t.startsWith("icon-")?null:t),yn=(t,n)=>r("div",{...t,class:e("indicator",t.class)},[t.value&&r("span",{class:e("indicator-item badge",t.class)},t.value),n]),kt=(t)=>{let{label:n,icon:o,float:u,placeholder:f,value:_,left:l,right:a,rule:s,hint:i,content:y,...N}=t,d=k(!1),C=t.type==="password",w=s??null,E=()=>C?L(d)?"text":"password":t.type||"search";return r("label",{class:u?"floating-label":""},[u?r("span",{},n):null,r("label",{pattern:w,class:()=>e("input validator",t.class)},[n&&!u?r("span",{class:"label"},n):null,l??null,r("input",{...N,type:E,class:"grow",pattern:w,placeholder:f||n||" ",value:_}),a??null,C?Lt({class:"ml-2"},[At({value:d,class:"swap-rotate"}),Tt({},m("icon-[lucide--eye]")),Wt({},m("icon-[lucide--eye-off]"))]):null]),i?r("div",{class:"validator-hint"},i):null])},En=(t,n)=>r("kbd",{...t,class:e("kbd",t.class)},n),Nn=(t,n)=>r("ul",{...t,class:e("list",t.class)},n),dn=(t)=>()=>(L(t.items)||[]).map((n,o)=>r("li",{class:e("list-row",t.class,n?.class)},typeof t.render==="function"?t.render(n,o):n)),Cn=(t,n)=>r("span",{...t,class:e("loading loading-spinner",t.class)},n),jn=(t)=>{if(t.children!==void 0)return r("ul",{class:e("menu",t.class),...t},t.children);let{items:n}=t,o=(u)=>u.children?r("li",{},r("details",{open:u.open||void 0},[r("summary",{},Q(u)),r("ul",{},M(()=>L(u.children)||[],o))])):r("li",{},r("a",{href:u.href,onclick:u.onclick?(f)=>{if(!u.href)f.preventDefault();u.onclick(f)}:null},Q(u)));return r("ul",{class:e("menu",t.class)},M(()=>L(n)||[],o))},kn=(t)=>{let n=null;G(()=>{let u=L(t.open);if(!n)return;u?n.showModal():n.close()});let o=()=>A(t.open)&&t.open(!1);return r("dialog",{...t,ref:(u)=>n=u,class:e("modal",t.class),onclose:o,oncancel:o},[r("div",{class:"modal-box"},[t.title&&r("h3",{class:"text-lg font-bold"},t.title),t.children,r("div",{class:"modal-action"},[t.actions||Nt({class:"btn",onclick:o},"Cerrar")])]),r("form",{method:"dialog",class:"modal-backdrop"},[r("button",{},"close")])])},Ln=(t,n)=>r("div",{...t,class:e("navbar",t.class)},n),An=(t)=>r("progress",{...t,class:e("progress",t.class)}),Tn=(t,n)=>r("div",{...t,class:e("radial-progress",t.class),style:`--value:${t.value??0};${t.style??""}`,role:"progressbar","aria-valuenow":t.value??0},n??`${t.value??0}%`),Wn=(t)=>r("input",{...t,type:"radio",class:e("radio",t.class)}),$n=(t)=>r("input",{...t,type:"range",class:e("range",t.class)}),Jn=(t,n)=>r("div",{...t,class:"rating"},n),Kn=(t)=>[...Array(t.count)].map((n,o)=>r("input",{class:e("mask",t.class),name:t.name,type:"radio",checked:()=>L(t.value)===o,onchange:()=>A(t.value)?t.value(o):t.onchange?.(o)})),On=(t,n)=>{if(n!==void 0)return r("select",{class:e("select",t.class),...t},n);let{label:o,float:u,placeholder:f,placeholderDisabled:_=!0,value:l,left:a,right:s,hint:i,items:y,keyFn:N,...d}=t,C=()=>{let w=L(y)||[];return[...f?[{disabled:_,label:f,value:""}]:[],...w]};return r("label",{class:u?"floating-label":""},[u?r("span",{},o):null,r("label",{class:e("select",d.class)},[!u&&o?r("span",{class:"label"},o):null,a??null,r("select",{value:()=>L(l),onchange:(w)=>A(l)?l(w.target.value):d.onchange?.(w)},M(C,(w)=>{let E=Q(w,w.value!==void 0?"value":void 0),J=Q(w,"label");return r("option",{value:E,disabled:w.disabled||void 0},J)})),s??null]),i?r("div",{class:"validator-hint"},i):null])},Xn=(t)=>r("div",{...t,class:e("skeleton",t.class)}),zn=(t)=>r("span",{...t,class:e("skeleton skeleton-text",t.class)}),Sn=(t,n)=>r("div",{...t,class:e("stack",t.class)},n),Bn=(t,n)=>r("div",{...t,class:e("stats shadow",t.class)},n),Pn=(t)=>r("div",{...t,class:e("stat",t.class)},[t.title?r("div",{class:"stat-title"},t.title):null,t.value?r("div",{class:"stat-value"},t.value):null,t.desc?r("div",{class:"stat-desc"},t.desc):null]),Qn=(t,n)=>r("ul",{...t,class:e("steps",t.class)},n),Mn=(t,n)=>r("li",{...t,class:e("step",t.class),"data-content":t.dataContent},n),Lt=(t,n)=>r("label",{...t,class:e("swap",t.class)},n),At=(t)=>r("input",{type:"checkbox",checked:()=>L(t.value),onchange:(n)=>A(t.value)&&t.value(n.target.checked),class:t.class}),Tt=(t,n)=>r("div",{...t,class:e("swap-on",t.class)},n),Wt=(t,n)=>r("div",{...t,class:e("swap-off",t.class)},n),Zn=(t,n)=>r("table",{...t,class:e("table",t.class)},n),Gn=({items:t,columns:n=[],header:o=!0})=>{let u=o!==!1&&n.some((_)=>_.label)?r("thead",{},r("tr",{},n.map((_)=>r("th",{class:_.class},_.label)))):null,f=r("tbody",{},()=>{return(L(t)||[]).map((l,a)=>r("tr",{},n.map((s)=>{let i=s.render?s.render(l,a):l[s.key];return r("td",{class:s.class},i)})))});return[u,f].filter(Boolean)},qn=(t,n)=>{if(!t.items){let{class:i,...y}=t;return r("div",{...y,class:e("tabs",i)},n)}let{items:o,activeIndex:u,onClose:f,class:_,...l}=t,a=(i)=>A(i)?i():i,s=f||(A(o)?(i,y)=>{let d=a(o).filter((C,w)=>w!==i);if(o(d),u()>=d.length)u(Math.max(0,d.length-1))}:null);return r("div",{...l,class:e("tabs",_)},()=>{return(a(o)||[]).flatMap((y,N)=>{let d=()=>u()===N,C=r("button",{class:()=>`tab ${d()?"tab-active":""} ${y.class||""}`,onclick:(E)=>{E.preventDefault(),u(N),y.onclick?.(E)}},[Q(y),y.closable?r("span",{class:"ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",onclick:(E)=>{E.stopPropagation(),s?.(N,y)}},r("span",{class:"icon-[lucide--x] w-3 h-3"})):null]),w=r("div",{class:"tab-content bg-base-100 border-base-300 p-6",style:()=>`display: ${d()?"block":"none"};`},A(y.content)?y.content():y.content);return[C,w]})})},Un=(t)=>r("textarea",{...t,class:e("textarea",t.class)}),Yn=(t,n)=>r("span",{...t,class:e("text-rotate",t.class)},n),In=(t,n)=>r("ul",{...t,class:e("timeline",t.class)},n),gn=(t,n="alert-success",o=3500)=>{let u=document.getElementById("sigpro-toast-container");if(!u)u=r("div",{id:"sigpro-toast-container",class:"fixed top-0 right-0 z-[9999] p-4 flex flex-col items-end gap-2 pointer-events-none"}),document.body.appendChild(u);let f=r("div",{style:"display: contents"});u.appendChild(f);let _,l,a,i=ut(()=>{let y=k(!1),N=k(!1);_=()=>{if(N())return;clearTimeout(l),clearTimeout(a),N(!0),setTimeout(()=>{if(i.destroy(),f.remove(),!u.hasChildNodes())u.remove()},300)},a=setTimeout(()=>y(!0),0);let d=typeof t==="function"?L(t):t,C=typeof d==="string"?r("span",{},d):d;return r("div",{class:()=>{let w=`alert alert-soft ${n} shadow-lg transition-all duration-300 inline-flex w-auto whitespace-nowrap pointer-events-auto`;if(N())return`${w} translate-x-full opacity-0`;if(y())return`${w} translate-x-0 opacity-100`;return`${w} translate-x-10 opacity-0`}},[C,r("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:_},r("span",{class:"icon-[lucide--x]"}))])},f);if(o>0)l=setTimeout(_,o);return _},Vn=(t)=>r("input",{...t,type:"checkbox",class:e("toggle",t.class)}),Hn=(t,n)=>r("div",{...t,class:e("tooltip",t.class),"data-tip":t.tip},n);var at={};_t(at,{Editor:()=>xn});var xn=(t)=>{let{value:n,class:o}=t,u=null,f=null,_=k(!1),l=k(""),a=k(0),s=k(0),i=k(!1),y=["\uD83D\uDE00","\uD83D\uDE0A","\uD83D\uDE09","\uD83E\uDDD0","\uD83D\uDE2E","\uD83E\uDD14","\uD83D\uDE05","\uD83D\uDE02","\uD83D\uDE0D","\uD83D\uDE18","\uD83E\uDD70","\uD83D\uDC4D","\uD83D\uDC4E","\uD83D\uDC4C","\uD83E\uDD1D","\uD83E\uDD1E","\uD83D\uDC4B","\uD83D\uDC4F","\uD83D\uDE4C","\uD83D\uDE4F","\uD83D\uDCAA","☝️","\uD83D\uDC47","\uD83D\uDC48","\uD83D\uDC49","\uD83D\uDD95","✅","⚠️","\uD83D\uDE80","\uD83D\uDCE2","✉️","❤️"],N=()=>{let b=window.getSelection();if(b.getRangeAt&&b.rangeCount)f=b.getRangeAt(0)},d=()=>{if(f){let b=window.getSelection();b.removeAllRanges(),b.addRange(f)}},C=()=>{if(s(s()+1),u)a(u.innerText.length)},w=()=>{if(!u)return;let b=u.innerHTML;if(A(n))n(b);else t.onchange?.(b);C()},E=(b,j=null)=>{if(!u)return;if(u.focus(),f)d();document.execCommand(b,!1,j),f=null,w()},J=(b)=>{let j=document.createElement("div");j.style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;";let T=document.createElement("img");T.src=b,T.style="max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;",j.onclick=()=>document.body.removeChild(j),j.appendChild(T),document.body.appendChild(j)},B=(b)=>{if(!b)return;let j=new FileReader;j.onload=(T)=>{if(b.type.startsWith("image/")){let $=`
 `;E("insertHTML",$)}else{let $=`${b.name} `;E("insertHTML",$)}},j.readAsDataURL(b)},O=(b,j=null)=>{if(s(),!u||_())return!1;try{if(b==="formatBlock"){let T=window.getSelection().getRangeAt(0).commonAncestorContainer;while(T&&T!==u){if(T.nodeType===1&&T.tagName===j)return!0;T=T.parentNode}return!1}return document.queryCommandState(b)}catch(T){return!1}},c=r("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20"},[r("div",{class:"flex flex-wrap gap-1 flex-1 items-center"},[r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("bold")?"btn-active bg-primary/20":""}`,onclick:()=>E("bold")},r("span",{class:"icon-[lucide--bold]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("italic")?"btn-active bg-primary/20":""}`,onclick:()=>E("italic")},r("span",{class:"icon-[lucide--italic]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("underline")?"btn-active bg-primary/20":""}`,onclick:()=>E("underline")},r("span",{class:"icon-[lucide--underline]"})),r("input",{type:"color",class:"w-5 h-5 p-0 border-0 bg-transparent cursor-pointer",oninput:(b)=>E("foreColor",b.target.value)}),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyLeft")},r("span",{class:"icon-[lucide--align-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyCenter")},r("span",{class:"icon-[lucide--align-center]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyRight")},r("span",{class:"icon-[lucide--align-right]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertUnorderedList")},r("span",{class:"icon-[lucide--list]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertOrderedList")},r("span",{class:"icon-[lucide--list-ordered]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("outdent")},r("span",{class:"icon-[lucide--indent-decrease]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("indent")},r("span",{class:"icon-[lucide--indent-increase]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>E("formatBlock",O("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},r("span",{class:"icon-[lucide--quote]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let b=window.prompt("URL:");if(b)E("createLink",b)}},r("span",{class:"icon-[lucide--link]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let b=document.createElement("input");b.type="file",b.onchange=(j)=>B(j.target.files[0]),b.click()}},r("span",{class:"icon-[lucide--paperclip]"})),r("div",{class:"relative"},[r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:(b)=>{b.stopPropagation(),N(),i(!i())}},r("span",{class:"icon-[lucide--smile]"})),r("div",{class:"absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1",style:()=>i()?"display:flex":"display:none"},y.map((b)=>r("span",{class:"cursor-pointer hover:bg-base-200 p-1 rounded text-lg",onclick:(j)=>{j.stopPropagation(),E("insertText",b),i(!1)}},b)))]),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("undo")},r("span",{class:"icon-[lucide--undo-2]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("redo")},r("span",{class:"icon-[lucide--redo-2]"}))]),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${_()?"btn-active":""}`,onclick:()=>{if(!_())l(u?.innerHTML||"");else if(u)u.innerHTML=l(),w();_(!_())}},r("span",{class:"icon-[lucide--code-2]"}))]);if(typeof document<"u"&&!document.getElementById("editor-styles")){let b=document.createElement("style");b.id="editor-styles",b.textContent=` +var _1=Object.defineProperty;var J1=(L)=>L;function j1(L,C){this[L]=J1.bind(null,C)}var d=(L,C)=>{for(var _ in C)_1(L,_,{get:C[_],enumerable:!0,configurable:!0,set:j1.bind(C,_)})};var n={};d(n,{Tooltip:()=>k8,Toggle:()=>U8,Toast:()=>Y8,Timeline:()=>N8,Textrotate:()=>G8,Textarea:()=>z8,Tabs:()=>j8,TableItems:()=>J8,Table:()=>_8,SwapToggle:()=>e,SwapOn:()=>L1,SwapOff:()=>W1,Swap:()=>p,Steps:()=>X8,Step:()=>Z8,Stats:()=>K8,Stat:()=>Q8,Stack:()=>C8,SkeletonText:()=>W8,Skeleton:()=>L8,Select:()=>e1,RatingItems:()=>p1,Rating:()=>i1,Range:()=>h1,Radio:()=>t1,Radial:()=>c1,Progress:()=>l1,Navbar:()=>s1,Modal:()=>a1,Menu:()=>r1,Loading:()=>d1,ListRows:()=>o1,List:()=>n1,Kbd:()=>m1,Input:()=>i,Indicator:()=>v1,Icon:()=>x,Fileinput:()=>u1,Fieldset:()=>g1,Fab:()=>f1,DropdownContent:()=>f,DropdownButton:()=>h,Dropdown:()=>y,DrawerToggle:()=>S1,DrawerSide:()=>R1,DrawerOverlay:()=>x1,DrawerContent:()=>w1,Drawer:()=>F1,Divider:()=>y1,Datepicker:()=>D1,Colorpicker:()=>H1,ColorPalette:()=>t,Checkbox:()=>b1,ChatImage:()=>I1,ChatHeader:()=>V1,ChatFooter:()=>T1,ChatBubble:()=>O1,Chat:()=>q1,CarouselItem:()=>$1,Carousel:()=>P1,CardTitle:()=>M1,CardBody:()=>A1,CardActions:()=>B1,Card:()=>E1,Calendar:()=>c,Button:()=>l,Badge:()=>k1,Autocomplete:()=>U1,Alert:()=>Y1,Accordion:()=>N1});import{h as W,each as S,watch as s,when as z1,mount as G1,$ as I}from"sigpro";var A=(L)=>typeof L==="function"?L():L,F=(L,C="label")=>L&&typeof L==="object"?L[C]:L,Q=(...L)=>L.filter(Boolean).join(" ").trim(),P=(L)=>typeof L==="function",r=(L,C,_="label",K=String(C).toLowerCase())=>!C?A(L):A(L).filter((X)=>String(X&&typeof X==="object"?X[_]:X).toLowerCase().includes(K)),a=(L)=>`${L}-${Math.random().toString(36).slice(2,9)}`,R=()=>document.activeElement?.blur();var N1=(L)=>{let C=L.name||a("acc");return S(L.items,(_)=>{return W("div",{class:Q("collapse",L.class)},[W("input",{type:"radio",name:C,checked:_.open||void 0}),_.title?W("div",{class:Q("collapse-title",`${_.classTitle??" font-semibold"}`)},_.title):null,_.content?W("div",{class:Q("collapse-content text-sm",`${_.classContent??" font-semibold"}`)},_.content):null])})},Y1=(L,C)=>W("div",{...L,class:Q("alert",L.class)},C),U1=({items:L,value:C,onselect:_,placeholder:K="...",...X})=>{let N=I(A(C)||""),k=I(()=>r(L,N())),U=(G)=>{let Y=F(G),M=typeof G==="string"?G:G.value;if(N(Y),P(C))C(M);_?.(G),R()};return y({class:"w-full"},[W("div",{tabindex:"0",role:"button",class:"w-full"},i({...X,placeholder:K,value:N,left:W("span",{class:"icon-[lucide--search]"}),oninput:(G)=>{if(N(G.target.value),P(C))C(G.target.value)}})),f({class:"p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50"},W("ul",{class:"menu flex-col flex-nowrap w-full p-0"},[S(k,(G)=>W("li",{},[W("a",{onmousedown:(Y)=>Y.preventDefault(),onclick:()=>U(G)},F(G))]),(G)=>F(G)),()=>k().length===0?W("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null]))])},k1=(L,C)=>W("span",{...L,class:Q("badge",L.class)},C),l=(L,C)=>W("button",{...L,class:Q("btn",L.class)},C),c=(L)=>{let C=I(new Date),_=I(null),K=I(0),X=I(0),N=new Date,k=`${N.getFullYear()}-${String(N.getMonth()+1).padStart(2,"0")}-${String(N.getDate()).padStart(2,"0")}`,U=(j)=>`${j.getFullYear()}-${String(j.getMonth()+1).padStart(2,"0")}-${String(j.getDate()).padStart(2,"0")}`,G=()=>A(L.range)===!0,Y=()=>A(L.value),M=(j)=>{let z=U(j),V=Y();if(G())if(!V?.start||V.start&&V.end)L.onChange?.({start:z,end:null,...L.hour&&{startHour:K()}});else{let H=V.start,b=z{let z=C();C(new Date(z.getFullYear(),z.getMonth()+j,1))},B=(j)=>{let z=C();C(new Date(z.getFullYear()+j,z.getMonth(),1))},T=({value:j,onChange:z})=>W("div",{class:"flex-1"},[W("div",{class:"flex gap-2 items-center"},[W("input",{type:"range",min:0,max:23,value:j,class:"range range-xs flex-1",oninput:(V)=>z(+V.target.value)}),W("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(A(j)).padStart(2,"0")+":00")])]);return W("div",{class:Q("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",L.class)},[W("div",{class:"flex justify-between items-center mb-4 gap-1"},[W("div",{class:"flex gap-0.5"},[W("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>B(-1)},W("span",{class:"icon-[lucide--chevrons-left]"})),W("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>q(-1)},W("span",{class:"icon-[lucide--chevron-left]"}))]),W("span",{class:"font-bold uppercase flex-1 text-center"},()=>C().toLocaleString("es-ES",{month:"short",year:"numeric"})),W("div",{class:"flex gap-0.5"},[W("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>q(1)},W("span",{class:"icon-[lucide--chevron-right]"})),W("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>B(1)},W("span",{class:"icon-[lucide--chevrons-right]"}))])]),W("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>_(null)},[...["L","M","X","J","V","S","D"].map((j)=>W("div",{class:"text-[10px] opacity-40 font-bold text-center"},j)),()=>{let j=C(),z=j.getFullYear(),V=j.getMonth(),H=new Date(z,V,1).getDay(),b=H===0?6:H-1,g=new Date(z,V+1,0).getDate(),Z=[];for(let E=0;E{let D=Y(),u=_(),X1=typeof D==="string"?D.split("T")[0]===O:D?.start===O,Z1=D?.end===O,v=!1;if(G()&&D?.start){let m=D.start;if(!D.end&&u)v=O>m&&O<=u||O=u;else if(D.end)v=O>m&&OG()&&_(O),onclick:()=>M($)},E.toString()))}return Z}]),L.hour?W("div",{class:"mt-3 pt-2 border-t border-base-300"},G()?W("div",{class:"flex gap-4"},[T({value:K,onChange:(j)=>K(j)}),T({value:X,onChange:(j)=>X(j)})]):T({value:K,onChange:(j)=>K(j)})):null])},E1=(L,C)=>W("div",{...L,class:Q("card",L.class)},C),M1=(L,C)=>W("div",{...L,class:Q("card-title",L.class)},C),A1=(L,C)=>W("div",{...L,class:Q("card-body",L.class)},C),B1=(L,C)=>W("div",{...L,class:Q("card-actions",L.class)},C),P1=(L,C)=>W("div",{...L,class:Q("carousel",L.class)},C),$1=(L,C)=>W("div",{...L,class:Q("carousel-item",L.class)},C),q1=(L,C)=>W("div",{...L,class:Q("chat",L.class)},C),O1=(L,C)=>W("div",{...L,class:Q("chat-bubble",L.class)},C),T1=(L,C)=>W("div",{...L,class:Q("chat-footer",L.class)},C),V1=(L,C)=>W("div",{...L,class:Q("chat-header",L.class)},C),I1=(L,C)=>W("div",{...L,class:Q("chat-image avatar",L.class)},W("div",{class:"w-10 rounded-full"},typeof C==="string"?W("img",{src:C,alt:"avatar"}):C)),b1=(L)=>W("input",{...L,type:"checkbox",class:Q("checkbox",L.class)}),H1=(L)=>{let C=()=>A(L.value)||"#000000";return y({},[h({class:"btn"},[W("div",{class:"size-5 rounded-sm",style:()=>`background-color: ${C()}`}),L.label&&W("span",{},L.label)]),f({class:"p-3 bg-base-100 rounded-box shadow-xl w-64"},t({value:L.value,onchange:(_)=>{P(L.value)?L.value(_):L.onchange?.(_)}}))])},t=(L)=>{let C=()=>A(L.value)||"#000000",_=["#000","#1A1A1A","#333","#4D4D4D","#666","#808080","#B3B3B3","#FFF","#450a0a","#7f1d1d","#991b1b","#b91c1c","#dc2626","#ef4444","#f87171","#fca5a5","#431407","#7c2d12","#9a3412","#c2410c","#ea580c","#f97316","#fb923c","#ffedd5","#713f12","#a16207","#ca8a04","#eab308","#facc15","#fde047","#fef08a","#fff9c4","#064e3b","#065f46","#059669","#10b981","#34d399","#4ade80","#84cc16","#d9f99d","#082f49","#075985","#0284c7","#0ea5e9","#38bdf8","#7dd3fc","#22d3ee","#cffafe","#1e1b4b","#312e81","#4338ca","#4f46e5","#6366f1","#818cf8","#a5b4fc","#e0e7ff","#2e1065","#4c1d95","#6d28d9","#7c3aed","#8b5cf6","#a855f7","#d946ef","#fae8ff"],K=(X)=>P(L.value)?L.value(X):L.onchange?.(X);return W("div",{class:"grid grid-cols-8 gap-1"},_.map((X)=>W("button",{type:"button",style:`background-color: ${X}`,class:()=>{return`size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${C().toLowerCase()===X.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>{K(X),R()}})))},D1=(L)=>{let C=I(""),_=()=>A(L.range)===!0;s(()=>{let X=A(L.value);if(!X)return C("");let N="";if(typeof X==="string")N=L.hour&&X.includes("T")?X.replace("T"," "):X;else if(X.start&&X.end){let k=L.hour&&X.startHour!=null?`${X.start} ${String(X.startHour).padStart(2,"0")}:00`:X.start,U=L.hour&&X.endHour!=null?`${X.end} ${String(X.endHour).padStart(2,"0")}:00`:X.end;N=`${k} - ${U}`}else if(X.start)N=`${L.hour&&X.startHour!=null?`${X.start} ${String(X.startHour).padStart(2,"0")}:00`:X.start}...`;C(N)});let K=(X)=>{if(P(L.value))L.value(X);else L.onChange?.(X);if(!_()||X?.end!=null)R()};return y({class:Q("w-full",L.class)},[W("label",{tabindex:"0",role:"button",class:"input input-bordered flex items-center gap-2 cursor-pointer"},[W("span",{class:"icon-[lucide--calendar] shrink-0"}),W("span",{class:()=>`grow text-left truncate ${!C()?"opacity-50":""}`},()=>C()||L.placeholder||(_()?"Seleccionar rango...":"Seleccionar fecha...")),()=>C()?W("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle -mr-2",onmousedown:(X)=>{if(X.preventDefault(),X.stopPropagation(),P(L.value))L.value(null);else L.onChange?.(null);C("")}},W("span",{class:"icon-[lucide--x] opacity-50"})):null]),f({class:"p-0 bg-base-100 rounded-box shadow-xl"},c({value:L.value,range:_(),hour:L.hour,onChange:K}))])},F1=(L,C)=>div({...L,class:Q("drawer",L.class)},C),S1=(L)=>input({...L,type:"checkbox",class:"drawer-toggle",checked:()=>A(L.checked),onchange:(C)=>P(L.checked)&&L.checked(C.target.checked)}),w1=(L,C)=>div({...L,class:Q("drawer-content",L.class)},C),R1=(L,C)=>div({...L,class:Q("drawer-side",L.class)},C),x1=(L)=>label({...L,for:L.for,class:Q("drawer-overlay",L.class)}),y1=(L)=>W("div",{...L,class:Q("divider",L.class)}),y=(L,C)=>W("div",{...L,class:Q("dropdown",L.class)},C),h=(L,C)=>W("div",{...L,tabindex:"0",role:"button",class:Q("btn",L.class)},C),f=(L,C)=>W("div",{...L,tabindex:"0",class:Q("dropdown-content",L.class)},C),f1=(L,C)=>W("div",{class:"fab"},[W("div",{tabindex:"0",role:"button",class:Q("btn",L.class)},x(L.icon)),C]),g1=(L,C)=>W("fieldset",{class:Q("fieldset",L.class)},[W("legend",{class:"fieldset-legend"},L.label),C]),u1=(L)=>{let C=I([]),_=I(!1),K=I(null),X=(L.max||2)*1024*1024,N=(U)=>{let G=Array.from(U);if(K(null),G.some((M)=>M.size>X)){K(`Máx ${L.max||2}MB`);return}let Y=[...C(),...G];if(C(Y),P(L.onselect))L.onselect(Y);else if(P(L.value))L.value(Y)},k=(U)=>{let G=C().filter((Y,M)=>M!==U);if(C(G),P(L.onselect))L.onselect(G);else if(P(L.value))L.value(G)};return W("div",{class:Q("fieldset w-full p-0",L.class)},[W("label",{class:()=>`relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${_()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(U)=>{U.preventDefault(),_(!0)},ondragleave:()=>_(!1),ondrop:(U)=>{U.preventDefault(),_(!1),N(U.dataTransfer.files)}},[W("div",{class:"flex items-center gap-3 w-full"},[W("span",{class:"icon-[lucide--upload]"}),W("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),W("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${L.max||2}MB`)]),W("input",{type:"file",multiple:!0,accept:L.accept||"*",class:"hidden",onchange:(U)=>N(U.target.files)})]),()=>K()&&W("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},K()),z1(()=>C().length>0,()=>W("ul",{class:"mt-2 space-y-1"},S(C,(U,G)=>W("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[W("div",{class:"flex items-center gap-2 truncate"},[W("span",{class:"opacity-50"},"\uD83D\uDCC4"),W("span",{class:"truncate font-medium max-w-[200px]"},U.name),W("span",{class:"text-[9px] opacity-40"},`(${(U.size/1024).toFixed(0)} KB)`)]),W("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(Y)=>{Y.preventDefault(),k(G)}},W("span",{class:"icon-[lucide--x]"}))]))))])},x=(L)=>W("span",{class:L.startsWith("icon-")?L:""},L.startsWith("icon-")?null:L),v1=(L,C)=>W("div",{...L,class:Q("indicator",L.class)},[L.value&&W("span",{class:Q("indicator-item badge",L.class)},L.value),C]),i=(L)=>{let{label:C,icon:_,float:K,placeholder:X,value:N,left:k,right:U,rule:G,hint:Y,content:M,...q}=L,B=I(!1),T=L.type==="password",j=G??null,z=()=>T?A(B)?"text":"password":L.type||"search";return W("label",{class:K?"floating-label":""},[K?W("span",{},C):null,W("label",{pattern:j,class:()=>Q("input validator",L.class)},[C&&!K?W("span",{class:"label"},C):null,k??null,W("input",{...q,type:z,class:"grow",pattern:j,placeholder:X||C||" ",value:N}),U??null,T?p({class:"ml-2"},[e({value:B,class:"swap-rotate"}),L1({},x("icon-[lucide--eye]")),W1({},x("icon-[lucide--eye-off]"))]):null]),Y?W("div",{class:"validator-hint"},Y):null])},m1=(L,C)=>W("kbd",{...L,class:Q("kbd",L.class)},C),n1=(L,C)=>W("ul",{...L,class:Q("list",L.class)},C),o1=(L)=>()=>(A(L.items)||[]).map((C,_)=>W("li",{class:Q("list-row",L.class,C?.class)},typeof L.render==="function"?L.render(C,_):C)),d1=(L,C)=>W("span",{...L,class:Q("loading loading-spinner",L.class)},C),r1=(L)=>{if(L.children!==void 0)return W("ul",{class:Q("menu",L.class),...L},L.children);let{items:C}=L,_=(K)=>K.children?W("li",{},W("details",{open:K.open||void 0},[W("summary",{},F(K)),W("ul",{},S(()=>A(K.children)||[],_))])):W("li",{},W("a",{href:K.href,onclick:K.onclick?(X)=>{if(!K.href)X.preventDefault();K.onclick(X)}:null},F(K)));return W("ul",{class:Q("menu",L.class)},S(()=>A(C)||[],_))},a1=(L)=>{let C=null;s(()=>{let K=A(L.open);if(!C)return;K?C.showModal():C.close()});let _=()=>P(L.open)&&L.open(!1);return W("dialog",{...L,ref:(K)=>C=K,class:Q("modal",L.class),onclose:_,oncancel:_},[W("div",{class:"modal-box"},[L.title&&W("h3",{class:"text-lg font-bold"},L.title),L.children,W("div",{class:"modal-action"},[L.actions||l({class:"btn",onclick:_},"Cerrar")])]),W("form",{method:"dialog",class:"modal-backdrop"},[W("button",{},"close")])])},s1=(L,C)=>W("div",{...L,class:Q("navbar",L.class)},C),l1=(L)=>W("progress",{...L,class:Q("progress",L.class)}),c1=(L,C)=>W("div",{...L,class:Q("radial-progress",L.class),style:`--value:${L.value??0};${L.style??""}`,role:"progressbar","aria-valuenow":L.value??0},C??`${L.value??0}%`),t1=(L)=>W("input",{...L,type:"radio",class:Q("radio",L.class)}),h1=(L)=>W("input",{...L,type:"range",class:Q("range",L.class)}),i1=(L,C)=>W("div",{...L,class:"rating"},C),p1=(L)=>[...Array(L.count)].map((C,_)=>W("input",{class:Q("mask",L.class),name:L.name,type:"radio",checked:()=>A(L.value)===_,onchange:()=>P(L.value)?L.value(_):L.onchange?.(_)})),e1=(L,C)=>{if(C!==void 0)return W("select",{class:Q("select",L.class),...L},C);let{label:_,float:K,placeholder:X,placeholderDisabled:N=!0,value:k,left:U,right:G,hint:Y,items:M,keyFn:q,...B}=L,T=()=>{let j=A(M)||[];return[...X?[{disabled:N,label:X,value:""}]:[],...j]};return W("label",{class:K?"floating-label":""},[K?W("span",{},_):null,W("label",{class:Q("select",B.class)},[!K&&_?W("span",{class:"label"},_):null,U??null,W("select",{value:()=>A(k),onchange:(j)=>P(k)?k(j.target.value):B.onchange?.(j)},S(T,(j)=>{let z=F(j,j.value!==void 0?"value":void 0),V=F(j,"label");return W("option",{value:z,disabled:j.disabled||void 0},V)})),G??null]),Y?W("div",{class:"validator-hint"},Y):null])},L8=(L)=>W("div",{...L,class:Q("skeleton",L.class)}),W8=(L)=>W("span",{...L,class:Q("skeleton skeleton-text",L.class)}),C8=(L,C)=>W("div",{...L,class:Q("stack",L.class)},C),K8=(L,C)=>W("div",{...L,class:Q("stats shadow",L.class)},C),Q8=(L)=>W("div",{...L,class:Q("stat",L.class)},[L.title?W("div",{class:"stat-title"},L.title):null,L.value?W("div",{class:"stat-value"},L.value):null,L.desc?W("div",{class:"stat-desc"},L.desc):null]),X8=(L,C)=>W("ul",{...L,class:Q("steps",L.class)},C),Z8=(L,C)=>W("li",{...L,class:Q("step",L.class),"data-content":L.dataContent},C),p=(L,C)=>W("label",{...L,class:Q("swap",L.class)},C),e=(L)=>W("input",{type:"checkbox",checked:()=>A(L.value),onchange:(C)=>P(L.value)&&L.value(C.target.checked),class:L.class}),L1=(L,C)=>W("div",{...L,class:Q("swap-on",L.class)},C),W1=(L,C)=>W("div",{...L,class:Q("swap-off",L.class)},C),_8=(L,C)=>W("table",{...L,class:Q("table",L.class)},C),J8=({items:L,columns:C=[],header:_=!0})=>{let K=_!==!1&&C.some((N)=>N.label)?W("thead",{},W("tr",{},C.map((N)=>W("th",{class:N.class},N.label)))):null,X=W("tbody",{},()=>{return(A(L)||[]).map((k,U)=>W("tr",{},C.map((G)=>{let Y=G.render?G.render(k,U):k[G.key];return W("td",{class:G.class},Y)})))});return[K,X].filter(Boolean)},j8=(L,C)=>{if(!L.items){let{class:Y,...M}=L;return W("div",{...M,class:Q("tabs",Y)},C)}let{items:_,activeIndex:K,onClose:X,class:N,...k}=L,U=(Y)=>P(Y)?Y():Y,G=X||(P(_)?(Y,M)=>{let B=U(_).filter((T,j)=>j!==Y);if(_(B),K()>=B.length)K(Math.max(0,B.length-1))}:null);return W("div",{...k,class:Q("tabs",N)},()=>{return(U(_)||[]).flatMap((M,q)=>{let B=()=>K()===q,T=W("button",{class:()=>`tab ${B()?"tab-active":""} ${M.class||""}`,onclick:(z)=>{z.preventDefault(),K(q),M.onclick?.(z)}},[F(M),M.closable?W("span",{class:"ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",onclick:(z)=>{z.stopPropagation(),G?.(q,M)}},W("span",{class:"icon-[lucide--x] w-3 h-3"})):null]),j=W("div",{class:"tab-content bg-base-100 border-base-300 p-6",style:()=>`display: ${B()?"block":"none"};`},P(M.content)?M.content():M.content);return[T,j]})})},z8=(L)=>W("textarea",{...L,class:Q("textarea",L.class)}),G8=(L,C)=>W("span",{...L,class:Q("text-rotate",L.class)},C),N8=(L,C)=>W("ul",{...L,class:Q("timeline",L.class)},C),Y8=(L,C="alert-success",_=3500)=>{let K=document.getElementById("sigpro-toast-container");if(!K)K=W("div",{id:"sigpro-toast-container",class:"fixed top-0 right-0 z-[9999] p-4 flex flex-col items-end gap-2 pointer-events-none"}),document.body.appendChild(K);let X=W("div",{style:"display: contents"});K.appendChild(X);let N,k,U,Y=G1(()=>{let M=I(!1),q=I(!1);N=()=>{if(q())return;clearTimeout(k),clearTimeout(U),q(!0),setTimeout(()=>{if(Y.destroy(),X.remove(),!K.hasChildNodes())K.remove()},300)},U=setTimeout(()=>M(!0),0);let B=typeof L==="function"?A(L):L,T=typeof B==="string"?W("span",{},B):B;return W("div",{class:()=>{let j=`alert alert-soft ${C} shadow-lg transition-all duration-300 inline-flex w-auto whitespace-nowrap pointer-events-auto`;if(q())return`${j} translate-x-full opacity-0`;if(M())return`${j} translate-x-0 opacity-100`;return`${j} translate-x-10 opacity-0`}},[T,W("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:N},W("span",{class:"icon-[lucide--x]"}))])},X);if(_>0)k=setTimeout(N,_);return N},U8=(L)=>W("input",{...L,type:"checkbox",class:Q("toggle",L.class)}),k8=(L,C)=>W("div",{...L,class:Q("tooltip",L.class),"data-tip":L.tip},C);var o={};d(o,{Editor:()=>E8});import{h as J,$ as w}from"sigpro";var E8=(L)=>{let{value:C,class:_}=L,K=null,X=null,N=w(!1),k=w(""),U=w(0),G=w(0),Y=w(!1),M=["\uD83D\uDE00","\uD83D\uDE0A","\uD83D\uDE09","\uD83E\uDDD0","\uD83D\uDE2E","\uD83E\uDD14","\uD83D\uDE05","\uD83D\uDE02","\uD83D\uDE0D","\uD83D\uDE18","\uD83E\uDD70","\uD83D\uDC4D","\uD83D\uDC4E","\uD83D\uDC4C","\uD83E\uDD1D","\uD83E\uDD1E","\uD83D\uDC4B","\uD83D\uDC4F","\uD83D\uDE4C","\uD83D\uDE4F","\uD83D\uDCAA","☝️","\uD83D\uDC47","\uD83D\uDC48","\uD83D\uDC49","\uD83D\uDD95","✅","⚠️","\uD83D\uDE80","\uD83D\uDCE2","✉️","❤️"],q=()=>{let Z=window.getSelection();if(Z.getRangeAt&&Z.rangeCount)X=Z.getRangeAt(0)},B=()=>{if(X){let Z=window.getSelection();Z.removeAllRanges(),Z.addRange(X)}},T=()=>{if(G(G()+1),K)U(K.innerText.length)},j=()=>{if(!K)return;let Z=K.innerHTML;if(P(C))C(Z);else L.onchange?.(Z);T()},z=(Z,E=null)=>{if(!K)return;if(K.focus(),X)B();document.execCommand(Z,!1,E),X=null,j()},V=(Z)=>{let E=document.createElement("div");E.style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;";let $=document.createElement("img");$.src=Z,$.style="max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;",E.onclick=()=>document.body.removeChild(E),E.appendChild($),document.body.appendChild(E)},H=(Z)=>{if(!Z)return;let E=new FileReader;E.onload=($)=>{if(Z.type.startsWith("image/")){let O=`
 `;z("insertHTML",O)}else{let O=`${Z.name} `;z("insertHTML",O)}},E.readAsDataURL(Z)},b=(Z,E=null)=>{if(G(),!K||N())return!1;try{if(Z==="formatBlock"){let $=window.getSelection().getRangeAt(0).commonAncestorContainer;while($&&$!==K){if($.nodeType===1&&$.tagName===E)return!0;$=$.parentNode}return!1}return document.queryCommandState(Z)}catch($){return!1}},g=J("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20"},[J("div",{class:"flex flex-wrap gap-1 flex-1 items-center"},[J("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${b("bold")?"btn-active bg-primary/20":""}`,onclick:()=>z("bold")},J("span",{class:"icon-[lucide--bold]"})),J("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${b("italic")?"btn-active bg-primary/20":""}`,onclick:()=>z("italic")},J("span",{class:"icon-[lucide--italic]"})),J("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${b("underline")?"btn-active bg-primary/20":""}`,onclick:()=>z("underline")},J("span",{class:"icon-[lucide--underline]"})),J("input",{type:"color",class:"w-5 h-5 p-0 border-0 bg-transparent cursor-pointer",oninput:(Z)=>z("foreColor",Z.target.value)}),J("span",{class:"w-px h-5 bg-base-300 mx-1"}),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("justifyLeft")},J("span",{class:"icon-[lucide--align-left]"})),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("justifyCenter")},J("span",{class:"icon-[lucide--align-center]"})),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("justifyRight")},J("span",{class:"icon-[lucide--align-right]"})),J("span",{class:"w-px h-5 bg-base-300 mx-1"}),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("insertUnorderedList")},J("span",{class:"icon-[lucide--list]"})),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("insertOrderedList")},J("span",{class:"icon-[lucide--list-ordered]"})),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("outdent")},J("span",{class:"icon-[lucide--indent-decrease]"})),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("indent")},J("span",{class:"icon-[lucide--indent-increase]"})),J("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${b("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>z("formatBlock",b("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},J("span",{class:"icon-[lucide--quote]"})),J("span",{class:"w-px h-5 bg-base-300 mx-1"}),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let Z=window.prompt("URL:");if(Z)z("createLink",Z)}},J("span",{class:"icon-[lucide--link]"})),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let Z=document.createElement("input");Z.type="file",Z.onchange=(E)=>H(E.target.files[0]),Z.click()}},J("span",{class:"icon-[lucide--paperclip]"})),J("div",{class:"relative"},[J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:(Z)=>{Z.stopPropagation(),q(),Y(!Y())}},J("span",{class:"icon-[lucide--smile]"})),J("div",{class:"absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1",style:()=>Y()?"display:flex":"display:none"},M.map((Z)=>J("span",{class:"cursor-pointer hover:bg-base-200 p-1 rounded text-lg",onclick:(E)=>{E.stopPropagation(),z("insertText",Z),Y(!1)}},Z)))]),J("span",{class:"w-px h-5 bg-base-300 mx-1"}),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("undo")},J("span",{class:"icon-[lucide--undo-2]"})),J("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("redo")},J("span",{class:"icon-[lucide--redo-2]"}))]),J("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${N()?"btn-active":""}`,onclick:()=>{if(!N())k(K?.innerHTML||"");else if(K)K.innerHTML=k(),j();N(!N())}},J("span",{class:"icon-[lucide--code-2]"}))]);if(typeof document<"u"&&!document.getElementById("editor-styles")){let Z=document.createElement("style");Z.id="editor-styles",Z.textContent=` [contenteditable="true"] div, [contenteditable="true"] p { margin: 0; padding: 0; } - `,document.head.appendChild(b)}return r("div",{class:e("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col",o)},[c,r("div",{class:"relative flex-1 flex flex-col",onclick:()=>i(!1)},[r("div",{ref:(b)=>{if(!u&&b)u=b,b.innerHTML=L(n)||"",document.execCommand("defaultParagraphSeparator",!1,"br"),b.addEventListener("click",(j)=>{let T=j.target.closest(".resizable-img-container");if(T){let $=T.querySelector("img");if($)J($.src)}})},style:()=>`min-height:22rem;${_()?"display:none":""}`,class:"p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",contenteditable:"true",oninput:w,onkeydown:(b)=>{if(b.key==="Tab")b.preventDefault(),E("indent")},onkeyup:()=>{C(),N()},onclick:(b)=>{C(),N(),b.stopPropagation()},onmouseup:()=>{w(),N()},onpaste:(b)=>{b.preventDefault();let j=b.clipboardData.getData("text/plain");E("insertText",j)},ondragover:(b)=>b.preventDefault(),ondrop:(b)=>{b.preventDefault(),B(b.dataTransfer.files[0])}}),r("textarea",{class:"w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",style:()=>_()?"":"display:none",value:l,oninput:(b)=>{if(l(b.target.value),u)u.innerHTML=b.target.value;t.onchange?.(b.target.value)}})]),r("div",{class:"px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic"},[r("span",()=>`${a()} caracteres`)])])};var Dn={es:{close:"Cerrar",confirm:"Confirmar",cancel:"Cancelar",search:"Buscar...",loading:"Cargando...",nodata:"Sin datos"},en:{close:"Close",confirm:"Confirm",cancel:"Cancel",search:"Search...",loading:"Loading...",nodata:"No data"}},$t=k("es"),Jt=(t)=>$t(t),Kt=(t)=>()=>Dn[$t()][t]||t;var mn={...lt,...at},Fn={Locale:Jt,tt:Kt};if(typeof window<"u")Object.entries({...mn,...Fn}).forEach(([t,n])=>{Object.defineProperty(window,t,{value:n,writable:!1,configurable:!0,enumerable:!0})}),console.log("SigProUI DX installed");export{Fn as Utils,mn as Components}; + `,document.head.appendChild(Z)}return J("div",{class:Q("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col",_)},[g,J("div",{class:"relative flex-1 flex flex-col",onclick:()=>Y(!1)},[J("div",{ref:(Z)=>{if(!K&&Z)K=Z,Z.innerHTML=A(C)||"",document.execCommand("defaultParagraphSeparator",!1,"br"),Z.addEventListener("click",(E)=>{let $=E.target.closest(".resizable-img-container");if($){let O=$.querySelector("img");if(O)V(O.src)}})},style:()=>`min-height:22rem;${N()?"display:none":""}`,class:"p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",contenteditable:"true",oninput:j,onkeydown:(Z)=>{if(Z.key==="Tab")Z.preventDefault(),z("indent")},onkeyup:()=>{T(),q()},onclick:(Z)=>{T(),q(),Z.stopPropagation()},onmouseup:()=>{j(),q()},onpaste:(Z)=>{Z.preventDefault();let E=Z.clipboardData.getData("text/plain");z("insertText",E)},ondragover:(Z)=>Z.preventDefault(),ondrop:(Z)=>{Z.preventDefault(),H(Z.dataTransfer.files[0])}}),J("textarea",{class:"w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",style:()=>N()?"":"display:none",value:k,oninput:(Z)=>{if(k(Z.target.value),K)K.innerHTML=Z.target.value;L.onchange?.(Z.target.value)}})]),J("div",{class:"px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic"},[J("span",()=>`${U()} caracteres`)])])};import{$ as M8,h as D8}from"sigpro";var A8={es:{close:"Cerrar",confirm:"Confirmar",cancel:"Cancelar",search:"Buscar...",loading:"Cargando...",nodata:"Sin datos"},en:{close:"Close",confirm:"Confirm",cancel:"Cancel",search:"Search...",loading:"Loading...",nodata:"No data"}},C1=M8("es"),K1=(L)=>C1(L),Q1=(L)=>()=>A8[C1()][L]||L;var w8={...n,...o},R8={Locale:K1,tt:Q1};export{R8 as Utils,w8 as Components}; diff --git a/dist/sigpro-ui.js b/dist/sigpro-ui.js index 2514225..b5ea8d7 100644 --- a/dist/sigpro-ui.js +++ b/dist/sigpro-ui.js @@ -37,13 +37,870 @@ }); }; - // index.js - var exports_sigpro_ui2 = {}; - __export(exports_sigpro_ui2, { + // sigpro-ui-full.js + var exports_sigpro_ui_full = {}; + __export(exports_sigpro_ui_full, { Utils: () => Utils, - Components: () => Components + Tooltip: () => Tooltip, + Toggle: () => Toggle, + Toast: () => Toast, + Timeline: () => Timeline, + Textrotate: () => Textrotate, + Textarea: () => Textarea, + Tabs: () => Tabs, + TableItems: () => TableItems, + Table: () => Table, + SwapToggle: () => SwapToggle, + SwapOn: () => SwapOn, + SwapOff: () => SwapOff, + Swap: () => Swap, + Steps: () => Steps, + Step: () => Step, + Stats: () => Stats, + Stat: () => Stat, + Stack: () => Stack, + SkeletonText: () => SkeletonText, + Skeleton: () => Skeleton, + Select: () => Select, + RatingItems: () => RatingItems, + Rating: () => Rating, + Range: () => Range, + Radio: () => Radio, + Radial: () => Radial, + Progress: () => Progress, + Navbar: () => Navbar, + Modal: () => Modal, + Menu: () => Menu, + Loading: () => Loading, + ListRows: () => ListRows, + List: () => List, + Kbd: () => Kbd, + Input: () => Input, + Indicator: () => Indicator, + Icon: () => Icon, + Fileinput: () => Fileinput, + Fieldset: () => Fieldset, + Fab: () => Fab, + Editor: () => Editor, + DropdownContent: () => DropdownContent, + DropdownButton: () => DropdownButton, + Dropdown: () => Dropdown, + DrawerToggle: () => DrawerToggle, + DrawerSide: () => DrawerSide, + DrawerOverlay: () => DrawerOverlay, + DrawerContent: () => DrawerContent, + Drawer: () => Drawer, + Divider: () => Divider, + Datepicker: () => Datepicker, + Components: () => Components, + Colorpicker: () => Colorpicker, + ColorPalette: () => ColorPalette, + Checkbox: () => Checkbox, + ChatImage: () => ChatImage, + ChatHeader: () => ChatHeader, + ChatFooter: () => ChatFooter, + ChatBubble: () => ChatBubble, + Chat: () => Chat, + CarouselItem: () => CarouselItem, + Carousel: () => Carousel, + CardTitle: () => CardTitle, + CardBody: () => CardBody, + CardActions: () => CardActions, + Card: () => Card, + Calendar: () => Calendar, + Button: () => Button, + Badge: () => Badge, + Autocomplete: () => Autocomplete, + Alert: () => Alert, + Accordion: () => Accordion }); + // node_modules/sigpro/dist/sigpro.esm.min.js + var m = (e) => typeof e === "function"; + var j = (e) => e && typeof e === "object"; + var N = Array.isArray; + var E = typeof document < "u" ? document : null; + var V = (e) => e?._isRuntime ? e.container : e instanceof Node ? e : E.createTextNode(e == null ? "" : String(e)); + var d = null; + var _ = null; + var b = false; + var C = 0; + var R = new Set; + var I = new WeakMap; + var O = Symbol("iter"); + var L = new WeakMap; + var K = "http://www.w3.org/2000/svg"; + var P = "http://www.w3.org/1999/xlink"; + var W = new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")); + var v = null; + var S = (e) => { + if (!e || e._disposed) + return; + e._disposed = true; + let r = [e]; + while (r.length) { + let n = r.pop(); + if (n._cleanups) + n._cleanups.forEach((o) => o()), n._cleanups.clear(); + if (n._children) + n._children.forEach((o) => r.push(o)), n._children.clear(); + if (n._deps) + n._deps.forEach((o) => o.delete(n)), n._deps.clear(); + } + }; + var g = (e) => { + if (_) + (_._cleanups ||= new Set).add(e); + }; + var D = (e) => { + let r = d; + d = null; + try { + return e(); + } finally { + d = r; + } + }; + var x = (e, r = false) => { + let n = () => { + if (n._disposed) + return; + if (n._deps) + n._deps.forEach((c) => c.delete(n)); + if (n._cleanups) + n._cleanups.forEach((c) => c()), n._cleanups.clear(); + let o = d, s = _; + d = _ = n; + try { + return n._result = e(); + } catch (c) { + console.error("[SigPro]", c); + } finally { + d = o, _ = s; + } + }; + if (n._deps = n._cleanups = n._children = null, n._disposed = false, n._isComputed = r, n._depth = d ? d._depth + 1 : 0, n._mounts = [], n._parent = _, _) + (_._children ||= new Set).add(n); + return n; + }; + var $ = () => { + if (b) + return; + b = true; + let e = Array.from(R).sort((r, n) => r._depth - n._depth); + R.clear(); + for (let r of e) + if (!r._disposed) + r(); + b = false; + }; + var z = (e) => { + C++; + try { + return e(); + } finally { + if (C--, C === 0 && R.size > 0 && !b) + $(); + } + }; + var w = (e, r = false) => { + if (!r && d && !d._disposed) + e.add(d), (d._deps ||= new Set).add(e); + else if (r && e.size > 0) { + let n = false; + for (let o of e) { + if (o === d || o._disposed) + continue; + if (o._isComputed) { + if (o._dirty = true, o._subs) + w(o._subs, true); + } else + R.add(o), n = true; + } + if (n && !b && C === 0) + queueMicrotask($); + } + }; + var U = (e, r = null) => { + let n = new Set; + if (m(e)) { + let o, s = () => { + if (s._dirty) { + let c = d; + d = s; + try { + let t = e(); + if (!Object.is(o, t)) + o = t, w(n, true); + } finally { + d = c; + } + s._dirty = false; + } + return w(n), o; + }; + return s._isComputed = true, s._subs = n, s._dirty = true, s._deps = null, s._disposed = false, s; + } + if (r) + try { + e = JSON.parse(localStorage.getItem(r)) ?? e; + } catch (o) {} + return (...o) => { + if (o.length) { + let s = m(o[0]) ? o[0](e) : o[0]; + if (!Object.is(e, s)) { + if (e = s, r) + localStorage.setItem(r, JSON.stringify(e)); + w(n, true); + } + } + return w(n), e; + }; + }; + var X = (e) => { + if (!j(e)) + return e; + let r = I.get(e); + if (r) + return r; + let n = new Map, o = (c) => { + let t = n.get(c); + if (!t) + n.set(c, t = new Set); + return t; + }, s = new Proxy(e, { get(c, t, i) { + if (typeof t !== "symbol") + w(o(t)); + return X(Reflect.get(c, t, i)); + }, set(c, t, i, l) { + let u = Reflect.has(c, t), a = Reflect.get(c, t, l), f = Reflect.set(c, t, i, l); + if (f && !Object.is(a, i)) { + if (w(o(t), true), !u) + w(o(O), true); + } + return f; + }, deleteProperty(c, t) { + let i = Reflect.deleteProperty(c, t); + if (i) + w(o(t), true), w(o(O), true); + return i; + }, ownKeys(c) { + return w(o(O)), Reflect.ownKeys(c); + } }); + return I.set(e, s), s; + }; + var k = (e, r) => { + if (r === undefined) { + let o = x(e); + return o(), () => S(o); + } + let n = x(() => { + let o = Array.isArray(e) ? e.map((s) => s()) : e(); + D(() => r(o)); + }); + return n(), () => S(n); + }; + var B = (e) => { + if (!e) + return; + if (e._cleanups) + e._cleanups.forEach((r) => r()), e._cleanups.clear(); + if (e._ownerEffect) + S(e._ownerEffect); + if (e.childNodes) + e.childNodes.forEach((r) => B(r)); + }; + var M = (e, r = {}, n = []) => { + if (r instanceof Node || N(r) || !j(r)) + n = r, r = {}; + if (m(e)) { + let t = x(() => { + let a = e(r, { children: n, emit: (f, ...h) => r[`on${f[0].toUpperCase()}${f.slice(1)}`]?.(...h) }); + return t._result = a, a; + }); + t(); + let i = t._result; + if (i == null) + return null; + let l = i instanceof Node || N(i) && i.every((a) => a instanceof Node) ? i : E.createTextNode(String(i)), u = (a) => { + if (j(a) && !a._isRuntime) + a._mounts = t._mounts || [], a._cleanups = t._cleanups || new Set, a._ownerEffect = t; + }; + return N(l) ? l.forEach(u) : u(l), l; + } + let o = W.has(e), s = o ? E.createElementNS(K, e) : E.createElement(e); + s._cleanups = new Set; + for (let t of Object.keys(r)) { + let i = r[t]; + if (t === "ref") { + m(i) ? i(s) : i.current = s; + continue; + } + let l = v ? v(t, i) : i; + if (o && t.startsWith("xlink:")) { + l == null ? s.removeAttributeNS(P, t.slice(6)) : s.setAttributeNS(P, t.slice(6), l); + continue; + } + if (t.startsWith("on")) { + let u = t.slice(2).toLowerCase(); + s.addEventListener(u, l); + let a = () => s.removeEventListener(u, l); + s._cleanups.add(a), g(a); + } else if (m(l)) { + let u = x(() => { + let a = l(), f = v ? v(t, a) : a; + if (t === "class") + s.className = f || ""; + else if (f == null) + s.removeAttribute(t); + else if (t in s && !o) + s[t] = f; + else + s.setAttribute(t, f === true ? "" : f); + }); + if (u(), s._cleanups.add(() => S(u)), g(() => S(u)), /^(INPUT|TEXTAREA|SELECT)$/.test(s.tagName) && (t === "value" || t === "checked")) { + let a = t === "checked" ? "change" : "input"; + s.addEventListener(a, (f) => l(f.target[t])); + } + } else if (l != null) + if (t in s && !o) + s[t] = l; + else + s.setAttribute(t, l === true ? "" : l); + } + let c = (t) => { + if (N(t)) + return t.forEach(c); + if (m(t)) { + let i = E.createTextNode(""); + s.appendChild(i); + let l = [], u = x(() => { + let a = t(), f = (N(a) ? a : [a]).map(V); + l.forEach((p) => { + if (p._isRuntime) + p.destroy(); + else + B(p); + if (p.parentNode) + p.remove(); + }); + let h = i; + for (let p = f.length - 1;p >= 0; p--) { + let y = f[p]; + if (y.parentNode !== h.parentNode) + h.parentNode?.insertBefore(y, h); + if (y._mounts) + y._mounts.forEach((G) => G()); + h = y; + } + l = f; + }); + u(), s._cleanups.add(() => S(u)), g(() => S(u)); + } else { + let i = V(t); + if (s.appendChild(i), i._mounts) + i._mounts.forEach((l) => l()); + } + }; + return c(n), s; + }; + var T = (e) => { + let r = new Set, n = _, o = d, s = E.createElement("div"); + s.style.display = "contents", s.setAttribute("role", "presentation"), _ = { _cleanups: r }, d = null; + let c = (t) => { + if (!t) + return; + if (t._isRuntime) + r.add(t.destroy), s.appendChild(t.container); + else if (N(t)) + t.forEach(c); + else + s.appendChild(t instanceof Node ? t : E.createTextNode(String(t == null ? "" : t))); + }; + try { + c(e({ onCleanup: (t) => r.add(t) })); + } finally { + _ = n, d = o; + } + return { _isRuntime: true, container: s, destroy: () => { + r.forEach((t) => t()), B(s), s.remove(); + } }; + }; + var F = (e, r, n = null) => { + let o = E.createTextNode(""), s = M("div", { style: "display:contents" }, [o]), c = null; + return k(() => !!(m(e) ? e() : e), (t) => { + if (c) + c.destroy(), c = null; + let i = t ? r : n; + if (i) + c = T(() => m(i) ? i() : i), s.insertBefore(c.container, o); + }), g(() => c?.destroy()), s; + }; + var J = (e, r, n) => { + let o = E.createTextNode(""), s = M("div", { style: "display:contents" }, [o]), c = new Map; + return k(() => (m(e) ? e() : e) || [], (t) => { + let i = new Map, l = [], u = t || []; + for (let f = 0;f < u.length; f++) { + let h = u[f], p = n ? h?.[n] ?? f : h?.id ?? f, y = c.get(p); + if (!y) + y = T(() => r(h, f)); + else + c.delete(p); + i.set(p, y), l.push(y); + } + c.forEach((f) => f.destroy()); + let a = o; + for (let f = l.length - 1;f >= 0; f--) { + let p = l[f].container; + if (p.nextSibling !== a) + s.insertBefore(p, a); + a = p; + } + c = i; + }), s; + }; + var A = (e) => { + let r = () => window.location.hash.slice(1) || "/", n = U(r()), o = () => n(r()); + window.addEventListener("hashchange", o), g(() => window.removeEventListener("hashchange", o)); + let s = M("div", { class: "router-hook" }), c = null; + return k([n], () => { + let t = n(), i = e.find((l) => { + let u = l.path.split("/").filter(Boolean), a = t.split("/").filter(Boolean); + return u.length === a.length && u.every((f, h) => f[0] === ":" || f === a[h]); + }) || e.find((l) => l.path === "*"); + if (i) { + c?.destroy(); + let l = {}; + i.path.split("/").filter(Boolean).forEach((u, a) => { + if (u[0] === ":") + l[u.slice(1)] = t.split("/").filter(Boolean)[a]; + }), A.params(l), c = T(() => m(i.component) ? i.component(l) : i.component), s.replaceChildren(c.container); + } + }), s; + }; + A.params = U({}); + A.to = (e) => window.location.hash = e.replace(/^#?\/?/, "#/"); + A.back = () => window.history.back(); + A.path = () => window.location.hash.replace(/^#/, "") || "/"; + var Q = (e, r) => { + let n = typeof r === "string" ? E.querySelector(r) : r; + if (!n) + return; + if (L.has(n)) + L.get(n).destroy(); + let o = T(m(e) ? e : () => e); + return n.replaceChildren(o.container), L.set(n, o), o; + }; + + // node_modules/sigpro/sigpro.js + var isFunc = (f) => typeof f === "function"; + var isObj = (o) => o && typeof o === "object"; + var isArr = Array.isArray; + var doc = typeof document !== "undefined" ? document : null; + var ensureNode = (n) => n?._isRuntime ? n.container : n instanceof Node ? n : doc.createTextNode(n == null ? "" : String(n)); + var activeEffect = null; + var activeOwner = null; + var isFlushing = false; + var batchDepth = 0; + var effectQueue = new Set; + var proxyCache = new WeakMap; + var ITER = Symbol("iter"); + var MOUNTED_NODES = new WeakMap; + var SVG_NS = "http://www.w3.org/2000/svg"; + var XLINK_NS = "http://www.w3.org/1999/xlink"; + var SVG_TAGS = new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")); + var attrFilter = null; + var filterXSS = (fn) => { + attrFilter = fn; + }; + var dispose = (eff) => { + if (!eff || eff._disposed) + return; + eff._disposed = true; + const stack = [eff]; + while (stack.length) { + const e = stack.pop(); + if (e._cleanups) { + e._cleanups.forEach((fn) => fn()); + e._cleanups.clear(); + } + if (e._children) { + e._children.forEach((child) => stack.push(child)); + e._children.clear(); + } + if (e._deps) { + e._deps.forEach((depSet) => depSet.delete(e)); + e._deps.clear(); + } + } + }; + var onUnmount = (fn) => { + if (activeOwner) + (activeOwner._cleanups ||= new Set).add(fn); + }; + var untrack = (fn) => { + const p = activeEffect; + activeEffect = null; + try { + return fn(); + } finally { + activeEffect = p; + } + }; + var createEffect = (fn, isComputed = false) => { + const effect = () => { + if (effect._disposed) + return; + if (effect._deps) + effect._deps.forEach((s) => s.delete(effect)); + if (effect._cleanups) { + effect._cleanups.forEach((c) => c()); + effect._cleanups.clear(); + } + const prevEffect = activeEffect; + const prevOwner = activeOwner; + activeEffect = activeOwner = effect; + try { + return effect._result = fn(); + } catch (e) { + console.error("[SigPro]", e); + } finally { + activeEffect = prevEffect; + activeOwner = prevOwner; + } + }; + effect._deps = effect._cleanups = effect._children = null; + effect._disposed = false; + effect._isComputed = isComputed; + effect._depth = activeEffect ? activeEffect._depth + 1 : 0; + effect._mounts = []; + effect._parent = activeOwner; + if (activeOwner) + (activeOwner._children ||= new Set).add(effect); + return effect; + }; + var flush = () => { + if (isFlushing) + return; + isFlushing = true; + const sorted = Array.from(effectQueue).sort((a, b2) => a._depth - b2._depth); + effectQueue.clear(); + for (const e of sorted) + if (!e._disposed) + e(); + isFlushing = false; + }; + var trackUpdate = (subs, trigger = false) => { + if (!trigger && activeEffect && !activeEffect._disposed) { + subs.add(activeEffect); + (activeEffect._deps ||= new Set).add(subs); + } else if (trigger && subs.size > 0) { + let hasQueue = false; + for (const e of subs) { + if (e === activeEffect || e._disposed) + continue; + if (e._isComputed) { + e._dirty = true; + if (e._subs) + trackUpdate(e._subs, true); + } else { + effectQueue.add(e); + hasQueue = true; + } + } + if (hasQueue && !isFlushing && batchDepth === 0) + queueMicrotask(flush); + } + }; + var $2 = (val, key = null) => { + const subs = new Set; + if (isFunc(val)) { + let cache; + const computed = () => { + if (computed._dirty) { + const prev = activeEffect; + activeEffect = computed; + try { + const next = val(); + if (!Object.is(cache, next)) { + cache = next; + trackUpdate(subs, true); + } + } finally { + activeEffect = prev; + } + computed._dirty = false; + } + trackUpdate(subs); + return cache; + }; + computed._isComputed = true; + computed._subs = subs; + computed._dirty = true; + computed._deps = null; + computed._disposed = false; + return computed; + } + if (key) + try { + val = JSON.parse(localStorage.getItem(key)) ?? val; + } catch (e) {} + return (...args) => { + if (args.length) { + const next = isFunc(args[0]) ? args[0](val) : args[0]; + if (!Object.is(val, next)) { + val = next; + if (key) + localStorage.setItem(key, JSON.stringify(val)); + trackUpdate(subs, true); + } + } + trackUpdate(subs); + return val; + }; + }; + var watch = (sources, cb) => { + if (cb === undefined) { + const effect2 = createEffect(sources); + effect2(); + return () => dispose(effect2); + } + const effect = createEffect(() => { + const vals = Array.isArray(sources) ? sources.map((s) => s()) : sources(); + untrack(() => cb(vals)); + }); + effect(); + return () => dispose(effect); + }; + var cleanupNode = (node) => { + if (!node) + return; + if (node._cleanups) { + node._cleanups.forEach((fn) => fn()); + node._cleanups.clear(); + } + if (node._ownerEffect) + dispose(node._ownerEffect); + if (node.childNodes) + node.childNodes.forEach((n) => cleanupNode(n)); + }; + var h = (tag, props = {}, children = []) => { + if (props instanceof Node || isArr(props) || !isObj(props)) { + children = props; + props = {}; + } + if (isFunc(tag)) { + const effect = createEffect(() => { + const result2 = tag(props, { + children, + emit: (ev, ...args) => props[`on${ev[0].toUpperCase()}${ev.slice(1)}`]?.(...args) + }); + effect._result = result2; + return result2; + }); + effect(); + const result = effect._result; + if (result == null) + return null; + const node = result instanceof Node || isArr(result) && result.every((n) => n instanceof Node) ? result : doc.createTextNode(String(result)); + const attach = (n) => { + if (isObj(n) && !n._isRuntime) { + n._mounts = effect._mounts || []; + n._cleanups = effect._cleanups || new Set; + n._ownerEffect = effect; + } + }; + isArr(node) ? node.forEach(attach) : attach(node); + return node; + } + const isSVG = SVG_TAGS.has(tag); + const el = isSVG ? doc.createElementNS(SVG_NS, tag) : doc.createElement(tag); + el._cleanups = new Set; + for (const k2 of Object.keys(props)) { + let v2 = props[k2]; + if (k2 === "ref") { + isFunc(v2) ? v2(el) : v2.current = el; + continue; + } + let val = attrFilter ? attrFilter(k2, v2) : v2; + if (isSVG && k2.startsWith("xlink:")) { + val == null ? el.removeAttributeNS(XLINK_NS, k2.slice(6)) : el.setAttributeNS(XLINK_NS, k2.slice(6), val); + continue; + } + if (k2.startsWith("on")) { + const ev = k2.slice(2).toLowerCase(); + el.addEventListener(ev, val); + const off = () => el.removeEventListener(ev, val); + el._cleanups.add(off); + onUnmount(off); + } else if (isFunc(val)) { + const effect = createEffect(() => { + const raw = val(); + const safeVal = attrFilter ? attrFilter(k2, raw) : raw; + if (k2 === "class") + el.className = safeVal || ""; + else if (safeVal == null) + el.removeAttribute(k2); + else if (k2 in el && !isSVG) + el[k2] = safeVal; + else + el.setAttribute(k2, safeVal === true ? "" : safeVal); + }); + effect(); + el._cleanups.add(() => dispose(effect)); + onUnmount(() => dispose(effect)); + if (/^(INPUT|TEXTAREA|SELECT)$/.test(el.tagName) && (k2 === "value" || k2 === "checked")) { + const evType = k2 === "checked" ? "change" : "input"; + el.addEventListener(evType, (ev) => val(ev.target[k2])); + } + } else { + if (val != null) { + if (k2 in el && !isSVG) + el[k2] = val; + else + el.setAttribute(k2, val === true ? "" : val); + } + } + } + const append = (c) => { + if (isArr(c)) + return c.forEach(append); + if (isFunc(c)) { + const anchor = doc.createTextNode(""); + el.appendChild(anchor); + let currentNodes = []; + const effect = createEffect(() => { + const res = c(); + const next = (isArr(res) ? res : [res]).map(ensureNode); + currentNodes.forEach((n) => { + if (n._isRuntime) + n.destroy(); + else + cleanupNode(n); + if (n.parentNode) + n.remove(); + }); + let ref = anchor; + for (let i = next.length - 1;i >= 0; i--) { + const node = next[i]; + if (node.parentNode !== ref.parentNode) + ref.parentNode?.insertBefore(node, ref); + if (node._mounts) + node._mounts.forEach((fn) => fn()); + ref = node; + } + currentNodes = next; + }); + effect(); + el._cleanups.add(() => dispose(effect)); + onUnmount(() => dispose(effect)); + } else { + const node = ensureNode(c); + el.appendChild(node); + if (node._mounts) + node._mounts.forEach((fn) => fn()); + } + }; + append(children); + return el; + }; + var render = (renderFn) => { + const cleanups = new Set; + const previousOwner = activeOwner; + const previousEffect = activeEffect; + const container = doc.createElement("div"); + container.style.display = "contents"; + container.setAttribute("role", "presentation"); + activeOwner = { _cleanups: cleanups }; + activeEffect = null; + const processResult = (result) => { + if (!result) + return; + if (result._isRuntime) { + cleanups.add(result.destroy); + container.appendChild(result.container); + } else if (isArr(result)) { + result.forEach(processResult); + } else { + container.appendChild(result instanceof Node ? result : doc.createTextNode(String(result == null ? "" : result))); + } + }; + try { + processResult(renderFn({ onCleanup: (fn) => cleanups.add(fn) })); + } finally { + activeOwner = previousOwner; + activeEffect = previousEffect; + } + return { + _isRuntime: true, + container, + destroy: () => { + cleanups.forEach((fn) => fn()); + cleanupNode(container); + container.remove(); + } + }; + }; + var router = (routes) => { + const getHash = () => window.location.hash.slice(1) || "/"; + const path = $2(getHash()); + const handler = () => path(getHash()); + window.addEventListener("hashchange", handler); + onUnmount(() => window.removeEventListener("hashchange", handler)); + const hook = h("div", { class: "router-hook" }); + let currentView = null; + watch([path], () => { + const cur = path(); + const route = routes.find((r) => { + const p1 = r.path.split("/").filter(Boolean); + const p2 = cur.split("/").filter(Boolean); + return p1.length === p2.length && p1.every((p, i) => p[0] === ":" || p === p2[i]); + }) || routes.find((r) => r.path === "*"); + if (route) { + currentView?.destroy(); + const params = {}; + route.path.split("/").filter(Boolean).forEach((p, i) => { + if (p[0] === ":") + params[p.slice(1)] = cur.split("/").filter(Boolean)[i]; + }); + router.params(params); + currentView = render(() => isFunc(route.component) ? route.component(params) : route.component); + hook.replaceChildren(currentView.container); + } + }); + return hook; + }; + router.params = $2({}); + router.to = (p) => window.location.hash = p.replace(/^#?\/?/, "#/"); + router.back = () => window.history.back(); + router.path = () => window.location.hash.replace(/^#/, "") || "/"; + + // node_modules/sigpro/sigpro/xss.js + var DANGEROUS_PROTOCOL = /^\s*(javascript|data|vbscript):/i; + var DANGEROUS_URI_ATTRS = new Set(["src", "href", "formaction", "action", "background", "code", "archive"]); + var isDangerousAttr = (key) => DANGEROUS_URI_ATTRS.has(key) || key.startsWith("on"); + var validateAttr = (key, val) => { + if (val == null || val === false) + return null; + if (isDangerousAttr(key)) { + const sVal = String(val); + if (DANGEROUS_PROTOCOL.test(sVal)) { + console.warn(`[SigPro XSS] Locked ${key}`); + return "#"; + } + } + return val; + }; + filterXSS(validateAttr); + + // node_modules/sigpro/sigpro/tags.js + if (typeof window !== "undefined") { + "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((tag) => { + window[tag] = (props, children) => h(tag, props, children); + }); + console.log("SigPro tags ready"); + } + // sigpro-ui.js var exports_sigpro_ui = {}; __export(exports_sigpro_ui, { @@ -119,462 +976,30 @@ Accordion: () => Accordion }); - // node_modules/sigpro/dist/sigpro.esm.min.js - var y = (e) => typeof e === "function"; - var P = (e) => e && typeof e === "object"; - var b = Array.isArray; - var g = typeof document < "u" ? document : null; - var k = (e) => e?._isRuntime ? e.container : e instanceof Node ? e : g.createTextNode(e == null ? "" : String(e)); - var p = null; - var _ = null; - var x = false; - var A = 0; - var C = new Set; - var D = new WeakMap; - var $ = Symbol("iter"); - var B = new WeakMap; - var E = (e) => { - if (!e || e._disposed) - return; - e._disposed = true; - let o = [e]; - while (o.length) { - let n = o.pop(); - if (n._cleanups) - n._cleanups.forEach((i) => i()), n._cleanups.clear(); - if (n._children) - n._children.forEach((i) => o.push(i)), n._children.clear(); - if (n._deps) - n._deps.forEach((i) => i.delete(n)), n._deps.clear(); - } - }; - var N = (e) => { - if (_) - (_._cleanups ||= new Set).add(e); - }; - var V = (e) => { - let o = p; - p = null; - try { - return e(); - } finally { - p = o; - } - }; - var T = (e, o = false) => { - let n = () => { - if (n._disposed) - return; - if (n._deps) - n._deps.forEach((c) => c.delete(n)); - if (n._cleanups) - n._cleanups.forEach((c) => c()), n._cleanups.clear(); - let i = p, s = _; - p = _ = n; - try { - return n._result = e(); - } catch (c) { - console.error("[SigPro]", c); - } finally { - p = i, _ = s; - } - }; - if (n._deps = n._cleanups = n._children = null, n._disposed = false, n._isComputed = o, n._depth = p ? p._depth + 1 : 0, n._mounts = [], n._parent = _, _) - (_._children ||= new Set).add(n); - return n; - }; - var q = () => { - if (x) - return; - x = true; - let e = Array.from(C).sort((o, n) => o._depth - n._depth); - C.clear(); - for (let o of e) - if (!o._disposed) - o(); - x = false; - }; - var W = (e) => { - A++; - try { - return e(); - } finally { - if (A--, A === 0 && C.size > 0 && !x) - q(); - } - }; - var w = (e, o = false) => { - if (!o && p && !p._disposed) - e.add(p), (p._deps ||= new Set).add(e); - else if (o && e.size > 0) { - let n = false; - for (let i of e) { - if (i === p || i._disposed) - continue; - if (i._isComputed) { - if (i._dirty = true, i._subs) - w(i._subs, true); - } else - C.add(i), n = true; - } - if (n && !x && A === 0) - queueMicrotask(q); - } - }; - var S = (e, o = null) => { - let n = new Set; - if (y(e)) { - let i, s = () => { - if (s._dirty) { - let c = p; - p = s; - try { - let t = e(); - if (!Object.is(i, t)) - i = t, w(n, true); - } finally { - p = c; - } - s._dirty = false; - } - return w(n), i; - }; - if (s._isComputed = true, s._subs = n, s._dirty = true, s._deps = null, s._disposed = false, s.stop = () => {}, _) - N(s.stop); - return s; - } - if (o) - try { - e = JSON.parse(localStorage.getItem(o)) ?? e; - } catch (i) {} - return (...i) => { - if (i.length) { - let s = y(i[0]) ? i[0](e) : i[0]; - if (!Object.is(e, s)) { - if (e = s, o) - localStorage.setItem(o, JSON.stringify(e)); - w(n, true); - } - } - return w(n), e; - }; - }; - var I = (e) => { - if (!P(e)) - return e; - let o = D.get(e); - if (o) - return o; - let n = new Map, i = (c) => { - let t = n.get(c); - if (!t) - n.set(c, t = new Set); - return t; - }, s = new Proxy(e, { get(c, t, r) { - if (typeof t !== "symbol") - w(i(t)); - return I(Reflect.get(c, t, r)); - }, set(c, t, r, l) { - let u = Reflect.has(c, t), a = Reflect.get(c, t, l), f = Reflect.set(c, t, r, l); - if (f && !Object.is(a, r)) { - if (w(i(t), true), !u) - w(i($), true); - } - return f; - }, deleteProperty(c, t) { - let r = Reflect.deleteProperty(c, t); - if (r) - w(i(t), true), w(i($), true); - return r; - }, ownKeys(c) { - return w(i($)), Reflect.ownKeys(c); - } }); - return D.set(e, s), s; - }; - var R = (e, o) => { - if (o === undefined) { - let i = T(e); - return i(), () => E(i); - } - let n = T(() => { - let i = Array.isArray(e) ? e.map((s) => s()) : e(); - V(() => o(i)); - }); - return n(), () => E(n); - }; - var L = (e) => { - if (!e) - return; - if (e._cleanups) - e._cleanups.forEach((o) => o()), e._cleanups.clear(); - if (e._ownerEffect) - E(e._ownerEffect); - if (e.childNodes) - e.childNodes.forEach((o) => L(o)); - }; - var F = /^\s*(javascript|data|vbscript):/i; - var J = (e) => e === "src" || e === "href" || e.startsWith("on"); - var M = (e, o) => { - if (o == null || o === false) - return null; - if (J(e)) { - let n = String(o); - if (F.test(n)) - return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`), "#"; - } - return o; - }; - var O = (e, o = {}, n = []) => { - if (o instanceof Node || b(o) || !P(o)) - n = o, o = {}; - if (y(e)) { - let t = T(() => { - let a = e(o, { children: n, emit: (f, ...h) => o[`on${f[0].toUpperCase()}${f.slice(1)}`]?.(...h) }); - return t._result = a, a; - }); - t(); - let r = t._result; - if (r == null) - return null; - let l = r instanceof Node || b(r) && r.every((a) => a instanceof Node) ? r : g.createTextNode(String(r)), u = (a) => { - if (P(a) && !a._isRuntime) - a._mounts = t._mounts || [], a._cleanups = t._cleanups || new Set, a._ownerEffect = t; - }; - return b(l) ? l.forEach(u) : u(l), l; - } - let i = /^(svg|path|circle|rect|line|poly(line|gon)|g|defs|text(path)?|tspan|use|symbol|image|marker|ellipse)$/i.test(e), s = i ? g.createElementNS("http://www.w3.org/2000/svg", e) : g.createElement(e); - s._cleanups = new Set; - for (let t in o) { - if (!o.hasOwnProperty(t)) - continue; - let r = o[t]; - if (t === "ref") { - y(r) ? r(s) : r.current = s; - continue; - } - if (i && t.startsWith("xlink:")) { - r == null ? s.removeAttributeNS("http://www.w3.org/1999/xlink", t.slice(6)) : s.setAttributeNS("http://www.w3.org/1999/xlink", t.slice(6), r); - continue; - } - if (t.startsWith("on")) { - let l = t.slice(2).toLowerCase(); - s.addEventListener(l, r); - let u = () => s.removeEventListener(l, r); - s._cleanups.add(u), N(u); - } else if (y(r)) { - let l = T(() => { - let u = M(t, r()); - if (t === "class") - s.className = u || ""; - else if (u == null) - s.removeAttribute(t); - else if (t in s && !i) - s[t] = u; - else - s.setAttribute(t, u === true ? "" : u); - }); - if (l(), s._cleanups.add(() => E(l)), N(() => E(l)), /^(INPUT|TEXTAREA|SELECT)$/.test(s.tagName) && (t === "value" || t === "checked")) { - let u = t === "checked" ? "change" : "input"; - s.addEventListener(u, (a) => r(a.target[t])); - } - } else { - let l = M(t, r); - if (l != null) - if (t in s && !i) - s[t] = l; - else - s.setAttribute(t, l === true ? "" : l); - } - } - let c = (t) => { - if (b(t)) - return t.forEach(c); - if (y(t)) { - let r = g.createTextNode(""); - s.appendChild(r); - let l = [], u = T(() => { - let a = t(), f = (b(a) ? a : [a]).map(k); - l.forEach((d) => { - if (d._isRuntime) - d.destroy(); - else - L(d); - if (d.parentNode) - d.remove(); - }); - let h = r; - for (let d = f.length - 1;d >= 0; d--) { - let m = f[d]; - if (m.parentNode !== h.parentNode) - h.parentNode?.insertBefore(m, h); - if (m._mounts) - m._mounts.forEach((U) => U()); - h = m; - } - l = f; - }); - u(), s._cleanups.add(() => E(u)), N(() => E(u)); - } else { - let r = k(t); - if (s.appendChild(r), r._mounts) - r._mounts.forEach((l) => l()); - } - }; - return c(n), s; - }; - var j = (e) => { - let o = new Set, n = _, i = p, s = g.createElement("div"); - s.style.display = "contents", s.setAttribute("role", "presentation"), _ = { _cleanups: o }, p = null; - let c = (t) => { - if (!t) - return; - if (t._isRuntime) - o.add(t.destroy), s.appendChild(t.container); - else if (b(t)) - t.forEach(c); - else - s.appendChild(t instanceof Node ? t : g.createTextNode(String(t == null ? "" : t))); - }; - try { - c(e({ onCleanup: (t) => o.add(t) })); - } finally { - _ = n, p = i; - } - return { _isRuntime: true, container: s, destroy: () => { - o.forEach((t) => t()), L(s), s.remove(); - } }; - }; - var z = (e, o, n = null) => { - let i = g.createTextNode(""), s = O("div", { style: "display:contents" }, [i]), c = null; - return R(() => !!(y(e) ? e() : e), (t) => { - if (c) - c.destroy(), c = null; - let r = t ? o : n; - if (r) - c = j(() => y(r) ? r() : r), s.insertBefore(c.container, i); - }), N(() => c?.destroy()), s; - }; - var G = ({ name: e, duration: o = 200, scale: n, slide: i, rotate: s, blur: c }, t) => { - let r = typeof t === "function" ? t() : t; - if (!(r instanceof Node)) - return r; - if (e) - return r.style.animation = `${e}-in ${o}ms`, r; - let l = n || i || s || c, u = [n ? "scale(0.95)" : "", i ? "translateY(-10px)" : "", s ? "rotate(-2deg)" : ""].filter(Boolean).join(" "); - if (r.style.transition = `all ${o}ms ease`, r.style.opacity = "0", l) - r.style.transform = u; - if (c) - r.style.filter = "blur(4px)"; - return requestAnimationFrame(() => { - if (r.style.opacity = "1", l) - r.style.transform = "none"; - if (c) - r.style.filter = "none"; - }), r; - }; - var K = (e, o, n) => { - let i = g.createTextNode(""), s = O("div", { style: "display:contents" }, [i]), c = new Map; - return R(() => (y(e) ? e() : e) || [], (t) => { - let r = new Map, l = [], u = t || []; - for (let f = 0;f < u.length; f++) { - let h = u[f], d = n ? h?.[n] ?? f : h?.id ?? f, m = c.get(d); - if (!m) - m = j(() => o(h, f)); - else - c.delete(d); - r.set(d, m), l.push(m); - } - c.forEach((f) => f.destroy()); - let a = i; - for (let f = l.length - 1;f >= 0; f--) { - let d = l[f].container; - if (d.nextSibling !== a) - s.insertBefore(d, a); - a = d; - } - c = r; - }), s; - }; - var v = (e) => { - let o = () => window.location.hash.slice(1) || "/", n = S(o()), i = () => n(o()); - window.addEventListener("hashchange", i), N(() => window.removeEventListener("hashchange", i)); - let s = O("div", { class: "router-hook" }), c = null; - return R([n], () => { - let t = n(), r = e.find((l) => { - let u = l.path.split("/").filter(Boolean), a = t.split("/").filter(Boolean); - return u.length === a.length && u.every((f, h) => f[0] === ":" || f === a[h]); - }) || e.find((l) => l.path === "*"); - if (r) { - c?.destroy(); - let l = {}; - r.path.split("/").filter(Boolean).forEach((u, a) => { - if (u[0] === ":") - l[u.slice(1)] = t.split("/").filter(Boolean)[a]; - }), v.params(l), c = j(() => y(r.component) ? r.component(l) : r.component), s.replaceChildren(c.container); - } - }), s; - }; - v.params = S({}); - v.to = (e) => window.location.hash = e.replace(/^#?\/?/, "#/"); - v.back = () => window.history.back(); - v.path = () => window.location.hash.replace(/^#/, "") || "/"; - var Q = ({ url: e, method: o = "GET", headers: n = {} }) => { - let i = S(false), s = S(null), c = S(null), t = null, r = null; - return { run: async (a = null) => { - t?.abort(), clearTimeout(r), t = new AbortController, r = setTimeout(() => t.abort(), 1e4), i(true), s(null); - try { - let f = a instanceof FormData, h = await fetch(e, { method: o, headers: f ? n : { "Content-Type": "application/json", ...n }, body: f ? a : a ? JSON.stringify(a) : undefined, signal: t.signal }), d = await h.text(), m = d ? JSON.parse(d) : null; - if (!h.ok) - throw Error(m?.message || h.statusText); - return c(m), m; - } catch (f) { - if (f.name !== "AbortError") - s(f.message); - throw f; - } finally { - i(false), clearTimeout(r), t = null, r = null; - } - }, abort: () => t?.abort(), loading: i, error: s, data: c }; - }; - var H = (e, o) => { - let n = typeof o === "string" ? g.querySelector(o) : o; - if (!n) - return; - if (B.has(n)) - B.get(n).destroy(); - let i = j(y(e) ? e : () => e); - return n.replaceChildren(i.container), B.set(n, i), i; - }; - var X = Object.freeze({ $: S, $$: I, watch: R, h: O, when: z, each: K, fx: G, router: v, req: Q, mount: H, batch: W }); - if (typeof window < "u") - Object.assign(window, X), "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e) => { - window[e] = (o, n) => O(e, o, n); - }); - // sigpro-helpers.js var get = (val) => typeof val === "function" ? val() : val; var getBy = (item, field = "label") => item && typeof item === "object" ? item[field] : item; var cls = (...classes) => classes.filter(Boolean).join(" ").trim(); var isFn = (f) => typeof f === "function"; - var filterBy = (items, query, field = "label", q2 = String(query).toLowerCase()) => !query ? get(items) : get(items).filter((item) => String(item && typeof item === "object" ? item[field] : item).toLowerCase().includes(q2)); + var filterBy = (items, query, field = "label", q = String(query).toLowerCase()) => !query ? get(items) : get(items).filter((item) => String(item && typeof item === "object" ? item[field] : item).toLowerCase().includes(q)); var rand = (r) => `${r}-${Math.random().toString(36).slice(2, 9)}`; var close = () => document.activeElement?.blur(); // sigpro-ui.js - var Accordion = (p2) => { - const name = p2.name || rand("acc"); - return K(p2.items, (it) => { - return O("div", { class: cls("collapse", p2.class) }, [ - O("input", { type: "radio", name, checked: it.open || undefined }), - it.title ? O("div", { class: cls("collapse-title", `${it.classTitle ?? " font-semibold"}`) }, it.title) : null, - it.content ? O("div", { class: cls("collapse-content text-sm", `${it.classContent ?? " font-semibold"}`) }, it.content) : null + var Accordion = (p) => { + const name = p.name || rand("acc"); + return J(p.items, (it) => { + return M("div", { class: cls("collapse", p.class) }, [ + M("input", { type: "radio", name, checked: it.open || undefined }), + it.title ? M("div", { class: cls("collapse-title", `${it.classTitle ?? " font-semibold"}`) }, it.title) : null, + it.content ? M("div", { class: cls("collapse-content text-sm", `${it.classContent ?? " font-semibold"}`) }, it.content) : null ]); }); }; - var Alert = (p2, c) => O("div", { ...p2, class: cls("alert", p2.class) }, c); + var Alert = (p, c) => M("div", { ...p, class: cls("alert", p.class) }, c); var Autocomplete = ({ items, value, onselect, placeholder = "...", ...props }) => { - const query = S(get(value) || ""); - const filtered = S(() => filterBy(items, query())); + const query = U(get(value) || ""); + const filtered = U(() => filterBy(items, query())); const pick = (item) => { const display = getBy(item); const actual = typeof item === "string" ? item : item.value; @@ -585,110 +1010,110 @@ close(); }; return Dropdown({ class: "w-full" }, [ - O("div", { tabindex: "0", role: "button", class: "w-full" }, Input({ + M("div", { tabindex: "0", role: "button", class: "w-full" }, Input({ ...props, placeholder, value: query, - left: O("span", { class: "icon-[lucide--search]" }), + left: M("span", { class: "icon-[lucide--search]" }), oninput: (e) => { query(e.target.value); if (isFn(value)) value(e.target.value); } })), - DropdownContent({ class: "p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50" }, O("ul", { class: "menu flex-col flex-nowrap w-full p-0" }, [ - K(filtered, (item) => O("li", {}, [ - O("a", { + DropdownContent({ class: "p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50" }, M("ul", { class: "menu flex-col flex-nowrap w-full p-0" }, [ + J(filtered, (item) => M("li", {}, [ + M("a", { onmousedown: (e) => e.preventDefault(), onclick: () => pick(item) }, getBy(item)) ]), (item) => getBy(item)), - () => filtered().length === 0 ? O("li", { class: "p-4 opacity-50 text-center" }, "Sin resultados") : null + () => filtered().length === 0 ? M("li", { class: "p-4 opacity-50 text-center" }, "Sin resultados") : null ])) ]); }; - var Badge = (p2, c) => O("span", { ...p2, class: cls("badge", p2.class) }, c); - var Button = (p2, c) => O("button", { ...p2, class: cls("btn", p2.class) }, c); - var Calendar = (p2) => { - const internalDate = S(new Date); - const hoverDate = S(null); - const startHour = S(0); - const endHour = S(0); + var Badge = (p, c) => M("span", { ...p, class: cls("badge", p.class) }, c); + var Button = (p, c) => M("button", { ...p, class: cls("btn", p.class) }, c); + var Calendar = (p) => { + const internalDate = U(new Date); + const hoverDate = U(null); + const startHour = U(0); + const endHour = U(0); const now = new Date; const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`; - const fmt = (d) => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`; - const rangeMode = () => get(p2.range) === true; - const current = () => get(p2.value); + const fmt = (d2) => `${d2.getFullYear()}-${String(d2.getMonth() + 1).padStart(2, "0")}-${String(d2.getDate()).padStart(2, "0")}`; + const rangeMode = () => get(p.range) === true; + const current = () => get(p.value); const selectDate = (date) => { const s = fmt(date); const v2 = current(); if (rangeMode()) { if (!v2?.start || v2.start && v2.end) { - p2.onChange?.({ start: s, end: null, ...p2.hour && { startHour: startHour() } }); + p.onChange?.({ start: s, end: null, ...p.hour && { startHour: startHour() } }); } else { const start = v2.start; const nv = s < start ? { start: s, end: start } : { start, end: s }; - if (p2.hour) { + if (p.hour) { nv.startHour = v2.startHour ?? startHour(); nv.endHour = endHour(); } - p2.onChange?.(nv); + p.onChange?.(nv); } } else { - p2.onChange?.(p2.hour ? `${s}T${String(startHour()).padStart(2, "0")}:00:00` : s); + p.onChange?.(p.hour ? `${s}T${String(startHour()).padStart(2, "0")}:00:00` : s); } }; - const move = (m) => { - const d = internalDate(); - internalDate(new Date(d.getFullYear(), d.getMonth() + m, 1)); + const move = (m2) => { + const d2 = internalDate(); + internalDate(new Date(d2.getFullYear(), d2.getMonth() + m2, 1)); }; - const moveYear = (y2) => { - const d = internalDate(); - internalDate(new Date(d.getFullYear() + y2, d.getMonth(), 1)); + const moveYear = (y) => { + const d2 = internalDate(); + internalDate(new Date(d2.getFullYear() + y, d2.getMonth(), 1)); }; - const HourSlider = ({ value: hVal, onChange: onH }) => O("div", { class: "flex-1" }, [ - O("div", { class: "flex gap-2 items-center" }, [ - O("input", { type: "range", min: 0, max: 23, value: hVal, class: "range range-xs flex-1", oninput: (e) => onH(+e.target.value) }), - O("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(get(hVal)).padStart(2, "0") + ":00") + const HourSlider = ({ value: hVal, onChange: onH }) => M("div", { class: "flex-1" }, [ + M("div", { class: "flex gap-2 items-center" }, [ + M("input", { type: "range", min: 0, max: 23, value: hVal, class: "range range-xs flex-1", oninput: (e) => onH(+e.target.value) }), + M("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(get(hVal)).padStart(2, "0") + ":00") ]) ]); - return O("div", { - class: cls("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none", p2.class) + return M("div", { + class: cls("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none", p.class) }, [ - O("div", { class: "flex justify-between items-center mb-4 gap-1" }, [ - O("div", { class: "flex gap-0.5" }, [ - O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, O("span", { class: "icon-[lucide--chevrons-left]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, O("span", { class: "icon-[lucide--chevron-left]" })) + M("div", { class: "flex justify-between items-center mb-4 gap-1" }, [ + M("div", { class: "flex gap-0.5" }, [ + M("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, M("span", { class: "icon-[lucide--chevrons-left]" })), + M("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, M("span", { class: "icon-[lucide--chevron-left]" })) ]), - O("span", { class: "font-bold uppercase flex-1 text-center" }, () => internalDate().toLocaleString("es-ES", { month: "short", year: "numeric" })), - O("div", { class: "flex gap-0.5" }, [ - O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, O("span", { class: "icon-[lucide--chevron-right]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, O("span", { class: "icon-[lucide--chevrons-right]" })) + M("span", { class: "font-bold uppercase flex-1 text-center" }, () => internalDate().toLocaleString("es-ES", { month: "short", year: "numeric" })), + M("div", { class: "flex gap-0.5" }, [ + M("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, M("span", { class: "icon-[lucide--chevron-right]" })), + M("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, M("span", { class: "icon-[lucide--chevrons-right]" })) ]) ]), - O("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [ - ...["L", "M", "X", "J", "V", "S", "D"].map((d) => O("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d)), + M("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [ + ...["L", "M", "X", "J", "V", "S", "D"].map((d2) => M("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d2)), () => { - const d = internalDate(), y2 = d.getFullYear(), m = d.getMonth(); - const firstDay = new Date(y2, m, 1).getDay(); + const d2 = internalDate(), y = d2.getFullYear(), m2 = d2.getMonth(); + const firstDay = new Date(y, m2, 1).getDay(); const offset = firstDay === 0 ? 6 : firstDay - 1; - const dim = new Date(y2, m + 1, 0).getDate(); + const dim = new Date(y, m2 + 1, 0).getDate(); const cells = []; for (let i = 0;i < offset; i++) - cells.push(O("div")); + cells.push(M("div")); for (let i = 1;i <= dim; i++) { - const date = new Date(y2, m, i), ds = fmt(date); - cells.push(O("button", { + const date = new Date(y, m2, i), ds = fmt(date); + cells.push(M("button", { type: "button", class: () => { - const v2 = current(), h = hoverDate(); + const v2 = current(), h2 = hoverDate(); const isStart = typeof v2 === "string" ? v2.split("T")[0] === ds : v2?.start === ds; const isEnd = v2?.end === ds; let inRange = false; if (rangeMode() && v2?.start) { const start = v2.start; - if (!v2.end && h) - inRange = ds > start && ds <= h || ds < start && ds >= h; + if (!v2.end && h2) + inRange = ds > start && ds <= h2 || ds < start && ds >= h2; else if (v2.end) inRange = ds > start && ds < v2.end; } @@ -704,35 +1129,35 @@ return cells; } ]), - p2.hour ? O("div", { class: "mt-3 pt-2 border-t border-base-300" }, rangeMode() ? O("div", { class: "flex gap-4" }, [HourSlider({ value: startHour, onChange: (h) => startHour(h) }), HourSlider({ value: endHour, onChange: (h) => endHour(h) })]) : HourSlider({ value: startHour, onChange: (h) => startHour(h) })) : null + p.hour ? M("div", { class: "mt-3 pt-2 border-t border-base-300" }, rangeMode() ? M("div", { class: "flex gap-4" }, [HourSlider({ value: startHour, onChange: (h2) => startHour(h2) }), HourSlider({ value: endHour, onChange: (h2) => endHour(h2) })]) : HourSlider({ value: startHour, onChange: (h2) => startHour(h2) })) : null ]); }; - var Card = (p2, c) => O("div", { ...p2, class: cls("card", p2.class) }, c); - var CardTitle = (p2, c) => O("div", { ...p2, class: cls("card-title", p2.class) }, c); - var CardBody = (p2, c) => O("div", { ...p2, class: cls("card-body", p2.class) }, c); - var CardActions = (p2, c) => O("div", { ...p2, class: cls("card-actions", p2.class) }, c); - var Carousel = (p2, c) => O("div", { ...p2, class: cls("carousel", p2.class) }, c); - var CarouselItem = (p2, c) => O("div", { ...p2, class: cls("carousel-item", p2.class) }, c); - var Chat = (p2, c) => O("div", { ...p2, class: cls("chat", p2.class) }, c); - var ChatBubble = (p2, c) => O("div", { ...p2, class: cls("chat-bubble", p2.class) }, c); - var ChatFooter = (p2, c) => O("div", { ...p2, class: cls("chat-footer", p2.class) }, c); - var ChatHeader = (p2, c) => O("div", { ...p2, class: cls("chat-header", p2.class) }, c); - var ChatImage = (p2, c) => O("div", { ...p2, class: cls("chat-image avatar", p2.class) }, O("div", { class: "w-10 rounded-full" }, typeof c === "string" ? O("img", { src: c, alt: "avatar" }) : c)); - var Checkbox = (p2) => O("input", { ...p2, type: "checkbox", class: cls("checkbox", p2.class) }); - var Colorpicker = (p2) => { - const current = () => get(p2.value) || "#000000"; + var Card = (p, c) => M("div", { ...p, class: cls("card", p.class) }, c); + var CardTitle = (p, c) => M("div", { ...p, class: cls("card-title", p.class) }, c); + var CardBody = (p, c) => M("div", { ...p, class: cls("card-body", p.class) }, c); + var CardActions = (p, c) => M("div", { ...p, class: cls("card-actions", p.class) }, c); + var Carousel = (p, c) => M("div", { ...p, class: cls("carousel", p.class) }, c); + var CarouselItem = (p, c) => M("div", { ...p, class: cls("carousel-item", p.class) }, c); + var Chat = (p, c) => M("div", { ...p, class: cls("chat", p.class) }, c); + var ChatBubble = (p, c) => M("div", { ...p, class: cls("chat-bubble", p.class) }, c); + var ChatFooter = (p, c) => M("div", { ...p, class: cls("chat-footer", p.class) }, c); + var ChatHeader = (p, c) => M("div", { ...p, class: cls("chat-header", p.class) }, c); + var ChatImage = (p, c) => M("div", { ...p, class: cls("chat-image avatar", p.class) }, M("div", { class: "w-10 rounded-full" }, typeof c === "string" ? M("img", { src: c, alt: "avatar" }) : c)); + var Checkbox = (p) => M("input", { ...p, type: "checkbox", class: cls("checkbox", p.class) }); + var Colorpicker = (p) => { + const current = () => get(p.value) || "#000000"; return Dropdown({}, [ DropdownButton({ class: "btn" }, [ - O("div", { class: "size-5 rounded-sm", style: () => `background-color: ${current()}` }), - p2.label && O("span", {}, p2.label) + M("div", { class: "size-5 rounded-sm", style: () => `background-color: ${current()}` }), + p.label && M("span", {}, p.label) ]), - DropdownContent({ class: "p-3 bg-base-100 rounded-box shadow-xl w-64" }, ColorPalette({ value: p2.value, onchange: (c) => { - isFn(p2.value) ? p2.value(c) : p2.onchange?.(c); + DropdownContent({ class: "p-3 bg-base-100 rounded-box shadow-xl w-64" }, ColorPalette({ value: p.value, onchange: (c) => { + isFn(p.value) ? p.value(c) : p.onchange?.(c); } })) ]); }; - var ColorPalette = (p2) => { - const current = () => get(p2.value) || "#000000"; + var ColorPalette = (p) => { + const current = () => get(p.value) || "#000000"; const palette = [ "#000", "#1A1A1A", @@ -799,8 +1224,8 @@ "#d946ef", "#fae8ff" ]; - const pick = (c) => isFn(p2.value) ? p2.value(c) : p2.onchange?.(c); - return O("div", { class: "grid grid-cols-8 gap-1" }, palette.map((c) => O("button", { + const pick = (c) => isFn(p.value) ? p.value(c) : p.onchange?.(c); + return M("div", { class: "grid grid-cols-8 gap-1" }, palette.map((c) => M("button", { type: "button", style: `background-color: ${c}`, class: () => { @@ -813,106 +1238,106 @@ } }))); }; - var Datepicker = (p2) => { - const displayValue = S(""); - const rangeMode = () => get(p2.range) === true; - R(() => { - const v2 = get(p2.value); + var Datepicker = (p) => { + const displayValue = U(""); + const rangeMode = () => get(p.range) === true; + k(() => { + const v2 = get(p.value); if (!v2) return displayValue(""); let text = ""; if (typeof v2 === "string") { - text = p2.hour && v2.includes("T") ? v2.replace("T", " ") : v2; + text = p.hour && v2.includes("T") ? v2.replace("T", " ") : v2; } else if (v2.start && v2.end) { - const startStr = p2.hour && v2.startHour != null ? `${v2.start} ${String(v2.startHour).padStart(2, "0")}:00` : v2.start; - const endStr = p2.hour && v2.endHour != null ? `${v2.end} ${String(v2.endHour).padStart(2, "0")}:00` : v2.end; + const startStr = p.hour && v2.startHour != null ? `${v2.start} ${String(v2.startHour).padStart(2, "0")}:00` : v2.start; + const endStr = p.hour && v2.endHour != null ? `${v2.end} ${String(v2.endHour).padStart(2, "0")}:00` : v2.end; text = `${startStr} - ${endStr}`; } else if (v2.start) { - const startStr = p2.hour && v2.startHour != null ? `${v2.start} ${String(v2.startHour).padStart(2, "0")}:00` : v2.start; + const startStr = p.hour && v2.startHour != null ? `${v2.start} ${String(v2.startHour).padStart(2, "0")}:00` : v2.start; text = `${startStr}...`; } displayValue(text); }); const handleChange = (val) => { - if (isFn(p2.value)) - p2.value(val); + if (isFn(p.value)) + p.value(val); else - p2.onChange?.(val); + p.onChange?.(val); if (!rangeMode() || val?.end != null) close(); }; - return Dropdown({ class: cls("w-full", p2.class) }, [ - O("label", { + return Dropdown({ class: cls("w-full", p.class) }, [ + M("label", { tabindex: "0", role: "button", class: "input input-bordered flex items-center gap-2 cursor-pointer" }, [ - O("span", { class: "icon-[lucide--calendar] shrink-0" }), - O("span", { + M("span", { class: "icon-[lucide--calendar] shrink-0" }), + M("span", { class: () => `grow text-left truncate ${!displayValue() ? "opacity-50" : ""}` - }, () => displayValue() || p2.placeholder || (rangeMode() ? "Seleccionar rango..." : "Seleccionar fecha...")), - () => displayValue() ? O("button", { + }, () => displayValue() || p.placeholder || (rangeMode() ? "Seleccionar rango..." : "Seleccionar fecha...")), + () => displayValue() ? M("button", { type: "button", class: "btn btn-ghost btn-xs btn-circle -mr-2", onmousedown: (e) => { e.preventDefault(); e.stopPropagation(); - if (isFn(p2.value)) - p2.value(null); + if (isFn(p.value)) + p.value(null); else - p2.onChange?.(null); + p.onChange?.(null); displayValue(""); } - }, O("span", { class: "icon-[lucide--x] opacity-50" })) : null + }, M("span", { class: "icon-[lucide--x] opacity-50" })) : null ]), DropdownContent({ class: "p-0 bg-base-100 rounded-box shadow-xl" }, Calendar({ - value: p2.value, + value: p.value, range: rangeMode(), - hour: p2.hour, + hour: p.hour, onChange: handleChange })) ]); }; - var Drawer = (p2, c) => div({ ...p2, class: cls("drawer", p2.class) }, c); - var DrawerToggle = (p2) => input({ ...p2, type: "checkbox", class: "drawer-toggle", checked: () => get(p2.checked), onchange: (e) => isFn(p2.checked) && p2.checked(e.target.checked) }); - var DrawerContent = (p2, c) => div({ ...p2, class: cls("drawer-content", p2.class) }, c); - var DrawerSide = (p2, c) => div({ ...p2, class: cls("drawer-side", p2.class) }, c); - var DrawerOverlay = (p2) => label({ ...p2, for: p2.for, class: cls("drawer-overlay", p2.class) }); - var Divider = (p2) => O("div", { ...p2, class: cls("divider", p2.class) }); - var Dropdown = (p2, c) => O("div", { ...p2, class: cls("dropdown", p2.class) }, c); - var DropdownButton = (p2, c) => O("div", { ...p2, tabindex: "0", role: "button", class: cls("btn", p2.class) }, c); - var DropdownContent = (p2, c) => O("div", { ...p2, tabindex: "0", class: cls("dropdown-content", p2.class) }, c); - var Fab = (p2, c) => O("div", { class: "fab" }, [O("div", { tabindex: "0", role: "button", class: cls("btn", p2.class) }, Icon(p2.icon)), c]); - var Fieldset = (p2, c) => O("fieldset", { class: cls("fieldset", p2.class) }, [O("legend", { class: "fieldset-legend" }, p2.label), c]); - var Fileinput = (p2) => { - const files = S([]); - const drag = S(false); - const error = S(null); - const maxBytes = (p2.max || 2) * 1024 * 1024; + var Drawer = (p, c) => div({ ...p, class: cls("drawer", p.class) }, c); + var DrawerToggle = (p) => input({ ...p, type: "checkbox", class: "drawer-toggle", checked: () => get(p.checked), onchange: (e) => isFn(p.checked) && p.checked(e.target.checked) }); + var DrawerContent = (p, c) => div({ ...p, class: cls("drawer-content", p.class) }, c); + var DrawerSide = (p, c) => div({ ...p, class: cls("drawer-side", p.class) }, c); + var DrawerOverlay = (p) => label({ ...p, for: p.for, class: cls("drawer-overlay", p.class) }); + var Divider = (p) => M("div", { ...p, class: cls("divider", p.class) }); + var Dropdown = (p, c) => M("div", { ...p, class: cls("dropdown", p.class) }, c); + var DropdownButton = (p, c) => M("div", { ...p, tabindex: "0", role: "button", class: cls("btn", p.class) }, c); + var DropdownContent = (p, c) => M("div", { ...p, tabindex: "0", class: cls("dropdown-content", p.class) }, c); + var Fab = (p, c) => M("div", { class: "fab" }, [M("div", { tabindex: "0", role: "button", class: cls("btn", p.class) }, Icon(p.icon)), c]); + var Fieldset = (p, c) => M("fieldset", { class: cls("fieldset", p.class) }, [M("legend", { class: "fieldset-legend" }, p.label), c]); + var Fileinput = (p) => { + const files = U([]); + const drag = U(false); + const error = U(null); + const maxBytes = (p.max || 2) * 1024 * 1024; const process = (fileList) => { const arr = Array.from(fileList); error(null); if (arr.some((f) => f.size > maxBytes)) { - error(`Máx ${p2.max || 2}MB`); + error(`Máx ${p.max || 2}MB`); return; } const updated = [...files(), ...arr]; files(updated); - if (isFn(p2.onselect)) - p2.onselect(updated); - else if (isFn(p2.value)) - p2.value(updated); + if (isFn(p.onselect)) + p.onselect(updated); + else if (isFn(p.value)) + p.value(updated); }; const remove = (idx) => { const updated = files().filter((_2, i) => i !== idx); files(updated); - if (isFn(p2.onselect)) - p2.onselect(updated); - else if (isFn(p2.value)) - p2.value(updated); + if (isFn(p.onselect)) + p.onselect(updated); + else if (isFn(p.value)) + p.value(updated); }; - return O("div", { class: cls("fieldset w-full p-0", p2.class) }, [ - O("label", { + return M("div", { class: cls("fieldset w-full p-0", p.class) }, [ + M("label", { class: () => `relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${drag() ? "border-primary bg-primary/10" : "border-base-content/20 bg-base-100 hover:bg-base-200"}`, ondragover: (e) => { e.preventDefault(); @@ -925,51 +1350,51 @@ process(e.dataTransfer.files); } }, [ - O("div", { class: "flex items-center gap-3 w-full" }, [ - O("span", { class: "icon-[lucide--upload]" }), - O("span", { class: "text-sm opacity-70 truncate grow text-left" }, "Arrastra o selecciona archivos..."), - O("span", { class: "text-[10px] opacity-40 shrink-0" }, `Máx ${p2.max || 2}MB`) + M("div", { class: "flex items-center gap-3 w-full" }, [ + M("span", { class: "icon-[lucide--upload]" }), + M("span", { class: "text-sm opacity-70 truncate grow text-left" }, "Arrastra o selecciona archivos..."), + M("span", { class: "text-[10px] opacity-40 shrink-0" }, `Máx ${p.max || 2}MB`) ]), - O("input", { + M("input", { type: "file", multiple: true, - accept: p2.accept || "*", + accept: p.accept || "*", class: "hidden", onchange: (e) => process(e.target.files) }) ]), - () => error() && O("span", { class: "text-[10px] text-error mt-1 px-1 font-medium" }, error()), - z(() => files().length > 0, () => O("ul", { class: "mt-2 space-y-1" }, K(files, (file, idx) => O("li", { class: "flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300" }, [ - O("div", { class: "flex items-center gap-2 truncate" }, [ - O("span", { class: "opacity-50" }, "\uD83D\uDCC4"), - O("span", { class: "truncate font-medium max-w-[200px]" }, file.name), - O("span", { class: "text-[9px] opacity-40" }, `(${(file.size / 1024).toFixed(0)} KB)`) + () => error() && M("span", { class: "text-[10px] text-error mt-1 px-1 font-medium" }, error()), + F(() => files().length > 0, () => M("ul", { class: "mt-2 space-y-1" }, J(files, (file, idx) => M("li", { class: "flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300" }, [ + M("div", { class: "flex items-center gap-2 truncate" }, [ + M("span", { class: "opacity-50" }, "\uD83D\uDCC4"), + M("span", { class: "truncate font-medium max-w-[200px]" }, file.name), + M("span", { class: "text-[9px] opacity-40" }, `(${(file.size / 1024).toFixed(0)} KB)`) ]), - O("button", { + M("button", { type: "button", class: "btn btn-ghost btn-xs btn-circle", onclick: (e) => { e.preventDefault(); remove(idx); } - }, O("span", { class: "icon-[lucide--x]" })) + }, M("span", { class: "icon-[lucide--x]" })) ])))) ]); }; - var Icon = (p2) => O("span", { class: p2.startsWith("icon-") ? p2 : "" }, p2.startsWith("icon-") ? null : p2); - var Indicator = (p2, c) => O("div", { ...p2, class: cls("indicator", p2.class) }, [p2.value && O("span", { class: cls("indicator-item badge", p2.class) }, p2.value), c]); - var Input = (p2) => { - const { label: label2, icon, float, placeholder, value, left, right, rule, hint, content, ...rest } = p2; - const showPassword = S(false); - const isPassword = p2.type === "password"; + var Icon = (p) => M("span", { class: p.startsWith("icon-") ? p : "" }, p.startsWith("icon-") ? null : p); + var Indicator = (p, c) => M("div", { ...p, class: cls("indicator", p.class) }, [p.value && M("span", { class: cls("indicator-item badge", p.class) }, p.value), c]); + var Input = (p) => { + const { label: label2, icon, float, placeholder, value, left, right, rule, hint, content, ...rest } = p; + const showPassword = U(false); + const isPassword = p.type === "password"; const pattern = rule ?? null; - const inputType = () => isPassword ? get(showPassword) ? "text" : "password" : p2.type || "search"; - return O("label", { class: float ? "floating-label" : "" }, [ - float ? O("span", {}, label2) : null, - O("label", { pattern, class: () => cls("input validator", p2.class) }, [ - label2 && !float ? O("span", { class: "label" }, label2) : null, + const inputType = () => isPassword ? get(showPassword) ? "text" : "password" : p.type || "search"; + return M("label", { class: float ? "floating-label" : "" }, [ + float ? M("span", {}, label2) : null, + M("label", { pattern, class: () => cls("input validator", p.class) }, [ + label2 && !float ? M("span", { class: "label" }, label2) : null, left ?? null, - O("input", { ...rest, type: inputType, class: "grow", pattern, placeholder: placeholder || label2 || " ", value }), + M("input", { ...rest, type: inputType, class: "grow", pattern, placeholder: placeholder || label2 || " ", value }), right ?? null, isPassword ? Swap({ class: "ml-2" }, [ SwapToggle({ value: showPassword, class: "swap-rotate" }), @@ -977,21 +1402,21 @@ SwapOff({}, Icon("icon-[lucide--eye-off]")) ]) : null ]), - hint ? O("div", { class: "validator-hint" }, hint) : null + hint ? M("div", { class: "validator-hint" }, hint) : null ]); }; - var Kbd = (p2, c) => O("kbd", { ...p2, class: cls("kbd", p2.class) }, c); - var List = (p2, c) => O("ul", { ...p2, class: cls("list", p2.class) }, c); - var ListRows = (p2) => () => (get(p2.items) || []).map((item, idx) => O("li", { class: cls("list-row", p2.class, item?.class) }, typeof p2.render === "function" ? p2.render(item, idx) : item)); - var Loading = (p2, c) => O("span", { ...p2, class: cls("loading loading-spinner", p2.class) }, c); - var Menu = (p2) => { - if (p2.children !== undefined) - return O("ul", { class: cls("menu", p2.class), ...p2 }, p2.children); - const { items } = p2; - const render = (item) => item.children ? O("li", {}, O("details", { open: item.open || undefined }, [ - O("summary", {}, getBy(item)), - O("ul", {}, K(() => get(item.children) || [], render)) - ])) : O("li", {}, O("a", { + var Kbd = (p, c) => M("kbd", { ...p, class: cls("kbd", p.class) }, c); + var List = (p, c) => M("ul", { ...p, class: cls("list", p.class) }, c); + var ListRows = (p) => () => (get(p.items) || []).map((item, idx) => M("li", { class: cls("list-row", p.class, item?.class) }, typeof p.render === "function" ? p.render(item, idx) : item)); + var Loading = (p, c) => M("span", { ...p, class: cls("loading loading-spinner", p.class) }, c); + var Menu = (p) => { + if (p.children !== undefined) + return M("ul", { class: cls("menu", p.class), ...p }, p.children); + const { items } = p; + const render2 = (item) => item.children ? M("li", {}, M("details", { open: item.open || undefined }, [ + M("summary", {}, getBy(item)), + M("ul", {}, J(() => get(item.children) || [], render2)) + ])) : M("li", {}, M("a", { href: item.href, onclick: item.onclick ? (e) => { if (!item.href) @@ -999,103 +1424,103 @@ item.onclick(e); } : null }, getBy(item))); - return O("ul", { class: cls("menu", p2.class) }, K(() => get(items) || [], render)); + return M("ul", { class: cls("menu", p.class) }, J(() => get(items) || [], render2)); }; - var Modal = (p2) => { + var Modal = (p) => { let dialogRef = null; - R(() => { - const isOpen = get(p2.open); + k(() => { + const isOpen = get(p.open); if (!dialogRef) return; isOpen ? dialogRef.showModal() : dialogRef.close(); }); - const close2 = () => isFn(p2.open) && p2.open(false); - return O("dialog", { - ...p2, + const close2 = () => isFn(p.open) && p.open(false); + return M("dialog", { + ...p, ref: (el) => dialogRef = el, - class: cls("modal", p2.class), + class: cls("modal", p.class), onclose: close2, oncancel: close2 }, [ - O("div", { class: "modal-box" }, [ - p2.title && O("h3", { class: "text-lg font-bold" }, p2.title), - p2.children, - O("div", { class: "modal-action" }, [ - p2.actions || Button({ class: "btn", onclick: close2 }, "Cerrar") + M("div", { class: "modal-box" }, [ + p.title && M("h3", { class: "text-lg font-bold" }, p.title), + p.children, + M("div", { class: "modal-action" }, [ + p.actions || Button({ class: "btn", onclick: close2 }, "Cerrar") ]) ]), - O("form", { method: "dialog", class: "modal-backdrop" }, [ - O("button", {}, "close") + M("form", { method: "dialog", class: "modal-backdrop" }, [ + M("button", {}, "close") ]) ]); }; - var Navbar = (p2, c) => O("div", { ...p2, class: cls("navbar", p2.class) }, c); - var Progress = (p2) => O("progress", { ...p2, class: cls("progress", p2.class) }); - var Radial = (p2, c) => O("div", { ...p2, class: cls("radial-progress", p2.class), style: `--value:${p2.value ?? 0};${p2.style ?? ""}`, role: "progressbar", "aria-valuenow": p2.value ?? 0 }, c ?? `${p2.value ?? 0}%`); - var Radio = (p2) => O("input", { ...p2, type: "radio", class: cls("radio", p2.class) }); - var Range = (p2) => O("input", { ...p2, type: "range", class: cls("range", p2.class) }); - var Rating = (p2, c) => O("div", { ...p2, class: "rating" }, c); - var RatingItems = (p2) => [...Array(p2.count)].map((_2, i) => O("input", { class: cls("mask", p2.class), name: p2.name, type: "radio", checked: () => get(p2.value) === i, onchange: () => isFn(p2.value) ? p2.value(i) : p2.onchange?.(i) })); - var Select = (p2, c) => { + var Navbar = (p, c) => M("div", { ...p, class: cls("navbar", p.class) }, c); + var Progress = (p) => M("progress", { ...p, class: cls("progress", p.class) }); + var Radial = (p, c) => M("div", { ...p, class: cls("radial-progress", p.class), style: `--value:${p.value ?? 0};${p.style ?? ""}`, role: "progressbar", "aria-valuenow": p.value ?? 0 }, c ?? `${p.value ?? 0}%`); + var Radio = (p) => M("input", { ...p, type: "radio", class: cls("radio", p.class) }); + var Range = (p) => M("input", { ...p, type: "range", class: cls("range", p.class) }); + var Rating = (p, c) => M("div", { ...p, class: "rating" }, c); + var RatingItems = (p) => [...Array(p.count)].map((_2, i) => M("input", { class: cls("mask", p.class), name: p.name, type: "radio", checked: () => get(p.value) === i, onchange: () => isFn(p.value) ? p.value(i) : p.onchange?.(i) })); + var Select = (p, c) => { if (c !== undefined) - return O("select", { class: cls("select", p2.class), ...p2 }, c); - const { label: label2, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p2; + return M("select", { class: cls("select", p.class), ...p }, c); + const { label: label2, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p; const opts = () => { const raw = get(items) || []; const ph = placeholder ? [{ disabled: placeholderDisabled, label: placeholder, value: "" }] : []; return [...ph, ...raw]; }; - return O("label", { class: float ? "floating-label" : "" }, [ - float ? O("span", {}, label2) : null, - O("label", { class: cls("select", rest.class) }, [ - !float && label2 ? O("span", { class: "label" }, label2) : null, + return M("label", { class: float ? "floating-label" : "" }, [ + float ? M("span", {}, label2) : null, + M("label", { class: cls("select", rest.class) }, [ + !float && label2 ? M("span", { class: "label" }, label2) : null, left ?? null, - O("select", { + M("select", { value: () => get(value), onchange: (e) => isFn(value) ? value(e.target.value) : rest.onchange?.(e) - }, K(opts, (item) => { + }, J(opts, (item) => { const val = getBy(item, item.value !== undefined ? "value" : undefined); const lab = getBy(item, "label"); - return O("option", { value: val, disabled: item.disabled || undefined }, lab); + return M("option", { value: val, disabled: item.disabled || undefined }, lab); })), right ?? null ]), - hint ? O("div", { class: "validator-hint" }, hint) : null + hint ? M("div", { class: "validator-hint" }, hint) : null ]); }; - var Skeleton = (p2) => O("div", { ...p2, class: cls("skeleton", p2.class) }); - var SkeletonText = (p2) => O("span", { ...p2, class: cls("skeleton skeleton-text", p2.class) }); - var Stack = (p2, c) => O("div", { ...p2, class: cls("stack", p2.class) }, c); - var Stats = (p2, c) => O("div", { ...p2, class: cls("stats shadow", p2.class) }, c); - var Stat = (p2) => O("div", { ...p2, class: cls("stat", p2.class) }, [ - p2.title ? O("div", { class: "stat-title" }, p2.title) : null, - p2.value ? O("div", { class: "stat-value" }, p2.value) : null, - p2.desc ? O("div", { class: "stat-desc" }, p2.desc) : null + var Skeleton = (p) => M("div", { ...p, class: cls("skeleton", p.class) }); + var SkeletonText = (p) => M("span", { ...p, class: cls("skeleton skeleton-text", p.class) }); + var Stack = (p, c) => M("div", { ...p, class: cls("stack", p.class) }, c); + var Stats = (p, c) => M("div", { ...p, class: cls("stats shadow", p.class) }, c); + var Stat = (p) => M("div", { ...p, class: cls("stat", p.class) }, [ + p.title ? M("div", { class: "stat-title" }, p.title) : null, + p.value ? M("div", { class: "stat-value" }, p.value) : null, + p.desc ? M("div", { class: "stat-desc" }, p.desc) : null ]); - var Steps = (p2, c) => O("ul", { ...p2, class: cls("steps", p2.class) }, c); - var Step = (p2, c) => O("li", { ...p2, class: cls("step", p2.class), "data-content": p2.dataContent }, c); - var Swap = (p2, c) => O("label", { ...p2, class: cls("swap", p2.class) }, c); - var SwapToggle = (p2) => O("input", { type: "checkbox", checked: () => get(p2.value), onchange: (e) => isFn(p2.value) && p2.value(e.target.checked), class: p2.class }); - var SwapOn = (p2, c) => O("div", { ...p2, class: cls("swap-on", p2.class) }, c); - var SwapOff = (p2, c) => O("div", { ...p2, class: cls("swap-off", p2.class) }, c); - var Table = (p2, c) => O("table", { ...p2, class: cls("table", p2.class) }, c); + var Steps = (p, c) => M("ul", { ...p, class: cls("steps", p.class) }, c); + var Step = (p, c) => M("li", { ...p, class: cls("step", p.class), "data-content": p.dataContent }, c); + var Swap = (p, c) => M("label", { ...p, class: cls("swap", p.class) }, c); + var SwapToggle = (p) => M("input", { type: "checkbox", checked: () => get(p.value), onchange: (e) => isFn(p.value) && p.value(e.target.checked), class: p.class }); + var SwapOn = (p, c) => M("div", { ...p, class: cls("swap-on", p.class) }, c); + var SwapOff = (p, c) => M("div", { ...p, class: cls("swap-off", p.class) }, c); + var Table = (p, c) => M("table", { ...p, class: cls("table", p.class) }, c); var TableItems = ({ items, columns = [], header = true }) => { - const head = header !== false && columns.some((c) => c.label) ? O("thead", {}, O("tr", {}, columns.map((c) => O("th", { class: c.class }, c.label)))) : null; - const body = O("tbody", {}, () => { + const head = header !== false && columns.some((c) => c.label) ? M("thead", {}, M("tr", {}, columns.map((c) => M("th", { class: c.class }, c.label)))) : null; + const body = M("tbody", {}, () => { const list = get(items) || []; - return list.map((it, idx) => O("tr", {}, columns.map((c) => { + return list.map((it, idx) => M("tr", {}, columns.map((c) => { const v2 = c.render ? c.render(it, idx) : it[c.key]; - return O("td", { class: c.class }, v2); + return M("td", { class: c.class }, v2); }))); }); return [head, body].filter(Boolean); }; - var Tabs = (p2, c) => { - if (!p2.items) { - const { class: className2, ...rest2 } = p2; - return O("div", { ...rest2, class: cls("tabs", className2) }, c); + var Tabs = (p, c) => { + if (!p.items) { + const { class: className2, ...rest2 } = p; + return M("div", { ...rest2, class: cls("tabs", className2) }, c); } - const { items, activeIndex, onClose, class: className, ...rest } = p2; + const { items, activeIndex, onClose, class: className, ...rest } = p; const get2 = (x2) => isFn(x2) ? x2() : x2; const closeH = onClose || (isFn(items) ? (idx, item) => { const arr = get2(items); @@ -1104,11 +1529,11 @@ if (activeIndex() >= newArr.length) activeIndex(Math.max(0, newArr.length - 1)); } : null); - return O("div", { ...rest, class: cls("tabs", className) }, () => { + return M("div", { ...rest, class: cls("tabs", className) }, () => { const list = get2(items) || []; return list.flatMap((it, idx) => { const isActive = () => activeIndex() === idx; - const button = O("button", { + const button = M("button", { class: () => `tab ${isActive() ? "tab-active" : ""} ${it.class || ""}`, onclick: (e) => { e.preventDefault(); @@ -1117,15 +1542,15 @@ } }, [ getBy(it), - it.closable ? O("span", { + it.closable ? M("span", { class: "ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer", onclick: (e) => { e.stopPropagation(); closeH?.(idx, it); } - }, O("span", { class: "icon-[lucide--x] w-3 h-3" })) : null + }, M("span", { class: "icon-[lucide--x] w-3 h-3" })) : null ]); - const contentDiv = O("div", { + const contentDiv = M("div", { class: "tab-content bg-base-100 border-base-300 p-6", style: () => `display: ${isActive() ? "block" : "none"};` }, isFn(it.content) ? it.content() : it.content); @@ -1133,24 +1558,24 @@ }); }); }; - var Textarea = (p2) => O("textarea", { ...p2, class: cls("textarea", p2.class) }); - var Textrotate = (p2, c) => O("span", { ...p2, class: cls("text-rotate", p2.class) }, c); - var Timeline = (p2, c) => O("ul", { ...p2, class: cls("timeline", p2.class) }, c); + var Textarea = (p) => M("textarea", { ...p, class: cls("textarea", p.class) }); + var Textrotate = (p, c) => M("span", { ...p, class: cls("text-rotate", p.class) }, c); + var Timeline = (p, c) => M("ul", { ...p, class: cls("timeline", p.class) }, c); var Toast = (message, type = "alert-success", duration = 3500) => { let container = document.getElementById("sigpro-toast-container"); if (!container) { - container = O("div", { + container = M("div", { id: "sigpro-toast-container", class: "fixed top-0 right-0 z-[9999] p-4 flex flex-col items-end gap-2 pointer-events-none" }); document.body.appendChild(container); } - const host = O("div", { style: "display: contents" }); + const host = M("div", { style: "display: contents" }); container.appendChild(host); let closeFn, timer, enterTimer; const ToastComponent = () => { - const visible = S(false); - const leaving = S(false); + const visible = U(false); + const leaving = U(false); closeFn = () => { if (leaving()) return; @@ -1166,8 +1591,8 @@ }; enterTimer = setTimeout(() => visible(true), 0); const content = typeof message === "function" ? get(message) : message; - const msgNode = typeof content === "string" ? O("span", {}, content) : content; - return O("div", { + const msgNode = typeof content === "string" ? M("span", {}, content) : content; + return M("div", { class: () => { const base = `alert alert-soft ${type} shadow-lg transition-all duration-300 inline-flex w-auto whitespace-nowrap pointer-events-auto`; if (leaving()) @@ -1178,34 +1603,34 @@ } }, [ msgNode, - O("button", { + M("button", { class: "btn btn-xs btn-circle btn-ghost", onclick: closeFn - }, O("span", { class: "icon-[lucide--x]" })) + }, M("span", { class: "icon-[lucide--x]" })) ]); }; - const instance = H(ToastComponent, host); + const instance = Q(ToastComponent, host); if (duration > 0) timer = setTimeout(closeFn, duration); return closeFn; }; - var Toggle = (p2) => O("input", { ...p2, type: "checkbox", class: cls("toggle", p2.class) }); - var Tooltip = (p2, c) => O("div", { ...p2, class: cls("tooltip", p2.class), "data-tip": p2.tip }, c); + var Toggle = (p) => M("input", { ...p, type: "checkbox", class: cls("toggle", p.class) }); + var Tooltip = (p, c) => M("div", { ...p, class: cls("tooltip", p.class), "data-tip": p.tip }, c); // sigpro-editor.js var exports_sigpro_editor = {}; __export(exports_sigpro_editor, { Editor: () => Editor }); - var Editor = (p2) => { - const { value, class: extraClass } = p2; + var Editor = (p) => { + const { value, class: extraClass } = p; let editorRef = null; let savedRange = null; - const isSource = S(false); - const source = S(""); - const count = S(0); - const refreshTick = S(0); - const showEmojis = S(false); + const isSource = U(false); + const source = U(""); + const count = U(0); + const refreshTick = U(0); + const showEmojis = U(false); const emojis = ["\uD83D\uDE00", "\uD83D\uDE0A", "\uD83D\uDE09", "\uD83E\uDDD0", "\uD83D\uDE2E", "\uD83E\uDD14", "\uD83D\uDE05", "\uD83D\uDE02", "\uD83D\uDE0D", "\uD83D\uDE18", "\uD83E\uDD70", "\uD83D\uDC4D", "\uD83D\uDC4E", "\uD83D\uDC4C", "\uD83E\uDD1D", "\uD83E\uDD1E", "\uD83D\uDC4B", "\uD83D\uDC4F", "\uD83D\uDE4C", "\uD83D\uDE4F", "\uD83D\uDCAA", "☝️", "\uD83D\uDC47", "\uD83D\uDC48", "\uD83D\uDC49", "\uD83D\uDD95", "✅", "⚠️", "\uD83D\uDE80", "\uD83D\uDCE2", "✉️", "❤️"]; const saveSelection = () => { const sel = window.getSelection(); @@ -1231,7 +1656,7 @@ if (isFn(value)) value(html); else - p2.onchange?.(html); + p.onchange?.(html); triggerRefresh(); }; const exec = (cmd, val = null) => { @@ -1288,63 +1713,63 @@ return false; } }; - const toolbar = O("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20" }, [ - O("div", { class: "flex flex-wrap gap-1 flex-1 items-center" }, [ - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("bold") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("bold") }, O("span", { class: "icon-[lucide--bold]" })), - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("italic") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("italic") }, O("span", { class: "icon-[lucide--italic]" })), - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("underline") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("underline") }, O("span", { class: "icon-[lucide--underline]" })), - O("input", { type: "color", class: "w-5 h-5 p-0 border-0 bg-transparent cursor-pointer", oninput: (e) => exec("foreColor", e.target.value) }), - O("span", { class: "w-px h-5 bg-base-300 mx-1" }), - O("button", { + const toolbar = M("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20" }, [ + M("div", { class: "flex flex-wrap gap-1 flex-1 items-center" }, [ + M("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("bold") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("bold") }, M("span", { class: "icon-[lucide--bold]" })), + M("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("italic") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("italic") }, M("span", { class: "icon-[lucide--italic]" })), + M("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("underline") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("underline") }, M("span", { class: "icon-[lucide--underline]" })), + M("input", { type: "color", class: "w-5 h-5 p-0 border-0 bg-transparent cursor-pointer", oninput: (e) => exec("foreColor", e.target.value) }), + M("span", { class: "w-px h-5 bg-base-300 mx-1" }), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("justifyLeft") - }, O("span", { class: "icon-[lucide--align-left]" })), - O("button", { + }, M("span", { class: "icon-[lucide--align-left]" })), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("justifyCenter") - }, O("span", { class: "icon-[lucide--align-center]" })), - O("button", { + }, M("span", { class: "icon-[lucide--align-center]" })), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("justifyRight") - }, O("span", { class: "icon-[lucide--align-right]" })), - O("span", { class: "w-px h-5 bg-base-300 mx-1" }), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertUnorderedList") }, O("span", { class: "icon-[lucide--list]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertOrderedList") }, O("span", { class: "icon-[lucide--list-ordered]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("outdent") }, O("span", { class: "icon-[lucide--indent-decrease]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("indent") }, O("span", { class: "icon-[lucide--indent-increase]" })), - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("formatBlock", "BLOCKQUOTE") ? "btn-active" : ""}`, onclick: () => exec("formatBlock", queryState("formatBlock", "BLOCKQUOTE") ? "P" : "BLOCKQUOTE") }, O("span", { class: "icon-[lucide--quote]" })), - O("span", { class: "w-px h-5 bg-base-300 mx-1" }), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { + }, M("span", { class: "icon-[lucide--align-right]" })), + M("span", { class: "w-px h-5 bg-base-300 mx-1" }), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertUnorderedList") }, M("span", { class: "icon-[lucide--list]" })), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertOrderedList") }, M("span", { class: "icon-[lucide--list-ordered]" })), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("outdent") }, M("span", { class: "icon-[lucide--indent-decrease]" })), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("indent") }, M("span", { class: "icon-[lucide--indent-increase]" })), + M("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("formatBlock", "BLOCKQUOTE") ? "btn-active" : ""}`, onclick: () => exec("formatBlock", queryState("formatBlock", "BLOCKQUOTE") ? "P" : "BLOCKQUOTE") }, M("span", { class: "icon-[lucide--quote]" })), + M("span", { class: "w-px h-5 bg-base-300 mx-1" }), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { const url = window.prompt("URL:"); if (url) exec("createLink", url); - } }, O("span", { class: "icon-[lucide--link]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { + } }, M("span", { class: "icon-[lucide--link]" })), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { const input2 = document.createElement("input"); input2.type = "file"; input2.onchange = (e) => handleUpload(e.target.files[0]); input2.click(); - } }, O("span", { class: "icon-[lucide--paperclip]" })), - O("div", { class: "relative" }, [ - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: (e) => { + } }, M("span", { class: "icon-[lucide--paperclip]" })), + M("div", { class: "relative" }, [ + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: (e) => { e.stopPropagation(); saveSelection(); showEmojis(!showEmojis()); - } }, O("span", { class: "icon-[lucide--smile]" })), - O("div", { class: "absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1", style: () => showEmojis() ? "display:flex" : "display:none" }, emojis.map((emo) => O("span", { class: "cursor-pointer hover:bg-base-200 p-1 rounded text-lg", onclick: (e) => { + } }, M("span", { class: "icon-[lucide--smile]" })), + M("div", { class: "absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1", style: () => showEmojis() ? "display:flex" : "display:none" }, emojis.map((emo) => M("span", { class: "cursor-pointer hover:bg-base-200 p-1 rounded text-lg", onclick: (e) => { e.stopPropagation(); exec("insertText", emo); showEmojis(false); } }, emo))) ]), - O("span", { class: "w-px h-5 bg-base-300 mx-1" }), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo") }, O("span", { class: "icon-[lucide--undo-2]" })), - O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo") }, O("span", { class: "icon-[lucide--redo-2]" })) + M("span", { class: "w-px h-5 bg-base-300 mx-1" }), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo") }, M("span", { class: "icon-[lucide--undo-2]" })), + M("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo") }, M("span", { class: "icon-[lucide--redo-2]" })) ]), - O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${isSource() ? "btn-active" : ""}`, onclick: () => { + M("button", { type: "button", class: () => `btn btn-ghost btn-xs ${isSource() ? "btn-active" : ""}`, onclick: () => { if (!isSource()) source(editorRef?.innerHTML || ""); else if (editorRef) { @@ -1352,7 +1777,7 @@ notify(); } isSource(!isSource()); - } }, O("span", { class: "icon-[lucide--code-2]" })) + } }, M("span", { class: "icon-[lucide--code-2]" })) ]); if (typeof document !== "undefined" && !document.getElementById("editor-styles")) { const style = document.createElement("style"); @@ -1366,10 +1791,10 @@ `; document.head.appendChild(style); } - return O("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col", extraClass) }, [ + return M("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col", extraClass) }, [ toolbar, - O("div", { class: "relative flex-1 flex flex-col", onclick: () => showEmojis(false) }, [ - O("div", { + M("div", { class: "relative flex-1 flex flex-col", onclick: () => showEmojis(false) }, [ + M("div", { ref: (el) => { if (!editorRef && el) { editorRef = el; @@ -1419,7 +1844,7 @@ handleUpload(e.dataTransfer.files[0]); } }), - O("textarea", { + M("textarea", { class: "w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0", style: () => isSource() ? "" : "display:none", value: source, @@ -1427,12 +1852,12 @@ source(e.target.value); if (editorRef) editorRef.innerHTML = e.target.value; - p2.onchange?.(e.target.value); + p.onchange?.(e.target.value); } }) ]), - O("div", { class: "px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic" }, [ - O("span", () => `${count()} caracteres`) + M("div", { class: "px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic" }, [ + M("span", () => `${count()} caracteres`) ]) ]); }; @@ -1456,20 +1881,23 @@ nodata: "No data" } }; - var currentLocale = S("es"); + var currentLocale = U("es"); var Locale = (t) => currentLocale(t); var tt = (t) => () => i18n[currentLocale()][t] || t; - // index.js - var Components = { - ...exports_sigpro_ui, - ...exports_sigpro_editor - }; - var Utils = { - Locale, - tt - }; + // sigpro-ui-full.js + var Components = { ...exports_sigpro_ui, ...exports_sigpro_editor }; + var Utils = { Locale, tt }; if (typeof window !== "undefined") { + const fns = { $: U, $$: X, watch: k, h: M, each: J, when: F, mount: Q, batch: z }; + Object.entries(fns).forEach(([name, fn]) => { + Object.defineProperty(window, name, { + value: fn, + writable: true, + configurable: true, + enumerable: true + }); + }); Object.entries({ ...Components, ...Utils }).forEach(([name, value]) => { Object.defineProperty(window, name, { value, diff --git a/dist/sigpro-ui.min.js b/dist/sigpro-ui.min.js index db14930..cc39db9 100644 --- a/dist/sigpro-ui.min.js +++ b/dist/sigpro-ui.min.js @@ -1,7 +1,7 @@ -(()=>{var{defineProperty:tt,getOwnPropertyNames:Qt,getOwnPropertyDescriptor:Mt}=Object,Zt=Object.prototype.hasOwnProperty;function Gt(t){return this[t]}var qt=(t)=>{var n=(it??=new WeakMap).get(t),o;if(n)return n;if(n=tt({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var f of Qt(t))if(!Zt.call(n,f))tt(n,f,{get:Gt.bind(t,f),enumerable:!(o=Mt(t,f))||o.enumerable})}return it.set(t,n),n},it;var Ut=(t)=>t;function Yt(t,n){this[t]=Ut.bind(null,n)}var nt=(t,n)=>{for(var o in n)tt(t,o,{get:n[o],enumerable:!0,configurable:!0,set:Yt.bind(n,o)})};var nr={};nt(nr,{Utils:()=>St,Components:()=>zt});var _t={};nt(_t,{Tooltip:()=>hn,Toggle:()=>vn,Toast:()=>cn,Timeline:()=>Rn,Textrotate:()=>Fn,Textarea:()=>mn,Tabs:()=>Dn,TableItems:()=>xn,Table:()=>Hn,SwapToggle:()=>Wt,SwapOn:()=>$t,SwapOff:()=>Jt,Swap:()=>Tt,Steps:()=>gn,Step:()=>Vn,Stats:()=>Yn,Stat:()=>In,Stack:()=>Un,SkeletonText:()=>qn,Skeleton:()=>Gn,Select:()=>Zn,RatingItems:()=>Mn,Rating:()=>Qn,Range:()=>Pn,Radio:()=>Bn,Radial:()=>Sn,Progress:()=>zn,Navbar:()=>Xn,Modal:()=>On,Menu:()=>Kn,Loading:()=>Jn,ListRows:()=>$n,List:()=>Wn,Kbd:()=>Tn,Input:()=>At,Indicator:()=>An,Icon:()=>m,Fileinput:()=>Ln,Fieldset:()=>kn,Fab:()=>jn,DropdownContent:()=>R,DropdownButton:()=>Lt,Dropdown:()=>F,DrawerToggle:()=>yn,DrawerSide:()=>Nn,DrawerOverlay:()=>dn,DrawerContent:()=>En,Drawer:()=>wn,Divider:()=>Cn,Datepicker:()=>bn,Colorpicker:()=>en,ColorPalette:()=>kt,Checkbox:()=>sn,ChatImage:()=>_n,ChatHeader:()=>an,ChatFooter:()=>ln,ChatBubble:()=>un,Chat:()=>fn,CarouselItem:()=>on,Carousel:()=>rn,CardTitle:()=>pt,CardBody:()=>tn,CardActions:()=>nn,Card:()=>ht,Calendar:()=>jt,Button:()=>Ct,Badge:()=>vt,Autocomplete:()=>ct,Alert:()=>Rt,Accordion:()=>Ft});var z=(t)=>typeof t==="function",ft=(t)=>t&&typeof t==="object",q=Array.isArray,S=typeof document<"u"?document:null,et=(t)=>t?._isRuntime?t.container:t instanceof Node?t:S.createTextNode(t==null?"":String(t)),W=null,K=null,I=!1,V=0,H=new Set,bt=new WeakMap,rt=Symbol("iter"),ot=new WeakMap,Z=(t)=>{if(!t||t._disposed)return;t._disposed=!0;let n=[t];while(n.length){let o=n.pop();if(o._cleanups)o._cleanups.forEach((f)=>f()),o._cleanups.clear();if(o._children)o._children.forEach((f)=>n.push(f)),o._children.clear();if(o._deps)o._deps.forEach((f)=>f.delete(o)),o._deps.clear()}},U=(t)=>{if(K)(K._cleanups||=new Set).add(t)},It=(t)=>{let n=W;W=null;try{return t()}finally{W=n}},g=(t,n=!1)=>{let o=()=>{if(o._disposed)return;if(o._deps)o._deps.forEach((_)=>_.delete(o));if(o._cleanups)o._cleanups.forEach((_)=>_()),o._cleanups.clear();let f=W,u=K;W=K=o;try{return o._result=t()}catch(_){console.error("[SigPro]",_)}finally{W=f,K=u}};if(o._deps=o._cleanups=o._children=null,o._disposed=!1,o._isComputed=n,o._depth=W?W._depth+1:0,o._mounts=[],o._parent=K,K)(K._children||=new Set).add(o);return o},yt=()=>{if(I)return;I=!0;let t=Array.from(H).sort((n,o)=>n._depth-o._depth);H.clear();for(let n of t)if(!n._disposed)n();I=!1},gt=(t)=>{V++;try{return t()}finally{if(V--,V===0&&H.size>0&&!I)yt()}},X=(t,n=!1)=>{if(!n&&W&&!W._disposed)t.add(W),(W._deps||=new Set).add(t);else if(n&&t.size>0){let o=!1;for(let f of t){if(f===W||f._disposed)continue;if(f._isComputed){if(f._dirty=!0,f._subs)X(f._subs,!0)}else H.add(f),o=!0}if(o&&!I&&V===0)queueMicrotask(yt)}},k=(t,n=null)=>{let o=new Set;if(z(t)){let f,u=()=>{if(u._dirty){let _=W;W=u;try{let l=t();if(!Object.is(f,l))f=l,X(o,!0)}finally{W=_}u._dirty=!1}return X(o),f};if(u._isComputed=!0,u._subs=o,u._dirty=!0,u._deps=null,u._disposed=!1,u.stop=()=>{},K)U(u.stop);return u}if(n)try{t=JSON.parse(localStorage.getItem(n))??t}catch(f){}return(...f)=>{if(f.length){let u=z(f[0])?f[0](t):f[0];if(!Object.is(t,u)){if(t=u,n)localStorage.setItem(n,JSON.stringify(t));X(o,!0)}}return X(o),t}},Et=(t)=>{if(!ft(t))return t;let n=bt.get(t);if(n)return n;let o=new Map,f=(_)=>{let l=o.get(_);if(!l)o.set(_,l=new Set);return l},u=new Proxy(t,{get(_,l,a){if(typeof l!=="symbol")X(f(l));return Et(Reflect.get(_,l,a))},set(_,l,a,s){let i=Reflect.has(_,l),y=Reflect.get(_,l,s),N=Reflect.set(_,l,a,s);if(N&&!Object.is(y,a)){if(X(f(l),!0),!i)X(f(rt),!0)}return N},deleteProperty(_,l){let a=Reflect.deleteProperty(_,l);if(a)X(f(l),!0),X(f(rt),!0);return a},ownKeys(_){return X(f(rt)),Reflect.ownKeys(_)}});return bt.set(t,u),u},G=(t,n)=>{if(n===void 0){let f=g(t);return f(),()=>Z(f)}let o=g(()=>{let f=Array.isArray(t)?t.map((u)=>u()):t();It(()=>n(f))});return o(),()=>Z(o)},ut=(t)=>{if(!t)return;if(t._cleanups)t._cleanups.forEach((n)=>n()),t._cleanups.clear();if(t._ownerEffect)Z(t._ownerEffect);if(t.childNodes)t.childNodes.forEach((n)=>ut(n))},Vt=/^\s*(javascript|data|vbscript):/i,Ht=(t)=>t==="src"||t==="href"||t.startsWith("on"),wt=(t,n)=>{if(n==null||n===!1)return null;if(Ht(t)){let o=String(n);if(Vt.test(o))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${t}`),"#"}return n},r=(t,n={},o=[])=>{if(n instanceof Node||q(n)||!ft(n))o=n,n={};if(z(t)){let l=g(()=>{let y=t(n,{children:o,emit:(N,...d)=>n[`on${N[0].toUpperCase()}${N.slice(1)}`]?.(...d)});return l._result=y,y});l();let a=l._result;if(a==null)return null;let s=a instanceof Node||q(a)&&a.every((y)=>y instanceof Node)?a:S.createTextNode(String(a)),i=(y)=>{if(ft(y)&&!y._isRuntime)y._mounts=l._mounts||[],y._cleanups=l._cleanups||new Set,y._ownerEffect=l};return q(s)?s.forEach(i):i(s),s}let f=/^(svg|path|circle|rect|line|poly(line|gon)|g|defs|text(path)?|tspan|use|symbol|image|marker|ellipse)$/i.test(t),u=f?S.createElementNS("http://www.w3.org/2000/svg",t):S.createElement(t);u._cleanups=new Set;for(let l in n){if(!n.hasOwnProperty(l))continue;let a=n[l];if(l==="ref"){z(a)?a(u):a.current=u;continue}if(f&&l.startsWith("xlink:")){a==null?u.removeAttributeNS("http://www.w3.org/1999/xlink",l.slice(6)):u.setAttributeNS("http://www.w3.org/1999/xlink",l.slice(6),a);continue}if(l.startsWith("on")){let s=l.slice(2).toLowerCase();u.addEventListener(s,a);let i=()=>u.removeEventListener(s,a);u._cleanups.add(i),U(i)}else if(z(a)){let s=g(()=>{let i=wt(l,a());if(l==="class")u.className=i||"";else if(i==null)u.removeAttribute(l);else if(l in u&&!f)u[l]=i;else u.setAttribute(l,i===!0?"":i)});if(s(),u._cleanups.add(()=>Z(s)),U(()=>Z(s)),/^(INPUT|TEXTAREA|SELECT)$/.test(u.tagName)&&(l==="value"||l==="checked")){let i=l==="checked"?"change":"input";u.addEventListener(i,(y)=>a(y.target[l]))}}else{let s=wt(l,a);if(s!=null)if(l in u&&!f)u[l]=s;else u.setAttribute(l,s===!0?"":s)}}let _=(l)=>{if(q(l))return l.forEach(_);if(z(l)){let a=S.createTextNode("");u.appendChild(a);let s=[],i=g(()=>{let y=l(),N=(q(y)?y:[y]).map(et);s.forEach((C)=>{if(C._isRuntime)C.destroy();else ut(C);if(C.parentNode)C.remove()});let d=a;for(let C=N.length-1;C>=0;C--){let w=N[C];if(w.parentNode!==d.parentNode)d.parentNode?.insertBefore(w,d);if(w._mounts)w._mounts.forEach((E)=>E());d=w}s=N});i(),u._cleanups.add(()=>Z(i)),U(()=>Z(i))}else{let a=et(l);if(u.appendChild(a),a._mounts)a._mounts.forEach((s)=>s())}};return _(o),u},x=(t)=>{let n=new Set,o=K,f=W,u=S.createElement("div");u.style.display="contents",u.setAttribute("role","presentation"),K={_cleanups:n},W=null;let _=(l)=>{if(!l)return;if(l._isRuntime)n.add(l.destroy),u.appendChild(l.container);else if(q(l))l.forEach(_);else u.appendChild(l instanceof Node?l:S.createTextNode(String(l==null?"":l)))};try{_(t({onCleanup:(l)=>n.add(l)}))}finally{K=o,W=f}return{_isRuntime:!0,container:u,destroy:()=>{n.forEach((l)=>l()),ut(u),u.remove()}}},lt=(t,n,o=null)=>{let f=S.createTextNode(""),u=r("div",{style:"display:contents"},[f]),_=null;return G(()=>!!(z(t)?t():t),(l)=>{if(_)_.destroy(),_=null;let a=l?n:o;if(a)_=x(()=>z(a)?a():a),u.insertBefore(_.container,f)}),U(()=>_?.destroy()),u},xt=({name:t,duration:n=200,scale:o,slide:f,rotate:u,blur:_},l)=>{let a=typeof l==="function"?l():l;if(!(a instanceof Node))return a;if(t)return a.style.animation=`${t}-in ${n}ms`,a;let s=o||f||u||_,i=[o?"scale(0.95)":"",f?"translateY(-10px)":"",u?"rotate(-2deg)":""].filter(Boolean).join(" ");if(a.style.transition=`all ${n}ms ease`,a.style.opacity="0",s)a.style.transform=i;if(_)a.style.filter="blur(4px)";return requestAnimationFrame(()=>{if(a.style.opacity="1",s)a.style.transform="none";if(_)a.style.filter="none"}),a},M=(t,n,o)=>{let f=S.createTextNode(""),u=r("div",{style:"display:contents"},[f]),_=new Map;return G(()=>(z(t)?t():t)||[],(l)=>{let a=new Map,s=[],i=l||[];for(let N=0;Nn(d,N));else _.delete(C);a.set(C,w),s.push(w)}_.forEach((N)=>N.destroy());let y=f;for(let N=s.length-1;N>=0;N--){let d=s[N].container;if(d.nextSibling!==y)u.insertBefore(d,y);y=d}_=a}),u},Y=(t)=>{let n=()=>window.location.hash.slice(1)||"/",o=k(n()),f=()=>o(n());window.addEventListener("hashchange",f),U(()=>window.removeEventListener("hashchange",f));let u=r("div",{class:"router-hook"}),_=null;return G([o],()=>{let l=o(),a=t.find((s)=>{let i=s.path.split("/").filter(Boolean),y=l.split("/").filter(Boolean);return i.length===y.length&&i.every((N,d)=>N[0]===":"||N===y[d])})||t.find((s)=>s.path==="*");if(a){_?.destroy();let s={};a.path.split("/").filter(Boolean).forEach((i,y)=>{if(i[0]===":")s[i.slice(1)]=l.split("/").filter(Boolean)[y]}),Y.params(s),_=x(()=>z(a.component)?a.component(s):a.component),u.replaceChildren(_.container)}}),u};Y.params=k({});Y.to=(t)=>window.location.hash=t.replace(/^#?\/?/,"#/");Y.back=()=>window.history.back();Y.path=()=>window.location.hash.replace(/^#/,"")||"/";var Dt=({url:t,method:n="GET",headers:o={}})=>{let f=k(!1),u=k(null),_=k(null),l=null,a=null;return{run:async(s=null)=>{l?.abort(),clearTimeout(a),l=new AbortController,a=setTimeout(()=>l.abort(),1e4),f(!0),u(null);try{let i=s instanceof FormData,y=await fetch(t,{method:n,headers:i?o:{"Content-Type":"application/json",...o},body:i?s:s?JSON.stringify(s):void 0,signal:l.signal}),N=await y.text(),d=N?JSON.parse(N):null;if(!y.ok)throw Error(d?.message||y.statusText);return _(d),d}catch(i){if(i.name!=="AbortError")u(i.message);throw i}finally{f(!1),clearTimeout(a),l=null,a=null}},abort:()=>l?.abort(),loading:f,error:u,data:_}},at=(t,n)=>{let o=typeof n==="string"?S.querySelector(n):n;if(!o)return;if(ot.has(o))ot.get(o).destroy();let f=x(z(t)?t:()=>t);return o.replaceChildren(f.container),ot.set(o,f),f},mt=Object.freeze({$:k,$$:Et,watch:G,h:r,when:lt,each:M,fx:xt,router:Y,req:Dt,mount:at,batch:gt});if(typeof window<"u")Object.assign(window,mt),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((t)=>{window[t]=(n,o)=>r(t,n,o)});var L=(t)=>typeof t==="function"?t():t,Q=(t,n="label")=>t&&typeof t==="object"?t[n]:t,e=(...t)=>t.filter(Boolean).join(" ").trim(),A=(t)=>typeof t==="function",Nt=(t,n,o="label",f=String(n).toLowerCase())=>!n?L(t):L(t).filter((u)=>String(u&&typeof u==="object"?u[o]:u).toLowerCase().includes(f)),dt=(t)=>`${t}-${Math.random().toString(36).slice(2,9)}`,D=()=>document.activeElement?.blur();var Ft=(t)=>{let n=t.name||dt("acc");return M(t.items,(o)=>{return r("div",{class:e("collapse",t.class)},[r("input",{type:"radio",name:n,checked:o.open||void 0}),o.title?r("div",{class:e("collapse-title",`${o.classTitle??" font-semibold"}`)},o.title):null,o.content?r("div",{class:e("collapse-content text-sm",`${o.classContent??" font-semibold"}`)},o.content):null])})},Rt=(t,n)=>r("div",{...t,class:e("alert",t.class)},n),ct=({items:t,value:n,onselect:o,placeholder:f="...",...u})=>{let _=k(L(n)||""),l=k(()=>Nt(t,_())),a=(s)=>{let i=Q(s),y=typeof s==="string"?s:s.value;if(_(i),A(n))n(y);o?.(s),D()};return F({class:"w-full"},[r("div",{tabindex:"0",role:"button",class:"w-full"},At({...u,placeholder:f,value:_,left:r("span",{class:"icon-[lucide--search]"}),oninput:(s)=>{if(_(s.target.value),A(n))n(s.target.value)}})),R({class:"p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50"},r("ul",{class:"menu flex-col flex-nowrap w-full p-0"},[M(l,(s)=>r("li",{},[r("a",{onmousedown:(i)=>i.preventDefault(),onclick:()=>a(s)},Q(s))]),(s)=>Q(s)),()=>l().length===0?r("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null]))])},vt=(t,n)=>r("span",{...t,class:e("badge",t.class)},n),Ct=(t,n)=>r("button",{...t,class:e("btn",t.class)},n),jt=(t)=>{let n=k(new Date),o=k(null),f=k(0),u=k(0),_=new Date,l=`${_.getFullYear()}-${String(_.getMonth()+1).padStart(2,"0")}-${String(_.getDate()).padStart(2,"0")}`,a=(w)=>`${w.getFullYear()}-${String(w.getMonth()+1).padStart(2,"0")}-${String(w.getDate()).padStart(2,"0")}`,s=()=>L(t.range)===!0,i=()=>L(t.value),y=(w)=>{let E=a(w),J=i();if(s())if(!J?.start||J.start&&J.end)t.onChange?.({start:E,end:null,...t.hour&&{startHour:f()}});else{let B=J.start,O=E{let E=n();n(new Date(E.getFullYear(),E.getMonth()+w,1))},d=(w)=>{let E=n();n(new Date(E.getFullYear()+w,E.getMonth(),1))},C=({value:w,onChange:E})=>r("div",{class:"flex-1"},[r("div",{class:"flex gap-2 items-center"},[r("input",{type:"range",min:0,max:23,value:w,class:"range range-xs flex-1",oninput:(J)=>E(+J.target.value)}),r("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(L(w)).padStart(2,"0")+":00")])]);return r("div",{class:e("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",t.class)},[r("div",{class:"flex justify-between items-center mb-4 gap-1"},[r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(-1)},r("span",{class:"icon-[lucide--chevrons-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(-1)},r("span",{class:"icon-[lucide--chevron-left]"}))]),r("span",{class:"font-bold uppercase flex-1 text-center"},()=>n().toLocaleString("es-ES",{month:"short",year:"numeric"})),r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(1)},r("span",{class:"icon-[lucide--chevron-right]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(1)},r("span",{class:"icon-[lucide--chevrons-right]"}))])]),r("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>o(null)},[...["L","M","X","J","V","S","D"].map((w)=>r("div",{class:"text-[10px] opacity-40 font-bold text-center"},w)),()=>{let w=n(),E=w.getFullYear(),J=w.getMonth(),B=new Date(E,J,1).getDay(),O=B===0?6:B-1,c=new Date(E,J+1,0).getDate(),b=[];for(let j=0;j{let P=i(),v=o(),Bt=typeof P==="string"?P.split("T")[0]===$:P?.start===$,Pt=P?.end===$,h=!1;if(s()&&P?.start){let p=P.start;if(!P.end&&v)h=$>p&&$<=v||$=v;else if(P.end)h=$>p&&$s()&&o($),onclick:()=>y(T)},j.toString()))}return b}]),t.hour?r("div",{class:"mt-3 pt-2 border-t border-base-300"},s()?r("div",{class:"flex gap-4"},[C({value:f,onChange:(w)=>f(w)}),C({value:u,onChange:(w)=>u(w)})]):C({value:f,onChange:(w)=>f(w)})):null])},ht=(t,n)=>r("div",{...t,class:e("card",t.class)},n),pt=(t,n)=>r("div",{...t,class:e("card-title",t.class)},n),tn=(t,n)=>r("div",{...t,class:e("card-body",t.class)},n),nn=(t,n)=>r("div",{...t,class:e("card-actions",t.class)},n),rn=(t,n)=>r("div",{...t,class:e("carousel",t.class)},n),on=(t,n)=>r("div",{...t,class:e("carousel-item",t.class)},n),fn=(t,n)=>r("div",{...t,class:e("chat",t.class)},n),un=(t,n)=>r("div",{...t,class:e("chat-bubble",t.class)},n),ln=(t,n)=>r("div",{...t,class:e("chat-footer",t.class)},n),an=(t,n)=>r("div",{...t,class:e("chat-header",t.class)},n),_n=(t,n)=>r("div",{...t,class:e("chat-image avatar",t.class)},r("div",{class:"w-10 rounded-full"},typeof n==="string"?r("img",{src:n,alt:"avatar"}):n)),sn=(t)=>r("input",{...t,type:"checkbox",class:e("checkbox",t.class)}),en=(t)=>{let n=()=>L(t.value)||"#000000";return F({},[Lt({class:"btn"},[r("div",{class:"size-5 rounded-sm",style:()=>`background-color: ${n()}`}),t.label&&r("span",{},t.label)]),R({class:"p-3 bg-base-100 rounded-box shadow-xl w-64"},kt({value:t.value,onchange:(o)=>{A(t.value)?t.value(o):t.onchange?.(o)}}))])},kt=(t)=>{let n=()=>L(t.value)||"#000000",o=["#000","#1A1A1A","#333","#4D4D4D","#666","#808080","#B3B3B3","#FFF","#450a0a","#7f1d1d","#991b1b","#b91c1c","#dc2626","#ef4444","#f87171","#fca5a5","#431407","#7c2d12","#9a3412","#c2410c","#ea580c","#f97316","#fb923c","#ffedd5","#713f12","#a16207","#ca8a04","#eab308","#facc15","#fde047","#fef08a","#fff9c4","#064e3b","#065f46","#059669","#10b981","#34d399","#4ade80","#84cc16","#d9f99d","#082f49","#075985","#0284c7","#0ea5e9","#38bdf8","#7dd3fc","#22d3ee","#cffafe","#1e1b4b","#312e81","#4338ca","#4f46e5","#6366f1","#818cf8","#a5b4fc","#e0e7ff","#2e1065","#4c1d95","#6d28d9","#7c3aed","#8b5cf6","#a855f7","#d946ef","#fae8ff"],f=(u)=>A(t.value)?t.value(u):t.onchange?.(u);return r("div",{class:"grid grid-cols-8 gap-1"},o.map((u)=>r("button",{type:"button",style:`background-color: ${u}`,class:()=>{return`size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${n().toLowerCase()===u.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>{f(u),D()}})))},bn=(t)=>{let n=k(""),o=()=>L(t.range)===!0;G(()=>{let u=L(t.value);if(!u)return n("");let _="";if(typeof u==="string")_=t.hour&&u.includes("T")?u.replace("T"," "):u;else if(u.start&&u.end){let l=t.hour&&u.startHour!=null?`${u.start} ${String(u.startHour).padStart(2,"0")}:00`:u.start,a=t.hour&&u.endHour!=null?`${u.end} ${String(u.endHour).padStart(2,"0")}:00`:u.end;_=`${l} - ${a}`}else if(u.start)_=`${t.hour&&u.startHour!=null?`${u.start} ${String(u.startHour).padStart(2,"0")}:00`:u.start}...`;n(_)});let f=(u)=>{if(A(t.value))t.value(u);else t.onChange?.(u);if(!o()||u?.end!=null)D()};return F({class:e("w-full",t.class)},[r("label",{tabindex:"0",role:"button",class:"input input-bordered flex items-center gap-2 cursor-pointer"},[r("span",{class:"icon-[lucide--calendar] shrink-0"}),r("span",{class:()=>`grow text-left truncate ${!n()?"opacity-50":""}`},()=>n()||t.placeholder||(o()?"Seleccionar rango...":"Seleccionar fecha...")),()=>n()?r("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle -mr-2",onmousedown:(u)=>{if(u.preventDefault(),u.stopPropagation(),A(t.value))t.value(null);else t.onChange?.(null);n("")}},r("span",{class:"icon-[lucide--x] opacity-50"})):null]),R({class:"p-0 bg-base-100 rounded-box shadow-xl"},jt({value:t.value,range:o(),hour:t.hour,onChange:f}))])},wn=(t,n)=>div({...t,class:e("drawer",t.class)},n),yn=(t)=>input({...t,type:"checkbox",class:"drawer-toggle",checked:()=>L(t.checked),onchange:(n)=>A(t.checked)&&t.checked(n.target.checked)}),En=(t,n)=>div({...t,class:e("drawer-content",t.class)},n),Nn=(t,n)=>div({...t,class:e("drawer-side",t.class)},n),dn=(t)=>label({...t,for:t.for,class:e("drawer-overlay",t.class)}),Cn=(t)=>r("div",{...t,class:e("divider",t.class)}),F=(t,n)=>r("div",{...t,class:e("dropdown",t.class)},n),Lt=(t,n)=>r("div",{...t,tabindex:"0",role:"button",class:e("btn",t.class)},n),R=(t,n)=>r("div",{...t,tabindex:"0",class:e("dropdown-content",t.class)},n),jn=(t,n)=>r("div",{class:"fab"},[r("div",{tabindex:"0",role:"button",class:e("btn",t.class)},m(t.icon)),n]),kn=(t,n)=>r("fieldset",{class:e("fieldset",t.class)},[r("legend",{class:"fieldset-legend"},t.label),n]),Ln=(t)=>{let n=k([]),o=k(!1),f=k(null),u=(t.max||2)*1024*1024,_=(a)=>{let s=Array.from(a);if(f(null),s.some((y)=>y.size>u)){f(`Máx ${t.max||2}MB`);return}let i=[...n(),...s];if(n(i),A(t.onselect))t.onselect(i);else if(A(t.value))t.value(i)},l=(a)=>{let s=n().filter((i,y)=>y!==a);if(n(s),A(t.onselect))t.onselect(s);else if(A(t.value))t.value(s)};return r("div",{class:e("fieldset w-full p-0",t.class)},[r("label",{class:()=>`relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${o()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(a)=>{a.preventDefault(),o(!0)},ondragleave:()=>o(!1),ondrop:(a)=>{a.preventDefault(),o(!1),_(a.dataTransfer.files)}},[r("div",{class:"flex items-center gap-3 w-full"},[r("span",{class:"icon-[lucide--upload]"}),r("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),r("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${t.max||2}MB`)]),r("input",{type:"file",multiple:!0,accept:t.accept||"*",class:"hidden",onchange:(a)=>_(a.target.files)})]),()=>f()&&r("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},f()),lt(()=>n().length>0,()=>r("ul",{class:"mt-2 space-y-1"},M(n,(a,s)=>r("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[r("div",{class:"flex items-center gap-2 truncate"},[r("span",{class:"opacity-50"},"\uD83D\uDCC4"),r("span",{class:"truncate font-medium max-w-[200px]"},a.name),r("span",{class:"text-[9px] opacity-40"},`(${(a.size/1024).toFixed(0)} KB)`)]),r("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(i)=>{i.preventDefault(),l(s)}},r("span",{class:"icon-[lucide--x]"}))]))))])},m=(t)=>r("span",{class:t.startsWith("icon-")?t:""},t.startsWith("icon-")?null:t),An=(t,n)=>r("div",{...t,class:e("indicator",t.class)},[t.value&&r("span",{class:e("indicator-item badge",t.class)},t.value),n]),At=(t)=>{let{label:n,icon:o,float:f,placeholder:u,value:_,left:l,right:a,rule:s,hint:i,content:y,...N}=t,d=k(!1),C=t.type==="password",w=s??null,E=()=>C?L(d)?"text":"password":t.type||"search";return r("label",{class:f?"floating-label":""},[f?r("span",{},n):null,r("label",{pattern:w,class:()=>e("input validator",t.class)},[n&&!f?r("span",{class:"label"},n):null,l??null,r("input",{...N,type:E,class:"grow",pattern:w,placeholder:u||n||" ",value:_}),a??null,C?Tt({class:"ml-2"},[Wt({value:d,class:"swap-rotate"}),$t({},m("icon-[lucide--eye]")),Jt({},m("icon-[lucide--eye-off]"))]):null]),i?r("div",{class:"validator-hint"},i):null])},Tn=(t,n)=>r("kbd",{...t,class:e("kbd",t.class)},n),Wn=(t,n)=>r("ul",{...t,class:e("list",t.class)},n),$n=(t)=>()=>(L(t.items)||[]).map((n,o)=>r("li",{class:e("list-row",t.class,n?.class)},typeof t.render==="function"?t.render(n,o):n)),Jn=(t,n)=>r("span",{...t,class:e("loading loading-spinner",t.class)},n),Kn=(t)=>{if(t.children!==void 0)return r("ul",{class:e("menu",t.class),...t},t.children);let{items:n}=t,o=(f)=>f.children?r("li",{},r("details",{open:f.open||void 0},[r("summary",{},Q(f)),r("ul",{},M(()=>L(f.children)||[],o))])):r("li",{},r("a",{href:f.href,onclick:f.onclick?(u)=>{if(!f.href)u.preventDefault();f.onclick(u)}:null},Q(f)));return r("ul",{class:e("menu",t.class)},M(()=>L(n)||[],o))},On=(t)=>{let n=null;G(()=>{let f=L(t.open);if(!n)return;f?n.showModal():n.close()});let o=()=>A(t.open)&&t.open(!1);return r("dialog",{...t,ref:(f)=>n=f,class:e("modal",t.class),onclose:o,oncancel:o},[r("div",{class:"modal-box"},[t.title&&r("h3",{class:"text-lg font-bold"},t.title),t.children,r("div",{class:"modal-action"},[t.actions||Ct({class:"btn",onclick:o},"Cerrar")])]),r("form",{method:"dialog",class:"modal-backdrop"},[r("button",{},"close")])])},Xn=(t,n)=>r("div",{...t,class:e("navbar",t.class)},n),zn=(t)=>r("progress",{...t,class:e("progress",t.class)}),Sn=(t,n)=>r("div",{...t,class:e("radial-progress",t.class),style:`--value:${t.value??0};${t.style??""}`,role:"progressbar","aria-valuenow":t.value??0},n??`${t.value??0}%`),Bn=(t)=>r("input",{...t,type:"radio",class:e("radio",t.class)}),Pn=(t)=>r("input",{...t,type:"range",class:e("range",t.class)}),Qn=(t,n)=>r("div",{...t,class:"rating"},n),Mn=(t)=>[...Array(t.count)].map((n,o)=>r("input",{class:e("mask",t.class),name:t.name,type:"radio",checked:()=>L(t.value)===o,onchange:()=>A(t.value)?t.value(o):t.onchange?.(o)})),Zn=(t,n)=>{if(n!==void 0)return r("select",{class:e("select",t.class),...t},n);let{label:o,float:f,placeholder:u,placeholderDisabled:_=!0,value:l,left:a,right:s,hint:i,items:y,keyFn:N,...d}=t,C=()=>{let w=L(y)||[];return[...u?[{disabled:_,label:u,value:""}]:[],...w]};return r("label",{class:f?"floating-label":""},[f?r("span",{},o):null,r("label",{class:e("select",d.class)},[!f&&o?r("span",{class:"label"},o):null,a??null,r("select",{value:()=>L(l),onchange:(w)=>A(l)?l(w.target.value):d.onchange?.(w)},M(C,(w)=>{let E=Q(w,w.value!==void 0?"value":void 0),J=Q(w,"label");return r("option",{value:E,disabled:w.disabled||void 0},J)})),s??null]),i?r("div",{class:"validator-hint"},i):null])},Gn=(t)=>r("div",{...t,class:e("skeleton",t.class)}),qn=(t)=>r("span",{...t,class:e("skeleton skeleton-text",t.class)}),Un=(t,n)=>r("div",{...t,class:e("stack",t.class)},n),Yn=(t,n)=>r("div",{...t,class:e("stats shadow",t.class)},n),In=(t)=>r("div",{...t,class:e("stat",t.class)},[t.title?r("div",{class:"stat-title"},t.title):null,t.value?r("div",{class:"stat-value"},t.value):null,t.desc?r("div",{class:"stat-desc"},t.desc):null]),gn=(t,n)=>r("ul",{...t,class:e("steps",t.class)},n),Vn=(t,n)=>r("li",{...t,class:e("step",t.class),"data-content":t.dataContent},n),Tt=(t,n)=>r("label",{...t,class:e("swap",t.class)},n),Wt=(t)=>r("input",{type:"checkbox",checked:()=>L(t.value),onchange:(n)=>A(t.value)&&t.value(n.target.checked),class:t.class}),$t=(t,n)=>r("div",{...t,class:e("swap-on",t.class)},n),Jt=(t,n)=>r("div",{...t,class:e("swap-off",t.class)},n),Hn=(t,n)=>r("table",{...t,class:e("table",t.class)},n),xn=({items:t,columns:n=[],header:o=!0})=>{let f=o!==!1&&n.some((_)=>_.label)?r("thead",{},r("tr",{},n.map((_)=>r("th",{class:_.class},_.label)))):null,u=r("tbody",{},()=>{return(L(t)||[]).map((l,a)=>r("tr",{},n.map((s)=>{let i=s.render?s.render(l,a):l[s.key];return r("td",{class:s.class},i)})))});return[f,u].filter(Boolean)},Dn=(t,n)=>{if(!t.items){let{class:i,...y}=t;return r("div",{...y,class:e("tabs",i)},n)}let{items:o,activeIndex:f,onClose:u,class:_,...l}=t,a=(i)=>A(i)?i():i,s=u||(A(o)?(i,y)=>{let d=a(o).filter((C,w)=>w!==i);if(o(d),f()>=d.length)f(Math.max(0,d.length-1))}:null);return r("div",{...l,class:e("tabs",_)},()=>{return(a(o)||[]).flatMap((y,N)=>{let d=()=>f()===N,C=r("button",{class:()=>`tab ${d()?"tab-active":""} ${y.class||""}`,onclick:(E)=>{E.preventDefault(),f(N),y.onclick?.(E)}},[Q(y),y.closable?r("span",{class:"ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",onclick:(E)=>{E.stopPropagation(),s?.(N,y)}},r("span",{class:"icon-[lucide--x] w-3 h-3"})):null]),w=r("div",{class:"tab-content bg-base-100 border-base-300 p-6",style:()=>`display: ${d()?"block":"none"};`},A(y.content)?y.content():y.content);return[C,w]})})},mn=(t)=>r("textarea",{...t,class:e("textarea",t.class)}),Fn=(t,n)=>r("span",{...t,class:e("text-rotate",t.class)},n),Rn=(t,n)=>r("ul",{...t,class:e("timeline",t.class)},n),cn=(t,n="alert-success",o=3500)=>{let f=document.getElementById("sigpro-toast-container");if(!f)f=r("div",{id:"sigpro-toast-container",class:"fixed top-0 right-0 z-[9999] p-4 flex flex-col items-end gap-2 pointer-events-none"}),document.body.appendChild(f);let u=r("div",{style:"display: contents"});f.appendChild(u);let _,l,a,i=at(()=>{let y=k(!1),N=k(!1);_=()=>{if(N())return;clearTimeout(l),clearTimeout(a),N(!0),setTimeout(()=>{if(i.destroy(),u.remove(),!f.hasChildNodes())f.remove()},300)},a=setTimeout(()=>y(!0),0);let d=typeof t==="function"?L(t):t,C=typeof d==="string"?r("span",{},d):d;return r("div",{class:()=>{let w=`alert alert-soft ${n} shadow-lg transition-all duration-300 inline-flex w-auto whitespace-nowrap pointer-events-auto`;if(N())return`${w} translate-x-full opacity-0`;if(y())return`${w} translate-x-0 opacity-100`;return`${w} translate-x-10 opacity-0`}},[C,r("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:_},r("span",{class:"icon-[lucide--x]"}))])},u);if(o>0)l=setTimeout(_,o);return _},vn=(t)=>r("input",{...t,type:"checkbox",class:e("toggle",t.class)}),hn=(t,n)=>r("div",{...t,class:e("tooltip",t.class),"data-tip":t.tip},n);var st={};nt(st,{Editor:()=>pn});var pn=(t)=>{let{value:n,class:o}=t,f=null,u=null,_=k(!1),l=k(""),a=k(0),s=k(0),i=k(!1),y=["\uD83D\uDE00","\uD83D\uDE0A","\uD83D\uDE09","\uD83E\uDDD0","\uD83D\uDE2E","\uD83E\uDD14","\uD83D\uDE05","\uD83D\uDE02","\uD83D\uDE0D","\uD83D\uDE18","\uD83E\uDD70","\uD83D\uDC4D","\uD83D\uDC4E","\uD83D\uDC4C","\uD83E\uDD1D","\uD83E\uDD1E","\uD83D\uDC4B","\uD83D\uDC4F","\uD83D\uDE4C","\uD83D\uDE4F","\uD83D\uDCAA","☝️","\uD83D\uDC47","\uD83D\uDC48","\uD83D\uDC49","\uD83D\uDD95","✅","⚠️","\uD83D\uDE80","\uD83D\uDCE2","✉️","❤️"],N=()=>{let b=window.getSelection();if(b.getRangeAt&&b.rangeCount)u=b.getRangeAt(0)},d=()=>{if(u){let b=window.getSelection();b.removeAllRanges(),b.addRange(u)}},C=()=>{if(s(s()+1),f)a(f.innerText.length)},w=()=>{if(!f)return;let b=f.innerHTML;if(A(n))n(b);else t.onchange?.(b);C()},E=(b,j=null)=>{if(!f)return;if(f.focus(),u)d();document.execCommand(b,!1,j),u=null,w()},J=(b)=>{let j=document.createElement("div");j.style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;";let T=document.createElement("img");T.src=b,T.style="max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;",j.onclick=()=>document.body.removeChild(j),j.appendChild(T),document.body.appendChild(j)},B=(b)=>{if(!b)return;let j=new FileReader;j.onload=(T)=>{if(b.type.startsWith("image/")){let $=`
 `;E("insertHTML",$)}else{let $=`${b.name} `;E("insertHTML",$)}},j.readAsDataURL(b)},O=(b,j=null)=>{if(s(),!f||_())return!1;try{if(b==="formatBlock"){let T=window.getSelection().getRangeAt(0).commonAncestorContainer;while(T&&T!==f){if(T.nodeType===1&&T.tagName===j)return!0;T=T.parentNode}return!1}return document.queryCommandState(b)}catch(T){return!1}},c=r("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20"},[r("div",{class:"flex flex-wrap gap-1 flex-1 items-center"},[r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("bold")?"btn-active bg-primary/20":""}`,onclick:()=>E("bold")},r("span",{class:"icon-[lucide--bold]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("italic")?"btn-active bg-primary/20":""}`,onclick:()=>E("italic")},r("span",{class:"icon-[lucide--italic]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("underline")?"btn-active bg-primary/20":""}`,onclick:()=>E("underline")},r("span",{class:"icon-[lucide--underline]"})),r("input",{type:"color",class:"w-5 h-5 p-0 border-0 bg-transparent cursor-pointer",oninput:(b)=>E("foreColor",b.target.value)}),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyLeft")},r("span",{class:"icon-[lucide--align-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyCenter")},r("span",{class:"icon-[lucide--align-center]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyRight")},r("span",{class:"icon-[lucide--align-right]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertUnorderedList")},r("span",{class:"icon-[lucide--list]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertOrderedList")},r("span",{class:"icon-[lucide--list-ordered]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("outdent")},r("span",{class:"icon-[lucide--indent-decrease]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("indent")},r("span",{class:"icon-[lucide--indent-increase]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>E("formatBlock",O("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},r("span",{class:"icon-[lucide--quote]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let b=window.prompt("URL:");if(b)E("createLink",b)}},r("span",{class:"icon-[lucide--link]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let b=document.createElement("input");b.type="file",b.onchange=(j)=>B(j.target.files[0]),b.click()}},r("span",{class:"icon-[lucide--paperclip]"})),r("div",{class:"relative"},[r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:(b)=>{b.stopPropagation(),N(),i(!i())}},r("span",{class:"icon-[lucide--smile]"})),r("div",{class:"absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1",style:()=>i()?"display:flex":"display:none"},y.map((b)=>r("span",{class:"cursor-pointer hover:bg-base-200 p-1 rounded text-lg",onclick:(j)=>{j.stopPropagation(),E("insertText",b),i(!1)}},b)))]),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("undo")},r("span",{class:"icon-[lucide--undo-2]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("redo")},r("span",{class:"icon-[lucide--redo-2]"}))]),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${_()?"btn-active":""}`,onclick:()=>{if(!_())l(f?.innerHTML||"");else if(f)f.innerHTML=l(),w();_(!_())}},r("span",{class:"icon-[lucide--code-2]"}))]);if(typeof document<"u"&&!document.getElementById("editor-styles")){let b=document.createElement("style");b.id="editor-styles",b.textContent=` +(()=>{var{defineProperty:yt,getOwnPropertyNames:ie,getOwnPropertyDescriptor:ue}=Object,ae=Object.prototype.hasOwnProperty;function ce(t){return this[t]}var de=(t)=>{var n=(Bt??=new WeakMap).get(t),o;if(n)return n;if(n=yt({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var s of ie(t))if(!ae.call(n,s))yt(n,s,{get:ce.bind(t,s),enumerable:!(o=ue(t,s))||o.enumerable})}return Bt.set(t,n),n},Bt;var _e=(t)=>t;function we(t,n){this[t]=_e.bind(null,n)}var Et=(t,n)=>{for(var o in n)yt(t,o,{get:n[o],enumerable:!0,configurable:!0,set:we.bind(n,o)})};var Xe={};Et(Xe,{Utils:()=>se,Tooltip:()=>pn,Toggle:()=>hn,Toast:()=>vn,Timeline:()=>Fn,Textrotate:()=>Hn,Textarea:()=>Dn,Tabs:()=>qn,TableItems:()=>Yn,Table:()=>Rn,SwapToggle:()=>gt,SwapOn:()=>$t,SwapOff:()=>Kt,Swap:()=>Xt,Steps:()=>Vn,Step:()=>xn,Stats:()=>In,Stat:()=>Zn,Stack:()=>Qn,SkeletonText:()=>Gn,Skeleton:()=>zn,Select:()=>Jn,RatingItems:()=>Bn,Rating:()=>Un,Range:()=>Mn,Radio:()=>Kn,Radial:()=>$n,Progress:()=>gn,Navbar:()=>Xn,Modal:()=>Pn,Menu:()=>Wn,Loading:()=>jn,ListRows:()=>kn,List:()=>Tn,Kbd:()=>mn,Input:()=>Pt,Indicator:()=>On,Icon:()=>p,Fileinput:()=>Ln,Fieldset:()=>An,Fab:()=>Cn,Editor:()=>te,DropdownContent:()=>nt,DropdownButton:()=>Wt,Dropdown:()=>tt,DrawerToggle:()=>yn,DrawerSide:()=>Nn,DrawerOverlay:()=>bn,DrawerContent:()=>En,Drawer:()=>wn,Divider:()=>Sn,Datepicker:()=>_n,Components:()=>re,Colorpicker:()=>dn,ColorPalette:()=>jt,Checkbox:()=>cn,ChatImage:()=>an,ChatHeader:()=>un,ChatFooter:()=>ln,ChatBubble:()=>fn,Chat:()=>sn,CarouselItem:()=>rn,Carousel:()=>on,CardTitle:()=>tn,CardBody:()=>nn,CardActions:()=>en,Card:()=>pt,Calendar:()=>kt,Button:()=>Tt,Badge:()=>ht,Autocomplete:()=>vt,Alert:()=>Ft,Accordion:()=>Ht});var g=(t)=>typeof t==="function",St=(t)=>t&&typeof t==="object",V=Array.isArray,K=typeof document<"u"?document:null,Jt=(t)=>t?._isRuntime?t.container:t instanceof Node?t:K.createTextNode(t==null?"":String(t)),m=null,P=null,R=!1,ot=0,rt=new Set,zt=new WeakMap,Nt=Symbol("iter"),bt=new WeakMap,ye="http://www.w3.org/2000/svg",Gt="http://www.w3.org/1999/xlink",Ee=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),et=null;var G=(t)=>{if(!t||t._disposed)return;t._disposed=!0;let n=[t];while(n.length){let o=n.pop();if(o._cleanups)o._cleanups.forEach((s)=>s()),o._cleanups.clear();if(o._children)o._children.forEach((s)=>n.push(s)),o._children.clear();if(o._deps)o._deps.forEach((s)=>s.delete(o)),o._deps.clear()}},Y=(t)=>{if(P)(P._cleanups||=new Set).add(t)},Ne=(t)=>{let n=m;m=null;try{return t()}finally{m=n}},q=(t,n=!1)=>{let o=()=>{if(o._disposed)return;if(o._deps)o._deps.forEach((i)=>i.delete(o));if(o._cleanups)o._cleanups.forEach((i)=>i()),o._cleanups.clear();let s=m,r=P;m=P=o;try{return o._result=t()}catch(i){console.error("[SigPro]",i)}finally{m=s,P=r}};if(o._deps=o._cleanups=o._children=null,o._disposed=!1,o._isComputed=n,o._depth=m?m._depth+1:0,o._mounts=[],o._parent=P,P)(P._children||=new Set).add(o);return o},Qt=()=>{if(R)return;R=!0;let t=Array.from(rt).sort((n,o)=>n._depth-o._depth);rt.clear();for(let n of t)if(!n._disposed)n();R=!1},It=(t)=>{ot++;try{return t()}finally{if(ot--,ot===0&&rt.size>0&&!R)Qt()}},X=(t,n=!1)=>{if(!n&&m&&!m._disposed)t.add(m),(m._deps||=new Set).add(t);else if(n&&t.size>0){let o=!1;for(let s of t){if(s===m||s._disposed)continue;if(s._isComputed){if(s._dirty=!0,s._subs)X(s._subs,!0)}else rt.add(s),o=!0}if(o&&!R&&ot===0)queueMicrotask(Qt)}},C=(t,n=null)=>{let o=new Set;if(g(t)){let s,r=()=>{if(r._dirty){let i=m;m=r;try{let f=t();if(!Object.is(s,f))s=f,X(o,!0)}finally{m=i}r._dirty=!1}return X(o),s};return r._isComputed=!0,r._subs=o,r._dirty=!0,r._deps=null,r._disposed=!1,r}if(n)try{t=JSON.parse(localStorage.getItem(n))??t}catch(s){}return(...s)=>{if(s.length){let r=g(s[0])?s[0](t):s[0];if(!Object.is(t,r)){if(t=r,n)localStorage.setItem(n,JSON.stringify(t));X(o,!0)}}return X(o),t}},Ct=(t)=>{if(!St(t))return t;let n=zt.get(t);if(n)return n;let o=new Map,s=(i)=>{let f=o.get(i);if(!f)o.set(i,f=new Set);return f},r=new Proxy(t,{get(i,f,u){if(typeof f!=="symbol")X(s(f));return Ct(Reflect.get(i,f,u))},set(i,f,u,l){let c=Reflect.has(i,f),a=Reflect.get(i,f,l),d=Reflect.set(i,f,u,l);if(d&&!Object.is(a,u)){if(X(s(f),!0),!c)X(s(Nt),!0)}return d},deleteProperty(i,f){let u=Reflect.deleteProperty(i,f);if(u)X(s(f),!0),X(s(Nt),!0);return u},ownKeys(i){return X(s(Nt)),Reflect.ownKeys(i)}});return zt.set(t,r),r},z=(t,n)=>{if(n===void 0){let s=q(t);return s(),()=>G(s)}let o=q(()=>{let s=Array.isArray(t)?t.map((r)=>r()):t();Ne(()=>n(s))});return o(),()=>G(o)},At=(t)=>{if(!t)return;if(t._cleanups)t._cleanups.forEach((n)=>n()),t._cleanups.clear();if(t._ownerEffect)G(t._ownerEffect);if(t.childNodes)t.childNodes.forEach((n)=>At(n))},e=(t,n={},o=[])=>{if(n instanceof Node||V(n)||!St(n))o=n,n={};if(g(t)){let f=q(()=>{let a=t(n,{children:o,emit:(d,...N)=>n[`on${d[0].toUpperCase()}${d.slice(1)}`]?.(...N)});return f._result=a,a});f();let u=f._result;if(u==null)return null;let l=u instanceof Node||V(u)&&u.every((a)=>a instanceof Node)?u:K.createTextNode(String(u)),c=(a)=>{if(St(a)&&!a._isRuntime)a._mounts=f._mounts||[],a._cleanups=f._cleanups||new Set,a._ownerEffect=f};return V(l)?l.forEach(c):c(l),l}let s=Ee.has(t),r=s?K.createElementNS(ye,t):K.createElement(t);r._cleanups=new Set;for(let f of Object.keys(n)){let u=n[f];if(f==="ref"){g(u)?u(r):u.current=r;continue}let l=et?et(f,u):u;if(s&&f.startsWith("xlink:")){l==null?r.removeAttributeNS(Gt,f.slice(6)):r.setAttributeNS(Gt,f.slice(6),l);continue}if(f.startsWith("on")){let c=f.slice(2).toLowerCase();r.addEventListener(c,l);let a=()=>r.removeEventListener(c,l);r._cleanups.add(a),Y(a)}else if(g(l)){let c=q(()=>{let a=l(),d=et?et(f,a):a;if(f==="class")r.className=d||"";else if(d==null)r.removeAttribute(f);else if(f in r&&!s)r[f]=d;else r.setAttribute(f,d===!0?"":d)});if(c(),r._cleanups.add(()=>G(c)),Y(()=>G(c)),/^(INPUT|TEXTAREA|SELECT)$/.test(r.tagName)&&(f==="value"||f==="checked")){let a=f==="checked"?"change":"input";r.addEventListener(a,(d)=>l(d.target[f]))}}else if(l!=null)if(f in r&&!s)r[f]=l;else r.setAttribute(f,l===!0?"":l)}let i=(f)=>{if(V(f))return f.forEach(i);if(g(f)){let u=K.createTextNode("");r.appendChild(u);let l=[],c=q(()=>{let a=f(),d=(V(a)?a:[a]).map(Jt);l.forEach((b)=>{if(b._isRuntime)b.destroy();else At(b);if(b.parentNode)b.remove()});let N=u;for(let b=d.length-1;b>=0;b--){let w=d[b];if(w.parentNode!==N.parentNode)N.parentNode?.insertBefore(w,N);if(w._mounts)w._mounts.forEach((E)=>E());N=w}l=d});c(),r._cleanups.add(()=>G(c)),Y(()=>G(c))}else{let u=Jt(f);if(r.appendChild(u),u._mounts)u._mounts.forEach((l)=>l())}};return i(o),r},st=(t)=>{let n=new Set,o=P,s=m,r=K.createElement("div");r.style.display="contents",r.setAttribute("role","presentation"),P={_cleanups:n},m=null;let i=(f)=>{if(!f)return;if(f._isRuntime)n.add(f.destroy),r.appendChild(f.container);else if(V(f))f.forEach(i);else r.appendChild(f instanceof Node?f:K.createTextNode(String(f==null?"":f)))};try{i(t({onCleanup:(f)=>n.add(f)}))}finally{P=o,m=s}return{_isRuntime:!0,container:r,destroy:()=>{n.forEach((f)=>f()),At(r),r.remove()}}},ft=(t,n,o=null)=>{let s=K.createTextNode(""),r=e("div",{style:"display:contents"},[s]),i=null;return z(()=>!!(g(t)?t():t),(f)=>{if(i)i.destroy(),i=null;let u=f?n:o;if(u)i=st(()=>g(u)?u():u),r.insertBefore(i.container,s)}),Y(()=>i?.destroy()),r},B=(t,n,o)=>{let s=K.createTextNode(""),r=e("div",{style:"display:contents"},[s]),i=new Map;return z(()=>(g(t)?t():t)||[],(f)=>{let u=new Map,l=[],c=f||[];for(let d=0;dn(N,d));else i.delete(b);u.set(b,w),l.push(w)}i.forEach((d)=>d.destroy());let a=s;for(let d=l.length-1;d>=0;d--){let N=l[d].container;if(N.nextSibling!==a)r.insertBefore(N,a);a=N}i=u}),r},D=(t)=>{let n=()=>window.location.hash.slice(1)||"/",o=C(n()),s=()=>o(n());window.addEventListener("hashchange",s),Y(()=>window.removeEventListener("hashchange",s));let r=e("div",{class:"router-hook"}),i=null;return z([o],()=>{let f=o(),u=t.find((l)=>{let c=l.path.split("/").filter(Boolean),a=f.split("/").filter(Boolean);return c.length===a.length&&c.every((d,N)=>d[0]===":"||d===a[N])})||t.find((l)=>l.path==="*");if(u){i?.destroy();let l={};u.path.split("/").filter(Boolean).forEach((c,a)=>{if(c[0]===":")l[c.slice(1)]=f.split("/").filter(Boolean)[a]}),D.params(l),i=st(()=>g(u.component)?u.component(l):u.component),r.replaceChildren(i.container)}}),r};D.params=C({});D.to=(t)=>window.location.hash=t.replace(/^#?\/?/,"#/");D.back=()=>window.history.back();D.path=()=>window.location.hash.replace(/^#/,"")||"/";var lt=(t,n)=>{let o=typeof n==="string"?K.querySelector(n):n;if(!o)return;if(bt.has(o))bt.get(o).destroy();let s=st(g(t)?t:()=>t);return o.replaceChildren(s.container),bt.set(o,s),s};var Q=(t)=>typeof t==="function",Zt=(t)=>t&&typeof t==="object",x=Array.isArray,I=typeof document<"u"?document:null,Vt=(t)=>t?._isRuntime?t.container:t instanceof Node?t:I.createTextNode(t==null?"":String(t)),T=null,$=null,it=!1,be=0,Lt=new Set;var Be=Symbol("iter");var Se="http://www.w3.org/2000/svg",xt="http://www.w3.org/1999/xlink",Ce=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),H=null,Rt=(t)=>{H=t},Z=(t)=>{if(!t||t._disposed)return;t._disposed=!0;let n=[t];while(n.length){let o=n.pop();if(o._cleanups)o._cleanups.forEach((s)=>s()),o._cleanups.clear();if(o._children)o._children.forEach((s)=>n.push(s)),o._children.clear();if(o._deps)o._deps.forEach((s)=>s.delete(o)),o._deps.clear()}},ut=(t)=>{if($)($._cleanups||=new Set).add(t)},Ae=(t)=>{let n=T;T=null;try{return t()}finally{T=n}},v=(t,n=!1)=>{let o=()=>{if(o._disposed)return;if(o._deps)o._deps.forEach((i)=>i.delete(o));if(o._cleanups)o._cleanups.forEach((i)=>i()),o._cleanups.clear();let s=T,r=$;T=$=o;try{return o._result=t()}catch(i){console.error("[SigPro]",i)}finally{T=s,$=r}};if(o._deps=o._cleanups=o._children=null,o._disposed=!1,o._isComputed=n,o._depth=T?T._depth+1:0,o._mounts=[],o._parent=$,$)($._children||=new Set).add(o);return o},Le=()=>{if(it)return;it=!0;let t=Array.from(Lt).sort((n,o)=>n._depth-o._depth);Lt.clear();for(let n of t)if(!n._disposed)n();it=!1};var F=(t,n=!1)=>{if(!n&&T&&!T._disposed)t.add(T),(T._deps||=new Set).add(t);else if(n&&t.size>0){let o=!1;for(let s of t){if(s===T||s._disposed)continue;if(s._isComputed){if(s._dirty=!0,s._subs)F(s._subs,!0)}else Lt.add(s),o=!0}if(o&&!it&&be===0)queueMicrotask(Le)}},Yt=(t,n=null)=>{let o=new Set;if(Q(t)){let s,r=()=>{if(r._dirty){let i=T;T=r;try{let f=t();if(!Object.is(s,f))s=f,F(o,!0)}finally{T=i}r._dirty=!1}return F(o),s};return r._isComputed=!0,r._subs=o,r._dirty=!0,r._deps=null,r._disposed=!1,r}if(n)try{t=JSON.parse(localStorage.getItem(n))??t}catch(s){}return(...s)=>{if(s.length){let r=Q(s[0])?s[0](t):s[0];if(!Object.is(t,r)){if(t=r,n)localStorage.setItem(n,JSON.stringify(t));F(o,!0)}}return F(o),t}};var Oe=(t,n)=>{if(n===void 0){let s=v(t);return s(),()=>Z(s)}let o=v(()=>{let s=Array.isArray(t)?t.map((r)=>r()):t();Ae(()=>n(s))});return o(),()=>Z(o)},Ot=(t)=>{if(!t)return;if(t._cleanups)t._cleanups.forEach((n)=>n()),t._cleanups.clear();if(t._ownerEffect)Z(t._ownerEffect);if(t.childNodes)t.childNodes.forEach((n)=>Ot(n))},mt=(t,n={},o=[])=>{if(n instanceof Node||x(n)||!Zt(n))o=n,n={};if(Q(t)){let f=v(()=>{let a=t(n,{children:o,emit:(d,...N)=>n[`on${d[0].toUpperCase()}${d.slice(1)}`]?.(...N)});return f._result=a,a});f();let u=f._result;if(u==null)return null;let l=u instanceof Node||x(u)&&u.every((a)=>a instanceof Node)?u:I.createTextNode(String(u)),c=(a)=>{if(Zt(a)&&!a._isRuntime)a._mounts=f._mounts||[],a._cleanups=f._cleanups||new Set,a._ownerEffect=f};return x(l)?l.forEach(c):c(l),l}let s=Ce.has(t),r=s?I.createElementNS(Se,t):I.createElement(t);r._cleanups=new Set;for(let f of Object.keys(n)){let u=n[f];if(f==="ref"){Q(u)?u(r):u.current=r;continue}let l=H?H(f,u):u;if(s&&f.startsWith("xlink:")){l==null?r.removeAttributeNS(xt,f.slice(6)):r.setAttributeNS(xt,f.slice(6),l);continue}if(f.startsWith("on")){let c=f.slice(2).toLowerCase();r.addEventListener(c,l);let a=()=>r.removeEventListener(c,l);r._cleanups.add(a),ut(a)}else if(Q(l)){let c=v(()=>{let a=l(),d=H?H(f,a):a;if(f==="class")r.className=d||"";else if(d==null)r.removeAttribute(f);else if(f in r&&!s)r[f]=d;else r.setAttribute(f,d===!0?"":d)});if(c(),r._cleanups.add(()=>Z(c)),ut(()=>Z(c)),/^(INPUT|TEXTAREA|SELECT)$/.test(r.tagName)&&(f==="value"||f==="checked")){let a=f==="checked"?"change":"input";r.addEventListener(a,(d)=>l(d.target[f]))}}else if(l!=null)if(f in r&&!s)r[f]=l;else r.setAttribute(f,l===!0?"":l)}let i=(f)=>{if(x(f))return f.forEach(i);if(Q(f)){let u=I.createTextNode("");r.appendChild(u);let l=[],c=v(()=>{let a=f(),d=(x(a)?a:[a]).map(Vt);l.forEach((b)=>{if(b._isRuntime)b.destroy();else Ot(b);if(b.parentNode)b.remove()});let N=u;for(let b=d.length-1;b>=0;b--){let w=d[b];if(w.parentNode!==N.parentNode)N.parentNode?.insertBefore(w,N);if(w._mounts)w._mounts.forEach((E)=>E());N=w}l=d});c(),r._cleanups.add(()=>Z(c)),ut(()=>Z(c))}else{let u=Vt(f);if(r.appendChild(u),u._mounts)u._mounts.forEach((l)=>l())}};return i(o),r},me=(t)=>{let n=new Set,o=$,s=T,r=I.createElement("div");r.style.display="contents",r.setAttribute("role","presentation"),$={_cleanups:n},T=null;let i=(f)=>{if(!f)return;if(f._isRuntime)n.add(f.destroy),r.appendChild(f.container);else if(x(f))f.forEach(i);else r.appendChild(f instanceof Node?f:I.createTextNode(String(f==null?"":f)))};try{i(t({onCleanup:(f)=>n.add(f)}))}finally{$=o,T=s}return{_isRuntime:!0,container:r,destroy:()=>{n.forEach((f)=>f()),Ot(r),r.remove()}}};var h=(t)=>{let n=()=>window.location.hash.slice(1)||"/",o=Yt(n()),s=()=>o(n());window.addEventListener("hashchange",s),ut(()=>window.removeEventListener("hashchange",s));let r=mt("div",{class:"router-hook"}),i=null;return Oe([o],()=>{let f=o(),u=t.find((l)=>{let c=l.path.split("/").filter(Boolean),a=f.split("/").filter(Boolean);return c.length===a.length&&c.every((d,N)=>d[0]===":"||d===a[N])})||t.find((l)=>l.path==="*");if(u){i?.destroy();let l={};u.path.split("/").filter(Boolean).forEach((c,a)=>{if(c[0]===":")l[c.slice(1)]=f.split("/").filter(Boolean)[a]}),h.params(l),i=me(()=>Q(u.component)?u.component(l):u.component),r.replaceChildren(i.container)}}),r};h.params=Yt({});h.to=(t)=>window.location.hash=t.replace(/^#?\/?/,"#/");h.back=()=>window.history.back();h.path=()=>window.location.hash.replace(/^#/,"")||"/";var Te=/^\s*(javascript|data|vbscript):/i,ke=new Set(["src","href","formaction","action","background","code","archive"]),je=(t)=>ke.has(t)||t.startsWith("on"),We=(t,n)=>{if(n==null||n===!1)return null;if(je(t)){let o=String(n);if(Te.test(o))return console.warn(`[SigPro XSS] Locked ${t}`),"#"}return n};Rt(We);if(typeof window<"u")"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((t)=>{window[t]=(n,o)=>mt(t,n,o)}),console.log("SigPro tags ready");var Mt={};Et(Mt,{Tooltip:()=>pn,Toggle:()=>hn,Toast:()=>vn,Timeline:()=>Fn,Textrotate:()=>Hn,Textarea:()=>Dn,Tabs:()=>qn,TableItems:()=>Yn,Table:()=>Rn,SwapToggle:()=>gt,SwapOn:()=>$t,SwapOff:()=>Kt,Swap:()=>Xt,Steps:()=>Vn,Step:()=>xn,Stats:()=>In,Stat:()=>Zn,Stack:()=>Qn,SkeletonText:()=>Gn,Skeleton:()=>zn,Select:()=>Jn,RatingItems:()=>Bn,Rating:()=>Un,Range:()=>Mn,Radio:()=>Kn,Radial:()=>$n,Progress:()=>gn,Navbar:()=>Xn,Modal:()=>Pn,Menu:()=>Wn,Loading:()=>jn,ListRows:()=>kn,List:()=>Tn,Kbd:()=>mn,Input:()=>Pt,Indicator:()=>On,Icon:()=>p,Fileinput:()=>Ln,Fieldset:()=>An,Fab:()=>Cn,DropdownContent:()=>nt,DropdownButton:()=>Wt,Dropdown:()=>tt,DrawerToggle:()=>yn,DrawerSide:()=>Nn,DrawerOverlay:()=>bn,DrawerContent:()=>En,Drawer:()=>wn,Divider:()=>Sn,Datepicker:()=>_n,Colorpicker:()=>dn,ColorPalette:()=>jt,Checkbox:()=>cn,ChatImage:()=>an,ChatHeader:()=>un,ChatFooter:()=>ln,ChatBubble:()=>fn,Chat:()=>sn,CarouselItem:()=>rn,Carousel:()=>on,CardTitle:()=>tn,CardBody:()=>nn,CardActions:()=>en,Card:()=>pt,Calendar:()=>kt,Button:()=>Tt,Badge:()=>ht,Autocomplete:()=>vt,Alert:()=>Ft,Accordion:()=>Ht});var A=(t)=>typeof t==="function"?t():t,J=(t,n="label")=>t&&typeof t==="object"?t[n]:t,_=(...t)=>t.filter(Boolean).join(" ").trim(),L=(t)=>typeof t==="function",qt=(t,n,o="label",s=String(n).toLowerCase())=>!n?A(t):A(t).filter((r)=>String(r&&typeof r==="object"?r[o]:r).toLowerCase().includes(s)),Dt=(t)=>`${t}-${Math.random().toString(36).slice(2,9)}`,at=()=>document.activeElement?.blur();var Ht=(t)=>{let n=t.name||Dt("acc");return B(t.items,(o)=>{return e("div",{class:_("collapse",t.class)},[e("input",{type:"radio",name:n,checked:o.open||void 0}),o.title?e("div",{class:_("collapse-title",`${o.classTitle??" font-semibold"}`)},o.title):null,o.content?e("div",{class:_("collapse-content text-sm",`${o.classContent??" font-semibold"}`)},o.content):null])})},Ft=(t,n)=>e("div",{...t,class:_("alert",t.class)},n),vt=({items:t,value:n,onselect:o,placeholder:s="...",...r})=>{let i=C(A(n)||""),f=C(()=>qt(t,i())),u=(l)=>{let c=J(l),a=typeof l==="string"?l:l.value;if(i(c),L(n))n(a);o?.(l),at()};return tt({class:"w-full"},[e("div",{tabindex:"0",role:"button",class:"w-full"},Pt({...r,placeholder:s,value:i,left:e("span",{class:"icon-[lucide--search]"}),oninput:(l)=>{if(i(l.target.value),L(n))n(l.target.value)}})),nt({class:"p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50"},e("ul",{class:"menu flex-col flex-nowrap w-full p-0"},[B(f,(l)=>e("li",{},[e("a",{onmousedown:(c)=>c.preventDefault(),onclick:()=>u(l)},J(l))]),(l)=>J(l)),()=>f().length===0?e("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null]))])},ht=(t,n)=>e("span",{...t,class:_("badge",t.class)},n),Tt=(t,n)=>e("button",{...t,class:_("btn",t.class)},n),kt=(t)=>{let n=C(new Date),o=C(null),s=C(0),r=C(0),i=new Date,f=`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")}`,u=(w)=>`${w.getFullYear()}-${String(w.getMonth()+1).padStart(2,"0")}-${String(w.getDate()).padStart(2,"0")}`,l=()=>A(t.range)===!0,c=()=>A(t.value),a=(w)=>{let E=u(w),j=c();if(l())if(!j?.start||j.start&&j.end)t.onChange?.({start:E,end:null,...t.hour&&{startHour:s()}});else{let M=j.start,W=E{let E=n();n(new Date(E.getFullYear(),E.getMonth()+w,1))},N=(w)=>{let E=n();n(new Date(E.getFullYear()+w,E.getMonth(),1))},b=({value:w,onChange:E})=>e("div",{class:"flex-1"},[e("div",{class:"flex gap-2 items-center"},[e("input",{type:"range",min:0,max:23,value:w,class:"range range-xs flex-1",oninput:(j)=>E(+j.target.value)}),e("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(A(w)).padStart(2,"0")+":00")])]);return e("div",{class:_("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",t.class)},[e("div",{class:"flex justify-between items-center mb-4 gap-1"},[e("div",{class:"flex gap-0.5"},[e("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(-1)},e("span",{class:"icon-[lucide--chevrons-left]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(-1)},e("span",{class:"icon-[lucide--chevron-left]"}))]),e("span",{class:"font-bold uppercase flex-1 text-center"},()=>n().toLocaleString("es-ES",{month:"short",year:"numeric"})),e("div",{class:"flex gap-0.5"},[e("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(1)},e("span",{class:"icon-[lucide--chevron-right]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(1)},e("span",{class:"icon-[lucide--chevrons-right]"}))])]),e("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>o(null)},[...["L","M","X","J","V","S","D"].map((w)=>e("div",{class:"text-[10px] opacity-40 font-bold text-center"},w)),()=>{let w=n(),E=w.getFullYear(),j=w.getMonth(),M=new Date(E,j,1).getDay(),W=M===0?6:M-1,ct=new Date(E,j+1,0).getDate(),y=[];for(let S=0;S{let U=c(),dt=o(),fe=typeof U==="string"?U.split("T")[0]===k:U?.start===k,le=U?.end===k,_t=!1;if(l()&&U?.start){let wt=U.start;if(!U.end&&dt)_t=k>wt&&k<=dt||k=dt;else if(U.end)_t=k>wt&&kl()&&o(k),onclick:()=>a(O)},S.toString()))}return y}]),t.hour?e("div",{class:"mt-3 pt-2 border-t border-base-300"},l()?e("div",{class:"flex gap-4"},[b({value:s,onChange:(w)=>s(w)}),b({value:r,onChange:(w)=>r(w)})]):b({value:s,onChange:(w)=>s(w)})):null])},pt=(t,n)=>e("div",{...t,class:_("card",t.class)},n),tn=(t,n)=>e("div",{...t,class:_("card-title",t.class)},n),nn=(t,n)=>e("div",{...t,class:_("card-body",t.class)},n),en=(t,n)=>e("div",{...t,class:_("card-actions",t.class)},n),on=(t,n)=>e("div",{...t,class:_("carousel",t.class)},n),rn=(t,n)=>e("div",{...t,class:_("carousel-item",t.class)},n),sn=(t,n)=>e("div",{...t,class:_("chat",t.class)},n),fn=(t,n)=>e("div",{...t,class:_("chat-bubble",t.class)},n),ln=(t,n)=>e("div",{...t,class:_("chat-footer",t.class)},n),un=(t,n)=>e("div",{...t,class:_("chat-header",t.class)},n),an=(t,n)=>e("div",{...t,class:_("chat-image avatar",t.class)},e("div",{class:"w-10 rounded-full"},typeof n==="string"?e("img",{src:n,alt:"avatar"}):n)),cn=(t)=>e("input",{...t,type:"checkbox",class:_("checkbox",t.class)}),dn=(t)=>{let n=()=>A(t.value)||"#000000";return tt({},[Wt({class:"btn"},[e("div",{class:"size-5 rounded-sm",style:()=>`background-color: ${n()}`}),t.label&&e("span",{},t.label)]),nt({class:"p-3 bg-base-100 rounded-box shadow-xl w-64"},jt({value:t.value,onchange:(o)=>{L(t.value)?t.value(o):t.onchange?.(o)}}))])},jt=(t)=>{let n=()=>A(t.value)||"#000000",o=["#000","#1A1A1A","#333","#4D4D4D","#666","#808080","#B3B3B3","#FFF","#450a0a","#7f1d1d","#991b1b","#b91c1c","#dc2626","#ef4444","#f87171","#fca5a5","#431407","#7c2d12","#9a3412","#c2410c","#ea580c","#f97316","#fb923c","#ffedd5","#713f12","#a16207","#ca8a04","#eab308","#facc15","#fde047","#fef08a","#fff9c4","#064e3b","#065f46","#059669","#10b981","#34d399","#4ade80","#84cc16","#d9f99d","#082f49","#075985","#0284c7","#0ea5e9","#38bdf8","#7dd3fc","#22d3ee","#cffafe","#1e1b4b","#312e81","#4338ca","#4f46e5","#6366f1","#818cf8","#a5b4fc","#e0e7ff","#2e1065","#4c1d95","#6d28d9","#7c3aed","#8b5cf6","#a855f7","#d946ef","#fae8ff"],s=(r)=>L(t.value)?t.value(r):t.onchange?.(r);return e("div",{class:"grid grid-cols-8 gap-1"},o.map((r)=>e("button",{type:"button",style:`background-color: ${r}`,class:()=>{return`size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${n().toLowerCase()===r.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>{s(r),at()}})))},_n=(t)=>{let n=C(""),o=()=>A(t.range)===!0;z(()=>{let r=A(t.value);if(!r)return n("");let i="";if(typeof r==="string")i=t.hour&&r.includes("T")?r.replace("T"," "):r;else if(r.start&&r.end){let f=t.hour&&r.startHour!=null?`${r.start} ${String(r.startHour).padStart(2,"0")}:00`:r.start,u=t.hour&&r.endHour!=null?`${r.end} ${String(r.endHour).padStart(2,"0")}:00`:r.end;i=`${f} - ${u}`}else if(r.start)i=`${t.hour&&r.startHour!=null?`${r.start} ${String(r.startHour).padStart(2,"0")}:00`:r.start}...`;n(i)});let s=(r)=>{if(L(t.value))t.value(r);else t.onChange?.(r);if(!o()||r?.end!=null)at()};return tt({class:_("w-full",t.class)},[e("label",{tabindex:"0",role:"button",class:"input input-bordered flex items-center gap-2 cursor-pointer"},[e("span",{class:"icon-[lucide--calendar] shrink-0"}),e("span",{class:()=>`grow text-left truncate ${!n()?"opacity-50":""}`},()=>n()||t.placeholder||(o()?"Seleccionar rango...":"Seleccionar fecha...")),()=>n()?e("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle -mr-2",onmousedown:(r)=>{if(r.preventDefault(),r.stopPropagation(),L(t.value))t.value(null);else t.onChange?.(null);n("")}},e("span",{class:"icon-[lucide--x] opacity-50"})):null]),nt({class:"p-0 bg-base-100 rounded-box shadow-xl"},kt({value:t.value,range:o(),hour:t.hour,onChange:s}))])},wn=(t,n)=>div({...t,class:_("drawer",t.class)},n),yn=(t)=>input({...t,type:"checkbox",class:"drawer-toggle",checked:()=>A(t.checked),onchange:(n)=>L(t.checked)&&t.checked(n.target.checked)}),En=(t,n)=>div({...t,class:_("drawer-content",t.class)},n),Nn=(t,n)=>div({...t,class:_("drawer-side",t.class)},n),bn=(t)=>label({...t,for:t.for,class:_("drawer-overlay",t.class)}),Sn=(t)=>e("div",{...t,class:_("divider",t.class)}),tt=(t,n)=>e("div",{...t,class:_("dropdown",t.class)},n),Wt=(t,n)=>e("div",{...t,tabindex:"0",role:"button",class:_("btn",t.class)},n),nt=(t,n)=>e("div",{...t,tabindex:"0",class:_("dropdown-content",t.class)},n),Cn=(t,n)=>e("div",{class:"fab"},[e("div",{tabindex:"0",role:"button",class:_("btn",t.class)},p(t.icon)),n]),An=(t,n)=>e("fieldset",{class:_("fieldset",t.class)},[e("legend",{class:"fieldset-legend"},t.label),n]),Ln=(t)=>{let n=C([]),o=C(!1),s=C(null),r=(t.max||2)*1024*1024,i=(u)=>{let l=Array.from(u);if(s(null),l.some((a)=>a.size>r)){s(`Máx ${t.max||2}MB`);return}let c=[...n(),...l];if(n(c),L(t.onselect))t.onselect(c);else if(L(t.value))t.value(c)},f=(u)=>{let l=n().filter((c,a)=>a!==u);if(n(l),L(t.onselect))t.onselect(l);else if(L(t.value))t.value(l)};return e("div",{class:_("fieldset w-full p-0",t.class)},[e("label",{class:()=>`relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${o()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(u)=>{u.preventDefault(),o(!0)},ondragleave:()=>o(!1),ondrop:(u)=>{u.preventDefault(),o(!1),i(u.dataTransfer.files)}},[e("div",{class:"flex items-center gap-3 w-full"},[e("span",{class:"icon-[lucide--upload]"}),e("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),e("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${t.max||2}MB`)]),e("input",{type:"file",multiple:!0,accept:t.accept||"*",class:"hidden",onchange:(u)=>i(u.target.files)})]),()=>s()&&e("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},s()),ft(()=>n().length>0,()=>e("ul",{class:"mt-2 space-y-1"},B(n,(u,l)=>e("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[e("div",{class:"flex items-center gap-2 truncate"},[e("span",{class:"opacity-50"},"\uD83D\uDCC4"),e("span",{class:"truncate font-medium max-w-[200px]"},u.name),e("span",{class:"text-[9px] opacity-40"},`(${(u.size/1024).toFixed(0)} KB)`)]),e("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(c)=>{c.preventDefault(),f(l)}},e("span",{class:"icon-[lucide--x]"}))]))))])},p=(t)=>e("span",{class:t.startsWith("icon-")?t:""},t.startsWith("icon-")?null:t),On=(t,n)=>e("div",{...t,class:_("indicator",t.class)},[t.value&&e("span",{class:_("indicator-item badge",t.class)},t.value),n]),Pt=(t)=>{let{label:n,icon:o,float:s,placeholder:r,value:i,left:f,right:u,rule:l,hint:c,content:a,...d}=t,N=C(!1),b=t.type==="password",w=l??null,E=()=>b?A(N)?"text":"password":t.type||"search";return e("label",{class:s?"floating-label":""},[s?e("span",{},n):null,e("label",{pattern:w,class:()=>_("input validator",t.class)},[n&&!s?e("span",{class:"label"},n):null,f??null,e("input",{...d,type:E,class:"grow",pattern:w,placeholder:r||n||" ",value:i}),u??null,b?Xt({class:"ml-2"},[gt({value:N,class:"swap-rotate"}),$t({},p("icon-[lucide--eye]")),Kt({},p("icon-[lucide--eye-off]"))]):null]),c?e("div",{class:"validator-hint"},c):null])},mn=(t,n)=>e("kbd",{...t,class:_("kbd",t.class)},n),Tn=(t,n)=>e("ul",{...t,class:_("list",t.class)},n),kn=(t)=>()=>(A(t.items)||[]).map((n,o)=>e("li",{class:_("list-row",t.class,n?.class)},typeof t.render==="function"?t.render(n,o):n)),jn=(t,n)=>e("span",{...t,class:_("loading loading-spinner",t.class)},n),Wn=(t)=>{if(t.children!==void 0)return e("ul",{class:_("menu",t.class),...t},t.children);let{items:n}=t,o=(s)=>s.children?e("li",{},e("details",{open:s.open||void 0},[e("summary",{},J(s)),e("ul",{},B(()=>A(s.children)||[],o))])):e("li",{},e("a",{href:s.href,onclick:s.onclick?(r)=>{if(!s.href)r.preventDefault();s.onclick(r)}:null},J(s)));return e("ul",{class:_("menu",t.class)},B(()=>A(n)||[],o))},Pn=(t)=>{let n=null;z(()=>{let s=A(t.open);if(!n)return;s?n.showModal():n.close()});let o=()=>L(t.open)&&t.open(!1);return e("dialog",{...t,ref:(s)=>n=s,class:_("modal",t.class),onclose:o,oncancel:o},[e("div",{class:"modal-box"},[t.title&&e("h3",{class:"text-lg font-bold"},t.title),t.children,e("div",{class:"modal-action"},[t.actions||Tt({class:"btn",onclick:o},"Cerrar")])]),e("form",{method:"dialog",class:"modal-backdrop"},[e("button",{},"close")])])},Xn=(t,n)=>e("div",{...t,class:_("navbar",t.class)},n),gn=(t)=>e("progress",{...t,class:_("progress",t.class)}),$n=(t,n)=>e("div",{...t,class:_("radial-progress",t.class),style:`--value:${t.value??0};${t.style??""}`,role:"progressbar","aria-valuenow":t.value??0},n??`${t.value??0}%`),Kn=(t)=>e("input",{...t,type:"radio",class:_("radio",t.class)}),Mn=(t)=>e("input",{...t,type:"range",class:_("range",t.class)}),Un=(t,n)=>e("div",{...t,class:"rating"},n),Bn=(t)=>[...Array(t.count)].map((n,o)=>e("input",{class:_("mask",t.class),name:t.name,type:"radio",checked:()=>A(t.value)===o,onchange:()=>L(t.value)?t.value(o):t.onchange?.(o)})),Jn=(t,n)=>{if(n!==void 0)return e("select",{class:_("select",t.class),...t},n);let{label:o,float:s,placeholder:r,placeholderDisabled:i=!0,value:f,left:u,right:l,hint:c,items:a,keyFn:d,...N}=t,b=()=>{let w=A(a)||[];return[...r?[{disabled:i,label:r,value:""}]:[],...w]};return e("label",{class:s?"floating-label":""},[s?e("span",{},o):null,e("label",{class:_("select",N.class)},[!s&&o?e("span",{class:"label"},o):null,u??null,e("select",{value:()=>A(f),onchange:(w)=>L(f)?f(w.target.value):N.onchange?.(w)},B(b,(w)=>{let E=J(w,w.value!==void 0?"value":void 0),j=J(w,"label");return e("option",{value:E,disabled:w.disabled||void 0},j)})),l??null]),c?e("div",{class:"validator-hint"},c):null])},zn=(t)=>e("div",{...t,class:_("skeleton",t.class)}),Gn=(t)=>e("span",{...t,class:_("skeleton skeleton-text",t.class)}),Qn=(t,n)=>e("div",{...t,class:_("stack",t.class)},n),In=(t,n)=>e("div",{...t,class:_("stats shadow",t.class)},n),Zn=(t)=>e("div",{...t,class:_("stat",t.class)},[t.title?e("div",{class:"stat-title"},t.title):null,t.value?e("div",{class:"stat-value"},t.value):null,t.desc?e("div",{class:"stat-desc"},t.desc):null]),Vn=(t,n)=>e("ul",{...t,class:_("steps",t.class)},n),xn=(t,n)=>e("li",{...t,class:_("step",t.class),"data-content":t.dataContent},n),Xt=(t,n)=>e("label",{...t,class:_("swap",t.class)},n),gt=(t)=>e("input",{type:"checkbox",checked:()=>A(t.value),onchange:(n)=>L(t.value)&&t.value(n.target.checked),class:t.class}),$t=(t,n)=>e("div",{...t,class:_("swap-on",t.class)},n),Kt=(t,n)=>e("div",{...t,class:_("swap-off",t.class)},n),Rn=(t,n)=>e("table",{...t,class:_("table",t.class)},n),Yn=({items:t,columns:n=[],header:o=!0})=>{let s=o!==!1&&n.some((i)=>i.label)?e("thead",{},e("tr",{},n.map((i)=>e("th",{class:i.class},i.label)))):null,r=e("tbody",{},()=>{return(A(t)||[]).map((f,u)=>e("tr",{},n.map((l)=>{let c=l.render?l.render(f,u):f[l.key];return e("td",{class:l.class},c)})))});return[s,r].filter(Boolean)},qn=(t,n)=>{if(!t.items){let{class:c,...a}=t;return e("div",{...a,class:_("tabs",c)},n)}let{items:o,activeIndex:s,onClose:r,class:i,...f}=t,u=(c)=>L(c)?c():c,l=r||(L(o)?(c,a)=>{let N=u(o).filter((b,w)=>w!==c);if(o(N),s()>=N.length)s(Math.max(0,N.length-1))}:null);return e("div",{...f,class:_("tabs",i)},()=>{return(u(o)||[]).flatMap((a,d)=>{let N=()=>s()===d,b=e("button",{class:()=>`tab ${N()?"tab-active":""} ${a.class||""}`,onclick:(E)=>{E.preventDefault(),s(d),a.onclick?.(E)}},[J(a),a.closable?e("span",{class:"ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",onclick:(E)=>{E.stopPropagation(),l?.(d,a)}},e("span",{class:"icon-[lucide--x] w-3 h-3"})):null]),w=e("div",{class:"tab-content bg-base-100 border-base-300 p-6",style:()=>`display: ${N()?"block":"none"};`},L(a.content)?a.content():a.content);return[b,w]})})},Dn=(t)=>e("textarea",{...t,class:_("textarea",t.class)}),Hn=(t,n)=>e("span",{...t,class:_("text-rotate",t.class)},n),Fn=(t,n)=>e("ul",{...t,class:_("timeline",t.class)},n),vn=(t,n="alert-success",o=3500)=>{let s=document.getElementById("sigpro-toast-container");if(!s)s=e("div",{id:"sigpro-toast-container",class:"fixed top-0 right-0 z-[9999] p-4 flex flex-col items-end gap-2 pointer-events-none"}),document.body.appendChild(s);let r=e("div",{style:"display: contents"});s.appendChild(r);let i,f,u,c=lt(()=>{let a=C(!1),d=C(!1);i=()=>{if(d())return;clearTimeout(f),clearTimeout(u),d(!0),setTimeout(()=>{if(c.destroy(),r.remove(),!s.hasChildNodes())s.remove()},300)},u=setTimeout(()=>a(!0),0);let N=typeof t==="function"?A(t):t,b=typeof N==="string"?e("span",{},N):N;return e("div",{class:()=>{let w=`alert alert-soft ${n} shadow-lg transition-all duration-300 inline-flex w-auto whitespace-nowrap pointer-events-auto`;if(d())return`${w} translate-x-full opacity-0`;if(a())return`${w} translate-x-0 opacity-100`;return`${w} translate-x-10 opacity-0`}},[b,e("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:i},e("span",{class:"icon-[lucide--x]"}))])},r);if(o>0)f=setTimeout(i,o);return i},hn=(t)=>e("input",{...t,type:"checkbox",class:_("toggle",t.class)}),pn=(t,n)=>e("div",{...t,class:_("tooltip",t.class),"data-tip":t.tip},n);var Ut={};Et(Ut,{Editor:()=>te});var te=(t)=>{let{value:n,class:o}=t,s=null,r=null,i=C(!1),f=C(""),u=C(0),l=C(0),c=C(!1),a=["\uD83D\uDE00","\uD83D\uDE0A","\uD83D\uDE09","\uD83E\uDDD0","\uD83D\uDE2E","\uD83E\uDD14","\uD83D\uDE05","\uD83D\uDE02","\uD83D\uDE0D","\uD83D\uDE18","\uD83E\uDD70","\uD83D\uDC4D","\uD83D\uDC4E","\uD83D\uDC4C","\uD83E\uDD1D","\uD83E\uDD1E","\uD83D\uDC4B","\uD83D\uDC4F","\uD83D\uDE4C","\uD83D\uDE4F","\uD83D\uDCAA","☝️","\uD83D\uDC47","\uD83D\uDC48","\uD83D\uDC49","\uD83D\uDD95","✅","⚠️","\uD83D\uDE80","\uD83D\uDCE2","✉️","❤️"],d=()=>{let y=window.getSelection();if(y.getRangeAt&&y.rangeCount)r=y.getRangeAt(0)},N=()=>{if(r){let y=window.getSelection();y.removeAllRanges(),y.addRange(r)}},b=()=>{if(l(l()+1),s)u(s.innerText.length)},w=()=>{if(!s)return;let y=s.innerHTML;if(L(n))n(y);else t.onchange?.(y);b()},E=(y,S=null)=>{if(!s)return;if(s.focus(),r)N();document.execCommand(y,!1,S),r=null,w()},j=(y)=>{let S=document.createElement("div");S.style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;";let O=document.createElement("img");O.src=y,O.style="max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;",S.onclick=()=>document.body.removeChild(S),S.appendChild(O),document.body.appendChild(S)},M=(y)=>{if(!y)return;let S=new FileReader;S.onload=(O)=>{if(y.type.startsWith("image/")){let k=`
 `;E("insertHTML",k)}else{let k=`${y.name} `;E("insertHTML",k)}},S.readAsDataURL(y)},W=(y,S=null)=>{if(l(),!s||i())return!1;try{if(y==="formatBlock"){let O=window.getSelection().getRangeAt(0).commonAncestorContainer;while(O&&O!==s){if(O.nodeType===1&&O.tagName===S)return!0;O=O.parentNode}return!1}return document.queryCommandState(y)}catch(O){return!1}},ct=e("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20"},[e("div",{class:"flex flex-wrap gap-1 flex-1 items-center"},[e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${W("bold")?"btn-active bg-primary/20":""}`,onclick:()=>E("bold")},e("span",{class:"icon-[lucide--bold]"})),e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${W("italic")?"btn-active bg-primary/20":""}`,onclick:()=>E("italic")},e("span",{class:"icon-[lucide--italic]"})),e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${W("underline")?"btn-active bg-primary/20":""}`,onclick:()=>E("underline")},e("span",{class:"icon-[lucide--underline]"})),e("input",{type:"color",class:"w-5 h-5 p-0 border-0 bg-transparent cursor-pointer",oninput:(y)=>E("foreColor",y.target.value)}),e("span",{class:"w-px h-5 bg-base-300 mx-1"}),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyLeft")},e("span",{class:"icon-[lucide--align-left]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyCenter")},e("span",{class:"icon-[lucide--align-center]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyRight")},e("span",{class:"icon-[lucide--align-right]"})),e("span",{class:"w-px h-5 bg-base-300 mx-1"}),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertUnorderedList")},e("span",{class:"icon-[lucide--list]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertOrderedList")},e("span",{class:"icon-[lucide--list-ordered]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("outdent")},e("span",{class:"icon-[lucide--indent-decrease]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("indent")},e("span",{class:"icon-[lucide--indent-increase]"})),e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${W("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>E("formatBlock",W("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},e("span",{class:"icon-[lucide--quote]"})),e("span",{class:"w-px h-5 bg-base-300 mx-1"}),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let y=window.prompt("URL:");if(y)E("createLink",y)}},e("span",{class:"icon-[lucide--link]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let y=document.createElement("input");y.type="file",y.onchange=(S)=>M(S.target.files[0]),y.click()}},e("span",{class:"icon-[lucide--paperclip]"})),e("div",{class:"relative"},[e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:(y)=>{y.stopPropagation(),d(),c(!c())}},e("span",{class:"icon-[lucide--smile]"})),e("div",{class:"absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1",style:()=>c()?"display:flex":"display:none"},a.map((y)=>e("span",{class:"cursor-pointer hover:bg-base-200 p-1 rounded text-lg",onclick:(S)=>{S.stopPropagation(),E("insertText",y),c(!1)}},y)))]),e("span",{class:"w-px h-5 bg-base-300 mx-1"}),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("undo")},e("span",{class:"icon-[lucide--undo-2]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("redo")},e("span",{class:"icon-[lucide--redo-2]"}))]),e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${i()?"btn-active":""}`,onclick:()=>{if(!i())f(s?.innerHTML||"");else if(s)s.innerHTML=f(),w();i(!i())}},e("span",{class:"icon-[lucide--code-2]"}))]);if(typeof document<"u"&&!document.getElementById("editor-styles")){let y=document.createElement("style");y.id="editor-styles",y.textContent=` [contenteditable="true"] div, [contenteditable="true"] p { margin: 0; padding: 0; } - `,document.head.appendChild(b)}return r("div",{class:e("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col",o)},[c,r("div",{class:"relative flex-1 flex flex-col",onclick:()=>i(!1)},[r("div",{ref:(b)=>{if(!f&&b)f=b,b.innerHTML=L(n)||"",document.execCommand("defaultParagraphSeparator",!1,"br"),b.addEventListener("click",(j)=>{let T=j.target.closest(".resizable-img-container");if(T){let $=T.querySelector("img");if($)J($.src)}})},style:()=>`min-height:22rem;${_()?"display:none":""}`,class:"p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",contenteditable:"true",oninput:w,onkeydown:(b)=>{if(b.key==="Tab")b.preventDefault(),E("indent")},onkeyup:()=>{C(),N()},onclick:(b)=>{C(),N(),b.stopPropagation()},onmouseup:()=>{w(),N()},onpaste:(b)=>{b.preventDefault();let j=b.clipboardData.getData("text/plain");E("insertText",j)},ondragover:(b)=>b.preventDefault(),ondrop:(b)=>{b.preventDefault(),B(b.dataTransfer.files[0])}}),r("textarea",{class:"w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",style:()=>_()?"":"display:none",value:l,oninput:(b)=>{if(l(b.target.value),f)f.innerHTML=b.target.value;t.onchange?.(b.target.value)}})]),r("div",{class:"px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic"},[r("span",()=>`${a()} caracteres`)])])};var tr={es:{close:"Cerrar",confirm:"Confirmar",cancel:"Cancelar",search:"Buscar...",loading:"Cargando...",nodata:"Sin datos"},en:{close:"Close",confirm:"Confirm",cancel:"Cancel",search:"Search...",loading:"Loading...",nodata:"No data"}},Kt=k("es"),Ot=(t)=>Kt(t),Xt=(t)=>()=>tr[Kt()][t]||t;var zt={..._t,...st},St={Locale:Ot,tt:Xt};if(typeof window<"u")Object.entries({...zt,...St}).forEach(([t,n])=>{Object.defineProperty(window,t,{value:n,writable:!1,configurable:!0,enumerable:!0})}),console.log("SigProUI DX installed");})(); + `,document.head.appendChild(y)}return e("div",{class:_("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col",o)},[ct,e("div",{class:"relative flex-1 flex flex-col",onclick:()=>c(!1)},[e("div",{ref:(y)=>{if(!s&&y)s=y,y.innerHTML=A(n)||"",document.execCommand("defaultParagraphSeparator",!1,"br"),y.addEventListener("click",(S)=>{let O=S.target.closest(".resizable-img-container");if(O){let k=O.querySelector("img");if(k)j(k.src)}})},style:()=>`min-height:22rem;${i()?"display:none":""}`,class:"p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",contenteditable:"true",oninput:w,onkeydown:(y)=>{if(y.key==="Tab")y.preventDefault(),E("indent")},onkeyup:()=>{b(),d()},onclick:(y)=>{b(),d(),y.stopPropagation()},onmouseup:()=>{w(),d()},onpaste:(y)=>{y.preventDefault();let S=y.clipboardData.getData("text/plain");E("insertText",S)},ondragover:(y)=>y.preventDefault(),ondrop:(y)=>{y.preventDefault(),M(y.dataTransfer.files[0])}}),e("textarea",{class:"w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",style:()=>i()?"":"display:none",value:f,oninput:(y)=>{if(f(y.target.value),s)s.innerHTML=y.target.value;t.onchange?.(y.target.value)}})]),e("div",{class:"px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic"},[e("span",()=>`${u()} caracteres`)])])};var Pe={es:{close:"Cerrar",confirm:"Confirmar",cancel:"Cancelar",search:"Buscar...",loading:"Cargando...",nodata:"Sin datos"},en:{close:"Close",confirm:"Confirm",cancel:"Cancel",search:"Search...",loading:"Loading...",nodata:"No data"}},ne=C("es"),ee=(t)=>ne(t),oe=(t)=>()=>Pe[ne()][t]||t;var re={...Mt,...Ut},se={Locale:ee,tt:oe};if(typeof window<"u")Object.entries({$:C,$$:Ct,watch:z,h:e,each:B,when:ft,mount:lt,batch:It}).forEach(([n,o])=>{Object.defineProperty(window,n,{value:o,writable:!0,configurable:!0,enumerable:!0})}),Object.entries({...re,...se}).forEach(([n,o])=>{Object.defineProperty(window,n,{value:o,writable:!1,configurable:!0,enumerable:!0})}),console.log("SigProUI DX installed");})(); diff --git a/docs/sigpro-ui.min.js b/docs/sigpro-ui.min.js index db14930..cc39db9 100644 --- a/docs/sigpro-ui.min.js +++ b/docs/sigpro-ui.min.js @@ -1,7 +1,7 @@ -(()=>{var{defineProperty:tt,getOwnPropertyNames:Qt,getOwnPropertyDescriptor:Mt}=Object,Zt=Object.prototype.hasOwnProperty;function Gt(t){return this[t]}var qt=(t)=>{var n=(it??=new WeakMap).get(t),o;if(n)return n;if(n=tt({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var f of Qt(t))if(!Zt.call(n,f))tt(n,f,{get:Gt.bind(t,f),enumerable:!(o=Mt(t,f))||o.enumerable})}return it.set(t,n),n},it;var Ut=(t)=>t;function Yt(t,n){this[t]=Ut.bind(null,n)}var nt=(t,n)=>{for(var o in n)tt(t,o,{get:n[o],enumerable:!0,configurable:!0,set:Yt.bind(n,o)})};var nr={};nt(nr,{Utils:()=>St,Components:()=>zt});var _t={};nt(_t,{Tooltip:()=>hn,Toggle:()=>vn,Toast:()=>cn,Timeline:()=>Rn,Textrotate:()=>Fn,Textarea:()=>mn,Tabs:()=>Dn,TableItems:()=>xn,Table:()=>Hn,SwapToggle:()=>Wt,SwapOn:()=>$t,SwapOff:()=>Jt,Swap:()=>Tt,Steps:()=>gn,Step:()=>Vn,Stats:()=>Yn,Stat:()=>In,Stack:()=>Un,SkeletonText:()=>qn,Skeleton:()=>Gn,Select:()=>Zn,RatingItems:()=>Mn,Rating:()=>Qn,Range:()=>Pn,Radio:()=>Bn,Radial:()=>Sn,Progress:()=>zn,Navbar:()=>Xn,Modal:()=>On,Menu:()=>Kn,Loading:()=>Jn,ListRows:()=>$n,List:()=>Wn,Kbd:()=>Tn,Input:()=>At,Indicator:()=>An,Icon:()=>m,Fileinput:()=>Ln,Fieldset:()=>kn,Fab:()=>jn,DropdownContent:()=>R,DropdownButton:()=>Lt,Dropdown:()=>F,DrawerToggle:()=>yn,DrawerSide:()=>Nn,DrawerOverlay:()=>dn,DrawerContent:()=>En,Drawer:()=>wn,Divider:()=>Cn,Datepicker:()=>bn,Colorpicker:()=>en,ColorPalette:()=>kt,Checkbox:()=>sn,ChatImage:()=>_n,ChatHeader:()=>an,ChatFooter:()=>ln,ChatBubble:()=>un,Chat:()=>fn,CarouselItem:()=>on,Carousel:()=>rn,CardTitle:()=>pt,CardBody:()=>tn,CardActions:()=>nn,Card:()=>ht,Calendar:()=>jt,Button:()=>Ct,Badge:()=>vt,Autocomplete:()=>ct,Alert:()=>Rt,Accordion:()=>Ft});var z=(t)=>typeof t==="function",ft=(t)=>t&&typeof t==="object",q=Array.isArray,S=typeof document<"u"?document:null,et=(t)=>t?._isRuntime?t.container:t instanceof Node?t:S.createTextNode(t==null?"":String(t)),W=null,K=null,I=!1,V=0,H=new Set,bt=new WeakMap,rt=Symbol("iter"),ot=new WeakMap,Z=(t)=>{if(!t||t._disposed)return;t._disposed=!0;let n=[t];while(n.length){let o=n.pop();if(o._cleanups)o._cleanups.forEach((f)=>f()),o._cleanups.clear();if(o._children)o._children.forEach((f)=>n.push(f)),o._children.clear();if(o._deps)o._deps.forEach((f)=>f.delete(o)),o._deps.clear()}},U=(t)=>{if(K)(K._cleanups||=new Set).add(t)},It=(t)=>{let n=W;W=null;try{return t()}finally{W=n}},g=(t,n=!1)=>{let o=()=>{if(o._disposed)return;if(o._deps)o._deps.forEach((_)=>_.delete(o));if(o._cleanups)o._cleanups.forEach((_)=>_()),o._cleanups.clear();let f=W,u=K;W=K=o;try{return o._result=t()}catch(_){console.error("[SigPro]",_)}finally{W=f,K=u}};if(o._deps=o._cleanups=o._children=null,o._disposed=!1,o._isComputed=n,o._depth=W?W._depth+1:0,o._mounts=[],o._parent=K,K)(K._children||=new Set).add(o);return o},yt=()=>{if(I)return;I=!0;let t=Array.from(H).sort((n,o)=>n._depth-o._depth);H.clear();for(let n of t)if(!n._disposed)n();I=!1},gt=(t)=>{V++;try{return t()}finally{if(V--,V===0&&H.size>0&&!I)yt()}},X=(t,n=!1)=>{if(!n&&W&&!W._disposed)t.add(W),(W._deps||=new Set).add(t);else if(n&&t.size>0){let o=!1;for(let f of t){if(f===W||f._disposed)continue;if(f._isComputed){if(f._dirty=!0,f._subs)X(f._subs,!0)}else H.add(f),o=!0}if(o&&!I&&V===0)queueMicrotask(yt)}},k=(t,n=null)=>{let o=new Set;if(z(t)){let f,u=()=>{if(u._dirty){let _=W;W=u;try{let l=t();if(!Object.is(f,l))f=l,X(o,!0)}finally{W=_}u._dirty=!1}return X(o),f};if(u._isComputed=!0,u._subs=o,u._dirty=!0,u._deps=null,u._disposed=!1,u.stop=()=>{},K)U(u.stop);return u}if(n)try{t=JSON.parse(localStorage.getItem(n))??t}catch(f){}return(...f)=>{if(f.length){let u=z(f[0])?f[0](t):f[0];if(!Object.is(t,u)){if(t=u,n)localStorage.setItem(n,JSON.stringify(t));X(o,!0)}}return X(o),t}},Et=(t)=>{if(!ft(t))return t;let n=bt.get(t);if(n)return n;let o=new Map,f=(_)=>{let l=o.get(_);if(!l)o.set(_,l=new Set);return l},u=new Proxy(t,{get(_,l,a){if(typeof l!=="symbol")X(f(l));return Et(Reflect.get(_,l,a))},set(_,l,a,s){let i=Reflect.has(_,l),y=Reflect.get(_,l,s),N=Reflect.set(_,l,a,s);if(N&&!Object.is(y,a)){if(X(f(l),!0),!i)X(f(rt),!0)}return N},deleteProperty(_,l){let a=Reflect.deleteProperty(_,l);if(a)X(f(l),!0),X(f(rt),!0);return a},ownKeys(_){return X(f(rt)),Reflect.ownKeys(_)}});return bt.set(t,u),u},G=(t,n)=>{if(n===void 0){let f=g(t);return f(),()=>Z(f)}let o=g(()=>{let f=Array.isArray(t)?t.map((u)=>u()):t();It(()=>n(f))});return o(),()=>Z(o)},ut=(t)=>{if(!t)return;if(t._cleanups)t._cleanups.forEach((n)=>n()),t._cleanups.clear();if(t._ownerEffect)Z(t._ownerEffect);if(t.childNodes)t.childNodes.forEach((n)=>ut(n))},Vt=/^\s*(javascript|data|vbscript):/i,Ht=(t)=>t==="src"||t==="href"||t.startsWith("on"),wt=(t,n)=>{if(n==null||n===!1)return null;if(Ht(t)){let o=String(n);if(Vt.test(o))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${t}`),"#"}return n},r=(t,n={},o=[])=>{if(n instanceof Node||q(n)||!ft(n))o=n,n={};if(z(t)){let l=g(()=>{let y=t(n,{children:o,emit:(N,...d)=>n[`on${N[0].toUpperCase()}${N.slice(1)}`]?.(...d)});return l._result=y,y});l();let a=l._result;if(a==null)return null;let s=a instanceof Node||q(a)&&a.every((y)=>y instanceof Node)?a:S.createTextNode(String(a)),i=(y)=>{if(ft(y)&&!y._isRuntime)y._mounts=l._mounts||[],y._cleanups=l._cleanups||new Set,y._ownerEffect=l};return q(s)?s.forEach(i):i(s),s}let f=/^(svg|path|circle|rect|line|poly(line|gon)|g|defs|text(path)?|tspan|use|symbol|image|marker|ellipse)$/i.test(t),u=f?S.createElementNS("http://www.w3.org/2000/svg",t):S.createElement(t);u._cleanups=new Set;for(let l in n){if(!n.hasOwnProperty(l))continue;let a=n[l];if(l==="ref"){z(a)?a(u):a.current=u;continue}if(f&&l.startsWith("xlink:")){a==null?u.removeAttributeNS("http://www.w3.org/1999/xlink",l.slice(6)):u.setAttributeNS("http://www.w3.org/1999/xlink",l.slice(6),a);continue}if(l.startsWith("on")){let s=l.slice(2).toLowerCase();u.addEventListener(s,a);let i=()=>u.removeEventListener(s,a);u._cleanups.add(i),U(i)}else if(z(a)){let s=g(()=>{let i=wt(l,a());if(l==="class")u.className=i||"";else if(i==null)u.removeAttribute(l);else if(l in u&&!f)u[l]=i;else u.setAttribute(l,i===!0?"":i)});if(s(),u._cleanups.add(()=>Z(s)),U(()=>Z(s)),/^(INPUT|TEXTAREA|SELECT)$/.test(u.tagName)&&(l==="value"||l==="checked")){let i=l==="checked"?"change":"input";u.addEventListener(i,(y)=>a(y.target[l]))}}else{let s=wt(l,a);if(s!=null)if(l in u&&!f)u[l]=s;else u.setAttribute(l,s===!0?"":s)}}let _=(l)=>{if(q(l))return l.forEach(_);if(z(l)){let a=S.createTextNode("");u.appendChild(a);let s=[],i=g(()=>{let y=l(),N=(q(y)?y:[y]).map(et);s.forEach((C)=>{if(C._isRuntime)C.destroy();else ut(C);if(C.parentNode)C.remove()});let d=a;for(let C=N.length-1;C>=0;C--){let w=N[C];if(w.parentNode!==d.parentNode)d.parentNode?.insertBefore(w,d);if(w._mounts)w._mounts.forEach((E)=>E());d=w}s=N});i(),u._cleanups.add(()=>Z(i)),U(()=>Z(i))}else{let a=et(l);if(u.appendChild(a),a._mounts)a._mounts.forEach((s)=>s())}};return _(o),u},x=(t)=>{let n=new Set,o=K,f=W,u=S.createElement("div");u.style.display="contents",u.setAttribute("role","presentation"),K={_cleanups:n},W=null;let _=(l)=>{if(!l)return;if(l._isRuntime)n.add(l.destroy),u.appendChild(l.container);else if(q(l))l.forEach(_);else u.appendChild(l instanceof Node?l:S.createTextNode(String(l==null?"":l)))};try{_(t({onCleanup:(l)=>n.add(l)}))}finally{K=o,W=f}return{_isRuntime:!0,container:u,destroy:()=>{n.forEach((l)=>l()),ut(u),u.remove()}}},lt=(t,n,o=null)=>{let f=S.createTextNode(""),u=r("div",{style:"display:contents"},[f]),_=null;return G(()=>!!(z(t)?t():t),(l)=>{if(_)_.destroy(),_=null;let a=l?n:o;if(a)_=x(()=>z(a)?a():a),u.insertBefore(_.container,f)}),U(()=>_?.destroy()),u},xt=({name:t,duration:n=200,scale:o,slide:f,rotate:u,blur:_},l)=>{let a=typeof l==="function"?l():l;if(!(a instanceof Node))return a;if(t)return a.style.animation=`${t}-in ${n}ms`,a;let s=o||f||u||_,i=[o?"scale(0.95)":"",f?"translateY(-10px)":"",u?"rotate(-2deg)":""].filter(Boolean).join(" ");if(a.style.transition=`all ${n}ms ease`,a.style.opacity="0",s)a.style.transform=i;if(_)a.style.filter="blur(4px)";return requestAnimationFrame(()=>{if(a.style.opacity="1",s)a.style.transform="none";if(_)a.style.filter="none"}),a},M=(t,n,o)=>{let f=S.createTextNode(""),u=r("div",{style:"display:contents"},[f]),_=new Map;return G(()=>(z(t)?t():t)||[],(l)=>{let a=new Map,s=[],i=l||[];for(let N=0;Nn(d,N));else _.delete(C);a.set(C,w),s.push(w)}_.forEach((N)=>N.destroy());let y=f;for(let N=s.length-1;N>=0;N--){let d=s[N].container;if(d.nextSibling!==y)u.insertBefore(d,y);y=d}_=a}),u},Y=(t)=>{let n=()=>window.location.hash.slice(1)||"/",o=k(n()),f=()=>o(n());window.addEventListener("hashchange",f),U(()=>window.removeEventListener("hashchange",f));let u=r("div",{class:"router-hook"}),_=null;return G([o],()=>{let l=o(),a=t.find((s)=>{let i=s.path.split("/").filter(Boolean),y=l.split("/").filter(Boolean);return i.length===y.length&&i.every((N,d)=>N[0]===":"||N===y[d])})||t.find((s)=>s.path==="*");if(a){_?.destroy();let s={};a.path.split("/").filter(Boolean).forEach((i,y)=>{if(i[0]===":")s[i.slice(1)]=l.split("/").filter(Boolean)[y]}),Y.params(s),_=x(()=>z(a.component)?a.component(s):a.component),u.replaceChildren(_.container)}}),u};Y.params=k({});Y.to=(t)=>window.location.hash=t.replace(/^#?\/?/,"#/");Y.back=()=>window.history.back();Y.path=()=>window.location.hash.replace(/^#/,"")||"/";var Dt=({url:t,method:n="GET",headers:o={}})=>{let f=k(!1),u=k(null),_=k(null),l=null,a=null;return{run:async(s=null)=>{l?.abort(),clearTimeout(a),l=new AbortController,a=setTimeout(()=>l.abort(),1e4),f(!0),u(null);try{let i=s instanceof FormData,y=await fetch(t,{method:n,headers:i?o:{"Content-Type":"application/json",...o},body:i?s:s?JSON.stringify(s):void 0,signal:l.signal}),N=await y.text(),d=N?JSON.parse(N):null;if(!y.ok)throw Error(d?.message||y.statusText);return _(d),d}catch(i){if(i.name!=="AbortError")u(i.message);throw i}finally{f(!1),clearTimeout(a),l=null,a=null}},abort:()=>l?.abort(),loading:f,error:u,data:_}},at=(t,n)=>{let o=typeof n==="string"?S.querySelector(n):n;if(!o)return;if(ot.has(o))ot.get(o).destroy();let f=x(z(t)?t:()=>t);return o.replaceChildren(f.container),ot.set(o,f),f},mt=Object.freeze({$:k,$$:Et,watch:G,h:r,when:lt,each:M,fx:xt,router:Y,req:Dt,mount:at,batch:gt});if(typeof window<"u")Object.assign(window,mt),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((t)=>{window[t]=(n,o)=>r(t,n,o)});var L=(t)=>typeof t==="function"?t():t,Q=(t,n="label")=>t&&typeof t==="object"?t[n]:t,e=(...t)=>t.filter(Boolean).join(" ").trim(),A=(t)=>typeof t==="function",Nt=(t,n,o="label",f=String(n).toLowerCase())=>!n?L(t):L(t).filter((u)=>String(u&&typeof u==="object"?u[o]:u).toLowerCase().includes(f)),dt=(t)=>`${t}-${Math.random().toString(36).slice(2,9)}`,D=()=>document.activeElement?.blur();var Ft=(t)=>{let n=t.name||dt("acc");return M(t.items,(o)=>{return r("div",{class:e("collapse",t.class)},[r("input",{type:"radio",name:n,checked:o.open||void 0}),o.title?r("div",{class:e("collapse-title",`${o.classTitle??" font-semibold"}`)},o.title):null,o.content?r("div",{class:e("collapse-content text-sm",`${o.classContent??" font-semibold"}`)},o.content):null])})},Rt=(t,n)=>r("div",{...t,class:e("alert",t.class)},n),ct=({items:t,value:n,onselect:o,placeholder:f="...",...u})=>{let _=k(L(n)||""),l=k(()=>Nt(t,_())),a=(s)=>{let i=Q(s),y=typeof s==="string"?s:s.value;if(_(i),A(n))n(y);o?.(s),D()};return F({class:"w-full"},[r("div",{tabindex:"0",role:"button",class:"w-full"},At({...u,placeholder:f,value:_,left:r("span",{class:"icon-[lucide--search]"}),oninput:(s)=>{if(_(s.target.value),A(n))n(s.target.value)}})),R({class:"p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50"},r("ul",{class:"menu flex-col flex-nowrap w-full p-0"},[M(l,(s)=>r("li",{},[r("a",{onmousedown:(i)=>i.preventDefault(),onclick:()=>a(s)},Q(s))]),(s)=>Q(s)),()=>l().length===0?r("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null]))])},vt=(t,n)=>r("span",{...t,class:e("badge",t.class)},n),Ct=(t,n)=>r("button",{...t,class:e("btn",t.class)},n),jt=(t)=>{let n=k(new Date),o=k(null),f=k(0),u=k(0),_=new Date,l=`${_.getFullYear()}-${String(_.getMonth()+1).padStart(2,"0")}-${String(_.getDate()).padStart(2,"0")}`,a=(w)=>`${w.getFullYear()}-${String(w.getMonth()+1).padStart(2,"0")}-${String(w.getDate()).padStart(2,"0")}`,s=()=>L(t.range)===!0,i=()=>L(t.value),y=(w)=>{let E=a(w),J=i();if(s())if(!J?.start||J.start&&J.end)t.onChange?.({start:E,end:null,...t.hour&&{startHour:f()}});else{let B=J.start,O=E{let E=n();n(new Date(E.getFullYear(),E.getMonth()+w,1))},d=(w)=>{let E=n();n(new Date(E.getFullYear()+w,E.getMonth(),1))},C=({value:w,onChange:E})=>r("div",{class:"flex-1"},[r("div",{class:"flex gap-2 items-center"},[r("input",{type:"range",min:0,max:23,value:w,class:"range range-xs flex-1",oninput:(J)=>E(+J.target.value)}),r("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(L(w)).padStart(2,"0")+":00")])]);return r("div",{class:e("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",t.class)},[r("div",{class:"flex justify-between items-center mb-4 gap-1"},[r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(-1)},r("span",{class:"icon-[lucide--chevrons-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(-1)},r("span",{class:"icon-[lucide--chevron-left]"}))]),r("span",{class:"font-bold uppercase flex-1 text-center"},()=>n().toLocaleString("es-ES",{month:"short",year:"numeric"})),r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(1)},r("span",{class:"icon-[lucide--chevron-right]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(1)},r("span",{class:"icon-[lucide--chevrons-right]"}))])]),r("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>o(null)},[...["L","M","X","J","V","S","D"].map((w)=>r("div",{class:"text-[10px] opacity-40 font-bold text-center"},w)),()=>{let w=n(),E=w.getFullYear(),J=w.getMonth(),B=new Date(E,J,1).getDay(),O=B===0?6:B-1,c=new Date(E,J+1,0).getDate(),b=[];for(let j=0;j{let P=i(),v=o(),Bt=typeof P==="string"?P.split("T")[0]===$:P?.start===$,Pt=P?.end===$,h=!1;if(s()&&P?.start){let p=P.start;if(!P.end&&v)h=$>p&&$<=v||$=v;else if(P.end)h=$>p&&$s()&&o($),onclick:()=>y(T)},j.toString()))}return b}]),t.hour?r("div",{class:"mt-3 pt-2 border-t border-base-300"},s()?r("div",{class:"flex gap-4"},[C({value:f,onChange:(w)=>f(w)}),C({value:u,onChange:(w)=>u(w)})]):C({value:f,onChange:(w)=>f(w)})):null])},ht=(t,n)=>r("div",{...t,class:e("card",t.class)},n),pt=(t,n)=>r("div",{...t,class:e("card-title",t.class)},n),tn=(t,n)=>r("div",{...t,class:e("card-body",t.class)},n),nn=(t,n)=>r("div",{...t,class:e("card-actions",t.class)},n),rn=(t,n)=>r("div",{...t,class:e("carousel",t.class)},n),on=(t,n)=>r("div",{...t,class:e("carousel-item",t.class)},n),fn=(t,n)=>r("div",{...t,class:e("chat",t.class)},n),un=(t,n)=>r("div",{...t,class:e("chat-bubble",t.class)},n),ln=(t,n)=>r("div",{...t,class:e("chat-footer",t.class)},n),an=(t,n)=>r("div",{...t,class:e("chat-header",t.class)},n),_n=(t,n)=>r("div",{...t,class:e("chat-image avatar",t.class)},r("div",{class:"w-10 rounded-full"},typeof n==="string"?r("img",{src:n,alt:"avatar"}):n)),sn=(t)=>r("input",{...t,type:"checkbox",class:e("checkbox",t.class)}),en=(t)=>{let n=()=>L(t.value)||"#000000";return F({},[Lt({class:"btn"},[r("div",{class:"size-5 rounded-sm",style:()=>`background-color: ${n()}`}),t.label&&r("span",{},t.label)]),R({class:"p-3 bg-base-100 rounded-box shadow-xl w-64"},kt({value:t.value,onchange:(o)=>{A(t.value)?t.value(o):t.onchange?.(o)}}))])},kt=(t)=>{let n=()=>L(t.value)||"#000000",o=["#000","#1A1A1A","#333","#4D4D4D","#666","#808080","#B3B3B3","#FFF","#450a0a","#7f1d1d","#991b1b","#b91c1c","#dc2626","#ef4444","#f87171","#fca5a5","#431407","#7c2d12","#9a3412","#c2410c","#ea580c","#f97316","#fb923c","#ffedd5","#713f12","#a16207","#ca8a04","#eab308","#facc15","#fde047","#fef08a","#fff9c4","#064e3b","#065f46","#059669","#10b981","#34d399","#4ade80","#84cc16","#d9f99d","#082f49","#075985","#0284c7","#0ea5e9","#38bdf8","#7dd3fc","#22d3ee","#cffafe","#1e1b4b","#312e81","#4338ca","#4f46e5","#6366f1","#818cf8","#a5b4fc","#e0e7ff","#2e1065","#4c1d95","#6d28d9","#7c3aed","#8b5cf6","#a855f7","#d946ef","#fae8ff"],f=(u)=>A(t.value)?t.value(u):t.onchange?.(u);return r("div",{class:"grid grid-cols-8 gap-1"},o.map((u)=>r("button",{type:"button",style:`background-color: ${u}`,class:()=>{return`size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${n().toLowerCase()===u.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>{f(u),D()}})))},bn=(t)=>{let n=k(""),o=()=>L(t.range)===!0;G(()=>{let u=L(t.value);if(!u)return n("");let _="";if(typeof u==="string")_=t.hour&&u.includes("T")?u.replace("T"," "):u;else if(u.start&&u.end){let l=t.hour&&u.startHour!=null?`${u.start} ${String(u.startHour).padStart(2,"0")}:00`:u.start,a=t.hour&&u.endHour!=null?`${u.end} ${String(u.endHour).padStart(2,"0")}:00`:u.end;_=`${l} - ${a}`}else if(u.start)_=`${t.hour&&u.startHour!=null?`${u.start} ${String(u.startHour).padStart(2,"0")}:00`:u.start}...`;n(_)});let f=(u)=>{if(A(t.value))t.value(u);else t.onChange?.(u);if(!o()||u?.end!=null)D()};return F({class:e("w-full",t.class)},[r("label",{tabindex:"0",role:"button",class:"input input-bordered flex items-center gap-2 cursor-pointer"},[r("span",{class:"icon-[lucide--calendar] shrink-0"}),r("span",{class:()=>`grow text-left truncate ${!n()?"opacity-50":""}`},()=>n()||t.placeholder||(o()?"Seleccionar rango...":"Seleccionar fecha...")),()=>n()?r("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle -mr-2",onmousedown:(u)=>{if(u.preventDefault(),u.stopPropagation(),A(t.value))t.value(null);else t.onChange?.(null);n("")}},r("span",{class:"icon-[lucide--x] opacity-50"})):null]),R({class:"p-0 bg-base-100 rounded-box shadow-xl"},jt({value:t.value,range:o(),hour:t.hour,onChange:f}))])},wn=(t,n)=>div({...t,class:e("drawer",t.class)},n),yn=(t)=>input({...t,type:"checkbox",class:"drawer-toggle",checked:()=>L(t.checked),onchange:(n)=>A(t.checked)&&t.checked(n.target.checked)}),En=(t,n)=>div({...t,class:e("drawer-content",t.class)},n),Nn=(t,n)=>div({...t,class:e("drawer-side",t.class)},n),dn=(t)=>label({...t,for:t.for,class:e("drawer-overlay",t.class)}),Cn=(t)=>r("div",{...t,class:e("divider",t.class)}),F=(t,n)=>r("div",{...t,class:e("dropdown",t.class)},n),Lt=(t,n)=>r("div",{...t,tabindex:"0",role:"button",class:e("btn",t.class)},n),R=(t,n)=>r("div",{...t,tabindex:"0",class:e("dropdown-content",t.class)},n),jn=(t,n)=>r("div",{class:"fab"},[r("div",{tabindex:"0",role:"button",class:e("btn",t.class)},m(t.icon)),n]),kn=(t,n)=>r("fieldset",{class:e("fieldset",t.class)},[r("legend",{class:"fieldset-legend"},t.label),n]),Ln=(t)=>{let n=k([]),o=k(!1),f=k(null),u=(t.max||2)*1024*1024,_=(a)=>{let s=Array.from(a);if(f(null),s.some((y)=>y.size>u)){f(`Máx ${t.max||2}MB`);return}let i=[...n(),...s];if(n(i),A(t.onselect))t.onselect(i);else if(A(t.value))t.value(i)},l=(a)=>{let s=n().filter((i,y)=>y!==a);if(n(s),A(t.onselect))t.onselect(s);else if(A(t.value))t.value(s)};return r("div",{class:e("fieldset w-full p-0",t.class)},[r("label",{class:()=>`relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${o()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(a)=>{a.preventDefault(),o(!0)},ondragleave:()=>o(!1),ondrop:(a)=>{a.preventDefault(),o(!1),_(a.dataTransfer.files)}},[r("div",{class:"flex items-center gap-3 w-full"},[r("span",{class:"icon-[lucide--upload]"}),r("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),r("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${t.max||2}MB`)]),r("input",{type:"file",multiple:!0,accept:t.accept||"*",class:"hidden",onchange:(a)=>_(a.target.files)})]),()=>f()&&r("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},f()),lt(()=>n().length>0,()=>r("ul",{class:"mt-2 space-y-1"},M(n,(a,s)=>r("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[r("div",{class:"flex items-center gap-2 truncate"},[r("span",{class:"opacity-50"},"\uD83D\uDCC4"),r("span",{class:"truncate font-medium max-w-[200px]"},a.name),r("span",{class:"text-[9px] opacity-40"},`(${(a.size/1024).toFixed(0)} KB)`)]),r("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(i)=>{i.preventDefault(),l(s)}},r("span",{class:"icon-[lucide--x]"}))]))))])},m=(t)=>r("span",{class:t.startsWith("icon-")?t:""},t.startsWith("icon-")?null:t),An=(t,n)=>r("div",{...t,class:e("indicator",t.class)},[t.value&&r("span",{class:e("indicator-item badge",t.class)},t.value),n]),At=(t)=>{let{label:n,icon:o,float:f,placeholder:u,value:_,left:l,right:a,rule:s,hint:i,content:y,...N}=t,d=k(!1),C=t.type==="password",w=s??null,E=()=>C?L(d)?"text":"password":t.type||"search";return r("label",{class:f?"floating-label":""},[f?r("span",{},n):null,r("label",{pattern:w,class:()=>e("input validator",t.class)},[n&&!f?r("span",{class:"label"},n):null,l??null,r("input",{...N,type:E,class:"grow",pattern:w,placeholder:u||n||" ",value:_}),a??null,C?Tt({class:"ml-2"},[Wt({value:d,class:"swap-rotate"}),$t({},m("icon-[lucide--eye]")),Jt({},m("icon-[lucide--eye-off]"))]):null]),i?r("div",{class:"validator-hint"},i):null])},Tn=(t,n)=>r("kbd",{...t,class:e("kbd",t.class)},n),Wn=(t,n)=>r("ul",{...t,class:e("list",t.class)},n),$n=(t)=>()=>(L(t.items)||[]).map((n,o)=>r("li",{class:e("list-row",t.class,n?.class)},typeof t.render==="function"?t.render(n,o):n)),Jn=(t,n)=>r("span",{...t,class:e("loading loading-spinner",t.class)},n),Kn=(t)=>{if(t.children!==void 0)return r("ul",{class:e("menu",t.class),...t},t.children);let{items:n}=t,o=(f)=>f.children?r("li",{},r("details",{open:f.open||void 0},[r("summary",{},Q(f)),r("ul",{},M(()=>L(f.children)||[],o))])):r("li",{},r("a",{href:f.href,onclick:f.onclick?(u)=>{if(!f.href)u.preventDefault();f.onclick(u)}:null},Q(f)));return r("ul",{class:e("menu",t.class)},M(()=>L(n)||[],o))},On=(t)=>{let n=null;G(()=>{let f=L(t.open);if(!n)return;f?n.showModal():n.close()});let o=()=>A(t.open)&&t.open(!1);return r("dialog",{...t,ref:(f)=>n=f,class:e("modal",t.class),onclose:o,oncancel:o},[r("div",{class:"modal-box"},[t.title&&r("h3",{class:"text-lg font-bold"},t.title),t.children,r("div",{class:"modal-action"},[t.actions||Ct({class:"btn",onclick:o},"Cerrar")])]),r("form",{method:"dialog",class:"modal-backdrop"},[r("button",{},"close")])])},Xn=(t,n)=>r("div",{...t,class:e("navbar",t.class)},n),zn=(t)=>r("progress",{...t,class:e("progress",t.class)}),Sn=(t,n)=>r("div",{...t,class:e("radial-progress",t.class),style:`--value:${t.value??0};${t.style??""}`,role:"progressbar","aria-valuenow":t.value??0},n??`${t.value??0}%`),Bn=(t)=>r("input",{...t,type:"radio",class:e("radio",t.class)}),Pn=(t)=>r("input",{...t,type:"range",class:e("range",t.class)}),Qn=(t,n)=>r("div",{...t,class:"rating"},n),Mn=(t)=>[...Array(t.count)].map((n,o)=>r("input",{class:e("mask",t.class),name:t.name,type:"radio",checked:()=>L(t.value)===o,onchange:()=>A(t.value)?t.value(o):t.onchange?.(o)})),Zn=(t,n)=>{if(n!==void 0)return r("select",{class:e("select",t.class),...t},n);let{label:o,float:f,placeholder:u,placeholderDisabled:_=!0,value:l,left:a,right:s,hint:i,items:y,keyFn:N,...d}=t,C=()=>{let w=L(y)||[];return[...u?[{disabled:_,label:u,value:""}]:[],...w]};return r("label",{class:f?"floating-label":""},[f?r("span",{},o):null,r("label",{class:e("select",d.class)},[!f&&o?r("span",{class:"label"},o):null,a??null,r("select",{value:()=>L(l),onchange:(w)=>A(l)?l(w.target.value):d.onchange?.(w)},M(C,(w)=>{let E=Q(w,w.value!==void 0?"value":void 0),J=Q(w,"label");return r("option",{value:E,disabled:w.disabled||void 0},J)})),s??null]),i?r("div",{class:"validator-hint"},i):null])},Gn=(t)=>r("div",{...t,class:e("skeleton",t.class)}),qn=(t)=>r("span",{...t,class:e("skeleton skeleton-text",t.class)}),Un=(t,n)=>r("div",{...t,class:e("stack",t.class)},n),Yn=(t,n)=>r("div",{...t,class:e("stats shadow",t.class)},n),In=(t)=>r("div",{...t,class:e("stat",t.class)},[t.title?r("div",{class:"stat-title"},t.title):null,t.value?r("div",{class:"stat-value"},t.value):null,t.desc?r("div",{class:"stat-desc"},t.desc):null]),gn=(t,n)=>r("ul",{...t,class:e("steps",t.class)},n),Vn=(t,n)=>r("li",{...t,class:e("step",t.class),"data-content":t.dataContent},n),Tt=(t,n)=>r("label",{...t,class:e("swap",t.class)},n),Wt=(t)=>r("input",{type:"checkbox",checked:()=>L(t.value),onchange:(n)=>A(t.value)&&t.value(n.target.checked),class:t.class}),$t=(t,n)=>r("div",{...t,class:e("swap-on",t.class)},n),Jt=(t,n)=>r("div",{...t,class:e("swap-off",t.class)},n),Hn=(t,n)=>r("table",{...t,class:e("table",t.class)},n),xn=({items:t,columns:n=[],header:o=!0})=>{let f=o!==!1&&n.some((_)=>_.label)?r("thead",{},r("tr",{},n.map((_)=>r("th",{class:_.class},_.label)))):null,u=r("tbody",{},()=>{return(L(t)||[]).map((l,a)=>r("tr",{},n.map((s)=>{let i=s.render?s.render(l,a):l[s.key];return r("td",{class:s.class},i)})))});return[f,u].filter(Boolean)},Dn=(t,n)=>{if(!t.items){let{class:i,...y}=t;return r("div",{...y,class:e("tabs",i)},n)}let{items:o,activeIndex:f,onClose:u,class:_,...l}=t,a=(i)=>A(i)?i():i,s=u||(A(o)?(i,y)=>{let d=a(o).filter((C,w)=>w!==i);if(o(d),f()>=d.length)f(Math.max(0,d.length-1))}:null);return r("div",{...l,class:e("tabs",_)},()=>{return(a(o)||[]).flatMap((y,N)=>{let d=()=>f()===N,C=r("button",{class:()=>`tab ${d()?"tab-active":""} ${y.class||""}`,onclick:(E)=>{E.preventDefault(),f(N),y.onclick?.(E)}},[Q(y),y.closable?r("span",{class:"ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",onclick:(E)=>{E.stopPropagation(),s?.(N,y)}},r("span",{class:"icon-[lucide--x] w-3 h-3"})):null]),w=r("div",{class:"tab-content bg-base-100 border-base-300 p-6",style:()=>`display: ${d()?"block":"none"};`},A(y.content)?y.content():y.content);return[C,w]})})},mn=(t)=>r("textarea",{...t,class:e("textarea",t.class)}),Fn=(t,n)=>r("span",{...t,class:e("text-rotate",t.class)},n),Rn=(t,n)=>r("ul",{...t,class:e("timeline",t.class)},n),cn=(t,n="alert-success",o=3500)=>{let f=document.getElementById("sigpro-toast-container");if(!f)f=r("div",{id:"sigpro-toast-container",class:"fixed top-0 right-0 z-[9999] p-4 flex flex-col items-end gap-2 pointer-events-none"}),document.body.appendChild(f);let u=r("div",{style:"display: contents"});f.appendChild(u);let _,l,a,i=at(()=>{let y=k(!1),N=k(!1);_=()=>{if(N())return;clearTimeout(l),clearTimeout(a),N(!0),setTimeout(()=>{if(i.destroy(),u.remove(),!f.hasChildNodes())f.remove()},300)},a=setTimeout(()=>y(!0),0);let d=typeof t==="function"?L(t):t,C=typeof d==="string"?r("span",{},d):d;return r("div",{class:()=>{let w=`alert alert-soft ${n} shadow-lg transition-all duration-300 inline-flex w-auto whitespace-nowrap pointer-events-auto`;if(N())return`${w} translate-x-full opacity-0`;if(y())return`${w} translate-x-0 opacity-100`;return`${w} translate-x-10 opacity-0`}},[C,r("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:_},r("span",{class:"icon-[lucide--x]"}))])},u);if(o>0)l=setTimeout(_,o);return _},vn=(t)=>r("input",{...t,type:"checkbox",class:e("toggle",t.class)}),hn=(t,n)=>r("div",{...t,class:e("tooltip",t.class),"data-tip":t.tip},n);var st={};nt(st,{Editor:()=>pn});var pn=(t)=>{let{value:n,class:o}=t,f=null,u=null,_=k(!1),l=k(""),a=k(0),s=k(0),i=k(!1),y=["\uD83D\uDE00","\uD83D\uDE0A","\uD83D\uDE09","\uD83E\uDDD0","\uD83D\uDE2E","\uD83E\uDD14","\uD83D\uDE05","\uD83D\uDE02","\uD83D\uDE0D","\uD83D\uDE18","\uD83E\uDD70","\uD83D\uDC4D","\uD83D\uDC4E","\uD83D\uDC4C","\uD83E\uDD1D","\uD83E\uDD1E","\uD83D\uDC4B","\uD83D\uDC4F","\uD83D\uDE4C","\uD83D\uDE4F","\uD83D\uDCAA","☝️","\uD83D\uDC47","\uD83D\uDC48","\uD83D\uDC49","\uD83D\uDD95","✅","⚠️","\uD83D\uDE80","\uD83D\uDCE2","✉️","❤️"],N=()=>{let b=window.getSelection();if(b.getRangeAt&&b.rangeCount)u=b.getRangeAt(0)},d=()=>{if(u){let b=window.getSelection();b.removeAllRanges(),b.addRange(u)}},C=()=>{if(s(s()+1),f)a(f.innerText.length)},w=()=>{if(!f)return;let b=f.innerHTML;if(A(n))n(b);else t.onchange?.(b);C()},E=(b,j=null)=>{if(!f)return;if(f.focus(),u)d();document.execCommand(b,!1,j),u=null,w()},J=(b)=>{let j=document.createElement("div");j.style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;";let T=document.createElement("img");T.src=b,T.style="max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;",j.onclick=()=>document.body.removeChild(j),j.appendChild(T),document.body.appendChild(j)},B=(b)=>{if(!b)return;let j=new FileReader;j.onload=(T)=>{if(b.type.startsWith("image/")){let $=`
 `;E("insertHTML",$)}else{let $=`${b.name} `;E("insertHTML",$)}},j.readAsDataURL(b)},O=(b,j=null)=>{if(s(),!f||_())return!1;try{if(b==="formatBlock"){let T=window.getSelection().getRangeAt(0).commonAncestorContainer;while(T&&T!==f){if(T.nodeType===1&&T.tagName===j)return!0;T=T.parentNode}return!1}return document.queryCommandState(b)}catch(T){return!1}},c=r("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20"},[r("div",{class:"flex flex-wrap gap-1 flex-1 items-center"},[r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("bold")?"btn-active bg-primary/20":""}`,onclick:()=>E("bold")},r("span",{class:"icon-[lucide--bold]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("italic")?"btn-active bg-primary/20":""}`,onclick:()=>E("italic")},r("span",{class:"icon-[lucide--italic]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("underline")?"btn-active bg-primary/20":""}`,onclick:()=>E("underline")},r("span",{class:"icon-[lucide--underline]"})),r("input",{type:"color",class:"w-5 h-5 p-0 border-0 bg-transparent cursor-pointer",oninput:(b)=>E("foreColor",b.target.value)}),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyLeft")},r("span",{class:"icon-[lucide--align-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyCenter")},r("span",{class:"icon-[lucide--align-center]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyRight")},r("span",{class:"icon-[lucide--align-right]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertUnorderedList")},r("span",{class:"icon-[lucide--list]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertOrderedList")},r("span",{class:"icon-[lucide--list-ordered]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("outdent")},r("span",{class:"icon-[lucide--indent-decrease]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("indent")},r("span",{class:"icon-[lucide--indent-increase]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${O("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>E("formatBlock",O("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},r("span",{class:"icon-[lucide--quote]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let b=window.prompt("URL:");if(b)E("createLink",b)}},r("span",{class:"icon-[lucide--link]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let b=document.createElement("input");b.type="file",b.onchange=(j)=>B(j.target.files[0]),b.click()}},r("span",{class:"icon-[lucide--paperclip]"})),r("div",{class:"relative"},[r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:(b)=>{b.stopPropagation(),N(),i(!i())}},r("span",{class:"icon-[lucide--smile]"})),r("div",{class:"absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1",style:()=>i()?"display:flex":"display:none"},y.map((b)=>r("span",{class:"cursor-pointer hover:bg-base-200 p-1 rounded text-lg",onclick:(j)=>{j.stopPropagation(),E("insertText",b),i(!1)}},b)))]),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("undo")},r("span",{class:"icon-[lucide--undo-2]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("redo")},r("span",{class:"icon-[lucide--redo-2]"}))]),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${_()?"btn-active":""}`,onclick:()=>{if(!_())l(f?.innerHTML||"");else if(f)f.innerHTML=l(),w();_(!_())}},r("span",{class:"icon-[lucide--code-2]"}))]);if(typeof document<"u"&&!document.getElementById("editor-styles")){let b=document.createElement("style");b.id="editor-styles",b.textContent=` +(()=>{var{defineProperty:yt,getOwnPropertyNames:ie,getOwnPropertyDescriptor:ue}=Object,ae=Object.prototype.hasOwnProperty;function ce(t){return this[t]}var de=(t)=>{var n=(Bt??=new WeakMap).get(t),o;if(n)return n;if(n=yt({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function"){for(var s of ie(t))if(!ae.call(n,s))yt(n,s,{get:ce.bind(t,s),enumerable:!(o=ue(t,s))||o.enumerable})}return Bt.set(t,n),n},Bt;var _e=(t)=>t;function we(t,n){this[t]=_e.bind(null,n)}var Et=(t,n)=>{for(var o in n)yt(t,o,{get:n[o],enumerable:!0,configurable:!0,set:we.bind(n,o)})};var Xe={};Et(Xe,{Utils:()=>se,Tooltip:()=>pn,Toggle:()=>hn,Toast:()=>vn,Timeline:()=>Fn,Textrotate:()=>Hn,Textarea:()=>Dn,Tabs:()=>qn,TableItems:()=>Yn,Table:()=>Rn,SwapToggle:()=>gt,SwapOn:()=>$t,SwapOff:()=>Kt,Swap:()=>Xt,Steps:()=>Vn,Step:()=>xn,Stats:()=>In,Stat:()=>Zn,Stack:()=>Qn,SkeletonText:()=>Gn,Skeleton:()=>zn,Select:()=>Jn,RatingItems:()=>Bn,Rating:()=>Un,Range:()=>Mn,Radio:()=>Kn,Radial:()=>$n,Progress:()=>gn,Navbar:()=>Xn,Modal:()=>Pn,Menu:()=>Wn,Loading:()=>jn,ListRows:()=>kn,List:()=>Tn,Kbd:()=>mn,Input:()=>Pt,Indicator:()=>On,Icon:()=>p,Fileinput:()=>Ln,Fieldset:()=>An,Fab:()=>Cn,Editor:()=>te,DropdownContent:()=>nt,DropdownButton:()=>Wt,Dropdown:()=>tt,DrawerToggle:()=>yn,DrawerSide:()=>Nn,DrawerOverlay:()=>bn,DrawerContent:()=>En,Drawer:()=>wn,Divider:()=>Sn,Datepicker:()=>_n,Components:()=>re,Colorpicker:()=>dn,ColorPalette:()=>jt,Checkbox:()=>cn,ChatImage:()=>an,ChatHeader:()=>un,ChatFooter:()=>ln,ChatBubble:()=>fn,Chat:()=>sn,CarouselItem:()=>rn,Carousel:()=>on,CardTitle:()=>tn,CardBody:()=>nn,CardActions:()=>en,Card:()=>pt,Calendar:()=>kt,Button:()=>Tt,Badge:()=>ht,Autocomplete:()=>vt,Alert:()=>Ft,Accordion:()=>Ht});var g=(t)=>typeof t==="function",St=(t)=>t&&typeof t==="object",V=Array.isArray,K=typeof document<"u"?document:null,Jt=(t)=>t?._isRuntime?t.container:t instanceof Node?t:K.createTextNode(t==null?"":String(t)),m=null,P=null,R=!1,ot=0,rt=new Set,zt=new WeakMap,Nt=Symbol("iter"),bt=new WeakMap,ye="http://www.w3.org/2000/svg",Gt="http://www.w3.org/1999/xlink",Ee=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),et=null;var G=(t)=>{if(!t||t._disposed)return;t._disposed=!0;let n=[t];while(n.length){let o=n.pop();if(o._cleanups)o._cleanups.forEach((s)=>s()),o._cleanups.clear();if(o._children)o._children.forEach((s)=>n.push(s)),o._children.clear();if(o._deps)o._deps.forEach((s)=>s.delete(o)),o._deps.clear()}},Y=(t)=>{if(P)(P._cleanups||=new Set).add(t)},Ne=(t)=>{let n=m;m=null;try{return t()}finally{m=n}},q=(t,n=!1)=>{let o=()=>{if(o._disposed)return;if(o._deps)o._deps.forEach((i)=>i.delete(o));if(o._cleanups)o._cleanups.forEach((i)=>i()),o._cleanups.clear();let s=m,r=P;m=P=o;try{return o._result=t()}catch(i){console.error("[SigPro]",i)}finally{m=s,P=r}};if(o._deps=o._cleanups=o._children=null,o._disposed=!1,o._isComputed=n,o._depth=m?m._depth+1:0,o._mounts=[],o._parent=P,P)(P._children||=new Set).add(o);return o},Qt=()=>{if(R)return;R=!0;let t=Array.from(rt).sort((n,o)=>n._depth-o._depth);rt.clear();for(let n of t)if(!n._disposed)n();R=!1},It=(t)=>{ot++;try{return t()}finally{if(ot--,ot===0&&rt.size>0&&!R)Qt()}},X=(t,n=!1)=>{if(!n&&m&&!m._disposed)t.add(m),(m._deps||=new Set).add(t);else if(n&&t.size>0){let o=!1;for(let s of t){if(s===m||s._disposed)continue;if(s._isComputed){if(s._dirty=!0,s._subs)X(s._subs,!0)}else rt.add(s),o=!0}if(o&&!R&&ot===0)queueMicrotask(Qt)}},C=(t,n=null)=>{let o=new Set;if(g(t)){let s,r=()=>{if(r._dirty){let i=m;m=r;try{let f=t();if(!Object.is(s,f))s=f,X(o,!0)}finally{m=i}r._dirty=!1}return X(o),s};return r._isComputed=!0,r._subs=o,r._dirty=!0,r._deps=null,r._disposed=!1,r}if(n)try{t=JSON.parse(localStorage.getItem(n))??t}catch(s){}return(...s)=>{if(s.length){let r=g(s[0])?s[0](t):s[0];if(!Object.is(t,r)){if(t=r,n)localStorage.setItem(n,JSON.stringify(t));X(o,!0)}}return X(o),t}},Ct=(t)=>{if(!St(t))return t;let n=zt.get(t);if(n)return n;let o=new Map,s=(i)=>{let f=o.get(i);if(!f)o.set(i,f=new Set);return f},r=new Proxy(t,{get(i,f,u){if(typeof f!=="symbol")X(s(f));return Ct(Reflect.get(i,f,u))},set(i,f,u,l){let c=Reflect.has(i,f),a=Reflect.get(i,f,l),d=Reflect.set(i,f,u,l);if(d&&!Object.is(a,u)){if(X(s(f),!0),!c)X(s(Nt),!0)}return d},deleteProperty(i,f){let u=Reflect.deleteProperty(i,f);if(u)X(s(f),!0),X(s(Nt),!0);return u},ownKeys(i){return X(s(Nt)),Reflect.ownKeys(i)}});return zt.set(t,r),r},z=(t,n)=>{if(n===void 0){let s=q(t);return s(),()=>G(s)}let o=q(()=>{let s=Array.isArray(t)?t.map((r)=>r()):t();Ne(()=>n(s))});return o(),()=>G(o)},At=(t)=>{if(!t)return;if(t._cleanups)t._cleanups.forEach((n)=>n()),t._cleanups.clear();if(t._ownerEffect)G(t._ownerEffect);if(t.childNodes)t.childNodes.forEach((n)=>At(n))},e=(t,n={},o=[])=>{if(n instanceof Node||V(n)||!St(n))o=n,n={};if(g(t)){let f=q(()=>{let a=t(n,{children:o,emit:(d,...N)=>n[`on${d[0].toUpperCase()}${d.slice(1)}`]?.(...N)});return f._result=a,a});f();let u=f._result;if(u==null)return null;let l=u instanceof Node||V(u)&&u.every((a)=>a instanceof Node)?u:K.createTextNode(String(u)),c=(a)=>{if(St(a)&&!a._isRuntime)a._mounts=f._mounts||[],a._cleanups=f._cleanups||new Set,a._ownerEffect=f};return V(l)?l.forEach(c):c(l),l}let s=Ee.has(t),r=s?K.createElementNS(ye,t):K.createElement(t);r._cleanups=new Set;for(let f of Object.keys(n)){let u=n[f];if(f==="ref"){g(u)?u(r):u.current=r;continue}let l=et?et(f,u):u;if(s&&f.startsWith("xlink:")){l==null?r.removeAttributeNS(Gt,f.slice(6)):r.setAttributeNS(Gt,f.slice(6),l);continue}if(f.startsWith("on")){let c=f.slice(2).toLowerCase();r.addEventListener(c,l);let a=()=>r.removeEventListener(c,l);r._cleanups.add(a),Y(a)}else if(g(l)){let c=q(()=>{let a=l(),d=et?et(f,a):a;if(f==="class")r.className=d||"";else if(d==null)r.removeAttribute(f);else if(f in r&&!s)r[f]=d;else r.setAttribute(f,d===!0?"":d)});if(c(),r._cleanups.add(()=>G(c)),Y(()=>G(c)),/^(INPUT|TEXTAREA|SELECT)$/.test(r.tagName)&&(f==="value"||f==="checked")){let a=f==="checked"?"change":"input";r.addEventListener(a,(d)=>l(d.target[f]))}}else if(l!=null)if(f in r&&!s)r[f]=l;else r.setAttribute(f,l===!0?"":l)}let i=(f)=>{if(V(f))return f.forEach(i);if(g(f)){let u=K.createTextNode("");r.appendChild(u);let l=[],c=q(()=>{let a=f(),d=(V(a)?a:[a]).map(Jt);l.forEach((b)=>{if(b._isRuntime)b.destroy();else At(b);if(b.parentNode)b.remove()});let N=u;for(let b=d.length-1;b>=0;b--){let w=d[b];if(w.parentNode!==N.parentNode)N.parentNode?.insertBefore(w,N);if(w._mounts)w._mounts.forEach((E)=>E());N=w}l=d});c(),r._cleanups.add(()=>G(c)),Y(()=>G(c))}else{let u=Jt(f);if(r.appendChild(u),u._mounts)u._mounts.forEach((l)=>l())}};return i(o),r},st=(t)=>{let n=new Set,o=P,s=m,r=K.createElement("div");r.style.display="contents",r.setAttribute("role","presentation"),P={_cleanups:n},m=null;let i=(f)=>{if(!f)return;if(f._isRuntime)n.add(f.destroy),r.appendChild(f.container);else if(V(f))f.forEach(i);else r.appendChild(f instanceof Node?f:K.createTextNode(String(f==null?"":f)))};try{i(t({onCleanup:(f)=>n.add(f)}))}finally{P=o,m=s}return{_isRuntime:!0,container:r,destroy:()=>{n.forEach((f)=>f()),At(r),r.remove()}}},ft=(t,n,o=null)=>{let s=K.createTextNode(""),r=e("div",{style:"display:contents"},[s]),i=null;return z(()=>!!(g(t)?t():t),(f)=>{if(i)i.destroy(),i=null;let u=f?n:o;if(u)i=st(()=>g(u)?u():u),r.insertBefore(i.container,s)}),Y(()=>i?.destroy()),r},B=(t,n,o)=>{let s=K.createTextNode(""),r=e("div",{style:"display:contents"},[s]),i=new Map;return z(()=>(g(t)?t():t)||[],(f)=>{let u=new Map,l=[],c=f||[];for(let d=0;dn(N,d));else i.delete(b);u.set(b,w),l.push(w)}i.forEach((d)=>d.destroy());let a=s;for(let d=l.length-1;d>=0;d--){let N=l[d].container;if(N.nextSibling!==a)r.insertBefore(N,a);a=N}i=u}),r},D=(t)=>{let n=()=>window.location.hash.slice(1)||"/",o=C(n()),s=()=>o(n());window.addEventListener("hashchange",s),Y(()=>window.removeEventListener("hashchange",s));let r=e("div",{class:"router-hook"}),i=null;return z([o],()=>{let f=o(),u=t.find((l)=>{let c=l.path.split("/").filter(Boolean),a=f.split("/").filter(Boolean);return c.length===a.length&&c.every((d,N)=>d[0]===":"||d===a[N])})||t.find((l)=>l.path==="*");if(u){i?.destroy();let l={};u.path.split("/").filter(Boolean).forEach((c,a)=>{if(c[0]===":")l[c.slice(1)]=f.split("/").filter(Boolean)[a]}),D.params(l),i=st(()=>g(u.component)?u.component(l):u.component),r.replaceChildren(i.container)}}),r};D.params=C({});D.to=(t)=>window.location.hash=t.replace(/^#?\/?/,"#/");D.back=()=>window.history.back();D.path=()=>window.location.hash.replace(/^#/,"")||"/";var lt=(t,n)=>{let o=typeof n==="string"?K.querySelector(n):n;if(!o)return;if(bt.has(o))bt.get(o).destroy();let s=st(g(t)?t:()=>t);return o.replaceChildren(s.container),bt.set(o,s),s};var Q=(t)=>typeof t==="function",Zt=(t)=>t&&typeof t==="object",x=Array.isArray,I=typeof document<"u"?document:null,Vt=(t)=>t?._isRuntime?t.container:t instanceof Node?t:I.createTextNode(t==null?"":String(t)),T=null,$=null,it=!1,be=0,Lt=new Set;var Be=Symbol("iter");var Se="http://www.w3.org/2000/svg",xt="http://www.w3.org/1999/xlink",Ce=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),H=null,Rt=(t)=>{H=t},Z=(t)=>{if(!t||t._disposed)return;t._disposed=!0;let n=[t];while(n.length){let o=n.pop();if(o._cleanups)o._cleanups.forEach((s)=>s()),o._cleanups.clear();if(o._children)o._children.forEach((s)=>n.push(s)),o._children.clear();if(o._deps)o._deps.forEach((s)=>s.delete(o)),o._deps.clear()}},ut=(t)=>{if($)($._cleanups||=new Set).add(t)},Ae=(t)=>{let n=T;T=null;try{return t()}finally{T=n}},v=(t,n=!1)=>{let o=()=>{if(o._disposed)return;if(o._deps)o._deps.forEach((i)=>i.delete(o));if(o._cleanups)o._cleanups.forEach((i)=>i()),o._cleanups.clear();let s=T,r=$;T=$=o;try{return o._result=t()}catch(i){console.error("[SigPro]",i)}finally{T=s,$=r}};if(o._deps=o._cleanups=o._children=null,o._disposed=!1,o._isComputed=n,o._depth=T?T._depth+1:0,o._mounts=[],o._parent=$,$)($._children||=new Set).add(o);return o},Le=()=>{if(it)return;it=!0;let t=Array.from(Lt).sort((n,o)=>n._depth-o._depth);Lt.clear();for(let n of t)if(!n._disposed)n();it=!1};var F=(t,n=!1)=>{if(!n&&T&&!T._disposed)t.add(T),(T._deps||=new Set).add(t);else if(n&&t.size>0){let o=!1;for(let s of t){if(s===T||s._disposed)continue;if(s._isComputed){if(s._dirty=!0,s._subs)F(s._subs,!0)}else Lt.add(s),o=!0}if(o&&!it&&be===0)queueMicrotask(Le)}},Yt=(t,n=null)=>{let o=new Set;if(Q(t)){let s,r=()=>{if(r._dirty){let i=T;T=r;try{let f=t();if(!Object.is(s,f))s=f,F(o,!0)}finally{T=i}r._dirty=!1}return F(o),s};return r._isComputed=!0,r._subs=o,r._dirty=!0,r._deps=null,r._disposed=!1,r}if(n)try{t=JSON.parse(localStorage.getItem(n))??t}catch(s){}return(...s)=>{if(s.length){let r=Q(s[0])?s[0](t):s[0];if(!Object.is(t,r)){if(t=r,n)localStorage.setItem(n,JSON.stringify(t));F(o,!0)}}return F(o),t}};var Oe=(t,n)=>{if(n===void 0){let s=v(t);return s(),()=>Z(s)}let o=v(()=>{let s=Array.isArray(t)?t.map((r)=>r()):t();Ae(()=>n(s))});return o(),()=>Z(o)},Ot=(t)=>{if(!t)return;if(t._cleanups)t._cleanups.forEach((n)=>n()),t._cleanups.clear();if(t._ownerEffect)Z(t._ownerEffect);if(t.childNodes)t.childNodes.forEach((n)=>Ot(n))},mt=(t,n={},o=[])=>{if(n instanceof Node||x(n)||!Zt(n))o=n,n={};if(Q(t)){let f=v(()=>{let a=t(n,{children:o,emit:(d,...N)=>n[`on${d[0].toUpperCase()}${d.slice(1)}`]?.(...N)});return f._result=a,a});f();let u=f._result;if(u==null)return null;let l=u instanceof Node||x(u)&&u.every((a)=>a instanceof Node)?u:I.createTextNode(String(u)),c=(a)=>{if(Zt(a)&&!a._isRuntime)a._mounts=f._mounts||[],a._cleanups=f._cleanups||new Set,a._ownerEffect=f};return x(l)?l.forEach(c):c(l),l}let s=Ce.has(t),r=s?I.createElementNS(Se,t):I.createElement(t);r._cleanups=new Set;for(let f of Object.keys(n)){let u=n[f];if(f==="ref"){Q(u)?u(r):u.current=r;continue}let l=H?H(f,u):u;if(s&&f.startsWith("xlink:")){l==null?r.removeAttributeNS(xt,f.slice(6)):r.setAttributeNS(xt,f.slice(6),l);continue}if(f.startsWith("on")){let c=f.slice(2).toLowerCase();r.addEventListener(c,l);let a=()=>r.removeEventListener(c,l);r._cleanups.add(a),ut(a)}else if(Q(l)){let c=v(()=>{let a=l(),d=H?H(f,a):a;if(f==="class")r.className=d||"";else if(d==null)r.removeAttribute(f);else if(f in r&&!s)r[f]=d;else r.setAttribute(f,d===!0?"":d)});if(c(),r._cleanups.add(()=>Z(c)),ut(()=>Z(c)),/^(INPUT|TEXTAREA|SELECT)$/.test(r.tagName)&&(f==="value"||f==="checked")){let a=f==="checked"?"change":"input";r.addEventListener(a,(d)=>l(d.target[f]))}}else if(l!=null)if(f in r&&!s)r[f]=l;else r.setAttribute(f,l===!0?"":l)}let i=(f)=>{if(x(f))return f.forEach(i);if(Q(f)){let u=I.createTextNode("");r.appendChild(u);let l=[],c=v(()=>{let a=f(),d=(x(a)?a:[a]).map(Vt);l.forEach((b)=>{if(b._isRuntime)b.destroy();else Ot(b);if(b.parentNode)b.remove()});let N=u;for(let b=d.length-1;b>=0;b--){let w=d[b];if(w.parentNode!==N.parentNode)N.parentNode?.insertBefore(w,N);if(w._mounts)w._mounts.forEach((E)=>E());N=w}l=d});c(),r._cleanups.add(()=>Z(c)),ut(()=>Z(c))}else{let u=Vt(f);if(r.appendChild(u),u._mounts)u._mounts.forEach((l)=>l())}};return i(o),r},me=(t)=>{let n=new Set,o=$,s=T,r=I.createElement("div");r.style.display="contents",r.setAttribute("role","presentation"),$={_cleanups:n},T=null;let i=(f)=>{if(!f)return;if(f._isRuntime)n.add(f.destroy),r.appendChild(f.container);else if(x(f))f.forEach(i);else r.appendChild(f instanceof Node?f:I.createTextNode(String(f==null?"":f)))};try{i(t({onCleanup:(f)=>n.add(f)}))}finally{$=o,T=s}return{_isRuntime:!0,container:r,destroy:()=>{n.forEach((f)=>f()),Ot(r),r.remove()}}};var h=(t)=>{let n=()=>window.location.hash.slice(1)||"/",o=Yt(n()),s=()=>o(n());window.addEventListener("hashchange",s),ut(()=>window.removeEventListener("hashchange",s));let r=mt("div",{class:"router-hook"}),i=null;return Oe([o],()=>{let f=o(),u=t.find((l)=>{let c=l.path.split("/").filter(Boolean),a=f.split("/").filter(Boolean);return c.length===a.length&&c.every((d,N)=>d[0]===":"||d===a[N])})||t.find((l)=>l.path==="*");if(u){i?.destroy();let l={};u.path.split("/").filter(Boolean).forEach((c,a)=>{if(c[0]===":")l[c.slice(1)]=f.split("/").filter(Boolean)[a]}),h.params(l),i=me(()=>Q(u.component)?u.component(l):u.component),r.replaceChildren(i.container)}}),r};h.params=Yt({});h.to=(t)=>window.location.hash=t.replace(/^#?\/?/,"#/");h.back=()=>window.history.back();h.path=()=>window.location.hash.replace(/^#/,"")||"/";var Te=/^\s*(javascript|data|vbscript):/i,ke=new Set(["src","href","formaction","action","background","code","archive"]),je=(t)=>ke.has(t)||t.startsWith("on"),We=(t,n)=>{if(n==null||n===!1)return null;if(je(t)){let o=String(n);if(Te.test(o))return console.warn(`[SigPro XSS] Locked ${t}`),"#"}return n};Rt(We);if(typeof window<"u")"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((t)=>{window[t]=(n,o)=>mt(t,n,o)}),console.log("SigPro tags ready");var Mt={};Et(Mt,{Tooltip:()=>pn,Toggle:()=>hn,Toast:()=>vn,Timeline:()=>Fn,Textrotate:()=>Hn,Textarea:()=>Dn,Tabs:()=>qn,TableItems:()=>Yn,Table:()=>Rn,SwapToggle:()=>gt,SwapOn:()=>$t,SwapOff:()=>Kt,Swap:()=>Xt,Steps:()=>Vn,Step:()=>xn,Stats:()=>In,Stat:()=>Zn,Stack:()=>Qn,SkeletonText:()=>Gn,Skeleton:()=>zn,Select:()=>Jn,RatingItems:()=>Bn,Rating:()=>Un,Range:()=>Mn,Radio:()=>Kn,Radial:()=>$n,Progress:()=>gn,Navbar:()=>Xn,Modal:()=>Pn,Menu:()=>Wn,Loading:()=>jn,ListRows:()=>kn,List:()=>Tn,Kbd:()=>mn,Input:()=>Pt,Indicator:()=>On,Icon:()=>p,Fileinput:()=>Ln,Fieldset:()=>An,Fab:()=>Cn,DropdownContent:()=>nt,DropdownButton:()=>Wt,Dropdown:()=>tt,DrawerToggle:()=>yn,DrawerSide:()=>Nn,DrawerOverlay:()=>bn,DrawerContent:()=>En,Drawer:()=>wn,Divider:()=>Sn,Datepicker:()=>_n,Colorpicker:()=>dn,ColorPalette:()=>jt,Checkbox:()=>cn,ChatImage:()=>an,ChatHeader:()=>un,ChatFooter:()=>ln,ChatBubble:()=>fn,Chat:()=>sn,CarouselItem:()=>rn,Carousel:()=>on,CardTitle:()=>tn,CardBody:()=>nn,CardActions:()=>en,Card:()=>pt,Calendar:()=>kt,Button:()=>Tt,Badge:()=>ht,Autocomplete:()=>vt,Alert:()=>Ft,Accordion:()=>Ht});var A=(t)=>typeof t==="function"?t():t,J=(t,n="label")=>t&&typeof t==="object"?t[n]:t,_=(...t)=>t.filter(Boolean).join(" ").trim(),L=(t)=>typeof t==="function",qt=(t,n,o="label",s=String(n).toLowerCase())=>!n?A(t):A(t).filter((r)=>String(r&&typeof r==="object"?r[o]:r).toLowerCase().includes(s)),Dt=(t)=>`${t}-${Math.random().toString(36).slice(2,9)}`,at=()=>document.activeElement?.blur();var Ht=(t)=>{let n=t.name||Dt("acc");return B(t.items,(o)=>{return e("div",{class:_("collapse",t.class)},[e("input",{type:"radio",name:n,checked:o.open||void 0}),o.title?e("div",{class:_("collapse-title",`${o.classTitle??" font-semibold"}`)},o.title):null,o.content?e("div",{class:_("collapse-content text-sm",`${o.classContent??" font-semibold"}`)},o.content):null])})},Ft=(t,n)=>e("div",{...t,class:_("alert",t.class)},n),vt=({items:t,value:n,onselect:o,placeholder:s="...",...r})=>{let i=C(A(n)||""),f=C(()=>qt(t,i())),u=(l)=>{let c=J(l),a=typeof l==="string"?l:l.value;if(i(c),L(n))n(a);o?.(l),at()};return tt({class:"w-full"},[e("div",{tabindex:"0",role:"button",class:"w-full"},Pt({...r,placeholder:s,value:i,left:e("span",{class:"icon-[lucide--search]"}),oninput:(l)=>{if(i(l.target.value),L(n))n(l.target.value)}})),nt({class:"p-2 bg-base-100 rounded-box shadow-xl w-full max-h-60 overflow-y-auto border border-base-300 z-50"},e("ul",{class:"menu flex-col flex-nowrap w-full p-0"},[B(f,(l)=>e("li",{},[e("a",{onmousedown:(c)=>c.preventDefault(),onclick:()=>u(l)},J(l))]),(l)=>J(l)),()=>f().length===0?e("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null]))])},ht=(t,n)=>e("span",{...t,class:_("badge",t.class)},n),Tt=(t,n)=>e("button",{...t,class:_("btn",t.class)},n),kt=(t)=>{let n=C(new Date),o=C(null),s=C(0),r=C(0),i=new Date,f=`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}-${String(i.getDate()).padStart(2,"0")}`,u=(w)=>`${w.getFullYear()}-${String(w.getMonth()+1).padStart(2,"0")}-${String(w.getDate()).padStart(2,"0")}`,l=()=>A(t.range)===!0,c=()=>A(t.value),a=(w)=>{let E=u(w),j=c();if(l())if(!j?.start||j.start&&j.end)t.onChange?.({start:E,end:null,...t.hour&&{startHour:s()}});else{let M=j.start,W=E{let E=n();n(new Date(E.getFullYear(),E.getMonth()+w,1))},N=(w)=>{let E=n();n(new Date(E.getFullYear()+w,E.getMonth(),1))},b=({value:w,onChange:E})=>e("div",{class:"flex-1"},[e("div",{class:"flex gap-2 items-center"},[e("input",{type:"range",min:0,max:23,value:w,class:"range range-xs flex-1",oninput:(j)=>E(+j.target.value)}),e("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(A(w)).padStart(2,"0")+":00")])]);return e("div",{class:_("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",t.class)},[e("div",{class:"flex justify-between items-center mb-4 gap-1"},[e("div",{class:"flex gap-0.5"},[e("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(-1)},e("span",{class:"icon-[lucide--chevrons-left]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(-1)},e("span",{class:"icon-[lucide--chevron-left]"}))]),e("span",{class:"font-bold uppercase flex-1 text-center"},()=>n().toLocaleString("es-ES",{month:"short",year:"numeric"})),e("div",{class:"flex gap-0.5"},[e("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>d(1)},e("span",{class:"icon-[lucide--chevron-right]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>N(1)},e("span",{class:"icon-[lucide--chevrons-right]"}))])]),e("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>o(null)},[...["L","M","X","J","V","S","D"].map((w)=>e("div",{class:"text-[10px] opacity-40 font-bold text-center"},w)),()=>{let w=n(),E=w.getFullYear(),j=w.getMonth(),M=new Date(E,j,1).getDay(),W=M===0?6:M-1,ct=new Date(E,j+1,0).getDate(),y=[];for(let S=0;S{let U=c(),dt=o(),fe=typeof U==="string"?U.split("T")[0]===k:U?.start===k,le=U?.end===k,_t=!1;if(l()&&U?.start){let wt=U.start;if(!U.end&&dt)_t=k>wt&&k<=dt||k=dt;else if(U.end)_t=k>wt&&kl()&&o(k),onclick:()=>a(O)},S.toString()))}return y}]),t.hour?e("div",{class:"mt-3 pt-2 border-t border-base-300"},l()?e("div",{class:"flex gap-4"},[b({value:s,onChange:(w)=>s(w)}),b({value:r,onChange:(w)=>r(w)})]):b({value:s,onChange:(w)=>s(w)})):null])},pt=(t,n)=>e("div",{...t,class:_("card",t.class)},n),tn=(t,n)=>e("div",{...t,class:_("card-title",t.class)},n),nn=(t,n)=>e("div",{...t,class:_("card-body",t.class)},n),en=(t,n)=>e("div",{...t,class:_("card-actions",t.class)},n),on=(t,n)=>e("div",{...t,class:_("carousel",t.class)},n),rn=(t,n)=>e("div",{...t,class:_("carousel-item",t.class)},n),sn=(t,n)=>e("div",{...t,class:_("chat",t.class)},n),fn=(t,n)=>e("div",{...t,class:_("chat-bubble",t.class)},n),ln=(t,n)=>e("div",{...t,class:_("chat-footer",t.class)},n),un=(t,n)=>e("div",{...t,class:_("chat-header",t.class)},n),an=(t,n)=>e("div",{...t,class:_("chat-image avatar",t.class)},e("div",{class:"w-10 rounded-full"},typeof n==="string"?e("img",{src:n,alt:"avatar"}):n)),cn=(t)=>e("input",{...t,type:"checkbox",class:_("checkbox",t.class)}),dn=(t)=>{let n=()=>A(t.value)||"#000000";return tt({},[Wt({class:"btn"},[e("div",{class:"size-5 rounded-sm",style:()=>`background-color: ${n()}`}),t.label&&e("span",{},t.label)]),nt({class:"p-3 bg-base-100 rounded-box shadow-xl w-64"},jt({value:t.value,onchange:(o)=>{L(t.value)?t.value(o):t.onchange?.(o)}}))])},jt=(t)=>{let n=()=>A(t.value)||"#000000",o=["#000","#1A1A1A","#333","#4D4D4D","#666","#808080","#B3B3B3","#FFF","#450a0a","#7f1d1d","#991b1b","#b91c1c","#dc2626","#ef4444","#f87171","#fca5a5","#431407","#7c2d12","#9a3412","#c2410c","#ea580c","#f97316","#fb923c","#ffedd5","#713f12","#a16207","#ca8a04","#eab308","#facc15","#fde047","#fef08a","#fff9c4","#064e3b","#065f46","#059669","#10b981","#34d399","#4ade80","#84cc16","#d9f99d","#082f49","#075985","#0284c7","#0ea5e9","#38bdf8","#7dd3fc","#22d3ee","#cffafe","#1e1b4b","#312e81","#4338ca","#4f46e5","#6366f1","#818cf8","#a5b4fc","#e0e7ff","#2e1065","#4c1d95","#6d28d9","#7c3aed","#8b5cf6","#a855f7","#d946ef","#fae8ff"],s=(r)=>L(t.value)?t.value(r):t.onchange?.(r);return e("div",{class:"grid grid-cols-8 gap-1"},o.map((r)=>e("button",{type:"button",style:`background-color: ${r}`,class:()=>{return`size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${n().toLowerCase()===r.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>{s(r),at()}})))},_n=(t)=>{let n=C(""),o=()=>A(t.range)===!0;z(()=>{let r=A(t.value);if(!r)return n("");let i="";if(typeof r==="string")i=t.hour&&r.includes("T")?r.replace("T"," "):r;else if(r.start&&r.end){let f=t.hour&&r.startHour!=null?`${r.start} ${String(r.startHour).padStart(2,"0")}:00`:r.start,u=t.hour&&r.endHour!=null?`${r.end} ${String(r.endHour).padStart(2,"0")}:00`:r.end;i=`${f} - ${u}`}else if(r.start)i=`${t.hour&&r.startHour!=null?`${r.start} ${String(r.startHour).padStart(2,"0")}:00`:r.start}...`;n(i)});let s=(r)=>{if(L(t.value))t.value(r);else t.onChange?.(r);if(!o()||r?.end!=null)at()};return tt({class:_("w-full",t.class)},[e("label",{tabindex:"0",role:"button",class:"input input-bordered flex items-center gap-2 cursor-pointer"},[e("span",{class:"icon-[lucide--calendar] shrink-0"}),e("span",{class:()=>`grow text-left truncate ${!n()?"opacity-50":""}`},()=>n()||t.placeholder||(o()?"Seleccionar rango...":"Seleccionar fecha...")),()=>n()?e("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle -mr-2",onmousedown:(r)=>{if(r.preventDefault(),r.stopPropagation(),L(t.value))t.value(null);else t.onChange?.(null);n("")}},e("span",{class:"icon-[lucide--x] opacity-50"})):null]),nt({class:"p-0 bg-base-100 rounded-box shadow-xl"},kt({value:t.value,range:o(),hour:t.hour,onChange:s}))])},wn=(t,n)=>div({...t,class:_("drawer",t.class)},n),yn=(t)=>input({...t,type:"checkbox",class:"drawer-toggle",checked:()=>A(t.checked),onchange:(n)=>L(t.checked)&&t.checked(n.target.checked)}),En=(t,n)=>div({...t,class:_("drawer-content",t.class)},n),Nn=(t,n)=>div({...t,class:_("drawer-side",t.class)},n),bn=(t)=>label({...t,for:t.for,class:_("drawer-overlay",t.class)}),Sn=(t)=>e("div",{...t,class:_("divider",t.class)}),tt=(t,n)=>e("div",{...t,class:_("dropdown",t.class)},n),Wt=(t,n)=>e("div",{...t,tabindex:"0",role:"button",class:_("btn",t.class)},n),nt=(t,n)=>e("div",{...t,tabindex:"0",class:_("dropdown-content",t.class)},n),Cn=(t,n)=>e("div",{class:"fab"},[e("div",{tabindex:"0",role:"button",class:_("btn",t.class)},p(t.icon)),n]),An=(t,n)=>e("fieldset",{class:_("fieldset",t.class)},[e("legend",{class:"fieldset-legend"},t.label),n]),Ln=(t)=>{let n=C([]),o=C(!1),s=C(null),r=(t.max||2)*1024*1024,i=(u)=>{let l=Array.from(u);if(s(null),l.some((a)=>a.size>r)){s(`Máx ${t.max||2}MB`);return}let c=[...n(),...l];if(n(c),L(t.onselect))t.onselect(c);else if(L(t.value))t.value(c)},f=(u)=>{let l=n().filter((c,a)=>a!==u);if(n(l),L(t.onselect))t.onselect(l);else if(L(t.value))t.value(l)};return e("div",{class:_("fieldset w-full p-0",t.class)},[e("label",{class:()=>`relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${o()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(u)=>{u.preventDefault(),o(!0)},ondragleave:()=>o(!1),ondrop:(u)=>{u.preventDefault(),o(!1),i(u.dataTransfer.files)}},[e("div",{class:"flex items-center gap-3 w-full"},[e("span",{class:"icon-[lucide--upload]"}),e("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),e("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${t.max||2}MB`)]),e("input",{type:"file",multiple:!0,accept:t.accept||"*",class:"hidden",onchange:(u)=>i(u.target.files)})]),()=>s()&&e("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},s()),ft(()=>n().length>0,()=>e("ul",{class:"mt-2 space-y-1"},B(n,(u,l)=>e("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[e("div",{class:"flex items-center gap-2 truncate"},[e("span",{class:"opacity-50"},"\uD83D\uDCC4"),e("span",{class:"truncate font-medium max-w-[200px]"},u.name),e("span",{class:"text-[9px] opacity-40"},`(${(u.size/1024).toFixed(0)} KB)`)]),e("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(c)=>{c.preventDefault(),f(l)}},e("span",{class:"icon-[lucide--x]"}))]))))])},p=(t)=>e("span",{class:t.startsWith("icon-")?t:""},t.startsWith("icon-")?null:t),On=(t,n)=>e("div",{...t,class:_("indicator",t.class)},[t.value&&e("span",{class:_("indicator-item badge",t.class)},t.value),n]),Pt=(t)=>{let{label:n,icon:o,float:s,placeholder:r,value:i,left:f,right:u,rule:l,hint:c,content:a,...d}=t,N=C(!1),b=t.type==="password",w=l??null,E=()=>b?A(N)?"text":"password":t.type||"search";return e("label",{class:s?"floating-label":""},[s?e("span",{},n):null,e("label",{pattern:w,class:()=>_("input validator",t.class)},[n&&!s?e("span",{class:"label"},n):null,f??null,e("input",{...d,type:E,class:"grow",pattern:w,placeholder:r||n||" ",value:i}),u??null,b?Xt({class:"ml-2"},[gt({value:N,class:"swap-rotate"}),$t({},p("icon-[lucide--eye]")),Kt({},p("icon-[lucide--eye-off]"))]):null]),c?e("div",{class:"validator-hint"},c):null])},mn=(t,n)=>e("kbd",{...t,class:_("kbd",t.class)},n),Tn=(t,n)=>e("ul",{...t,class:_("list",t.class)},n),kn=(t)=>()=>(A(t.items)||[]).map((n,o)=>e("li",{class:_("list-row",t.class,n?.class)},typeof t.render==="function"?t.render(n,o):n)),jn=(t,n)=>e("span",{...t,class:_("loading loading-spinner",t.class)},n),Wn=(t)=>{if(t.children!==void 0)return e("ul",{class:_("menu",t.class),...t},t.children);let{items:n}=t,o=(s)=>s.children?e("li",{},e("details",{open:s.open||void 0},[e("summary",{},J(s)),e("ul",{},B(()=>A(s.children)||[],o))])):e("li",{},e("a",{href:s.href,onclick:s.onclick?(r)=>{if(!s.href)r.preventDefault();s.onclick(r)}:null},J(s)));return e("ul",{class:_("menu",t.class)},B(()=>A(n)||[],o))},Pn=(t)=>{let n=null;z(()=>{let s=A(t.open);if(!n)return;s?n.showModal():n.close()});let o=()=>L(t.open)&&t.open(!1);return e("dialog",{...t,ref:(s)=>n=s,class:_("modal",t.class),onclose:o,oncancel:o},[e("div",{class:"modal-box"},[t.title&&e("h3",{class:"text-lg font-bold"},t.title),t.children,e("div",{class:"modal-action"},[t.actions||Tt({class:"btn",onclick:o},"Cerrar")])]),e("form",{method:"dialog",class:"modal-backdrop"},[e("button",{},"close")])])},Xn=(t,n)=>e("div",{...t,class:_("navbar",t.class)},n),gn=(t)=>e("progress",{...t,class:_("progress",t.class)}),$n=(t,n)=>e("div",{...t,class:_("radial-progress",t.class),style:`--value:${t.value??0};${t.style??""}`,role:"progressbar","aria-valuenow":t.value??0},n??`${t.value??0}%`),Kn=(t)=>e("input",{...t,type:"radio",class:_("radio",t.class)}),Mn=(t)=>e("input",{...t,type:"range",class:_("range",t.class)}),Un=(t,n)=>e("div",{...t,class:"rating"},n),Bn=(t)=>[...Array(t.count)].map((n,o)=>e("input",{class:_("mask",t.class),name:t.name,type:"radio",checked:()=>A(t.value)===o,onchange:()=>L(t.value)?t.value(o):t.onchange?.(o)})),Jn=(t,n)=>{if(n!==void 0)return e("select",{class:_("select",t.class),...t},n);let{label:o,float:s,placeholder:r,placeholderDisabled:i=!0,value:f,left:u,right:l,hint:c,items:a,keyFn:d,...N}=t,b=()=>{let w=A(a)||[];return[...r?[{disabled:i,label:r,value:""}]:[],...w]};return e("label",{class:s?"floating-label":""},[s?e("span",{},o):null,e("label",{class:_("select",N.class)},[!s&&o?e("span",{class:"label"},o):null,u??null,e("select",{value:()=>A(f),onchange:(w)=>L(f)?f(w.target.value):N.onchange?.(w)},B(b,(w)=>{let E=J(w,w.value!==void 0?"value":void 0),j=J(w,"label");return e("option",{value:E,disabled:w.disabled||void 0},j)})),l??null]),c?e("div",{class:"validator-hint"},c):null])},zn=(t)=>e("div",{...t,class:_("skeleton",t.class)}),Gn=(t)=>e("span",{...t,class:_("skeleton skeleton-text",t.class)}),Qn=(t,n)=>e("div",{...t,class:_("stack",t.class)},n),In=(t,n)=>e("div",{...t,class:_("stats shadow",t.class)},n),Zn=(t)=>e("div",{...t,class:_("stat",t.class)},[t.title?e("div",{class:"stat-title"},t.title):null,t.value?e("div",{class:"stat-value"},t.value):null,t.desc?e("div",{class:"stat-desc"},t.desc):null]),Vn=(t,n)=>e("ul",{...t,class:_("steps",t.class)},n),xn=(t,n)=>e("li",{...t,class:_("step",t.class),"data-content":t.dataContent},n),Xt=(t,n)=>e("label",{...t,class:_("swap",t.class)},n),gt=(t)=>e("input",{type:"checkbox",checked:()=>A(t.value),onchange:(n)=>L(t.value)&&t.value(n.target.checked),class:t.class}),$t=(t,n)=>e("div",{...t,class:_("swap-on",t.class)},n),Kt=(t,n)=>e("div",{...t,class:_("swap-off",t.class)},n),Rn=(t,n)=>e("table",{...t,class:_("table",t.class)},n),Yn=({items:t,columns:n=[],header:o=!0})=>{let s=o!==!1&&n.some((i)=>i.label)?e("thead",{},e("tr",{},n.map((i)=>e("th",{class:i.class},i.label)))):null,r=e("tbody",{},()=>{return(A(t)||[]).map((f,u)=>e("tr",{},n.map((l)=>{let c=l.render?l.render(f,u):f[l.key];return e("td",{class:l.class},c)})))});return[s,r].filter(Boolean)},qn=(t,n)=>{if(!t.items){let{class:c,...a}=t;return e("div",{...a,class:_("tabs",c)},n)}let{items:o,activeIndex:s,onClose:r,class:i,...f}=t,u=(c)=>L(c)?c():c,l=r||(L(o)?(c,a)=>{let N=u(o).filter((b,w)=>w!==c);if(o(N),s()>=N.length)s(Math.max(0,N.length-1))}:null);return e("div",{...f,class:_("tabs",i)},()=>{return(u(o)||[]).flatMap((a,d)=>{let N=()=>s()===d,b=e("button",{class:()=>`tab ${N()?"tab-active":""} ${a.class||""}`,onclick:(E)=>{E.preventDefault(),s(d),a.onclick?.(E)}},[J(a),a.closable?e("span",{class:"ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",onclick:(E)=>{E.stopPropagation(),l?.(d,a)}},e("span",{class:"icon-[lucide--x] w-3 h-3"})):null]),w=e("div",{class:"tab-content bg-base-100 border-base-300 p-6",style:()=>`display: ${N()?"block":"none"};`},L(a.content)?a.content():a.content);return[b,w]})})},Dn=(t)=>e("textarea",{...t,class:_("textarea",t.class)}),Hn=(t,n)=>e("span",{...t,class:_("text-rotate",t.class)},n),Fn=(t,n)=>e("ul",{...t,class:_("timeline",t.class)},n),vn=(t,n="alert-success",o=3500)=>{let s=document.getElementById("sigpro-toast-container");if(!s)s=e("div",{id:"sigpro-toast-container",class:"fixed top-0 right-0 z-[9999] p-4 flex flex-col items-end gap-2 pointer-events-none"}),document.body.appendChild(s);let r=e("div",{style:"display: contents"});s.appendChild(r);let i,f,u,c=lt(()=>{let a=C(!1),d=C(!1);i=()=>{if(d())return;clearTimeout(f),clearTimeout(u),d(!0),setTimeout(()=>{if(c.destroy(),r.remove(),!s.hasChildNodes())s.remove()},300)},u=setTimeout(()=>a(!0),0);let N=typeof t==="function"?A(t):t,b=typeof N==="string"?e("span",{},N):N;return e("div",{class:()=>{let w=`alert alert-soft ${n} shadow-lg transition-all duration-300 inline-flex w-auto whitespace-nowrap pointer-events-auto`;if(d())return`${w} translate-x-full opacity-0`;if(a())return`${w} translate-x-0 opacity-100`;return`${w} translate-x-10 opacity-0`}},[b,e("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:i},e("span",{class:"icon-[lucide--x]"}))])},r);if(o>0)f=setTimeout(i,o);return i},hn=(t)=>e("input",{...t,type:"checkbox",class:_("toggle",t.class)}),pn=(t,n)=>e("div",{...t,class:_("tooltip",t.class),"data-tip":t.tip},n);var Ut={};Et(Ut,{Editor:()=>te});var te=(t)=>{let{value:n,class:o}=t,s=null,r=null,i=C(!1),f=C(""),u=C(0),l=C(0),c=C(!1),a=["\uD83D\uDE00","\uD83D\uDE0A","\uD83D\uDE09","\uD83E\uDDD0","\uD83D\uDE2E","\uD83E\uDD14","\uD83D\uDE05","\uD83D\uDE02","\uD83D\uDE0D","\uD83D\uDE18","\uD83E\uDD70","\uD83D\uDC4D","\uD83D\uDC4E","\uD83D\uDC4C","\uD83E\uDD1D","\uD83E\uDD1E","\uD83D\uDC4B","\uD83D\uDC4F","\uD83D\uDE4C","\uD83D\uDE4F","\uD83D\uDCAA","☝️","\uD83D\uDC47","\uD83D\uDC48","\uD83D\uDC49","\uD83D\uDD95","✅","⚠️","\uD83D\uDE80","\uD83D\uDCE2","✉️","❤️"],d=()=>{let y=window.getSelection();if(y.getRangeAt&&y.rangeCount)r=y.getRangeAt(0)},N=()=>{if(r){let y=window.getSelection();y.removeAllRanges(),y.addRange(r)}},b=()=>{if(l(l()+1),s)u(s.innerText.length)},w=()=>{if(!s)return;let y=s.innerHTML;if(L(n))n(y);else t.onchange?.(y);b()},E=(y,S=null)=>{if(!s)return;if(s.focus(),r)N();document.execCommand(y,!1,S),r=null,w()},j=(y)=>{let S=document.createElement("div");S.style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;";let O=document.createElement("img");O.src=y,O.style="max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;",S.onclick=()=>document.body.removeChild(S),S.appendChild(O),document.body.appendChild(S)},M=(y)=>{if(!y)return;let S=new FileReader;S.onload=(O)=>{if(y.type.startsWith("image/")){let k=`
 `;E("insertHTML",k)}else{let k=`${y.name} `;E("insertHTML",k)}},S.readAsDataURL(y)},W=(y,S=null)=>{if(l(),!s||i())return!1;try{if(y==="formatBlock"){let O=window.getSelection().getRangeAt(0).commonAncestorContainer;while(O&&O!==s){if(O.nodeType===1&&O.tagName===S)return!0;O=O.parentNode}return!1}return document.queryCommandState(y)}catch(O){return!1}},ct=e("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20"},[e("div",{class:"flex flex-wrap gap-1 flex-1 items-center"},[e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${W("bold")?"btn-active bg-primary/20":""}`,onclick:()=>E("bold")},e("span",{class:"icon-[lucide--bold]"})),e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${W("italic")?"btn-active bg-primary/20":""}`,onclick:()=>E("italic")},e("span",{class:"icon-[lucide--italic]"})),e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${W("underline")?"btn-active bg-primary/20":""}`,onclick:()=>E("underline")},e("span",{class:"icon-[lucide--underline]"})),e("input",{type:"color",class:"w-5 h-5 p-0 border-0 bg-transparent cursor-pointer",oninput:(y)=>E("foreColor",y.target.value)}),e("span",{class:"w-px h-5 bg-base-300 mx-1"}),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyLeft")},e("span",{class:"icon-[lucide--align-left]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyCenter")},e("span",{class:"icon-[lucide--align-center]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("justifyRight")},e("span",{class:"icon-[lucide--align-right]"})),e("span",{class:"w-px h-5 bg-base-300 mx-1"}),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertUnorderedList")},e("span",{class:"icon-[lucide--list]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("insertOrderedList")},e("span",{class:"icon-[lucide--list-ordered]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("outdent")},e("span",{class:"icon-[lucide--indent-decrease]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("indent")},e("span",{class:"icon-[lucide--indent-increase]"})),e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${W("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>E("formatBlock",W("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},e("span",{class:"icon-[lucide--quote]"})),e("span",{class:"w-px h-5 bg-base-300 mx-1"}),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let y=window.prompt("URL:");if(y)E("createLink",y)}},e("span",{class:"icon-[lucide--link]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let y=document.createElement("input");y.type="file",y.onchange=(S)=>M(S.target.files[0]),y.click()}},e("span",{class:"icon-[lucide--paperclip]"})),e("div",{class:"relative"},[e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:(y)=>{y.stopPropagation(),d(),c(!c())}},e("span",{class:"icon-[lucide--smile]"})),e("div",{class:"absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1",style:()=>c()?"display:flex":"display:none"},a.map((y)=>e("span",{class:"cursor-pointer hover:bg-base-200 p-1 rounded text-lg",onclick:(S)=>{S.stopPropagation(),E("insertText",y),c(!1)}},y)))]),e("span",{class:"w-px h-5 bg-base-300 mx-1"}),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("undo")},e("span",{class:"icon-[lucide--undo-2]"})),e("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>E("redo")},e("span",{class:"icon-[lucide--redo-2]"}))]),e("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${i()?"btn-active":""}`,onclick:()=>{if(!i())f(s?.innerHTML||"");else if(s)s.innerHTML=f(),w();i(!i())}},e("span",{class:"icon-[lucide--code-2]"}))]);if(typeof document<"u"&&!document.getElementById("editor-styles")){let y=document.createElement("style");y.id="editor-styles",y.textContent=` [contenteditable="true"] div, [contenteditable="true"] p { margin: 0; padding: 0; } - `,document.head.appendChild(b)}return r("div",{class:e("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col",o)},[c,r("div",{class:"relative flex-1 flex flex-col",onclick:()=>i(!1)},[r("div",{ref:(b)=>{if(!f&&b)f=b,b.innerHTML=L(n)||"",document.execCommand("defaultParagraphSeparator",!1,"br"),b.addEventListener("click",(j)=>{let T=j.target.closest(".resizable-img-container");if(T){let $=T.querySelector("img");if($)J($.src)}})},style:()=>`min-height:22rem;${_()?"display:none":""}`,class:"p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",contenteditable:"true",oninput:w,onkeydown:(b)=>{if(b.key==="Tab")b.preventDefault(),E("indent")},onkeyup:()=>{C(),N()},onclick:(b)=>{C(),N(),b.stopPropagation()},onmouseup:()=>{w(),N()},onpaste:(b)=>{b.preventDefault();let j=b.clipboardData.getData("text/plain");E("insertText",j)},ondragover:(b)=>b.preventDefault(),ondrop:(b)=>{b.preventDefault(),B(b.dataTransfer.files[0])}}),r("textarea",{class:"w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",style:()=>_()?"":"display:none",value:l,oninput:(b)=>{if(l(b.target.value),f)f.innerHTML=b.target.value;t.onchange?.(b.target.value)}})]),r("div",{class:"px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic"},[r("span",()=>`${a()} caracteres`)])])};var tr={es:{close:"Cerrar",confirm:"Confirmar",cancel:"Cancelar",search:"Buscar...",loading:"Cargando...",nodata:"Sin datos"},en:{close:"Close",confirm:"Confirm",cancel:"Cancel",search:"Search...",loading:"Loading...",nodata:"No data"}},Kt=k("es"),Ot=(t)=>Kt(t),Xt=(t)=>()=>tr[Kt()][t]||t;var zt={..._t,...st},St={Locale:Ot,tt:Xt};if(typeof window<"u")Object.entries({...zt,...St}).forEach(([t,n])=>{Object.defineProperty(window,t,{value:n,writable:!1,configurable:!0,enumerable:!0})}),console.log("SigProUI DX installed");})(); + `,document.head.appendChild(y)}return e("div",{class:_("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col",o)},[ct,e("div",{class:"relative flex-1 flex flex-col",onclick:()=>c(!1)},[e("div",{ref:(y)=>{if(!s&&y)s=y,y.innerHTML=A(n)||"",document.execCommand("defaultParagraphSeparator",!1,"br"),y.addEventListener("click",(S)=>{let O=S.target.closest(".resizable-img-container");if(O){let k=O.querySelector("img");if(k)j(k.src)}})},style:()=>`min-height:22rem;${i()?"display:none":""}`,class:"p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",contenteditable:"true",oninput:w,onkeydown:(y)=>{if(y.key==="Tab")y.preventDefault(),E("indent")},onkeyup:()=>{b(),d()},onclick:(y)=>{b(),d(),y.stopPropagation()},onmouseup:()=>{w(),d()},onpaste:(y)=>{y.preventDefault();let S=y.clipboardData.getData("text/plain");E("insertText",S)},ondragover:(y)=>y.preventDefault(),ondrop:(y)=>{y.preventDefault(),M(y.dataTransfer.files[0])}}),e("textarea",{class:"w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",style:()=>i()?"":"display:none",value:f,oninput:(y)=>{if(f(y.target.value),s)s.innerHTML=y.target.value;t.onchange?.(y.target.value)}})]),e("div",{class:"px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic"},[e("span",()=>`${u()} caracteres`)])])};var Pe={es:{close:"Cerrar",confirm:"Confirmar",cancel:"Cancelar",search:"Buscar...",loading:"Cargando...",nodata:"Sin datos"},en:{close:"Close",confirm:"Confirm",cancel:"Cancel",search:"Search...",loading:"Loading...",nodata:"No data"}},ne=C("es"),ee=(t)=>ne(t),oe=(t)=>()=>Pe[ne()][t]||t;var re={...Mt,...Ut},se={Locale:ee,tt:oe};if(typeof window<"u")Object.entries({$:C,$$:Ct,watch:z,h:e,each:B,when:ft,mount:lt,batch:It}).forEach(([n,o])=>{Object.defineProperty(window,n,{value:o,writable:!0,configurable:!0,enumerable:!0})}),Object.entries({...re,...se}).forEach(([n,o])=>{Object.defineProperty(window,n,{value:o,writable:!1,configurable:!0,enumerable:!0})}),console.log("SigProUI DX installed");})(); diff --git a/index.js b/index.js index df5da4c..930fe66 100644 --- a/index.js +++ b/index.js @@ -9,17 +9,4 @@ export const Components = { export const Utils = { Locale, tt -}; - - -if (typeof window !== 'undefined') { - Object.entries({ ...Components, ...Utils }).forEach(([name, value]) => { - Object.defineProperty(window, name, { - value, - writable: false, - configurable: true, - enumerable: true - }); - }); - console.log("SigProUI DX installed"); -} +}; \ No newline at end of file diff --git a/package.json b/package.json index 2a4bcda..756e2c3 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "version": "1.2.0", "repository": { "type": "git", - "url": "https://git.natxocc.com/natxocc/sigpro-ui" + "url": "https://github.com/natxocc/sigpro-ui" }, "main": "./index.js", "module": "./index.js", @@ -27,7 +27,7 @@ } }, "bugs": { - "url": "https://git.natxocc.com/natxocc/sigpro-ui/issues" + "url": "https://github.com/natxocc/sigpro-ui/issues" }, "files": [ "index.js", @@ -39,21 +39,19 @@ "homepage": "https://sigpro.natxocc.com/ui/#/", "jsdelivr": "./dist/sigpro-ui.min.js", "license": "MIT", - "publishConfig": { - "registry": "https://git.natxocc.com/api/packages/natxocc/npm/" - }, "scripts": { "del": "bun pm cache rm && rm -f bun.lockb $$ rm -f bun.lock", "clean": "rm -rf ./dist ./css/*.css ./docs/*.js ./docs/*.css", "build:css": "tailwindcss -i ./sigpro-css.css -o ./dist/sigpro-ui.css --content './src/**/*.js' && du -h ./dist/sigpro-ui.css", - "build:cssmin": "tailwindcss -i ./sigpro-css.css -o ./dist/sigpro-ui.min.css --content './src/**/*.js' --minify && du -h ./dist/sigpro-ui.css", - "build:js": "bun run build:js:iife && bun run build:js:esm", - "build:js:iife": "bun build ./index.js --bundle --outfile=./dist/sigpro-ui.js --format=iife --global-name=SigProUI", - "build:js:iife:min": "bun build ./index.js --bundle --outfile=./dist/sigpro-ui.min.js --format=iife --global-name=SigProUI --minify", - "build:js:esm": "bun build ./index.js --bundle --outfile=./dist/sigpro-ui.esm.js --format=esm", - "build:js:esm:min": "bun build ./index.js --bundle --outfile=./dist/sigpro-ui.esm.min.js --format=esm --minify", + "build:cssmin": "tailwindcss -i ./sigpro-css.css -o ./dist/sigpro-ui.min.css --content './src/**/*.js' --minify && du -h ./dist/sigpro-ui.min.css", + "build:js": "bun run build:js:iife && bun run build:js:iife:min && bun run build:js:esm && bun run build:js:esm:min", + "build:js:iife": "bun build ./sigpro-ui-full.js --bundle --outfile=./dist/sigpro-ui.js --format=iife --global-name=SigProUI", + "build:js:iife:min": "bun build ./sigpro-ui-full.js --bundle --outfile=./dist/sigpro-ui.min.js --format=iife --global-name=SigProUI --minify", + "build:js:esm": "bun build ./index.js --bundle --outfile=./dist/sigpro-ui.esm.js --format=esm --external=sigpro", + "build:js:esm:min": "bun build ./index.js --bundle --outfile=./dist/sigpro-ui.esm.min.js --format=esm --external=sigpro --minify", "copy:docs": "cp dist/sigpro-ui.min.css dist/sigpro-ui.min.js docs/", - "build": "bun run clean && bun run build:css && bun run build:cssmin && bun run build:js:iife && bun run build:js:iife:min && bun run build:js:esm && bun run build:js:esm:min && bun run copy:docs", + "build": "bun run clean && bun run build:css && bun run build:cssmin && bun run build:js", + "postbuild": "bun run copy:docs", "prepublishOnly": "bun run build", "docs": "bun x serve docs" }, diff --git a/sigpro-ui-full.js b/sigpro-ui-full.js new file mode 100644 index 0000000..2d05a24 --- /dev/null +++ b/sigpro-ui-full.js @@ -0,0 +1,36 @@ +import { $, $$, watch, h, each, when, mount, batch } from 'sigpro'; +import 'sigpro/xss.js'; +import 'sigpro/tags.js'; +import * as All from './sigpro-ui.js'; +import * as Editor from './sigpro-editor.js'; +import { Locale, tt } from './sigpro-locale.js'; + +const Components = { ...All, ...Editor }; +const Utils = { Locale, tt }; + +if (typeof window !== 'undefined') { + const fns = { $, $$, watch, h, each, when, mount, batch }; + Object.entries(fns).forEach(([name, fn]) => { + Object.defineProperty(window, name, { + value: fn, + writable: true, + configurable: true, + enumerable: true + }); + }); + + Object.entries({ ...Components, ...Utils }).forEach(([name, value]) => { + Object.defineProperty(window, name, { + value, + writable: false, + configurable: true, + enumerable: true + }); + }); + + console.log("SigProUI DX installed"); +} + +export { Components, Utils }; +export * from './sigpro-ui.js'; +export * from './sigpro-editor.js'; \ No newline at end of file