diff --git a/dist/sigpro-ui.js b/dist/sigpro-ui.js index a296dd7..895c7cd 100644 --- a/dist/sigpro-ui.js +++ b/dist/sigpro-ui.js @@ -77,7 +77,9 @@ List: () => List, Input: () => Input, Indicator: () => Indicator, + Fileinput: () => Fileinput, Fieldset: () => Fieldset, + Fab: () => Fab, Dropdown: () => Dropdown, Drawer: () => Drawer, Datepicker: () => Datepicker, @@ -113,7 +115,9 @@ List: () => List, Input: () => Input, Indicator: () => Indicator, + Fileinput: () => Fileinput, Fieldset: () => Fieldset, + Fab: () => Fab, Dropdown: () => Dropdown, Drawer: () => Drawer, Datepicker: () => Datepicker, @@ -126,10 +130,10 @@ Accordion: () => Accordion }); - // src/components/Button.js - var exports_Button = {}; - __export(exports_Button, { - Button: () => Button + // src/components/Accordion.js + var exports_Accordion = {}; + __export(exports_Accordion, { + Accordion: () => Accordion }); var import_sigpro = __require("sigpro"); @@ -142,57 +146,29 @@ var val = (t) => typeof t === "function" ? t() : t; var joinClass = (t, l) => typeof l === "function" ? () => `${t} ${l() || ""}`.trim() : `${t} ${l || ""}`.trim(); - // src/components/Button.js - var Button = (props, children) => { - const { badge, badgeClass, tooltip, icon, loading, ...rest } = props; - const btn = import_sigpro.$html("button", { + // src/components/Accordion.js + var Accordion = (props, children) => { + const { title, name, open, ...rest } = props; + return import_sigpro.$html("div", { ...rest, - class: joinClass("btn", props.class), - disabled: () => val(loading) || val(props.disabled) + class: joinClass("collapse collapse-arrow bg-base-200 mb-2", props.class) }, [ - () => val(loading) ? import_sigpro.$html("span", { class: "loading loading-spinner" }) : null, - icon ? import_sigpro.$html("span", { class: "mr-1" }, icon) : null, - children + import_sigpro.$html("input", { + type: name ? "radio" : "checkbox", + name, + checked: open + }), + import_sigpro.$html("div", { class: "collapse-title text-xl font-medium" }, title), + import_sigpro.$html("div", { class: "collapse-content" }, children) ]); - let out = btn; - if (badge) { - out = import_sigpro.$html("div", { class: "indicator" }, [ - import_sigpro.$html("span", { class: joinClass("indicator-item badge", badgeClass || "badge-secondary") }, badge), - out - ]); - } - return tooltip ? import_sigpro.$html("div", { class: "tooltip", "data-tip": tooltip }, out) : out; }; - // src/components/Input.js - var exports_Input = {}; - __export(exports_Input, { - Input: () => Input + // src/components/Alert.js + var exports_Alert = {}; + __export(exports_Alert, { + Alert: () => Alert }); - var import_sigpro3 = __require("sigpro"); - - // src/core/i18n.js var import_sigpro2 = __require("sigpro"); - var i18n = { - 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" - } - }; - var currentLocale = import_sigpro2.$("es"); - var tt = (t) => () => i18n[currentLocale()][t] || t; // src/core/icons.js var exports_icons = {}; @@ -233,71 +209,42 @@ var iconRRight = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABmSURBVDiN3dGxCoAgEMbxfz1dL1BTREJzmUv08trgDYcg6VCD3/YD7zvkoLmMgFEegLmmwAAecOJVvNeUWCAAt7IHjt9LThkyiRf9qC8oCom70u0BuDL+bngj/tNm/JqJePucW8wDvGYdzT0nMUkAAAAASUVORK5CYII="; var iconUpload = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADNSURBVDiNndOxTgJRFIThz41ZDMFKqH0DLSRSq4lQ0RifUcMzUJlYQKjtLcHVSimBggPRNSzs/sk0kzPnTHEvxZyHKnGJD3yhXSWcYRnKwvvH0Y7wEG/4wQI1XOEek6LLF3FtiDoGoXp4WcxsSXILHjFCH/Nf/jy8ER6KGuTZNNhJvkFpEpygUyHbRi1BFy8VFryilyANlSVFerxn6N36IRVyG0PNEtdbkbmBU8zwdOCSJp4xRWNj3sWS5YGaRvM/f6GBa5ztafCJMb5hBQQ/MMwXLnnZAAAAAElFTkSuQmCC"; - // src/components/Input.js - var Input = (props) => { - const { label, tip, value, error, isSearch, icon, type = "text", ...rest } = props; - const isPassword = type === "password"; - const visible = import_sigpro3.$(false); - const iconsByType = { - text: iconAbc, - password: iconLock, - date: iconCalendar, - number: icon123, - email: iconMail + // src/components/Alert.js + var Alert = (props, children) => { + const { type = "info", soft = true, ...rest } = props; + const icons = { + info: iconInfo, + success: iconSuccess, + warning: iconWarning, + error: iconError }; - const inputEl = import_sigpro3.$html("input", { + const typeClass = () => { + const t = val(type); + const map = { + info: "alert-info", + success: "alert-success", + warning: "alert-warning", + error: "alert-error" + }; + return map[t] || t; + }; + const content = children || props.message; + return import_sigpro2.$html("div", { ...rest, - type: () => isPassword ? visible() ? "text" : "password" : type, - placeholder: props.placeholder || label || (isSearch ? tt("search")() : " "), - class: joinClass("grow order-2 focus:outline-none", props.class), - value, - oninput: (e) => props.oninput?.(e), - disabled: () => val(props.disabled) - }); - const leftIcon = icon ? icon : iconsByType[type] ? import_sigpro3.$html("img", { src: iconsByType[type], class: "opacity-50", alt: type }) : null; - return import_sigpro3.$html("label", { - class: () => joinClass("input input-bordered floating-label flex items-center gap-2 w-full relative", val(error) ? "input-error" : "") + role: "alert", + class: () => `alert ${typeClass()} ${val(soft) ? "alert-soft" : ""} ${props.class || ""}` }, [ - leftIcon ? import_sigpro3.$html("div", { class: "order-1 shrink-0" }, leftIcon) : null, - label ? import_sigpro3.$html("span", { class: "text-base-content/60 order-0" }, label) : null, - inputEl, - isPassword ? import_sigpro3.$html("button", { - type: "button", - class: "order-3 btn btn-ghost btn-xs btn-circle opacity-50 hover:opacity-100", - onclick: (e) => { - e.preventDefault(); - visible(!visible()); - } - }, () => import_sigpro3.$html("img", { - class: "w-5 h-5", - src: visible() ? iconShow : iconHide - })) : null, - tip ? import_sigpro3.$html("div", { class: "tooltip tooltip-left order-4", "data-tip": tip }, import_sigpro3.$html("span", { class: "badge badge-ghost badge-xs cursor-help" }, "?")) : null, - () => val(error) ? import_sigpro3.$html("span", { class: "text-error text-[10px] absolute -bottom-5 left-2" }, val(error)) : null - ]); - }; - - // src/components/Select.js - var exports_Select = {}; - __export(exports_Select, { - Select: () => Select - }); - var import_sigpro4 = __require("sigpro"); - var Select = (props) => { - const { label, options, value, ...rest } = props; - const selectEl = import_sigpro4.$html("select", { - ...rest, - class: joinClass("select select-bordered w-full", props.class), - value - }, import_sigpro4.$for(() => val(options) || [], (opt) => import_sigpro4.$html("option", { - value: opt.value, - $selected: () => String(val(value)) === String(opt.value) - }, opt.label), (opt) => opt.value)); - if (!label) - return selectEl; - return import_sigpro4.$html("label", { class: "fieldset-label flex flex-col gap-1" }, [ - import_sigpro4.$html("span", {}, label), - selectEl + import_sigpro2.$html("img", { + src: icons[val(type)] || icons.info, + class: "w-4 h-4 object-contain", + alt: val(type) + }), + import_sigpro2.$html("div", { class: "flex-1" }, [ + import_sigpro2.$html("span", {}, [typeof content === "function" ? content() : content]) + ]), + props.actions ? import_sigpro2.$html("div", { class: "flex-none" }, [ + typeof props.actions === "function" ? props.actions() : props.actions + ]) : null ]); }; @@ -307,6 +254,80 @@ Autocomplete: () => Autocomplete }); var import_sigpro5 = __require("sigpro"); + + // src/core/i18n.js + var import_sigpro3 = __require("sigpro"); + var i18n = { + 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" + } + }; + var currentLocale = import_sigpro3.$("es"); + var tt = (t) => () => i18n[currentLocale()][t] || t; + + // src/components/Input.js + var exports_Input = {}; + __export(exports_Input, { + Input: () => Input + }); + var import_sigpro4 = __require("sigpro"); + var Input = (props) => { + const { label, tip, value, error, isSearch, icon, type = "text", ...rest } = props; + const isPassword = type === "password"; + const visible = import_sigpro4.$(false); + const iconsByType = { + text: iconAbc, + password: iconLock, + date: iconCalendar, + number: icon123, + email: iconMail + }; + const inputEl = import_sigpro4.$html("input", { + ...rest, + type: () => isPassword ? visible() ? "text" : "password" : type, + placeholder: props.placeholder || label || (isSearch ? tt("search")() : " "), + class: joinClass("grow order-2 focus:outline-none", props.class), + value, + oninput: (e) => props.oninput?.(e), + disabled: () => val(props.disabled) + }); + const leftIcon = icon ? icon : iconsByType[type] ? import_sigpro4.$html("img", { src: iconsByType[type], class: "opacity-50", alt: type }) : null; + return import_sigpro4.$html("label", { + class: () => joinClass("input input-bordered floating-label flex items-center gap-2 w-full relative", val(error) ? "input-error" : "") + }, [ + leftIcon ? import_sigpro4.$html("div", { class: "order-1 shrink-0" }, leftIcon) : null, + label ? import_sigpro4.$html("span", { class: "text-base-content/60 order-0" }, label) : null, + inputEl, + isPassword ? import_sigpro4.$html("button", { + type: "button", + class: "order-3 btn btn-ghost btn-xs btn-circle opacity-50 hover:opacity-100", + onclick: (e) => { + e.preventDefault(); + visible(!visible()); + } + }, () => import_sigpro4.$html("img", { + class: "w-5 h-5", + src: visible() ? iconShow : iconHide + })) : null, + tip ? import_sigpro4.$html("div", { class: "tooltip tooltip-left order-4", "data-tip": tip }, import_sigpro4.$html("span", { class: "badge badge-ghost badge-xs cursor-help" }, "?")) : null, + () => val(error) ? import_sigpro4.$html("span", { class: "text-error text-[10px] absolute -bottom-5 left-2" }, val(error)) : null + ]); + }; + + // src/components/Autocomplete.js var Autocomplete = (props) => { const { options = [], value, onSelect, label, placeholder, ...rest } = props; const query = import_sigpro5.$(val(value) || ""); @@ -377,129 +398,71 @@ ]); }; + // src/components/Badge.js + var exports_Badge = {}; + __export(exports_Badge, { + Badge: () => Badge + }); + var import_sigpro6 = __require("sigpro"); + var Badge = (props, children) => import_sigpro6.$html("span", { ...props, class: joinClass("badge", props.class) }, children); + + // src/components/Button.js + var exports_Button = {}; + __export(exports_Button, { + Button: () => Button + }); + var import_sigpro7 = __require("sigpro"); + var Button = (props, children) => { + const { badge, badgeClass, tooltip, icon, loading, ...rest } = props; + const btn = import_sigpro7.$html("button", { + ...rest, + class: joinClass("btn", props.class), + disabled: () => val(loading) || val(props.disabled) + }, [ + () => val(loading) ? import_sigpro7.$html("span", { class: "loading loading-spinner" }) : null, + icon ? import_sigpro7.$html("span", { class: "mr-1" }, icon) : null, + children + ]); + let out = btn; + if (badge) { + out = import_sigpro7.$html("div", { class: "indicator" }, [ + import_sigpro7.$html("span", { class: joinClass("indicator-item badge", badgeClass || "badge-secondary") }, badge), + out + ]); + } + return tooltip ? import_sigpro7.$html("div", { class: "tooltip", "data-tip": tooltip }, out) : out; + }; + // src/components/Checkbox.js var exports_Checkbox = {}; __export(exports_Checkbox, { Checkbox: () => Checkbox }); - var import_sigpro6 = __require("sigpro"); + var import_sigpro8 = __require("sigpro"); var Checkbox = (props) => { const { value, tooltip, toggle, label, ...rest } = props; - const checkEl = import_sigpro6.$html("input", { + const checkEl = import_sigpro8.$html("input", { ...rest, type: "checkbox", class: () => val(toggle) ? "toggle" : "checkbox", checked: value }); - const layout = import_sigpro6.$html("label", { class: "label cursor-pointer justify-start gap-3" }, [ + const layout = import_sigpro8.$html("label", { class: "label cursor-pointer justify-start gap-3" }, [ checkEl, - label ? import_sigpro6.$html("span", { class: "label-text" }, label) : null - ]); - return tooltip ? import_sigpro6.$html("div", { class: "tooltip", "data-tip": tooltip }, layout) : layout; - }; - - // src/components/Radio.js - var exports_Radio = {}; - __export(exports_Radio, { - Radio: () => Radio - }); - var import_sigpro7 = __require("sigpro"); - var Radio = (props) => { - const { label, tooltip, value, ...rest } = props; - const radioEl = import_sigpro7.$html("input", { - ...rest, - type: "radio", - class: joinClass("radio", props.class), - checked: () => val(value) === props.value, - disabled: () => val(props.disabled), - onclick: () => typeof value === "function" && value(props.value) - }); - if (!label && !tooltip) - return radioEl; - const layout = import_sigpro7.$html("label", { class: "label cursor-pointer justify-start gap-3" }, [ - radioEl, - label ? import_sigpro7.$html("span", { class: "label-text" }, label) : null - ]); - return tooltip ? import_sigpro7.$html("div", { class: "tooltip", "data-tip": tooltip }, layout) : layout; - }; - - // src/components/Range.js - var exports_Range = {}; - __export(exports_Range, { - Range: () => Range - }); - var import_sigpro8 = __require("sigpro"); - var Range = (props) => { - const { label, tooltip, value, ...rest } = props; - const rangeEl = import_sigpro8.$html("input", { - ...rest, - type: "range", - class: joinClass("range", props.class), - value, - disabled: () => val(props.disabled) - }); - if (!label && !tooltip) - return rangeEl; - const layout = import_sigpro8.$html("div", { class: "flex flex-col gap-2" }, [ - label ? import_sigpro8.$html("span", { class: "label-text" }, label) : null, - rangeEl + label ? import_sigpro8.$html("span", { class: "label-text" }, label) : null ]); return tooltip ? import_sigpro8.$html("div", { class: "tooltip", "data-tip": tooltip }, layout) : layout; }; - // src/components/Rating.js - var exports_Rating = {}; - __export(exports_Rating, { - Rating: () => Rating - }); - var import_sigpro9 = __require("sigpro"); - var Rating = (props) => { - const { value, count = 5, mask = "mask-star", readonly = false, ...rest } = props; - const ratingGroup = `rating-${Math.random().toString(36).slice(2, 7)}`; - return import_sigpro9.$html("div", { - ...rest, - class: () => `rating ${val(readonly) ? "pointer-events-none" : ""} ${props.class || ""}` - }, Array.from({ length: val(count) }, (_, i) => { - const starValue = i + 1; - return import_sigpro9.$html("input", { - type: "radio", - name: ratingGroup, - class: `mask ${mask}`, - "aria-label": `${starValue} star`, - checked: () => Math.round(val(value)) === starValue, - onchange: () => { - if (!val(readonly) && typeof value === "function") { - value(starValue); - } - } - }); - })); - }; - - // src/components/Swap.js - var exports_Swap = {}; - __export(exports_Swap, { - Swap: () => Swap - }); - var import_sigpro10 = __require("sigpro"); - var Swap = (props) => import_sigpro10.$html("label", { class: joinClass("swap", props.class) }, [ - import_sigpro10.$html("input", { - type: "checkbox", - checked: props.value - }), - import_sigpro10.$html("div", { class: "swap-on" }, props.on), - import_sigpro10.$html("div", { class: "swap-off" }, props.off) - ]); - // src/components/Colorpicker.js var exports_Colorpicker = {}; __export(exports_Colorpicker, { Colorpicker: () => Colorpicker }); - var import_sigpro11 = __require("sigpro"); + var import_sigpro9 = __require("sigpro"); var Colorpicker = (props) => { const { value, label, ...rest } = props; - const isOpen = import_sigpro11.$(false); + const isOpen = import_sigpro9.$(false); const palette = [ ...["#000", "#1A1A1A", "#333", "#4D4D4D", "#666", "#808080", "#B3B3B3", "#FFF"], ...["#450a0a", "#7f1d1d", "#991b1b", "#b91c1c", "#dc2626", "#ef4444", "#f87171", "#fca5a5"], @@ -511,8 +474,8 @@ ...["#2e1065", "#4c1d95", "#6d28d9", "#7c3aed", "#8b5cf6", "#a855f7", "#d946ef", "#fae8ff"] ]; const getColor = () => val(value) || "#000000"; - return import_sigpro11.$html("div", { class: "relative w-fit" }, [ - import_sigpro11.$html("button", { + return import_sigpro9.$html("div", { class: "relative w-fit" }, [ + import_sigpro9.$html("button", { type: "button", class: "btn px-3 bg-base-100 border-base-300 hover:border-primary/50 flex items-center gap-2 shadow-sm font-normal normal-case", onclick: (e) => { @@ -521,17 +484,17 @@ }, ...rest }, [ - import_sigpro11.$html("div", { + import_sigpro9.$html("div", { class: "size-5 rounded-sm shadow-inner border border-black/10 shrink-0", style: () => `background-color: ${getColor()}` }), - label ? import_sigpro11.$html("span", { class: "opacity-80" }, label) : null + label ? import_sigpro9.$html("span", { class: "opacity-80" }, label) : null ]), - import_sigpro11.$if(isOpen, () => import_sigpro11.$html("div", { + import_sigpro9.$if(isOpen, () => import_sigpro9.$html("div", { class: "absolute left-0 mt-2 p-3 bg-base-100 border border-base-300 shadow-2xl rounded-box z-[110] w-64 select-none", onclick: (e) => e.stopPropagation() }, [ - import_sigpro11.$html("div", { class: "grid grid-cols-8 gap-1" }, palette.map((c) => import_sigpro11.$html("button", { + import_sigpro9.$html("div", { class: "grid grid-cols-8 gap-1" }, palette.map((c) => import_sigpro9.$html("button", { type: "button", style: `background-color: ${c}`, class: () => { @@ -546,7 +509,7 @@ } }))) ])), - import_sigpro11.$if(isOpen, () => import_sigpro11.$html("div", { + import_sigpro9.$if(isOpen, () => import_sigpro9.$html("div", { class: "fixed inset-0 z-[100]", onclick: () => isOpen(false) })) @@ -558,14 +521,14 @@ __export(exports_Datepicker, { Datepicker: () => Datepicker }); - var import_sigpro12 = __require("sigpro"); + var import_sigpro10 = __require("sigpro"); var Datepicker = (props) => { const { value, range, label, placeholder, hour = false, ...rest } = props; - const isOpen = import_sigpro12.$(false); - const internalDate = import_sigpro12.$(new Date); - const hoverDate = import_sigpro12.$(null); - const startHour = import_sigpro12.$(0); - const endHour = import_sigpro12.$(0); + const isOpen = import_sigpro10.$(false); + const internalDate = import_sigpro10.$(new Date); + const hoverDate = import_sigpro10.$(null); + const startHour = import_sigpro10.$(0); + const endHour = import_sigpro10.$(0); const isRangeMode = () => val(range) === true; const now = new Date; const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`; @@ -606,7 +569,7 @@ isOpen(false); } }; - const displayValue = import_sigpro12.$(() => { + const displayValue = import_sigpro10.$(() => { const v = val(value); if (!v) return ""; @@ -635,9 +598,9 @@ internalDate(new Date(d.getFullYear() + y, d.getMonth(), 1)); }; const HourSlider = ({ value: hVal, onChange }) => { - return import_sigpro12.$html("div", { class: "flex-1" }, [ - import_sigpro12.$html("div", { class: "flex gap-2 items-center" }, [ - import_sigpro12.$html("input", { + return import_sigpro10.$html("div", { class: "flex-1" }, [ + import_sigpro10.$html("div", { class: "flex gap-2 items-center" }, [ + import_sigpro10.$html("input", { type: "range", min: 0, max: 23, @@ -648,42 +611,42 @@ onChange(newHour); } }), - import_sigpro12.$html("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(val(hVal)).padStart(2, "0") + ":00") + import_sigpro10.$html("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(val(hVal)).padStart(2, "0") + ":00") ]) ]); }; - return import_sigpro12.$html("div", { class: "relative w-full" }, [ + return import_sigpro10.$html("div", { class: "relative w-full" }, [ Input({ label, placeholder: placeholder || (isRangeMode() ? "Seleccionar rango..." : "Seleccionar fecha..."), value: displayValue, readonly: true, - icon: import_sigpro12.$html("img", { src: iconCalendar, class: "opacity-40" }), + icon: import_sigpro10.$html("img", { src: iconCalendar, class: "opacity-40" }), onclick: (e) => { e.stopPropagation(); isOpen(!isOpen()); }, ...rest }), - import_sigpro12.$if(isOpen, () => import_sigpro12.$html("div", { + import_sigpro10.$if(isOpen, () => import_sigpro10.$html("div", { class: "absolute left-0 mt-2 p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box z-[100] w-80 select-none", onclick: (e) => e.stopPropagation() }, [ - import_sigpro12.$html("div", { class: "flex justify-between items-center mb-4 gap-1" }, [ - import_sigpro12.$html("div", { class: "flex gap-0.5" }, [ - import_sigpro12.$html("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, import_sigpro12.$html("img", { src: iconLLeft, class: "opacity-40" })), - import_sigpro12.$html("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, import_sigpro12.$html("img", { src: iconLeft, class: "opacity-40" })) + import_sigpro10.$html("div", { class: "flex justify-between items-center mb-4 gap-1" }, [ + import_sigpro10.$html("div", { class: "flex gap-0.5" }, [ + import_sigpro10.$html("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, import_sigpro10.$html("img", { src: iconLLeft, class: "opacity-40" })), + import_sigpro10.$html("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, import_sigpro10.$html("img", { src: iconLeft, class: "opacity-40" })) ]), - import_sigpro12.$html("span", { class: "font-bold uppercase flex-1 text-center" }, [ + import_sigpro10.$html("span", { class: "font-bold uppercase flex-1 text-center" }, [ () => internalDate().toLocaleString("es-ES", { month: "short", year: "numeric" }) ]), - import_sigpro12.$html("div", { class: "flex gap-0.5" }, [ - import_sigpro12.$html("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, import_sigpro12.$html("img", { src: iconRight, class: "opacity-40" })), - import_sigpro12.$html("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, import_sigpro12.$html("img", { src: iconRRight, class: "opacity-40" })) + import_sigpro10.$html("div", { class: "flex gap-0.5" }, [ + import_sigpro10.$html("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, import_sigpro10.$html("img", { src: iconRight, class: "opacity-40" })), + import_sigpro10.$html("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, import_sigpro10.$html("img", { src: iconRRight, class: "opacity-40" })) ]) ]), - import_sigpro12.$html("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [ - ...["L", "M", "X", "J", "V", "S", "D"].map((d) => import_sigpro12.$html("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d)), + import_sigpro10.$html("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [ + ...["L", "M", "X", "J", "V", "S", "D"].map((d) => import_sigpro10.$html("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d)), () => { const d = internalDate(); const year = d.getFullYear(); @@ -693,11 +656,11 @@ const daysInMonth = new Date(year, month + 1, 0).getDate(); const nodes = []; for (let i = 0;i < offset; i++) - nodes.push(import_sigpro12.$html("div")); + nodes.push(import_sigpro10.$html("div")); for (let i = 1;i <= daysInMonth; i++) { const date = new Date(year, month, i); const dStr = formatDate(date); - nodes.push(import_sigpro12.$html("button", { + nodes.push(import_sigpro10.$html("button", { type: "button", class: () => { const v = val(value); @@ -728,8 +691,8 @@ return nodes; } ]), - hour ? import_sigpro12.$html("div", { class: "mt-3 pt-2 border-t border-base-300" }, [ - isRangeMode() ? import_sigpro12.$html("div", { class: "flex gap-4" }, [ + hour ? import_sigpro10.$html("div", { class: "mt-3 pt-2 border-t border-base-300" }, [ + isRangeMode() ? import_sigpro10.$html("div", { class: "flex gap-4" }, [ HourSlider({ value: startHour, onChange: (newHour) => { @@ -760,141 +723,235 @@ }) ]) : null ])), - import_sigpro12.$if(isOpen, () => import_sigpro12.$html("div", { class: "fixed inset-0 z-[90]", onclick: () => isOpen(false) })) + import_sigpro10.$if(isOpen, () => import_sigpro10.$html("div", { class: "fixed inset-0 z-[90]", onclick: () => isOpen(false) })) ]); }; - // src/components/Table.js - var exports_Table = {}; - __export(exports_Table, { - Table: () => Table + // src/components/Drawer.js + var exports_Drawer = {}; + __export(exports_Drawer, { + Drawer: () => Drawer }); - var import_sigpro13 = __require("sigpro"); - var Table = (props) => { - const { - items = [], - columns = [], - keyFn, - zebra = false, - pinRows = false, - empty = tt("nodata")(), - ...rest - } = props; - const tableClass = () => joinClass("table", `${val(zebra) ? "table-zebra" : ""} ${val(pinRows) ? "table-pin-rows" : ""} ${props.class || ""}`); - return import_sigpro13.$html("div", { class: "overflow-x-auto w-full bg-base-100 rounded-box border border-base-300" }, [ - import_sigpro13.$html("table", { ...rest, class: tableClass }, [ - import_sigpro13.$html("thead", {}, [ - import_sigpro13.$html("tr", {}, columns.map((col) => import_sigpro13.$html("th", { class: col.class || "" }, col.label))) - ]), - import_sigpro13.$html("tbody", {}, [ - import_sigpro13.$for(items, (item, index) => { - return import_sigpro13.$html("tr", { class: "hover" }, columns.map((col) => { - const cellContent = () => { - if (col.render) - return col.render(item, index); - const value = item[col.key]; - return val(value); - }; - return import_sigpro13.$html("td", { class: col.class || "" }, [cellContent]); - })); - }, keyFn || ((item, idx) => item.id || idx)), - import_sigpro13.$if(() => val(items).length === 0, () => import_sigpro13.$html("tr", {}, [ - import_sigpro13.$html("td", { colspan: columns.length, class: "text-center p-10 opacity-50" }, [ - val(empty) - ]) - ])) - ]), - import_sigpro13.$if(() => columns.some((c) => c.footer), () => import_sigpro13.$html("tfoot", {}, [ - import_sigpro13.$html("tr", {}, columns.map((col) => import_sigpro13.$html("th", {}, col.footer || ""))) - ])) - ]) + var import_sigpro11 = __require("sigpro"); + var Drawer = (props) => import_sigpro11.$html("div", { class: joinClass("drawer", props.class) }, [ + import_sigpro11.$html("input", { + id: props.id, + type: "checkbox", + class: "drawer-toggle", + checked: props.open + }), + import_sigpro11.$html("div", { class: "drawer-content" }, props.content), + import_sigpro11.$html("div", { class: "drawer-side" }, [ + import_sigpro11.$html("label", { for: props.id, class: "drawer-overlay", onclick: () => props.open?.(false) }), + import_sigpro11.$html("div", { class: "min-h-full bg-base-200 w-80" }, props.side) + ]) + ]); + + // src/components/Dropdown.js + var exports_Dropdown = {}; + __export(exports_Dropdown, { + Dropdown: () => Dropdown + }); + var import_sigpro12 = __require("sigpro"); + var Dropdown = (props, children) => { + const { label, icon, ...rest } = props; + return import_sigpro12.$html("div", { + ...rest, + class: () => `dropdown ${val(props.class) || props.class || ""}` + }, [ + import_sigpro12.$html("div", { + tabindex: 0, + role: "button", + class: "btn m-1 flex items-center gap-2" + }, [ + icon ? typeof icon === "function" ? icon() : icon : null, + label ? typeof label === "function" ? label() : label : null + ]), + import_sigpro12.$html("ul", { + tabindex: 0, + class: "dropdown-content z-[50] menu p-2 shadow bg-base-100 rounded-box min-w-max border border-base-300" + }, [typeof children === "function" ? children() : children]) ]); }; + // src/components/Fab.js + var exports_Fab = {}; + __export(exports_Fab, { + Fab: () => Fab + }); + var import_sigpro13 = __require("sigpro"); + var Fab = (props) => { + const { icon, label, actions = [], position = "bottom-6 right-6", ...rest } = props; + return import_sigpro13.$html("div", { + ...rest, + class: () => `fab fixed ${val(position)} flex flex-col-reverse items-end gap-3 z-[100] ${props.class || ""}` + }, [ + import_sigpro13.$html("div", { + tabindex: 0, + role: "button", + class: "btn btn-lg btn-circle btn-primary shadow-2xl" + }, [ + icon ? typeof icon === "function" ? icon() : icon : null, + !icon && label ? label : null + ]), + ...val(actions).map((act) => import_sigpro13.$html("div", { class: "flex items-center gap-3 transition-all duration-300" }, [ + act.label ? import_sigpro13.$html("span", { class: "badge badge-ghost shadow-sm whitespace-nowrap" }, act.label) : null, + import_sigpro13.$html("button", { + type: "button", + class: `btn btn-circle shadow-lg ${act.class || ""}`, + onclick: (e) => { + e.stopPropagation(); + act.onclick?.(e); + } + }, [act.icon ? typeof act.icon === "function" ? act.icon() : act.icon : act.text || ""]) + ])) + ]); + }; + + // src/components/Fieldset.js + var exports_Fieldset = {}; + __export(exports_Fieldset, { + Fieldset: () => Fieldset + }); + var import_sigpro14 = __require("sigpro"); + var Fieldset = (props, children) => import_sigpro14.$html("fieldset", { + ...props, + class: joinClass("fieldset bg-base-200 border border-base-300 p-4 rounded-lg", props.class) + }, [ + () => { + const legendText = val(props.legend); + return legendText ? import_sigpro14.$html("legend", { class: "fieldset-legend font-bold" }, [legendText]) : null; + }, + children + ]); + + // src/components/Fileinput.js + var exports_Fileinput = {}; + __export(exports_Fileinput, { + Fileinput: () => Fileinput + }); + var import_sigpro15 = __require("sigpro"); + var Fileinput = (props) => { + const { tooltip, max = 2, accept = "*", onSelect } = props; + const selectedFiles = import_sigpro15.$([]); + const isDragging = import_sigpro15.$(false); + const error = import_sigpro15.$(null); + const MAX_BYTES = max * 1024 * 1024; + const handleFiles = (files) => { + const fileList = Array.from(files); + error(null); + const oversized = fileList.find((f) => f.size > MAX_BYTES); + if (oversized) { + error(`Máx ${max}MB`); + return; + } + selectedFiles([...selectedFiles(), ...fileList]); + onSelect?.(selectedFiles()); + }; + const removeFile = (index) => { + const updated = selectedFiles().filter((_, i) => i !== index); + selectedFiles(updated); + onSelect?.(updated); + }; + return import_sigpro15.$html("fieldset", { class: "fieldset w-full p-0" }, [ + import_sigpro15.$html("div", { + class: () => `w-full ${tooltip ? "tooltip tooltip-top before:z-50 after:z-50" : ""}`, + "data-tip": tooltip + }, [ + import_sigpro15.$html("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 + ${isDragging() ? "border-primary bg-primary/10" : "border-base-content/20 bg-base-100 hover:bg-base-200"} + `, + ondragover: (e) => { + e.preventDefault(); + isDragging(true); + }, + ondragleave: () => isDragging(false), + ondrop: (e) => { + e.preventDefault(); + isDragging(false); + handleFiles(e.dataTransfer.files); + } + }, [ + import_sigpro15.$html("div", { class: "flex items-center gap-3 w-full" }, [ + import_sigpro15.$html("img", { src: iconUpload, class: "w-5 h-5 opacity-50 shrink-0" }), + import_sigpro15.$html("span", { class: "text-sm opacity-70 truncate grow text-left" }, "Arrastra o selecciona archivos..."), + import_sigpro15.$html("span", { class: "text-[10px] opacity-40 shrink-0" }, `Máx ${max}MB`) + ]), + import_sigpro15.$html("input", { + type: "file", + multiple: true, + accept, + class: "hidden", + onchange: (e) => handleFiles(e.target.files) + }) + ]) + ]), + () => error() ? import_sigpro15.$html("span", { class: "text-[10px] text-error mt-1 px-1 font-medium" }, error()) : null, + import_sigpro15.$if(() => selectedFiles().length > 0, () => import_sigpro15.$html("ul", { class: "mt-2 space-y-1" }, [ + import_sigpro15.$for(selectedFiles, (file, index) => import_sigpro15.$html("li", { class: "flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300" }, [ + import_sigpro15.$html("div", { class: "flex items-center gap-2 truncate" }, [ + import_sigpro15.$html("span", { class: "opacity-50" }, "\uD83D\uDCC4"), + import_sigpro15.$html("span", { class: "truncate font-medium max-w-[200px]" }, file.name), + import_sigpro15.$html("span", { class: "text-[9px] opacity-40" }, `(${(file.size / 1024).toFixed(0)} KB)`) + ]), + import_sigpro15.$html("button", { + type: "button", + class: "btn btn-ghost btn-xs btn-circle", + onclick: (e) => { + e.preventDefault(); + e.stopPropagation(); + removeFile(index); + } + }, [import_sigpro15.$html("img", { src: iconClose, class: "w-3 h-3 opacity-70" })]) + ]), (file) => file.name + file.lastModified) + ])) + ]); + }; + + // src/components/Indicator.js + var exports_Indicator = {}; + __export(exports_Indicator, { + Indicator: () => Indicator + }); + var import_sigpro16 = __require("sigpro"); + var Indicator = (props, children) => import_sigpro16.$html("div", { class: joinClass("indicator", props.class) }, [ + children, + import_sigpro16.$html("span", { class: joinClass("indicator-item badge", props.badgeClass) }, props.badge) + ]); + // src/components/List.js var exports_List = {}; __export(exports_List, { List: () => List }); - var import_sigpro14 = __require("sigpro"); + var import_sigpro17 = __require("sigpro"); var List = (props) => { const { items, header, render, keyFn, class: className } = props; - return import_sigpro14.$html("ul", { + return import_sigpro17.$html("ul", { class: joinClass("list bg-base-100 rounded-box shadow-md", className) }, [ - import_sigpro14.$if(header, () => import_sigpro14.$html("li", { class: "p-4 pb-2 text-xs opacity-60 tracking-wide" }, [val(header)])), - import_sigpro14.$for(items, (item, index) => import_sigpro14.$html("li", { class: "list-row" }, [render(item, index)]), keyFn) + import_sigpro17.$if(header, () => import_sigpro17.$html("li", { class: "p-4 pb-2 text-xs opacity-60 tracking-wide" }, [val(header)])), + import_sigpro17.$for(items, (item, index) => import_sigpro17.$html("li", { class: "list-row" }, [render(item, index)]), keyFn) ]); }; - // src/components/Stat.js - var exports_Stat = {}; - __export(exports_Stat, { - Stat: () => Stat - }); - var import_sigpro15 = __require("sigpro"); - var Stat = (props) => import_sigpro15.$html("div", { ...props, class: joinClass("stat", props.class) }, [ - props.icon && import_sigpro15.$html("div", { class: "stat-figure text-secondary" }, props.icon), - props.label && import_sigpro15.$html("div", { class: "stat-title" }, props.label), - import_sigpro15.$html("div", { class: "stat-value" }, () => val(props.value) ?? props.value), - props.desc && import_sigpro15.$html("div", { class: "stat-desc" }, props.desc) - ]); - - // src/components/Timeline.js - var exports_Timeline = {}; - __export(exports_Timeline, { - Timeline: () => Timeline - }); - var import_sigpro16 = __require("sigpro"); - var Timeline = (props) => { - const { items = [], vertical = true, compact = false, ...rest } = props; - const icons = { - info: iconInfo, - success: iconSuccess, - warning: iconWarning, - error: iconError - }; - return import_sigpro16.$html("ul", { - ...rest, - class: () => `timeline ${val(vertical) ? "timeline-vertical" : "timeline-horizontal"} ${val(compact) ? "timeline-compact" : ""} ${props.class || ""}` - }, [ - import_sigpro16.$for(items, (item, i) => { - const isFirst = i === 0; - const isLast = i === val(items).length - 1; - const itemType = item.type || "success"; - const renderSlot = (content) => typeof content === "function" ? content() : content; - return import_sigpro16.$html("li", { class: "flex-1" }, [ - !isFirst ? import_sigpro16.$html("hr", { class: item.completed ? "bg-primary" : "" }) : null, - import_sigpro16.$html("div", { class: "timeline-start" }, [renderSlot(item.title)]), - import_sigpro16.$html("div", { class: "timeline-middle" }, [ - import_sigpro16.$html("img", { - src: icons[itemType] || item.icon || icons.success, - class: "w-4 h-4 object-contain mx-1", - alt: itemType - }) - ]), - import_sigpro16.$html("div", { class: "timeline-end timeline-box shadow-sm" }, [renderSlot(item.detail)]), - !isLast ? import_sigpro16.$html("hr", { class: item.completed ? "bg-primary" : "" }) : null - ]); - }, (item, i) => item.id || i) - ]); - }; - - // src/components/Badge.js - var exports_Badge = {}; - __export(exports_Badge, { - Badge: () => Badge - }); - var import_sigpro17 = __require("sigpro"); - var Badge = (props, children) => import_sigpro17.$html("span", { ...props, class: joinClass("badge", props.class) }, children); - - // src/components/Tooltip.js - var exports_Tooltip = {}; - __export(exports_Tooltip, { - Tooltip: () => Tooltip + // src/components/Loading.js + var exports_Loading = {}; + __export(exports_Loading, { + Loading: () => Loading }); var import_sigpro18 = __require("sigpro"); - var Tooltip = (props, children) => import_sigpro18.$html("div", { ...props, class: joinClass("tooltip", props.class), "data-tip": props.tip }, children); + var Loading = (props) => { + return import_sigpro18.$if(props.$show, () => import_sigpro18.$html("div", { + class: "fixed inset-0 z-[100] flex items-center justify-center backdrop-blur-sm bg-base-100/30" + }, [ + import_sigpro18.$html("span", { class: "loading loading-spinner loading-lg text-primary" }) + ])); + }; // src/components/Menu.js var exports_Menu = {}; @@ -915,28 +972,239 @@ return import_sigpro19.$html("ul", { ...props, class: joinClass("menu bg-base-200 rounded-box", props.class) }, renderItems(props.items)); }; + // src/components/Modal.js + var exports_Modal = {}; + __export(exports_Modal, { + Modal: () => Modal + }); + var import_sigpro20 = __require("sigpro"); + var Modal = (props, children) => { + const { title, buttons, open, ...rest } = props; + const close = () => open(false); + return import_sigpro20.$if(open, () => import_sigpro20.$html("dialog", { ...rest, class: "modal modal-open" }, [ + import_sigpro20.$html("div", { class: "modal-box" }, [ + title ? import_sigpro20.$html("h3", { class: "text-lg font-bold mb-4" }, title) : null, + typeof children === "function" ? children() : children, + import_sigpro20.$html("div", { class: "modal-action flex gap-2" }, [ + ...(Array.isArray(buttons) ? buttons : [buttons]).filter(Boolean), + Button({ onclick: close }, tt("close")()) + ]) + ]), + import_sigpro20.$html("form", { + method: "dialog", + class: "modal-backdrop", + onclick: (e) => (e.preventDefault(), close()) + }, [import_sigpro20.$html("button", {}, "close")]) + ])); + }; + // src/components/Navbar.js var exports_Navbar = {}; __export(exports_Navbar, { Navbar: () => Navbar }); - var import_sigpro20 = __require("sigpro"); - var Navbar = (props, children) => import_sigpro20.$html("div", { ...props, class: joinClass("navbar bg-base-100 shadow-sm px-4", props.class) }, children); + var import_sigpro21 = __require("sigpro"); + var Navbar = (props, children) => import_sigpro21.$html("div", { ...props, class: joinClass("navbar bg-base-100 shadow-sm px-4", props.class) }, children); + + // src/components/Radio.js + var exports_Radio = {}; + __export(exports_Radio, { + Radio: () => Radio + }); + var import_sigpro22 = __require("sigpro"); + var Radio = (props) => { + const { label, tooltip, value, ...rest } = props; + const radioEl = import_sigpro22.$html("input", { + ...rest, + type: "radio", + class: joinClass("radio", props.class), + checked: () => val(value) === props.value, + disabled: () => val(props.disabled), + onclick: () => typeof value === "function" && value(props.value) + }); + if (!label && !tooltip) + return radioEl; + const layout = import_sigpro22.$html("label", { class: "label cursor-pointer justify-start gap-3" }, [ + radioEl, + label ? import_sigpro22.$html("span", { class: "label-text" }, label) : null + ]); + return tooltip ? import_sigpro22.$html("div", { class: "tooltip", "data-tip": tooltip }, layout) : layout; + }; + + // src/components/Range.js + var exports_Range = {}; + __export(exports_Range, { + Range: () => Range + }); + var import_sigpro23 = __require("sigpro"); + var Range = (props) => { + const { label, tooltip, value, ...rest } = props; + const rangeEl = import_sigpro23.$html("input", { + ...rest, + type: "range", + class: joinClass("range", props.class), + value, + disabled: () => val(props.disabled) + }); + if (!label && !tooltip) + return rangeEl; + const layout = import_sigpro23.$html("div", { class: "flex flex-col gap-2" }, [ + label ? import_sigpro23.$html("span", { class: "label-text" }, label) : null, + rangeEl + ]); + return tooltip ? import_sigpro23.$html("div", { class: "tooltip", "data-tip": tooltip }, layout) : layout; + }; + + // src/components/Rating.js + var exports_Rating = {}; + __export(exports_Rating, { + Rating: () => Rating + }); + var import_sigpro24 = __require("sigpro"); + var Rating = (props) => { + const { value, count = 5, mask = "mask-star", readonly = false, ...rest } = props; + const ratingGroup = `rating-${Math.random().toString(36).slice(2, 7)}`; + return import_sigpro24.$html("div", { + ...rest, + class: () => `rating ${val(readonly) ? "pointer-events-none" : ""} ${props.class || ""}` + }, Array.from({ length: val(count) }, (_, i) => { + const starValue = i + 1; + return import_sigpro24.$html("input", { + type: "radio", + name: ratingGroup, + class: `mask ${mask}`, + "aria-label": `${starValue} star`, + checked: () => Math.round(val(value)) === starValue, + onchange: () => { + if (!val(readonly) && typeof value === "function") { + value(starValue); + } + } + }); + })); + }; + + // src/components/Select.js + var exports_Select = {}; + __export(exports_Select, { + Select: () => Select + }); + var import_sigpro25 = __require("sigpro"); + var Select = (props) => { + const { label, options, value, ...rest } = props; + const selectEl = import_sigpro25.$html("select", { + ...rest, + class: joinClass("select select-bordered w-full", props.class), + value + }, import_sigpro25.$for(() => val(options) || [], (opt) => import_sigpro25.$html("option", { + value: opt.value, + $selected: () => String(val(value)) === String(opt.value) + }, opt.label), (opt) => opt.value)); + if (!label) + return selectEl; + return import_sigpro25.$html("label", { class: "fieldset-label flex flex-col gap-1" }, [ + import_sigpro25.$html("span", {}, label), + selectEl + ]); + }; + + // src/components/Stack.js + var exports_Stack = {}; + __export(exports_Stack, { + Stack: () => Stack + }); + var import_sigpro26 = __require("sigpro"); + var Stack = (props, children) => import_sigpro26.$html("div", { ...props, class: joinClass("stack", props.class) }, children); + + // src/components/Stat.js + var exports_Stat = {}; + __export(exports_Stat, { + Stat: () => Stat + }); + var import_sigpro27 = __require("sigpro"); + var Stat = (props) => import_sigpro27.$html("div", { ...props, class: joinClass("stat", props.class) }, [ + props.icon && import_sigpro27.$html("div", { class: "stat-figure text-secondary" }, props.icon), + props.label && import_sigpro27.$html("div", { class: "stat-title" }, props.label), + import_sigpro27.$html("div", { class: "stat-value" }, () => val(props.value) ?? props.value), + props.desc && import_sigpro27.$html("div", { class: "stat-desc" }, props.desc) + ]); + + // src/components/Swap.js + var exports_Swap = {}; + __export(exports_Swap, { + Swap: () => Swap + }); + var import_sigpro28 = __require("sigpro"); + var Swap = (props) => import_sigpro28.$html("label", { class: joinClass("swap", props.class) }, [ + import_sigpro28.$html("input", { + type: "checkbox", + checked: props.value + }), + import_sigpro28.$html("div", { class: "swap-on" }, props.on), + import_sigpro28.$html("div", { class: "swap-off" }, props.off) + ]); + + // src/components/Table.js + var exports_Table = {}; + __export(exports_Table, { + Table: () => Table + }); + var import_sigpro29 = __require("sigpro"); + var Table = (props) => { + const { + items = [], + columns = [], + keyFn, + zebra = false, + pinRows = false, + empty = tt("nodata")(), + ...rest + } = props; + const tableClass = () => joinClass("table", `${val(zebra) ? "table-zebra" : ""} ${val(pinRows) ? "table-pin-rows" : ""} ${props.class || ""}`); + return import_sigpro29.$html("div", { class: "overflow-x-auto w-full bg-base-100 rounded-box border border-base-300" }, [ + import_sigpro29.$html("table", { ...rest, class: tableClass }, [ + import_sigpro29.$html("thead", {}, [ + import_sigpro29.$html("tr", {}, columns.map((col) => import_sigpro29.$html("th", { class: col.class || "" }, col.label))) + ]), + import_sigpro29.$html("tbody", {}, [ + import_sigpro29.$for(items, (item, index) => { + return import_sigpro29.$html("tr", { class: "hover" }, columns.map((col) => { + const cellContent = () => { + if (col.render) + return col.render(item, index); + const value = item[col.key]; + return val(value); + }; + return import_sigpro29.$html("td", { class: col.class || "" }, [cellContent]); + })); + }, keyFn || ((item, idx) => item.id || idx)), + import_sigpro29.$if(() => val(items).length === 0, () => import_sigpro29.$html("tr", {}, [ + import_sigpro29.$html("td", { colspan: columns.length, class: "text-center p-10 opacity-50" }, [ + val(empty) + ]) + ])) + ]), + import_sigpro29.$if(() => columns.some((c) => c.footer), () => import_sigpro29.$html("tfoot", {}, [ + import_sigpro29.$html("tr", {}, columns.map((col) => import_sigpro29.$html("th", {}, col.footer || ""))) + ])) + ]) + ]); + }; // src/components/Tabs.js var exports_Tabs = {}; __export(exports_Tabs, { Tabs: () => Tabs }); - var import_sigpro21 = __require("sigpro"); + var import_sigpro30 = __require("sigpro"); var Tabs = (props) => { const { items, ...rest } = props; const itemsSignal = typeof items === "function" ? items : () => items || []; - return import_sigpro21.$html("div", { ...rest, class: "flex flex-col gap-4 w-full" }, [ - import_sigpro21.$html("div", { + return import_sigpro30.$html("div", { ...rest, class: "flex flex-col gap-4 w-full" }, [ + import_sigpro30.$html("div", { role: "tablist", class: joinClass("tabs tabs-box", props.class) - }, import_sigpro21.$for(itemsSignal, (it) => import_sigpro21.$html("a", { + }, import_sigpro30.$for(itemsSignal, (it) => import_sigpro30.$html("a", { role: "tab", class: () => joinClass("tab", val(it.active) && "tab-active", val(it.disabled) && "tab-disabled", it.tip && "tooltip"), "data-tip": it.tip, @@ -947,185 +1215,50 @@ if (!active) return null; const content = val(active.content); - return import_sigpro21.$html("div", { class: "p-4" }, [ + return import_sigpro30.$html("div", { class: "p-4" }, [ typeof content === "function" ? content() : content ]); } ]); }; - // src/components/Accordion.js - var exports_Accordion = {}; - __export(exports_Accordion, { - Accordion: () => Accordion + // src/components/Timeline.js + var exports_Timeline = {}; + __export(exports_Timeline, { + Timeline: () => Timeline }); - var import_sigpro22 = __require("sigpro"); - var Accordion = (props, children) => { - const { title, name, open, ...rest } = props; - return import_sigpro22.$html("div", { - ...rest, - class: joinClass("collapse collapse-arrow bg-base-200 mb-2", props.class) - }, [ - import_sigpro22.$html("input", { - type: name ? "radio" : "checkbox", - name, - checked: open - }), - import_sigpro22.$html("div", { class: "collapse-title text-xl font-medium" }, title), - import_sigpro22.$html("div", { class: "collapse-content" }, children) - ]); - }; - - // src/components/Drawer.js - var exports_Drawer = {}; - __export(exports_Drawer, { - Drawer: () => Drawer - }); - var import_sigpro23 = __require("sigpro"); - var Drawer = (props) => import_sigpro23.$html("div", { class: joinClass("drawer", props.class) }, [ - import_sigpro23.$html("input", { - id: props.id, - type: "checkbox", - class: "drawer-toggle", - checked: props.open - }), - import_sigpro23.$html("div", { class: "drawer-content" }, props.content), - import_sigpro23.$html("div", { class: "drawer-side" }, [ - import_sigpro23.$html("label", { for: props.id, class: "drawer-overlay", onclick: () => props.open?.(false) }), - import_sigpro23.$html("div", { class: "min-h-full bg-base-200 w-80" }, props.side) - ]) - ]); - - // src/components/Stack.js - var exports_Stack = {}; - __export(exports_Stack, { - Stack: () => Stack - }); - var import_sigpro24 = __require("sigpro"); - var Stack = (props, children) => import_sigpro24.$html("div", { ...props, class: joinClass("stack", props.class) }, children); - - // src/components/Indicator.js - var exports_Indicator = {}; - __export(exports_Indicator, { - Indicator: () => Indicator - }); - var import_sigpro25 = __require("sigpro"); - var Indicator = (props, children) => import_sigpro25.$html("div", { class: joinClass("indicator", props.class) }, [ - children, - import_sigpro25.$html("span", { class: joinClass("indicator-item badge", props.badgeClass) }, props.badge) - ]); - - // src/components/Fieldset.js - var exports_Fieldset = {}; - __export(exports_Fieldset, { - Fieldset: () => Fieldset - }); - var import_sigpro26 = __require("sigpro"); - var Fieldset = (props, children) => import_sigpro26.$html("fieldset", { - ...props, - class: joinClass("fieldset bg-base-200 border border-base-300 p-4 rounded-lg", props.class) - }, [ - () => { - const legendText = val(props.legend); - return legendText ? import_sigpro26.$html("legend", { class: "fieldset-legend font-bold" }, [legendText]) : null; - }, - children - ]); - - // src/components/Modal.js - var exports_Modal = {}; - __export(exports_Modal, { - Modal: () => Modal - }); - var import_sigpro27 = __require("sigpro"); - var Modal = (props, children) => { - const { title, buttons, open, ...rest } = props; - const close = () => open(false); - return import_sigpro27.$if(open, () => import_sigpro27.$html("dialog", { ...rest, class: "modal modal-open" }, [ - import_sigpro27.$html("div", { class: "modal-box" }, [ - title ? import_sigpro27.$html("h3", { class: "text-lg font-bold mb-4" }, title) : null, - typeof children === "function" ? children() : children, - import_sigpro27.$html("div", { class: "modal-action flex gap-2" }, [ - ...(Array.isArray(buttons) ? buttons : [buttons]).filter(Boolean), - Button({ onclick: close }, tt("close")()) - ]) - ]), - import_sigpro27.$html("form", { - method: "dialog", - class: "modal-backdrop", - onclick: (e) => (e.preventDefault(), close()) - }, [import_sigpro27.$html("button", {}, "close")]) - ])); - }; - - // src/components/Dropdown.js - var exports_Dropdown = {}; - __export(exports_Dropdown, { - Dropdown: () => Dropdown - }); - var import_sigpro28 = __require("sigpro"); - var Dropdown = (props, children) => { - const { label, icon, ...rest } = props; - return import_sigpro28.$html("div", { - ...rest, - class: () => `dropdown ${val(props.class) || props.class || ""}` - }, [ - import_sigpro28.$html("div", { - tabindex: 0, - role: "button", - class: "btn m-1 flex items-center gap-2" - }, [ - icon ? typeof icon === "function" ? icon() : icon : null, - label ? typeof label === "function" ? label() : label : null - ]), - import_sigpro28.$html("ul", { - tabindex: 0, - class: "dropdown-content z-[50] menu p-2 shadow bg-base-100 rounded-box min-w-max border border-base-300" - }, [typeof children === "function" ? children() : children]) - ]); - }; - - // src/components/Alert.js - var exports_Alert = {}; - __export(exports_Alert, { - Alert: () => Alert - }); - var import_sigpro29 = __require("sigpro"); - var Alert = (props, children) => { - const { type = "info", soft = true, ...rest } = props; + var import_sigpro31 = __require("sigpro"); + var Timeline = (props) => { + const { items = [], vertical = true, compact = false, ...rest } = props; const icons = { info: iconInfo, success: iconSuccess, warning: iconWarning, error: iconError }; - const typeClass = () => { - const t = val(type); - const map = { - info: "alert-info", - success: "alert-success", - warning: "alert-warning", - error: "alert-error" - }; - return map[t] || t; - }; - const content = children || props.message; - return import_sigpro29.$html("div", { + return import_sigpro31.$html("ul", { ...rest, - role: "alert", - class: () => `alert ${typeClass()} ${val(soft) ? "alert-soft" : ""} ${props.class || ""}` + class: () => `timeline ${val(vertical) ? "timeline-vertical" : "timeline-horizontal"} ${val(compact) ? "timeline-compact" : ""} ${props.class || ""}` }, [ - import_sigpro29.$html("img", { - src: icons[val(type)] || icons.info, - class: "w-4 h-4 object-contain", - alt: val(type) - }), - import_sigpro29.$html("div", { class: "flex-1" }, [ - import_sigpro29.$html("span", {}, [typeof content === "function" ? content() : content]) - ]), - props.actions ? import_sigpro29.$html("div", { class: "flex-none" }, [ - typeof props.actions === "function" ? props.actions() : props.actions - ]) : null + import_sigpro31.$for(items, (item, i) => { + const isFirst = i === 0; + const isLast = i === val(items).length - 1; + const itemType = item.type || "success"; + const renderSlot = (content) => typeof content === "function" ? content() : content; + return import_sigpro31.$html("li", { class: "flex-1" }, [ + !isFirst ? import_sigpro31.$html("hr", { class: item.completed ? "bg-primary" : "" }) : null, + import_sigpro31.$html("div", { class: "timeline-start" }, [renderSlot(item.title)]), + import_sigpro31.$html("div", { class: "timeline-middle" }, [ + import_sigpro31.$html("img", { + src: icons[itemType] || item.icon || icons.success, + class: "w-4 h-4 object-contain mx-1", + alt: itemType + }) + ]), + import_sigpro31.$html("div", { class: "timeline-end timeline-box shadow-sm" }, [renderSlot(item.detail)]), + !isLast ? import_sigpro31.$html("hr", { class: item.completed ? "bg-primary" : "" }) : null + ]); + }, (item, i) => item.id || i) ]); }; @@ -1134,17 +1267,17 @@ __export(exports_Toast, { Toast: () => Toast }); - var import_sigpro30 = __require("sigpro"); + var import_sigpro32 = __require("sigpro"); var Toast = (message, type = "alert-success", duration = 3500) => { let container = document.getElementById("sigpro-toast-container"); if (!container) { - container = import_sigpro30.$html("div", { + container = import_sigpro32.$html("div", { id: "sigpro-toast-container", class: "fixed top-0 right-0 z-[9999] p-4 flex flex-col gap-2 pointer-events-none" }); document.body.appendChild(container); } - const toastHost = import_sigpro30.$html("div", { style: "display: contents" }); + const toastHost = import_sigpro32.$html("div", { style: "display: contents" }); container.appendChild(toastHost); let timeoutId; const close = () => { @@ -1164,68 +1297,64 @@ } }; const ToastComponent = () => { - const el = import_sigpro30.$html("div", { + const el = import_sigpro32.$html("div", { class: `alert alert-soft ${type} shadow-lg transition-all duration-300 translate-x-10 opacity-0 pointer-events-auto` }, [ - import_sigpro30.$html("span", {}, [typeof message === "function" ? message() : message]), + import_sigpro32.$html("span", {}, [typeof message === "function" ? message() : message]), Button({ class: "btn-xs btn-circle btn-ghost", onclick: close }, "✕") ]); requestAnimationFrame(() => el.classList.remove("translate-x-10", "opacity-0")); return el; }; - const instance = import_sigpro30.$mount(ToastComponent, toastHost); + const instance = import_sigpro32.$mount(ToastComponent, toastHost); if (duration > 0) { timeoutId = setTimeout(close, duration); } return close; }; - // src/components/Loading.js - var exports_Loading = {}; - __export(exports_Loading, { - Loading: () => Loading + // src/components/Tooltip.js + var exports_Tooltip = {}; + __export(exports_Tooltip, { + Tooltip: () => Tooltip }); - var import_sigpro31 = __require("sigpro"); - var Loading = (props) => { - return import_sigpro31.$if(props.$show, () => import_sigpro31.$html("div", { - class: "fixed inset-0 z-[100] flex items-center justify-center backdrop-blur-sm bg-base-100/30" - }, [ - import_sigpro31.$html("span", { class: "loading loading-spinner loading-lg text-primary" }) - ])); - }; + var import_sigpro33 = __require("sigpro"); + var Tooltip = (props, children) => import_sigpro33.$html("div", { ...props, class: joinClass("tooltip", props.class), "data-tip": props.tip }, children); // src/components/index.js var Components = { - ...exports_Button, - ...exports_Input, - ...exports_Select, + ...exports_Accordion, + ...exports_Alert, ...exports_Autocomplete, + ...exports_Badge, + ...exports_Button, ...exports_Checkbox, + ...exports_Colorpicker, + ...exports_Datepicker, + ...exports_Drawer, + ...exports_Dropdown, + ...exports_Fab, + ...exports_Fieldset, + ...exports_Fileinput, + ...exports_Indicator, + ...exports_Input, + ...exports_List, + ...exports_Loading, + ...exports_Menu, + ...exports_Modal, + ...exports_Navbar, ...exports_Radio, ...exports_Range, ...exports_Rating, - ...exports_Swap, - ...exports_Colorpicker, - ...exports_Datepicker, - ...exports_Table, - ...exports_List, - ...exports_Stat, - ...exports_Timeline, - ...exports_Badge, - ...exports_Tooltip, - ...exports_Menu, - ...exports_Navbar, - ...exports_Tabs, - ...exports_Accordion, - ...exports_Drawer, + ...exports_Select, ...exports_Stack, - ...exports_Indicator, - ...exports_Fieldset, - ...exports_Modal, - ...exports_Dropdown, - ...exports_Alert, + ...exports_Stat, + ...exports_Swap, + ...exports_Table, + ...exports_Tabs, + ...exports_Timeline, ...exports_Toast, - ...exports_Loading + ...exports_Tooltip }; var components_default = { ...Components, @@ -1233,6 +1362,7 @@ Object.entries(Components).forEach(([name, component]) => { target[name] = component; }); + console.log("\uD83D\uDE80 SigproUI"); } }; // index.js diff --git a/dist/sigpro-ui.min.js b/dist/sigpro-ui.min.js index 6c8bca5..10da19b 100644 --- a/dist/sigpro-ui.min.js +++ b/dist/sigpro-ui.min.js @@ -1,2 +1,7 @@ -(()=>{var{defineProperty:Ct,getOwnPropertyNames:Oo,getOwnPropertyDescriptor:Wo}=Object,$o=Object.prototype.hasOwnProperty;var Qo=new WeakMap,qo=(t)=>{var o=Qo.get(t),e;if(o)return o;if(o=Ct({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")Oo(t).map((A)=>!$o.call(o,A)&&Ct(o,A,{get:()=>t[A],enumerable:!(e=Wo(t,A))||e.enumerable}));return Qo.set(t,o),o};var u=(t,o)=>{for(var e in o)Ct(t,e,{get:o[e],enumerable:!0,configurable:!0,set:(A)=>o[e]=()=>A})};var b=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(o,e)=>(typeof require<"u"?require:o)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var Ae={};u(Ae,{val:()=>a,tt:()=>R,joinClass:()=>d,iconWarning:()=>Z,iconUpload:()=>Fo,iconSuccess:()=>X,iconShow:()=>rt,iconRight:()=>mt,iconRRight:()=>gt,iconMail:()=>it,iconLock:()=>nt,iconLeft:()=>dt,iconLLeft:()=>ft,iconInfo:()=>K,iconHide:()=>st,iconError:()=>P,iconClose:()=>No,iconCalendar:()=>z,iconAbc:()=>lt,icon123:()=>ct,default:()=>ae,Tooltip:()=>oo,Toast:()=>Do,Timeline:()=>$t,Tabs:()=>no,Table:()=>Kt,Swap:()=>jt,Stat:()=>Ot,Stack:()=>go,Select:()=>yt,Rating:()=>Nt,Range:()=>Ht,Radio:()=>Vt,Navbar:()=>ro,Modal:()=>vo,Menu:()=>Ao,Loading:()=>Eo,List:()=>Pt,Input:()=>j,Indicator:()=>po,Fieldset:()=>ho,Dropdown:()=>wo,Drawer:()=>mo,Datepicker:()=>Jt,Colorpicker:()=>Gt,Checkbox:()=>Et,Button:()=>F,Badge:()=>_t,Autocomplete:()=>Dt,Alert:()=>yo,Accordion:()=>co});var pt={};u(pt,{default:()=>oe,Tooltip:()=>oo,Toast:()=>Do,Timeline:()=>$t,Tabs:()=>no,Table:()=>Kt,Swap:()=>jt,Stat:()=>Ot,Stack:()=>go,Select:()=>yt,Rating:()=>Nt,Range:()=>Ht,Radio:()=>Vt,Navbar:()=>ro,Modal:()=>vo,Menu:()=>Ao,Loading:()=>Eo,List:()=>Pt,Input:()=>j,Indicator:()=>po,Fieldset:()=>ho,Dropdown:()=>wo,Drawer:()=>mo,Datepicker:()=>Jt,Colorpicker:()=>Gt,Checkbox:()=>Et,Button:()=>F,Badge:()=>_t,Autocomplete:()=>Dt,Alert:()=>yo,Accordion:()=>co});var wt={};u(wt,{Button:()=>F});var N=b("sigpro");var at={};u(at,{val:()=>a,joinClass:()=>d});var a=(t)=>typeof t==="function"?t():t,d=(t,o)=>typeof o==="function"?()=>`${t} ${o()||""}`.trim():`${t} ${o||""}`.trim();var F=(t,o)=>{let{badge:e,badgeClass:A,tooltip:r,icon:s,loading:n,...c}=t,i=N.$html("button",{...c,class:d("btn",t.class),disabled:()=>a(n)||a(t.disabled)},[()=>a(n)?N.$html("span",{class:"loading loading-spinner"}):null,s?N.$html("span",{class:"mr-1"},s):null,o]);if(e)i=N.$html("div",{class:"indicator"},[N.$html("span",{class:d("indicator-item badge",A||"badge-secondary")},e),i]);return r?N.$html("div",{class:"tooltip","data-tip":r},i):i};var Ut={};u(Ut,{Input:()=>j});var U=b("sigpro");var Mo=b("sigpro"),_o={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"}},te=Mo.$("es");var R=(t)=>()=>_o[te()][t]||t;var ut={};u(ut,{iconWarning:()=>Z,iconUpload:()=>Fo,iconSuccess:()=>X,iconShow:()=>rt,iconRight:()=>mt,iconRRight:()=>gt,iconMail:()=>it,iconLock:()=>nt,iconLeft:()=>dt,iconLLeft:()=>ft,iconInfo:()=>K,iconHide:()=>st,iconError:()=>P,iconClose:()=>No,iconCalendar:()=>z,iconAbc:()=>lt,icon123:()=>ct});var rt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADjSURBVDiN3dJNSgNBEAXgz4DZeAAVJ9tko2St3kaIFxAVt4KZeAD1GKKi7vQSydI/yHgALxAXU02GxniAFBR0v1ev+3V1sZSxjxtM8BM5wTX2/hNu4gFvOMI21iJ3cIwP3GMjF/dQ4RyraOMS34GPAmvjIrBeEnfwjoPGgSM8ooh8QtngB6Ep4BWnmaMqkY1LqqzmDC8tzNDK3/RHzLL9SloUYWfQIMuw3Yl8xrDBH6qbvZWALqbqBqVmlWF7GuKEDwPr5hbXcYdPnKBv/o39wL5wG7ULY1c9NGPzQRrjKrhli1/02zEjWyWMBwAAAABJRU5ErkJggg==",st="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEDSURBVDiN1dK/K8VhFAbwD+VLGSxKcu9guSQ/Zils/gNkuaX4BxRZDTdklYU/QAaDlEVGGwu2Kz/uVbKJzWDwfuv1+jHz1Km3c85znuf0Hv4jxnD2W8MItnCJ5xAX2MQcHsOQL+jEAapYQD9aQwxiDy+B3JKSe1DHCpqQYQ0PeMJOpDyAmyAAirjGbDRwFYcoYCZSzjGP+8B1gqXEUT2QxyPlqaRnGceNeENzUswwil1MBocbSU9DCAXUUI6K25HtIo5QSVaooitP9OEO65iIbE+HXSvBVRbeNZQSR9pxGil3o83HNw5hEbfYR0dKFki5ci+u8OrzIQ1/R8xx7ocL+9t4B0HPOVXjoptxAAAAAElFTkSuQmCC",No="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABcSURBVDiN3dIxDoAwCIXhL563g3bSm+hlq4O6GFNbO+k/EV54QIDfsSBk9IA5ZxCQEG+0eGi5BqDHivEhV2xSXXwy2EdOR3xLV+ta0/26wvSm+KTYpPmMzY/0QTZeZR2f+FxhRQAAAABJRU5ErkJggg==",z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACLSURBVDiN7dO9CQJBFEXhb38K0FwQrMNEVpuwB0NjrcYabECsQk0sQ1mTF4zIjrgmBh54MMx998AEwzOrmC5e8gJjbDHCJO7PHYI0v2JT4Ig9DljGwq5DkOZTLOCOMoIhBpknpHmFWx3ldaaUo6oTc2/ab7rl+508f8GvCC5oenTn4tM1cWg/nBNmD4fBH/Kfvt2TAAAAAElFTkSuQmCC",nt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAWQAAAFkBqp2phgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACQSURBVDiN7dKxDcJQDATQJ0YgXQQ1bAgDEIZBETPQwjakIjRQ8CMSyR8SiZKTrvHZd/r+JsYSNZrEI1ZR4ywzfElcJ55xwiITOECNTVDf4jDGoEEZ1Etcxxg8pmjRDiahb7BH20uKKPVUkVmL+YjQArdI+PT2bO9Pd/A34O71Rd9QeN/LAFUSckfUscWuG3oCgP8nrDH6T5AAAAAASUVORK5CYII=",lt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADFSURBVDiN7dCxSoIBFAXgr1BbgmgSB5ubxKAHaAkcgnBpySVaDET3WhzcpQfoHZojawgX0ZZcfAWDSDdBoeUKP/8ojZ7tnnPv4dzDFv+KZzwl5jf84B354C4wwjdeUV4vl7DCEsXgxmhigDpOMcMVjoKr7cTyI/ZxiE90wmCB4zi+RRatZOxd7OEavxHtBmvjIV5wH2a59N8ZXIZQisMCzkL/wgGq6EYffXzgHHNo4y5h+oBGlLjEBJVUiVP0cJJOtMUG+APtfyYzbH7eVgAAAABJRU5ErkJggg==",ct="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAB2AAAAdgFOeyYIAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAMxJREFUOI3t0bFKwlEUBvBfmmBEr1APIDZJ9AJJQyAIvkGP0C4uQruza+DUmuIc9AC9gBG4Nmpkw/8IB3Vw1w8u95zvnvPde77LEeUUV9HAF67QRA2nmMf5A+o4x3cWOsMYy8j7WMX6jaYbLBL/mAWe8RcHm1ihs8G94gVKQQzwlAouMcQo8p/Y28HdYpYFZmsi0MVdxD1MdrxsC500wijdvgtbI1AYtDbxMwkuFAZmE1uYwkkSqOIaHyHcxEU0vUXNPSqKr37fZ6xDwD9DPS0OyHjQHQAAAABJRU5ErkJggg==",it="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAC4SURBVDiNxdIxagJRFIXhLzLFBNJYaJslSEylWOhq3IorMGQ16SyjYCFiZWU5pTaDFvOUyTAZ8RHID69555577oXLf/OEGaY4R3g/4IhORHg3eOXYYvSAeRQ8OWQYYoNPvDQYnxUr7zBB1grCAv3QbIlxjXmAb7Txhq+rkFUKq9NUU8vcJiizwDtOWGEdmvTKqT+61H0GXsP7jSxpEGF/R1e3wkO0FBeVRnhTSBTneBB3yvOI4D/mAnvrIwKM5s4AAAAAAElFTkSuQmCC",K="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAnXAAAJ1wGxbhe3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAASVJREFUOI190r0uhFEQBuBnVxaF2PUTCkFchV0SV6BQi0rEbShFlCqNktJP0Iqf3i3YVSlXVEQozojP8e2+ySSTed+ZMzNnKnpjCFPhv+C9j/YPlnCBV3TCujhHq19iFftoYxOjBa4esTb2QvsP+7jFWJ9HxnEXRf5gGU9Z8gKucBl+sUgHTahE8AJnOCoIT/AcmhmsF7gtrGINBqWFFWcmLXMUhzjIuEbk1GA+2i/DNh4wUsK1MVfFV2GUHJO4xlsPHr8j1Eu44bAcDek2agP4lDZaxWMm3MEKbrL4hjT/8U+gJc00nglnw4qYkL5xMW9rTzqSvEiefI/dMrIaRTrSPzcKXCNinUguPeUfNKWj6kqH9Bz+aVnbvb6PtKTp8F/wUSb6Bu5YN5n7ff0kAAAAAElFTkSuQmCC",X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAnXAAAJ1wGxbhe3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAQtJREFUOI2F0jFOAlEQBuAPImoFqyTa6TEEbfUihruYDYfwCAg3UDsTY20na0VjgqUWWuxgHsuy/skk82bmn/fPm9eyHXs4Cn+Br4baNZxjhk8UYUtMMWwitjHGHNfoJrlexObIo3YDY9zjoOGSQzxEkzVc4O0fctqkwCANzkJiE9LmI9ytDrvKB+tWGQnylIAsOB04VcrfdluO55CeYo6THfygVUne4jX8S1zho1LTDu7fCL2KxCe8oF8zUqb8G51VYGrzEffD6jDCJA0MY6bqnHXoK9d4Vk3kyk/S1KSPR9zUJdvRpAiJWZLLIlYEufYrrzBQ7nyJ97ClcuYN2dX1pejgOPwFvuuKfgHXiDR+HL1j1AAAAABJRU5ErkJggg==",P="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAnXAAAJ1wGxbhe3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAARZJREFUOI2V0j1KQ1EQBeDPp4lWRiMoKVyAK9AoiLgJGytxD9oJNhKyDyvBnw2IugC3YGKVRk1KRbR48yC5vjzwwIHL3DPnzp2ZGdMxj9U4D/BZoZ3ANu4wQj84xC3aVYkZuujhCItjd42I9dAJ7R908YDlikeaeAyTCezgpST5IJia9LFVlA0nOMd7It4IjuMttKeFQR17uKooPcUV9lHL0ArX0T8MPqLa1hx+MDNFWDX7LHLV4/VGiWghmGJJvhu1WXzLO5rhORGeYRf3SfwQNVwWgbZ8SZqJcD04jhX5GDfTsjryJUlN0uQnXJRdZmHSx7H8nwWWItaP5NJVLrCFG3mTXoNDXJeVPW185E1ai/MAX2WiX9S3NSPYbj+uAAAAAElFTkSuQmCC",Z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAnXAAAJ1wGxbhe3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAARJJREFUOI2l0r8uRFEQBvAfu9glwUYiUaxHUEl0VDpKeq+wpZBINAqFRHgTKg0tCSqVhmKDEM1u/Esodm725rq7iC+ZzMnM982ZmXP4JwpdchWsYBrXeMkj9XQQV3GEi+BMYR63v+mqiDPUUrEaTiP3I1ZxEOcySnE+jFxXVPEQPimWiCYzOdCbKbCFPe1Z+8PgBvvBycVMCIdSsY2wBEPBmcnrYBtraKRib2EJGljHjswLLuI8Z6SS9hLTl15iIR08wZLv2AzLYjk0YATP8n9lVWbrgUJohosYxCdG8Zghdvp5ldCUi6hrPd0VjvGEVzTxEYLkogGMYQ67uEtvcgKzGA8y9IV/D9/Evdb89Q7d/Q1fB8U0mpUmzV0AAAAASUVORK5CYII=",dt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABfSURBVDiNY2AY8oCZSHWxDAwMEgwMDHfJsaSAgYHhH9QQsjT/Z2BgKKe75gQGiLMLCSlkwiHOSI6t6ADmhYoBN6SIARIeidgkiUlIxxkYGB4xMDB8YmBguE6JSwYpAACvLRHTKwPjZgAAAABJRU5ErkJggg==",mt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABNSURBVDiN3dAxCoAwFATRh3fU2oAHiDbi5Y1F2jT+gKLbzyy7/DYjUo8g4cTWI8koOF6XrOqc5ifDDVGJthfsj8OLujtHYJgwR+GP5QKMxA9/SolDQgAAAABJRU5ErkJggg==",ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABlSURBVDiN3ZLBDUBAEEUfmtCchA5woUMlOO1FCQrAwbqwf8eFhHd7mfzJn2Tg82TGvABywAmPUgOLD4XcDK9AJ/y5cOlrNsIvpCdPDL/FUbkX/t6Slv3+SjgQf6QBmIAZGAP+FzZJViOd89x8pAAAAABJRU5ErkJggg==",gt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABmSURBVDiN3dGxCoAgEMbxfz1dL1BTREJzmUv08trgDYcg6VCD3/YD7zvkoLmMgFEegLmmwAAecOJVvNeUWCAAt7IHjt9LThkyiRf9qC8oCom70u0BuDL+bngj/tNm/JqJePucW8wDvGYdzT0nMUkAAAAASUVORK5CYII=",Fo="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADNSURBVDiNndOxTgJRFIThz41ZDMFKqH0DLSRSq4lQ0RifUcMzUJlYQKjtLcHVSimBggPRNSzs/sk0kzPnTHEvxZyHKnGJD3yhXSWcYRnKwvvH0Y7wEG/4wQI1XOEek6LLF3FtiDoGoXp4WcxsSXILHjFCH/Nf/jy8ER6KGuTZNNhJvkFpEpygUyHbRi1BFy8VFryilyANlSVFerxn6N36IRVyG0PNEtdbkbmBU8zwdOCSJp4xRWNj3sWS5YGaRvM/f6GBa5ztafCJMb5hBQQ/MMwXLnnZAAAAAElFTkSuQmCC";var j=(t)=>{let{label:o,tip:e,value:A,error:r,isSearch:s,icon:n,type:c="text",...p}=t,i=c==="password",x=U.$(!1),S={text:lt,password:nt,date:z,number:ct,email:it},C=U.$html("input",{...p,type:()=>i?x()?"text":"password":c,placeholder:t.placeholder||o||(s?R("search")():" "),class:d("grow order-2 focus:outline-none",t.class),value:A,oninput:(B)=>t.oninput?.(B),disabled:()=>a(t.disabled)}),m=n?n:S[c]?U.$html("img",{src:S[c],class:"opacity-50",alt:c}):null;return U.$html("label",{class:()=>d("input input-bordered floating-label flex items-center gap-2 w-full relative",a(r)?"input-error":"")},[m?U.$html("div",{class:"order-1 shrink-0"},m):null,o?U.$html("span",{class:"text-base-content/60 order-0"},o):null,C,i?U.$html("button",{type:"button",class:"order-3 btn btn-ghost btn-xs btn-circle opacity-50 hover:opacity-100",onclick:(B)=>{B.preventDefault(),x(!x())}},()=>U.$html("img",{class:"w-5 h-5",src:x()?rt:st})):null,e?U.$html("div",{class:"tooltip tooltip-left order-4","data-tip":e},U.$html("span",{class:"badge badge-ghost badge-xs cursor-help"},"?")):null,()=>a(r)?U.$html("span",{class:"text-error text-[10px] absolute -bottom-5 left-2"},a(r)):null])};var Rt={};u(Rt,{Select:()=>yt});var L=b("sigpro");var yt=(t)=>{let{label:o,options:e,value:A,...r}=t,s=L.$html("select",{...r,class:d("select select-bordered w-full",t.class),value:A},L.$for(()=>a(e)||[],(n)=>L.$html("option",{value:n.value,$selected:()=>String(a(A))===String(n.value)},n.label),(n)=>n.value));if(!o)return s;return L.$html("label",{class:"fieldset-label flex flex-col gap-1"},[L.$html("span",{},o),s])};var kt={};u(kt,{Autocomplete:()=>Dt});var y=b("sigpro");var Dt=(t)=>{let{options:o=[],value:e,onSelect:A,label:r,placeholder:s,...n}=t,c=y.$(a(e)||""),p=y.$(!1),i=y.$(-1),x=y.$(()=>{let m=c().toLowerCase(),B=a(o)||[];return m?B.filter((H)=>(typeof H==="string"?H:H.label).toLowerCase().includes(m)):B}),S=(m)=>{let B=typeof m==="string"?m:m.value,H=typeof m==="string"?m:m.label;if(c(H),typeof e==="function")e(B);A?.(m),p(!1),i(-1)},C=(m)=>{let B=x();if(m.key==="ArrowDown")m.preventDefault(),p(!0),i(Math.min(i()+1,B.length-1));else if(m.key==="ArrowUp")m.preventDefault(),i(Math.max(i()-1,0));else if(m.key==="Enter"&&i()>=0)m.preventDefault(),S(B[i()]);else if(m.key==="Escape")p(!1)};return y.$html("div",{class:"relative w-full"},[j({label:r,placeholder:s||R("search")(),value:c,onfocus:()=>p(!0),onblur:()=>setTimeout(()=>p(!1),150),onkeydown:C,oninput:(m)=>{let B=m.target.value;if(c(B),typeof e==="function")e(B);p(!0),i(-1)},...n}),y.$html("ul",{class:"absolute left-0 w-full menu bg-base-100 rounded-box mt-1 p-2 shadow-xl max-h-60 overflow-y-auto border border-base-300 z-50",style:()=>p()&&x().length?"display:block":"display:none"},[y.$for(x,(m,B)=>y.$html("li",{},[y.$html("a",{class:()=>`block w-full ${i()===B?"active bg-primary text-primary-content":""}`,onclick:()=>S(m),onmouseenter:()=>i(B)},typeof m==="string"?m:m.label)]),(m,B)=>(typeof m==="string"?m:m.value)+B),()=>x().length?null:y.$html("li",{class:"p-2 text-center opacity-50"},"No results")])])};var Yt={};u(Yt,{Checkbox:()=>Et});var q=b("sigpro");var Et=(t)=>{let{value:o,tooltip:e,toggle:A,label:r,...s}=t,n=q.$html("input",{...s,type:"checkbox",class:()=>a(A)?"toggle":"checkbox",checked:o}),c=q.$html("label",{class:"label cursor-pointer justify-start gap-3"},[n,r?q.$html("span",{class:"label-text"},r):null]);return e?q.$html("div",{class:"tooltip","data-tip":e},c):c};var It={};u(It,{Radio:()=>Vt});var _=b("sigpro");var Vt=(t)=>{let{label:o,tooltip:e,value:A,...r}=t,s=_.$html("input",{...r,type:"radio",class:d("radio",t.class),checked:()=>a(A)===t.value,disabled:()=>a(t.disabled),onclick:()=>typeof A==="function"&&A(t.value)});if(!o&&!e)return s;let n=_.$html("label",{class:"label cursor-pointer justify-start gap-3"},[s,o?_.$html("span",{class:"label-text"},o):null]);return e?_.$html("div",{class:"tooltip","data-tip":e},n):n};var Qt={};u(Qt,{Range:()=>Ht});var tt=b("sigpro");var Ht=(t)=>{let{label:o,tooltip:e,value:A,...r}=t,s=tt.$html("input",{...r,type:"range",class:d("range",t.class),value:A,disabled:()=>a(t.disabled)});if(!o&&!e)return s;let n=tt.$html("div",{class:"flex flex-col gap-2"},[o?tt.$html("span",{class:"label-text"},o):null,s]);return e?tt.$html("div",{class:"tooltip","data-tip":e},n):n};var Ft={};u(Ft,{Rating:()=>Nt});var Mt=b("sigpro");var Nt=(t)=>{let{value:o,count:e=5,mask:A="mask-star",readonly:r=!1,...s}=t,n=`rating-${Math.random().toString(36).slice(2,7)}`;return Mt.$html("div",{...s,class:()=>`rating ${a(r)?"pointer-events-none":""} ${t.class||""}`},Array.from({length:a(e)},(c,p)=>{let i=p+1;return Mt.$html("input",{type:"radio",name:n,class:`mask ${A}`,"aria-label":`${i} star`,checked:()=>Math.round(a(o))===i,onchange:()=>{if(!a(r)&&typeof o==="function")o(i)}})}))};var Lt={};u(Lt,{Swap:()=>jt});var ot=b("sigpro");var jt=(t)=>ot.$html("label",{class:d("swap",t.class)},[ot.$html("input",{type:"checkbox",checked:t.value}),ot.$html("div",{class:"swap-on"},t.on),ot.$html("div",{class:"swap-off"},t.off)]);var Tt={};u(Tt,{Colorpicker:()=>Gt});var w=b("sigpro");var Gt=(t)=>{let{value:o,label:e,...A}=t,r=w.$(!1),s=["#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"],n=()=>a(o)||"#000000";return w.$html("div",{class:"relative w-fit"},[w.$html("button",{type:"button",class:"btn px-3 bg-base-100 border-base-300 hover:border-primary/50 flex items-center gap-2 shadow-sm font-normal normal-case",onclick:(c)=>{c.stopPropagation(),r(!r())},...A},[w.$html("div",{class:"size-5 rounded-sm shadow-inner border border-black/10 shrink-0",style:()=>`background-color: ${n()}`}),e?w.$html("span",{class:"opacity-80"},e):null]),w.$if(r,()=>w.$html("div",{class:"absolute left-0 mt-2 p-3 bg-base-100 border border-base-300 shadow-2xl rounded-box z-[110] w-64 select-none",onclick:(c)=>c.stopPropagation()},[w.$html("div",{class:"grid grid-cols-8 gap-1"},s.map((c)=>w.$html("button",{type:"button",style:`background-color: ${c}`,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 - ${n().toLowerCase()===c.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>{if(typeof o==="function")o(c);r(!1)}})))])),w.$if(r,()=>w.$html("div",{class:"fixed inset-0 z-[100]",onclick:()=>r(!1)}))])};var zt={};u(zt,{Datepicker:()=>Jt});var f=b("sigpro");var Jt=(t)=>{let{value:o,range:e,label:A,placeholder:r,hour:s=!1,...n}=t,c=f.$(!1),p=f.$(new Date),i=f.$(null),x=f.$(0),S=f.$(0),C=()=>a(e)===!0,m=new Date,B=`${m.getFullYear()}-${String(m.getMonth()+1).padStart(2,"0")}-${String(m.getDate()).padStart(2,"0")}`,H=(l)=>{let g=l.getFullYear(),v=String(l.getMonth()+1).padStart(2,"0"),Y=String(l.getDate()).padStart(2,"0");return`${g}-${v}-${Y}`},zo=(l)=>{let g=H(l),v=a(o);if(C())if(!v?.start||v.start&&v.end){if(typeof o==="function")o({start:g,end:null,...s&&{startHour:x()}})}else{let Y=v.start;if(typeof o==="function"){let $=g{let l=a(o);if(!l)return"";if(typeof l==="string"){if(s&&l.includes("T"))return l.replace("T"," ");return l}if(l.start&&l.end){let g=s&&l.startHour?`${l.start} ${String(l.startHour).padStart(2,"0")}:00`:l.start,v=s&&l.endHour?`${l.end} ${String(l.endHour).padStart(2,"0")}:00`:l.end;return`${g} - ${v}`}if(l.start)return`${s&&l.startHour?`${l.start} ${String(l.startHour).padStart(2,"0")}:00`:l.start}...`;return""}),Vo=(l)=>{let g=p();p(new Date(g.getFullYear(),g.getMonth()+l,1))},Io=(l)=>{let g=p();p(new Date(g.getFullYear()+l,g.getMonth(),1))},xt=({value:l,onChange:g})=>{return f.$html("div",{class:"flex-1"},[f.$html("div",{class:"flex gap-2 items-center"},[f.$html("input",{type:"range",min:0,max:23,value:l,class:"range range-xs flex-1",oninput:(v)=>{let Y=parseInt(v.target.value);g(Y)}}),f.$html("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(a(l)).padStart(2,"0")+":00")])])};return f.$html("div",{class:"relative w-full"},[j({label:A,placeholder:r||(C()?"Seleccionar rango...":"Seleccionar fecha..."),value:Ko,readonly:!0,icon:f.$html("img",{src:z,class:"opacity-40"}),onclick:(l)=>{l.stopPropagation(),c(!c())},...n}),f.$if(c,()=>f.$html("div",{class:"absolute left-0 mt-2 p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box z-[100] w-80 select-none",onclick:(l)=>l.stopPropagation()},[f.$html("div",{class:"flex justify-between items-center mb-4 gap-1"},[f.$html("div",{class:"flex gap-0.5"},[f.$html("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>Io(-1)},f.$html("img",{src:ft,class:"opacity-40"})),f.$html("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>Vo(-1)},f.$html("img",{src:dt,class:"opacity-40"}))]),f.$html("span",{class:"font-bold uppercase flex-1 text-center"},[()=>p().toLocaleString("es-ES",{month:"short",year:"numeric"})]),f.$html("div",{class:"flex gap-0.5"},[f.$html("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>Vo(1)},f.$html("img",{src:mt,class:"opacity-40"})),f.$html("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>Io(1)},f.$html("img",{src:gt,class:"opacity-40"}))])]),f.$html("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>i(null)},[...["L","M","X","J","V","S","D"].map((l)=>f.$html("div",{class:"text-[10px] opacity-40 font-bold text-center"},l)),()=>{let l=p(),g=l.getFullYear(),v=l.getMonth(),Y=new Date(g,v,1).getDay(),$=Y===0?6:Y-1,Xo=new Date(g,v+1,0).getDate(),Bt=[];for(let M=0;M<$;M++)Bt.push(f.$html("div"));for(let M=1;M<=Xo;M++){let Ho=new Date(g,v,M),D=H(Ho);Bt.push(f.$html("button",{type:"button",class:()=>{let V=a(o),ht=i(),Po=typeof V==="string"?V.split("T")[0]===D:V?.start===D,Zo=V?.end===D,St=!1;if(C()&&V?.start){let vt=V.start;if(!V.end&&ht)St=D>vt&&D<=ht||D=ht;else if(V.end)St=D>vt&&D{if(C())i(D)},onclick:()=>zo(Ho)},[M.toString()]))}return Bt}]),s?f.$html("div",{class:"mt-3 pt-2 border-t border-base-300"},[C()?f.$html("div",{class:"flex gap-4"},[xt({value:x,onChange:(l)=>{x(l);let g=a(o);if(g?.start)o({...g,startHour:l})}}),xt({value:S,onChange:(l)=>{S(l);let g=a(o);if(g?.end)o({...g,endHour:l})}})]):xt({value:x,onChange:(l)=>{x(l);let g=a(o);if(g&&typeof g==="string"&&g.includes("-"))o(g.split("T")[0]+"T"+String(l).padStart(2,"0")+":00:00")}})]):null])),f.$if(c,()=>f.$html("div",{class:"fixed inset-0 z-[90]",onclick:()=>c(!1)}))])};var Xt={};u(Xt,{Table:()=>Kt});var h=b("sigpro");var Kt=(t)=>{let{items:o=[],columns:e=[],keyFn:A,zebra:r=!1,pinRows:s=!1,empty:n=R("nodata")(),...c}=t;return h.$html("div",{class:"overflow-x-auto w-full bg-base-100 rounded-box border border-base-300"},[h.$html("table",{...c,class:()=>d("table",`${a(r)?"table-zebra":""} ${a(s)?"table-pin-rows":""} ${t.class||""}`)},[h.$html("thead",{},[h.$html("tr",{},e.map((i)=>h.$html("th",{class:i.class||""},i.label)))]),h.$html("tbody",{},[h.$for(o,(i,x)=>{return h.$html("tr",{class:"hover"},e.map((S)=>{let C=()=>{if(S.render)return S.render(i,x);let m=i[S.key];return a(m)};return h.$html("td",{class:S.class||""},[C])}))},A||((i,x)=>i.id||x)),h.$if(()=>a(o).length===0,()=>h.$html("tr",{},[h.$html("td",{colspan:e.length,class:"text-center p-10 opacity-50"},[a(n)])]))]),h.$if(()=>e.some((i)=>i.footer),()=>h.$html("tfoot",{},[h.$html("tr",{},e.map((i)=>h.$html("th",{},i.footer||"")))]))])])};var Zt={};u(Zt,{List:()=>Pt});var Q=b("sigpro");var Pt=(t)=>{let{items:o,header:e,render:A,keyFn:r,class:s}=t;return Q.$html("ul",{class:d("list bg-base-100 rounded-box shadow-md",s)},[Q.$if(e,()=>Q.$html("li",{class:"p-4 pb-2 text-xs opacity-60 tracking-wide"},[a(e)])),Q.$for(o,(n,c)=>Q.$html("li",{class:"list-row"},[A(n,c)]),r)])};var Wt={};u(Wt,{Stat:()=>Ot});var O=b("sigpro");var Ot=(t)=>O.$html("div",{...t,class:d("stat",t.class)},[t.icon&&O.$html("div",{class:"stat-figure text-secondary"},t.icon),t.label&&O.$html("div",{class:"stat-title"},t.label),O.$html("div",{class:"stat-value"},()=>a(t.value)??t.value),t.desc&&O.$html("div",{class:"stat-desc"},t.desc)]);var qt={};u(qt,{Timeline:()=>$t});var k=b("sigpro");var $t=(t)=>{let{items:o=[],vertical:e=!0,compact:A=!1,...r}=t,s={info:K,success:X,warning:Z,error:P};return k.$html("ul",{...r,class:()=>`timeline ${a(e)?"timeline-vertical":"timeline-horizontal"} ${a(A)?"timeline-compact":""} ${t.class||""}`},[k.$for(o,(n,c)=>{let p=c===0,i=c===a(o).length-1,x=n.type||"success",S=(C)=>typeof C==="function"?C():C;return k.$html("li",{class:"flex-1"},[!p?k.$html("hr",{class:n.completed?"bg-primary":""}):null,k.$html("div",{class:"timeline-start"},[S(n.title)]),k.$html("div",{class:"timeline-middle"},[k.$html("img",{src:s[x]||n.icon||s.success,class:"w-4 h-4 object-contain mx-1",alt:x})]),k.$html("div",{class:"timeline-end timeline-box shadow-sm"},[S(n.detail)]),!i?k.$html("hr",{class:n.completed?"bg-primary":""}):null])},(n,c)=>n.id||c)])};var to={};u(to,{Badge:()=>_t});var jo=b("sigpro");var _t=(t,o)=>jo.$html("span",{...t,class:d("badge",t.class)},o);var eo={};u(eo,{Tooltip:()=>oo});var Lo=b("sigpro");var oo=(t,o)=>Lo.$html("div",{...t,class:d("tooltip",t.class),"data-tip":t.tip},o);var ao={};u(ao,{Menu:()=>Ao});var E=b("sigpro");var Ao=(t)=>{let o=(e)=>E.$for(()=>e||[],(A)=>E.$html("li",{},[A.children?E.$html("details",{open:A.open},[E.$html("summary",{},[A.icon&&E.$html("span",{class:"mr-2"},A.icon),A.label]),E.$html("ul",{},o(A.children))]):E.$html("a",{class:()=>a(A.active)?"active":"",onclick:A.onclick},[A.icon&&E.$html("span",{class:"mr-2"},A.icon),A.label])]),(A,r)=>A.label||r);return E.$html("ul",{...t,class:d("menu bg-base-200 rounded-box",t.class)},o(t.items))};var so={};u(so,{Navbar:()=>ro});var Go=b("sigpro");var ro=(t,o)=>Go.$html("div",{...t,class:d("navbar bg-base-100 shadow-sm px-4",t.class)},o);var lo={};u(lo,{Tabs:()=>no});var G=b("sigpro");var no=(t)=>{let{items:o,...e}=t,A=typeof o==="function"?o:()=>o||[];return G.$html("div",{...e,class:"flex flex-col gap-4 w-full"},[G.$html("div",{role:"tablist",class:d("tabs tabs-box",t.class)},G.$for(A,(r)=>G.$html("a",{role:"tab",class:()=>d("tab",a(r.active)&&"tab-active",a(r.disabled)&&"tab-disabled",r.tip&&"tooltip"),"data-tip":r.tip,onclick:(s)=>!a(r.disabled)&&r.onclick?.(s)},r.label),(r)=>r.label)),()=>{let r=A().find((n)=>a(n.active));if(!r)return null;let s=a(r.content);return G.$html("div",{class:"p-4"},[typeof s==="function"?s():s])}])};var io={};u(io,{Accordion:()=>co});var et=b("sigpro");var co=(t,o)=>{let{title:e,name:A,open:r,...s}=t;return et.$html("div",{...s,class:d("collapse collapse-arrow bg-base-200 mb-2",t.class)},[et.$html("input",{type:A?"radio":"checkbox",name:A,checked:r}),et.$html("div",{class:"collapse-title text-xl font-medium"},e),et.$html("div",{class:"collapse-content"},o)])};var fo={};u(fo,{Drawer:()=>mo});var T=b("sigpro");var mo=(t)=>T.$html("div",{class:d("drawer",t.class)},[T.$html("input",{id:t.id,type:"checkbox",class:"drawer-toggle",checked:t.open}),T.$html("div",{class:"drawer-content"},t.content),T.$html("div",{class:"drawer-side"},[T.$html("label",{for:t.id,class:"drawer-overlay",onclick:()=>t.open?.(!1)}),T.$html("div",{class:"min-h-full bg-base-200 w-80"},t.side)])]);var uo={};u(uo,{Stack:()=>go});var To=b("sigpro");var go=(t,o)=>To.$html("div",{...t,class:d("stack",t.class)},o);var xo={};u(xo,{Indicator:()=>po});var bo=b("sigpro");var po=(t,o)=>bo.$html("div",{class:d("indicator",t.class)},[o,bo.$html("span",{class:d("indicator-item badge",t.badgeClass)},t.badge)]);var So={};u(So,{Fieldset:()=>ho});var Bo=b("sigpro");var ho=(t,o)=>Bo.$html("fieldset",{...t,class:d("fieldset bg-base-200 border border-base-300 p-4 rounded-lg",t.class)},[()=>{let e=a(t.legend);return e?Bo.$html("legend",{class:"fieldset-legend font-bold"},[e]):null},o]);var Co={};u(Co,{Modal:()=>vo});var I=b("sigpro");var vo=(t,o)=>{let{title:e,buttons:A,open:r,...s}=t,n=()=>r(!1);return I.$if(r,()=>I.$html("dialog",{...s,class:"modal modal-open"},[I.$html("div",{class:"modal-box"},[e?I.$html("h3",{class:"text-lg font-bold mb-4"},e):null,typeof o==="function"?o():o,I.$html("div",{class:"modal-action flex gap-2"},[...(Array.isArray(A)?A:[A]).filter(Boolean),F({onclick:n},R("close")())])]),I.$html("form",{method:"dialog",class:"modal-backdrop",onclick:(c)=>(c.preventDefault(),n())},[I.$html("button",{},"close")])]))};var Uo={};u(Uo,{Dropdown:()=>wo});var bt=b("sigpro");var wo=(t,o)=>{let{label:e,icon:A,...r}=t;return bt.$html("div",{...r,class:()=>`dropdown ${a(t.class)||t.class||""}`},[bt.$html("div",{tabindex:0,role:"button",class:"btn m-1 flex items-center gap-2"},[A?typeof A==="function"?A():A:null,e?typeof e==="function"?e():e:null]),bt.$html("ul",{tabindex:0,class:"dropdown-content z-[50] menu p-2 shadow bg-base-100 rounded-box min-w-max border border-base-300"},[typeof o==="function"?o():o])])};var Ro={};u(Ro,{Alert:()=>yo});var W=b("sigpro");var yo=(t,o)=>{let{type:e="info",soft:A=!0,...r}=t,s={info:K,success:X,warning:Z,error:P},n=()=>{let p=a(e);return{info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-error"}[p]||p},c=o||t.message;return W.$html("div",{...r,role:"alert",class:()=>`alert ${n()} ${a(A)?"alert-soft":""} ${t.class||""}`},[W.$html("img",{src:s[a(e)]||s.info,class:"w-4 h-4 object-contain",alt:a(e)}),W.$html("div",{class:"flex-1"},[W.$html("span",{},[typeof c==="function"?c():c])]),t.actions?W.$html("div",{class:"flex-none"},[typeof t.actions==="function"?t.actions():t.actions]):null])};var ko={};u(ko,{Toast:()=>Do});var J=b("sigpro");var Do=(t,o="alert-success",e=3500)=>{let A=document.getElementById("sigpro-toast-container");if(!A)A=J.$html("div",{id:"sigpro-toast-container",class:"fixed top-0 right-0 z-[9999] p-4 flex flex-col gap-2 pointer-events-none"}),document.body.appendChild(A);let r=J.$html("div",{style:"display: contents"});A.appendChild(r);let s,n=()=>{clearTimeout(s);let i=r.firstElementChild;if(i&&!i.classList.contains("opacity-0"))i.classList.add("translate-x-full","opacity-0"),setTimeout(()=>{if(p.destroy(),r.remove(),!A.hasChildNodes())A.remove()},300);else p.destroy(),r.remove()},p=J.$mount(()=>{let i=J.$html("div",{class:`alert alert-soft ${o} shadow-lg transition-all duration-300 translate-x-10 opacity-0 pointer-events-auto`},[J.$html("span",{},[typeof t==="function"?t():t]),F({class:"btn-xs btn-circle btn-ghost",onclick:n},"✕")]);return requestAnimationFrame(()=>i.classList.remove("translate-x-10","opacity-0")),i},r);if(e>0)s=setTimeout(n,e);return n};var Yo={};u(Yo,{Loading:()=>Eo});var At=b("sigpro"),Eo=(t)=>{return At.$if(t.$show,()=>At.$html("div",{class:"fixed inset-0 z-[100] flex items-center justify-center backdrop-blur-sm bg-base-100/30"},[At.$html("span",{class:"loading loading-spinner loading-lg text-primary"})]))};var Jo={...wt,...Ut,...Rt,...kt,...Yt,...It,...Qt,...Ft,...Lt,...Tt,...zt,...Xt,...Zt,...Wt,...qt,...to,...eo,...ao,...so,...lo,...io,...fo,...uo,...xo,...So,...Co,...Uo,...Ro,...ko,...Yo},oe={...Jo,install:(t=window)=>{Object.entries(Jo).forEach(([o,e])=>{t[o]=e})}};var ee={...pt,Icons:ut,Utils:at,tt:R,install:(t=typeof window<"u"?window:{})=>{Object.entries(pt).forEach(([o,e])=>{t[o]=e}),t.Icons=ut,t.Utils=at,t.tt=R,console.log("\uD83C\uDF1F SigproUI")}},ae=ee;})(); +(()=>{var{defineProperty:Rt,getOwnPropertyNames:oe,getOwnPropertyDescriptor:ee}=Object,ae=Object.prototype.hasOwnProperty;var zo=new WeakMap,Ae=(t)=>{var o=zo.get(t),e;if(o)return o;if(o=Rt({},"__esModule",{value:!0}),t&&typeof t==="object"||typeof t==="function")oe(t).map((a)=>!ae.call(o,a)&&Rt(o,a,{get:()=>t[a],enumerable:!(e=ee(t,a))||e.enumerable}));return zo.set(t,o),o};var g=(t,o)=>{for(var e in o)Rt(t,e,{get:o[e],enumerable:!0,configurable:!0,set:(a)=>o[e]=()=>a})};var p=((t)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(o,e)=>(typeof require<"u"?require:o)[e]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var ce={};g(ce,{val:()=>A,tt:()=>D,joinClass:()=>d,iconWarning:()=>O,iconUpload:()=>xt,iconSuccess:()=>P,iconShow:()=>nt,iconRight:()=>ut,iconRRight:()=>pt,iconMail:()=>ft,iconLock:()=>it,iconLeft:()=>gt,iconLLeft:()=>bt,iconInfo:()=>X,iconHide:()=>lt,iconError:()=>Z,iconClose:()=>ct,iconCalendar:()=>K,iconAbc:()=>dt,icon123:()=>mt,default:()=>ie,Tooltip:()=>No,Toast:()=>Fo,Timeline:()=>Mo,Tabs:()=>Vo,Table:()=>Eo,Swap:()=>Do,Stat:()=>Uo,Stack:()=>Co,Select:()=>wo,Rating:()=>Bo,Range:()=>po,Radio:()=>uo,Navbar:()=>fo,Modal:()=>io,Menu:()=>lo,Loading:()=>ro,List:()=>Ao,Input:()=>N,Indicator:()=>eo,Fileinput:()=>_t,Fieldset:()=>$t,Fab:()=>Zt,Dropdown:()=>Xt,Drawer:()=>Jt,Datepicker:()=>Gt,Colorpicker:()=>Lt,Checkbox:()=>Nt,Button:()=>L,Badge:()=>Ht,Autocomplete:()=>It,Alert:()=>Et,Accordion:()=>Dt});var vt={};g(vt,{default:()=>ne,Tooltip:()=>No,Toast:()=>Fo,Timeline:()=>Mo,Tabs:()=>Vo,Table:()=>Eo,Swap:()=>Do,Stat:()=>Uo,Stack:()=>Co,Select:()=>wo,Rating:()=>Bo,Range:()=>po,Radio:()=>uo,Navbar:()=>fo,Modal:()=>io,Menu:()=>lo,Loading:()=>ro,List:()=>Ao,Input:()=>N,Indicator:()=>eo,Fileinput:()=>_t,Fieldset:()=>$t,Fab:()=>Zt,Dropdown:()=>Xt,Drawer:()=>Jt,Datepicker:()=>Gt,Colorpicker:()=>Lt,Checkbox:()=>Nt,Button:()=>L,Badge:()=>Ht,Autocomplete:()=>It,Alert:()=>Et,Accordion:()=>Dt});var kt={};g(kt,{Accordion:()=>Dt});var tt=p("sigpro");var rt={};g(rt,{val:()=>A,joinClass:()=>d});var A=(t)=>typeof t==="function"?t():t,d=(t,o)=>typeof o==="function"?()=>`${t} ${o()||""}`.trim():`${t} ${o||""}`.trim();var Dt=(t,o)=>{let{title:e,name:a,open:s,...n}=t;return tt.$html("div",{...n,class:d("collapse collapse-arrow bg-base-200 mb-2",t.class)},[tt.$html("input",{type:a?"radio":"checkbox",name:a,checked:s}),tt.$html("div",{class:"collapse-title text-xl font-medium"},e),tt.$html("div",{class:"collapse-content"},o)])};var Yt={};g(Yt,{Alert:()=>Et});var W=p("sigpro");var ht={};g(ht,{iconWarning:()=>O,iconUpload:()=>xt,iconSuccess:()=>P,iconShow:()=>nt,iconRight:()=>ut,iconRRight:()=>pt,iconMail:()=>ft,iconLock:()=>it,iconLeft:()=>gt,iconLLeft:()=>bt,iconInfo:()=>X,iconHide:()=>lt,iconError:()=>Z,iconClose:()=>ct,iconCalendar:()=>K,iconAbc:()=>dt,icon123:()=>mt});var nt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADjSURBVDiN3dJNSgNBEAXgz4DZeAAVJ9tko2St3kaIFxAVt4KZeAD1GKKi7vQSydI/yHgALxAXU02GxniAFBR0v1ev+3V1sZSxjxtM8BM5wTX2/hNu4gFvOMI21iJ3cIwP3GMjF/dQ4RyraOMS34GPAmvjIrBeEnfwjoPGgSM8ooh8QtngB6Ep4BWnmaMqkY1LqqzmDC8tzNDK3/RHzLL9SloUYWfQIMuw3Yl8xrDBH6qbvZWALqbqBqVmlWF7GuKEDwPr5hbXcYdPnKBv/o39wL5wG7ULY1c9NGPzQRrjKrhli1/02zEjWyWMBwAAAABJRU5ErkJggg==",lt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAEDSURBVDiN1dK/K8VhFAbwD+VLGSxKcu9guSQ/Zils/gNkuaX4BxRZDTdklYU/QAaDlEVGGwu2Kz/uVbKJzWDwfuv1+jHz1Km3c85znuf0Hv4jxnD2W8MItnCJ5xAX2MQcHsOQL+jEAapYQD9aQwxiDy+B3JKSe1DHCpqQYQ0PeMJOpDyAmyAAirjGbDRwFYcoYCZSzjGP+8B1gqXEUT2QxyPlqaRnGceNeENzUswwil1MBocbSU9DCAXUUI6K25HtIo5QSVaooitP9OEO65iIbE+HXSvBVRbeNZQSR9pxGil3o83HNw5hEbfYR0dKFki5ci+u8OrzIQ1/R8xx7ocL+9t4B0HPOVXjoptxAAAAAElFTkSuQmCC",ct="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABcSURBVDiN3dIxDoAwCIXhL563g3bSm+hlq4O6GFNbO+k/EV54QIDfsSBk9IA5ZxCQEG+0eGi5BqDHivEhV2xSXXwy2EdOR3xLV+ta0/26wvSm+KTYpPmMzY/0QTZeZR2f+FxhRQAAAABJRU5ErkJggg==",K="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACLSURBVDiN7dO9CQJBFEXhb38K0FwQrMNEVpuwB0NjrcYabECsQk0sQ1mTF4zIjrgmBh54MMx998AEwzOrmC5e8gJjbDHCJO7PHYI0v2JT4Ig9DljGwq5DkOZTLOCOMoIhBpknpHmFWx3ldaaUo6oTc2/ab7rl+508f8GvCC5oenTn4tM1cWg/nBNmD4fBH/Kfvt2TAAAAAElFTkSuQmCC",it="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAWQAAAFkBqp2phgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAACQSURBVDiN7dKxDcJQDATQJ0YgXQQ1bAgDEIZBETPQwjakIjRQ8CMSyR8SiZKTrvHZd/r+JsYSNZrEI1ZR4ywzfElcJ55xwiITOECNTVDf4jDGoEEZ1Etcxxg8pmjRDiahb7BH20uKKPVUkVmL+YjQArdI+PT2bO9Pd/A34O71Rd9QeN/LAFUSckfUscWuG3oCgP8nrDH6T5AAAAAASUVORK5CYII=",dt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADFSURBVDiN7dCxSoIBFAXgr1BbgmgSB5ubxKAHaAkcgnBpySVaDET3WhzcpQfoHZojawgX0ZZcfAWDSDdBoeUKP/8ojZ7tnnPv4dzDFv+KZzwl5jf84B354C4wwjdeUV4vl7DCEsXgxmhigDpOMcMVjoKr7cTyI/ZxiE90wmCB4zi+RRatZOxd7OEavxHtBmvjIV5wH2a59N8ZXIZQisMCzkL/wgGq6EYffXzgHHNo4y5h+oBGlLjEBJVUiVP0cJJOtMUG+APtfyYzbH7eVgAAAABJRU5ErkJggg==",mt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAB2AAAAdgFOeyYIAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAMxJREFUOI3t0bFKwlEUBvBfmmBEr1APIDZJ9AJJQyAIvkGP0C4uQruza+DUmuIc9AC9gBG4Nmpkw/8IB3Vw1w8u95zvnvPde77LEeUUV9HAF67QRA2nmMf5A+o4x3cWOsMYy8j7WMX6jaYbLBL/mAWe8RcHm1ihs8G94gVKQQzwlAouMcQo8p/Y28HdYpYFZmsi0MVdxD1MdrxsC500wijdvgtbI1AYtDbxMwkuFAZmE1uYwkkSqOIaHyHcxEU0vUXNPSqKr37fZ6xDwD9DPS0OyHjQHQAAAABJRU5ErkJggg==",ft="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAC4SURBVDiNxdIxagJRFIXhLzLFBNJYaJslSEylWOhq3IorMGQ16SyjYCFiZWU5pTaDFvOUyTAZ8RHID69555577oXLf/OEGaY4R3g/4IhORHg3eOXYYvSAeRQ8OWQYYoNPvDQYnxUr7zBB1grCAv3QbIlxjXmAb7Txhq+rkFUKq9NUU8vcJiizwDtOWGEdmvTKqT+61H0GXsP7jSxpEGF/R1e3wkO0FBeVRnhTSBTneBB3yvOI4D/mAnvrIwKM5s4AAAAAAElFTkSuQmCC",X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAnXAAAJ1wGxbhe3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAASVJREFUOI190r0uhFEQBuBnVxaF2PUTCkFchV0SV6BQi0rEbShFlCqNktJP0Iqf3i3YVSlXVEQozojP8e2+ySSTed+ZMzNnKnpjCFPhv+C9j/YPlnCBV3TCujhHq19iFftoYxOjBa4esTb2QvsP+7jFWJ9HxnEXRf5gGU9Z8gKucBl+sUgHTahE8AJnOCoIT/AcmhmsF7gtrGINBqWFFWcmLXMUhzjIuEbk1GA+2i/DNh4wUsK1MVfFV2GUHJO4xlsPHr8j1Eu44bAcDek2agP4lDZaxWMm3MEKbrL4hjT/8U+gJc00nglnw4qYkL5xMW9rTzqSvEiefI/dMrIaRTrSPzcKXCNinUguPeUfNKWj6kqH9Bz+aVnbvb6PtKTp8F/wUSb6Bu5YN5n7ff0kAAAAAElFTkSuQmCC",P="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAnXAAAJ1wGxbhe3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAQtJREFUOI2F0jFOAlEQBuAPImoFqyTa6TEEbfUihruYDYfwCAg3UDsTY20na0VjgqUWWuxgHsuy/skk82bmn/fPm9eyHXs4Cn+Br4baNZxjhk8UYUtMMWwitjHGHNfoJrlexObIo3YDY9zjoOGSQzxEkzVc4O0fctqkwCANzkJiE9LmI9ytDrvKB+tWGQnylIAsOB04VcrfdluO55CeYo6THfygVUne4jX8S1zho1LTDu7fCL2KxCe8oF8zUqb8G51VYGrzEffD6jDCJA0MY6bqnHXoK9d4Vk3kyk/S1KSPR9zUJdvRpAiJWZLLIlYEufYrrzBQ7nyJ97ClcuYN2dX1pejgOPwFvuuKfgHXiDR+HL1j1AAAAABJRU5ErkJggg==",Z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAnXAAAJ1wGxbhe3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAARZJREFUOI2V0j1KQ1EQBeDPp4lWRiMoKVyAK9AoiLgJGytxD9oJNhKyDyvBnw2IugC3YGKVRk1KRbR48yC5vjzwwIHL3DPnzp2ZGdMxj9U4D/BZoZ3ANu4wQj84xC3aVYkZuujhCItjd42I9dAJ7R908YDlikeaeAyTCezgpST5IJia9LFVlA0nOMd7It4IjuMttKeFQR17uKooPcUV9lHL0ArX0T8MPqLa1hx+MDNFWDX7LHLV4/VGiWghmGJJvhu1WXzLO5rhORGeYRf3SfwQNVwWgbZ8SZqJcD04jhX5GDfTsjryJUlN0uQnXJRdZmHSx7H8nwWWItaP5NJVLrCFG3mTXoNDXJeVPW185E1ai/MAX2WiX9S3NSPYbj+uAAAAAElFTkSuQmCC",O="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAnXAAAJ1wGxbhe3AAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAARJJREFUOI2l0r8uRFEQBvAfu9glwUYiUaxHUEl0VDpKeq+wpZBINAqFRHgTKg0tCSqVhmKDEM1u/Esodm725rq7iC+ZzMnM982ZmXP4JwpdchWsYBrXeMkj9XQQV3GEi+BMYR63v+mqiDPUUrEaTiP3I1ZxEOcySnE+jFxXVPEQPimWiCYzOdCbKbCFPe1Z+8PgBvvBycVMCIdSsY2wBEPBmcnrYBtraKRib2EJGljHjswLLuI8Z6SS9hLTl15iIR08wZLv2AzLYjk0YATP8n9lVWbrgUJohosYxCdG8Zghdvp5ldCUi6hrPd0VjvGEVzTxEYLkogGMYQ67uEtvcgKzGA8y9IV/D9/Evdb89Q7d/Q1fB8U0mpUmzV0AAAAASUVORK5CYII=",gt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABfSURBVDiNY2AY8oCZSHWxDAwMEgwMDHfJsaSAgYHhH9QQsjT/Z2BgKKe75gQGiLMLCSlkwiHOSI6t6ADmhYoBN6SIARIeidgkiUlIxxkYGB4xMDB8YmBguE6JSwYpAACvLRHTKwPjZgAAAABJRU5ErkJggg==",ut="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABNSURBVDiN3dAxCoAwFATRh3fU2oAHiDbi5Y1F2jT+gKLbzyy7/DYjUo8g4cTWI8koOF6XrOqc5ifDDVGJthfsj8OLujtHYJgwR+GP5QKMxA9/SolDQgAAAABJRU5ErkJggg==",bt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABlSURBVDiN3ZLBDUBAEEUfmtCchA5woUMlOO1FCQrAwbqwf8eFhHd7mfzJn2Tg82TGvABywAmPUgOLD4XcDK9AJ/y5cOlrNsIvpCdPDL/FUbkX/t6Slv3+SjgQf6QBmIAZGAP+FzZJViOd89x8pAAAAABJRU5ErkJggg==",pt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAABmSURBVDiN3dGxCoAgEMbxfz1dL1BTREJzmUv08trgDYcg6VCD3/YD7zvkoLmMgFEegLmmwAAecOJVvNeUWCAAt7IHjt9LThkyiRf9qC8oCom70u0BuDL+bngj/tNm/JqJePucW8wDvGYdzT0nMUkAAAAASUVORK5CYII=",xt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAdgAAAHYBTnsmCAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAADNSURBVDiNndOxTgJRFIThz41ZDMFKqH0DLSRSq4lQ0RifUcMzUJlYQKjtLcHVSimBggPRNSzs/sk0kzPnTHEvxZyHKnGJD3yhXSWcYRnKwvvH0Y7wEG/4wQI1XOEek6LLF3FtiDoGoXp4WcxsSXILHjFCH/Nf/jy8ER6KGuTZNNhJvkFpEpygUyHbRi1BFy8VFryilyANlSVFerxn6N36IRVyG0PNEtdbkbmBU8zwdOCSJp4xRWNj3sWS5YGaRvM/f6GBa5ztafCJMb5hBQQ/MMwXLnnZAAAAAElFTkSuQmCC";var Et=(t,o)=>{let{type:e="info",soft:a=!0,...s}=t,n={info:X,success:P,warning:O,error:Z},r=()=>{let x=A(e);return{info:"alert-info",success:"alert-success",warning:"alert-warning",error:"alert-error"}[x]||x},l=o||t.message;return W.$html("div",{...s,role:"alert",class:()=>`alert ${r()} ${A(a)?"alert-soft":""} ${t.class||""}`},[W.$html("img",{src:n[A(e)]||n.info,class:"w-4 h-4 object-contain",alt:A(e)}),W.$html("div",{class:"flex-1"},[W.$html("span",{},[typeof l==="function"?l():l])]),t.actions?W.$html("div",{class:"flex-none"},[typeof t.actions==="function"?t.actions():t.actions]):null])};var Mt={};g(Mt,{Autocomplete:()=>It});var R=p("sigpro");var Jo=p("sigpro"),se={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"}},re=Jo.$("es");var D=(t)=>()=>se[re()][t]||t;var Vt={};g(Vt,{Input:()=>N});var U=p("sigpro");var N=(t)=>{let{label:o,tip:e,value:a,error:s,isSearch:n,icon:r,type:l="text",...x}=t,c=l==="password",h=U.$(!1),u={text:dt,password:it,date:K,number:mt,email:ft},w=U.$html("input",{...x,type:()=>c?h()?"text":"password":l,placeholder:t.placeholder||o||(n?D("search")():" "),class:d("grow order-2 focus:outline-none",t.class),value:a,oninput:(v)=>t.oninput?.(v),disabled:()=>A(t.disabled)}),m=r?r:u[l]?U.$html("img",{src:u[l],class:"opacity-50",alt:l}):null;return U.$html("label",{class:()=>d("input input-bordered floating-label flex items-center gap-2 w-full relative",A(s)?"input-error":"")},[m?U.$html("div",{class:"order-1 shrink-0"},m):null,o?U.$html("span",{class:"text-base-content/60 order-0"},o):null,w,c?U.$html("button",{type:"button",class:"order-3 btn btn-ghost btn-xs btn-circle opacity-50 hover:opacity-100",onclick:(v)=>{v.preventDefault(),h(!h())}},()=>U.$html("img",{class:"w-5 h-5",src:h()?nt:lt})):null,e?U.$html("div",{class:"tooltip tooltip-left order-4","data-tip":e},U.$html("span",{class:"badge badge-ghost badge-xs cursor-help"},"?")):null,()=>A(s)?U.$html("span",{class:"text-error text-[10px] absolute -bottom-5 left-2"},A(s)):null])};var It=(t)=>{let{options:o=[],value:e,onSelect:a,label:s,placeholder:n,...r}=t,l=R.$(A(e)||""),x=R.$(!1),c=R.$(-1),h=R.$(()=>{let m=l().toLowerCase(),v=A(o)||[];return m?v.filter((H)=>(typeof H==="string"?H:H.label).toLowerCase().includes(m)):v}),u=(m)=>{let v=typeof m==="string"?m:m.value,H=typeof m==="string"?m:m.label;if(l(H),typeof e==="function")e(v);a?.(m),x(!1),c(-1)},w=(m)=>{let v=h();if(m.key==="ArrowDown")m.preventDefault(),x(!0),c(Math.min(c()+1,v.length-1));else if(m.key==="ArrowUp")m.preventDefault(),c(Math.max(c()-1,0));else if(m.key==="Enter"&&c()>=0)m.preventDefault(),u(v[c()]);else if(m.key==="Escape")x(!1)};return R.$html("div",{class:"relative w-full"},[N({label:s,placeholder:n||D("search")(),value:l,onfocus:()=>x(!0),onblur:()=>setTimeout(()=>x(!1),150),onkeydown:w,oninput:(m)=>{let v=m.target.value;if(l(v),typeof e==="function")e(v);x(!0),c(-1)},...r}),R.$html("ul",{class:"absolute left-0 w-full menu bg-base-100 rounded-box mt-1 p-2 shadow-xl max-h-60 overflow-y-auto border border-base-300 z-50",style:()=>x()&&h().length?"display:block":"display:none"},[R.$for(h,(m,v)=>R.$html("li",{},[R.$html("a",{class:()=>`block w-full ${c()===v?"active bg-primary text-primary-content":""}`,onclick:()=>u(m),onmouseenter:()=>c(v)},typeof m==="string"?m:m.label)]),(m,v)=>(typeof m==="string"?m:m.value)+v),()=>h().length?null:R.$html("li",{class:"p-2 text-center opacity-50"},"No results")])])};var Ft={};g(Ft,{Badge:()=>Ht});var Ko=p("sigpro");var Ht=(t,o)=>Ko.$html("span",{...t,class:d("badge",t.class)},o);var Qt={};g(Qt,{Button:()=>L});var j=p("sigpro");var L=(t,o)=>{let{badge:e,badgeClass:a,tooltip:s,icon:n,loading:r,...l}=t,c=j.$html("button",{...l,class:d("btn",t.class),disabled:()=>A(r)||A(t.disabled)},[()=>A(r)?j.$html("span",{class:"loading loading-spinner"}):null,n?j.$html("span",{class:"mr-1"},n):null,o]);if(e)c=j.$html("div",{class:"indicator"},[j.$html("span",{class:d("indicator-item badge",a||"badge-secondary")},e),c]);return s?j.$html("div",{class:"tooltip","data-tip":s},c):c};var jt={};g(jt,{Checkbox:()=>Nt});var ot=p("sigpro");var Nt=(t)=>{let{value:o,tooltip:e,toggle:a,label:s,...n}=t,r=ot.$html("input",{...n,type:"checkbox",class:()=>A(a)?"toggle":"checkbox",checked:o}),l=ot.$html("label",{class:"label cursor-pointer justify-start gap-3"},[r,s?ot.$html("span",{class:"label-text"},s):null]);return e?ot.$html("div",{class:"tooltip","data-tip":e},l):l};var Tt={};g(Tt,{Colorpicker:()=>Lt});var y=p("sigpro");var Lt=(t)=>{let{value:o,label:e,...a}=t,s=y.$(!1),n=["#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"],r=()=>A(o)||"#000000";return y.$html("div",{class:"relative w-fit"},[y.$html("button",{type:"button",class:"btn px-3 bg-base-100 border-base-300 hover:border-primary/50 flex items-center gap-2 shadow-sm font-normal normal-case",onclick:(l)=>{l.stopPropagation(),s(!s())},...a},[y.$html("div",{class:"size-5 rounded-sm shadow-inner border border-black/10 shrink-0",style:()=>`background-color: ${r()}`}),e?y.$html("span",{class:"opacity-80"},e):null]),y.$if(s,()=>y.$html("div",{class:"absolute left-0 mt-2 p-3 bg-base-100 border border-base-300 shadow-2xl rounded-box z-[110] w-64 select-none",onclick:(l)=>l.stopPropagation()},[y.$html("div",{class:"grid grid-cols-8 gap-1"},n.map((l)=>y.$html("button",{type:"button",style:`background-color: ${l}`,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 + ${r().toLowerCase()===l.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>{if(typeof o==="function")o(l);s(!1)}})))])),y.$if(s,()=>y.$html("div",{class:"fixed inset-0 z-[100]",onclick:()=>s(!1)}))])};var zt={};g(zt,{Datepicker:()=>Gt});var f=p("sigpro");var Gt=(t)=>{let{value:o,range:e,label:a,placeholder:s,hour:n=!1,...r}=t,l=f.$(!1),x=f.$(new Date),c=f.$(null),h=f.$(0),u=f.$(0),w=()=>A(e)===!0,m=new Date,v=`${m.getFullYear()}-${String(m.getMonth()+1).padStart(2,"0")}-${String(m.getDate()).padStart(2,"0")}`,H=(i)=>{let b=i.getFullYear(),C=String(i.getMonth()+1).padStart(2,"0"),V=String(i.getDate()).padStart(2,"0");return`${b}-${C}-${V}`},Wo=(i)=>{let b=H(i),C=A(o);if(w())if(!C?.start||C.start&&C.end){if(typeof o==="function")o({start:b,end:null,...n&&{startHour:h()}})}else{let V=C.start;if(typeof o==="function"){let _=b{let i=A(o);if(!i)return"";if(typeof i==="string"){if(n&&i.includes("T"))return i.replace("T"," ");return i}if(i.start&&i.end){let b=n&&i.startHour?`${i.start} ${String(i.startHour).padStart(2,"0")}:00`:i.start,C=n&&i.endHour?`${i.end} ${String(i.endHour).padStart(2,"0")}:00`:i.end;return`${b} - ${C}`}if(i.start)return`${n&&i.startHour?`${i.start} ${String(i.startHour).padStart(2,"0")}:00`:i.start}...`;return""}),Lo=(i)=>{let b=x();x(new Date(b.getFullYear(),b.getMonth()+i,1))},To=(i)=>{let b=x();x(new Date(b.getFullYear()+i,b.getMonth(),1))},wt=({value:i,onChange:b})=>{return f.$html("div",{class:"flex-1"},[f.$html("div",{class:"flex gap-2 items-center"},[f.$html("input",{type:"range",min:0,max:23,value:i,class:"range range-xs flex-1",oninput:(C)=>{let V=parseInt(C.target.value);b(V)}}),f.$html("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(A(i)).padStart(2,"0")+":00")])])};return f.$html("div",{class:"relative w-full"},[N({label:a,placeholder:s||(w()?"Seleccionar rango...":"Seleccionar fecha..."),value:$o,readonly:!0,icon:f.$html("img",{src:K,class:"opacity-40"}),onclick:(i)=>{i.stopPropagation(),l(!l())},...r}),f.$if(l,()=>f.$html("div",{class:"absolute left-0 mt-2 p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box z-[100] w-80 select-none",onclick:(i)=>i.stopPropagation()},[f.$html("div",{class:"flex justify-between items-center mb-4 gap-1"},[f.$html("div",{class:"flex gap-0.5"},[f.$html("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>To(-1)},f.$html("img",{src:bt,class:"opacity-40"})),f.$html("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>Lo(-1)},f.$html("img",{src:gt,class:"opacity-40"}))]),f.$html("span",{class:"font-bold uppercase flex-1 text-center"},[()=>x().toLocaleString("es-ES",{month:"short",year:"numeric"})]),f.$html("div",{class:"flex gap-0.5"},[f.$html("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>Lo(1)},f.$html("img",{src:ut,class:"opacity-40"})),f.$html("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>To(1)},f.$html("img",{src:pt,class:"opacity-40"}))])]),f.$html("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>c(null)},[...["L","M","X","J","V","S","D"].map((i)=>f.$html("div",{class:"text-[10px] opacity-40 font-bold text-center"},i)),()=>{let i=x(),b=i.getFullYear(),C=i.getMonth(),V=new Date(b,C,1).getDay(),_=V===0?6:V-1,qo=new Date(b,C+1,0).getDate(),St=[];for(let Q=0;Q<_;Q++)St.push(f.$html("div"));for(let Q=1;Q<=qo;Q++){let Go=new Date(b,C,Q),k=H(Go);St.push(f.$html("button",{type:"button",class:()=>{let I=A(o),Ct=c(),_o=typeof I==="string"?I.split("T")[0]===k:I?.start===k,te=I?.end===k,yt=!1;if(w()&&I?.start){let Ut=I.start;if(!I.end&&Ct)yt=k>Ut&&k<=Ct||k=Ct;else if(I.end)yt=k>Ut&&k{if(w())c(k)},onclick:()=>Wo(Go)},[Q.toString()]))}return St}]),n?f.$html("div",{class:"mt-3 pt-2 border-t border-base-300"},[w()?f.$html("div",{class:"flex gap-4"},[wt({value:h,onChange:(i)=>{h(i);let b=A(o);if(b?.start)o({...b,startHour:i})}}),wt({value:u,onChange:(i)=>{u(i);let b=A(o);if(b?.end)o({...b,endHour:i})}})]):wt({value:h,onChange:(i)=>{h(i);let b=A(o);if(b&&typeof b==="string"&&b.includes("-"))o(b.split("T")[0]+"T"+String(i).padStart(2,"0")+":00:00")}})]):null])),f.$if(l,()=>f.$html("div",{class:"fixed inset-0 z-[90]",onclick:()=>l(!1)}))])};var Kt={};g(Kt,{Drawer:()=>Jt});var T=p("sigpro");var Jt=(t)=>T.$html("div",{class:d("drawer",t.class)},[T.$html("input",{id:t.id,type:"checkbox",class:"drawer-toggle",checked:t.open}),T.$html("div",{class:"drawer-content"},t.content),T.$html("div",{class:"drawer-side"},[T.$html("label",{for:t.id,class:"drawer-overlay",onclick:()=>t.open?.(!1)}),T.$html("div",{class:"min-h-full bg-base-200 w-80"},t.side)])]);var Pt={};g(Pt,{Dropdown:()=>Xt});var Bt=p("sigpro");var Xt=(t,o)=>{let{label:e,icon:a,...s}=t;return Bt.$html("div",{...s,class:()=>`dropdown ${A(t.class)||t.class||""}`},[Bt.$html("div",{tabindex:0,role:"button",class:"btn m-1 flex items-center gap-2"},[a?typeof a==="function"?a():a:null,e?typeof e==="function"?e():e:null]),Bt.$html("ul",{tabindex:0,class:"dropdown-content z-[50] menu p-2 shadow bg-base-100 rounded-box min-w-max border border-base-300"},[typeof o==="function"?o():o])])};var Ot={};g(Ot,{Fab:()=>Zt});var $=p("sigpro");var Zt=(t)=>{let{icon:o,label:e,actions:a=[],position:s="bottom-6 right-6",...n}=t;return $.$html("div",{...n,class:()=>`fab fixed ${A(s)} flex flex-col-reverse items-end gap-3 z-[100] ${t.class||""}`},[$.$html("div",{tabindex:0,role:"button",class:"btn btn-lg btn-circle btn-primary shadow-2xl"},[o?typeof o==="function"?o():o:null,!o&&e?e:null]),...A(a).map((r)=>$.$html("div",{class:"flex items-center gap-3 transition-all duration-300"},[r.label?$.$html("span",{class:"badge badge-ghost shadow-sm whitespace-nowrap"},r.label):null,$.$html("button",{type:"button",class:`btn btn-circle shadow-lg ${r.class||""}`,onclick:(l)=>{l.stopPropagation(),r.onclick?.(l)}},[r.icon?typeof r.icon==="function"?r.icon():r.icon:r.text||""])]))])};var qt={};g(qt,{Fieldset:()=>$t});var Wt=p("sigpro");var $t=(t,o)=>Wt.$html("fieldset",{...t,class:d("fieldset bg-base-200 border border-base-300 p-4 rounded-lg",t.class)},[()=>{let e=A(t.legend);return e?Wt.$html("legend",{class:"fieldset-legend font-bold"},[e]):null},o]);var to={};g(to,{Fileinput:()=>_t});var B=p("sigpro");var _t=(t)=>{let{tooltip:o,max:e=2,accept:a="*",onSelect:s}=t,n=B.$([]),r=B.$(!1),l=B.$(null),x=e*1024*1024,c=(u)=>{let w=Array.from(u);if(l(null),w.find((v)=>v.size>x)){l(`Máx ${e}MB`);return}n([...n(),...w]),s?.(n())},h=(u)=>{let w=n().filter((m,v)=>v!==u);n(w),s?.(w)};return B.$html("fieldset",{class:"fieldset w-full p-0"},[B.$html("div",{class:()=>`w-full ${o?"tooltip tooltip-top before:z-50 after:z-50":""}`,"data-tip":o},[B.$html("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 + ${r()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"} + `,ondragover:(u)=>{u.preventDefault(),r(!0)},ondragleave:()=>r(!1),ondrop:(u)=>{u.preventDefault(),r(!1),c(u.dataTransfer.files)}},[B.$html("div",{class:"flex items-center gap-3 w-full"},[B.$html("img",{src:xt,class:"w-5 h-5 opacity-50 shrink-0"}),B.$html("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),B.$html("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${e}MB`)]),B.$html("input",{type:"file",multiple:!0,accept:a,class:"hidden",onchange:(u)=>c(u.target.files)})])]),()=>l()?B.$html("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},l()):null,B.$if(()=>n().length>0,()=>B.$html("ul",{class:"mt-2 space-y-1"},[B.$for(n,(u,w)=>B.$html("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[B.$html("div",{class:"flex items-center gap-2 truncate"},[B.$html("span",{class:"opacity-50"},"\uD83D\uDCC4"),B.$html("span",{class:"truncate font-medium max-w-[200px]"},u.name),B.$html("span",{class:"text-[9px] opacity-40"},`(${(u.size/1024).toFixed(0)} KB)`)]),B.$html("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(m)=>{m.preventDefault(),m.stopPropagation(),h(w)}},[B.$html("img",{src:ct,class:"w-3 h-3 opacity-70"})])]),(u)=>u.name+u.lastModified)]))])};var ao={};g(ao,{Indicator:()=>eo});var oo=p("sigpro");var eo=(t,o)=>oo.$html("div",{class:d("indicator",t.class)},[o,oo.$html("span",{class:d("indicator-item badge",t.badgeClass)},t.badge)]);var so={};g(so,{List:()=>Ao});var F=p("sigpro");var Ao=(t)=>{let{items:o,header:e,render:a,keyFn:s,class:n}=t;return F.$html("ul",{class:d("list bg-base-100 rounded-box shadow-md",n)},[F.$if(e,()=>F.$html("li",{class:"p-4 pb-2 text-xs opacity-60 tracking-wide"},[A(e)])),F.$for(o,(r,l)=>F.$html("li",{class:"list-row"},[a(r,l)]),s)])};var no={};g(no,{Loading:()=>ro});var et=p("sigpro"),ro=(t)=>{return et.$if(t.$show,()=>et.$html("div",{class:"fixed inset-0 z-[100] flex items-center justify-center backdrop-blur-sm bg-base-100/30"},[et.$html("span",{class:"loading loading-spinner loading-lg text-primary"})]))};var co={};g(co,{Menu:()=>lo});var E=p("sigpro");var lo=(t)=>{let o=(e)=>E.$for(()=>e||[],(a)=>E.$html("li",{},[a.children?E.$html("details",{open:a.open},[E.$html("summary",{},[a.icon&&E.$html("span",{class:"mr-2"},a.icon),a.label]),E.$html("ul",{},o(a.children))]):E.$html("a",{class:()=>A(a.active)?"active":"",onclick:a.onclick},[a.icon&&E.$html("span",{class:"mr-2"},a.icon),a.label])]),(a,s)=>a.label||s);return E.$html("ul",{...t,class:d("menu bg-base-200 rounded-box",t.class)},o(t.items))};var mo={};g(mo,{Modal:()=>io});var M=p("sigpro");var io=(t,o)=>{let{title:e,buttons:a,open:s,...n}=t,r=()=>s(!1);return M.$if(s,()=>M.$html("dialog",{...n,class:"modal modal-open"},[M.$html("div",{class:"modal-box"},[e?M.$html("h3",{class:"text-lg font-bold mb-4"},e):null,typeof o==="function"?o():o,M.$html("div",{class:"modal-action flex gap-2"},[...(Array.isArray(a)?a:[a]).filter(Boolean),L({onclick:r},D("close")())])]),M.$html("form",{method:"dialog",class:"modal-backdrop",onclick:(l)=>(l.preventDefault(),r())},[M.$html("button",{},"close")])]))};var go={};g(go,{Navbar:()=>fo});var Xo=p("sigpro");var fo=(t,o)=>Xo.$html("div",{...t,class:d("navbar bg-base-100 shadow-sm px-4",t.class)},o);var bo={};g(bo,{Radio:()=>uo});var at=p("sigpro");var uo=(t)=>{let{label:o,tooltip:e,value:a,...s}=t,n=at.$html("input",{...s,type:"radio",class:d("radio",t.class),checked:()=>A(a)===t.value,disabled:()=>A(t.disabled),onclick:()=>typeof a==="function"&&a(t.value)});if(!o&&!e)return n;let r=at.$html("label",{class:"label cursor-pointer justify-start gap-3"},[n,o?at.$html("span",{class:"label-text"},o):null]);return e?at.$html("div",{class:"tooltip","data-tip":e},r):r};var xo={};g(xo,{Range:()=>po});var At=p("sigpro");var po=(t)=>{let{label:o,tooltip:e,value:a,...s}=t,n=At.$html("input",{...s,type:"range",class:d("range",t.class),value:a,disabled:()=>A(t.disabled)});if(!o&&!e)return n;let r=At.$html("div",{class:"flex flex-col gap-2"},[o?At.$html("span",{class:"label-text"},o):null,n]);return e?At.$html("div",{class:"tooltip","data-tip":e},r):r};var vo={};g(vo,{Rating:()=>Bo});var ho=p("sigpro");var Bo=(t)=>{let{value:o,count:e=5,mask:a="mask-star",readonly:s=!1,...n}=t,r=`rating-${Math.random().toString(36).slice(2,7)}`;return ho.$html("div",{...n,class:()=>`rating ${A(s)?"pointer-events-none":""} ${t.class||""}`},Array.from({length:A(e)},(l,x)=>{let c=x+1;return ho.$html("input",{type:"radio",name:r,class:`mask ${a}`,"aria-label":`${c} star`,checked:()=>Math.round(A(o))===c,onchange:()=>{if(!A(s)&&typeof o==="function")o(c)}})}))};var So={};g(So,{Select:()=>wo});var G=p("sigpro");var wo=(t)=>{let{label:o,options:e,value:a,...s}=t,n=G.$html("select",{...s,class:d("select select-bordered w-full",t.class),value:a},G.$for(()=>A(e)||[],(r)=>G.$html("option",{value:r.value,$selected:()=>String(A(a))===String(r.value)},r.label),(r)=>r.value));if(!o)return n;return G.$html("label",{class:"fieldset-label flex flex-col gap-1"},[G.$html("span",{},o),n])};var yo={};g(yo,{Stack:()=>Co});var Po=p("sigpro");var Co=(t,o)=>Po.$html("div",{...t,class:d("stack",t.class)},o);var Ro={};g(Ro,{Stat:()=>Uo});var q=p("sigpro");var Uo=(t)=>q.$html("div",{...t,class:d("stat",t.class)},[t.icon&&q.$html("div",{class:"stat-figure text-secondary"},t.icon),t.label&&q.$html("div",{class:"stat-title"},t.label),q.$html("div",{class:"stat-value"},()=>A(t.value)??t.value),t.desc&&q.$html("div",{class:"stat-desc"},t.desc)]);var ko={};g(ko,{Swap:()=>Do});var st=p("sigpro");var Do=(t)=>st.$html("label",{class:d("swap",t.class)},[st.$html("input",{type:"checkbox",checked:t.value}),st.$html("div",{class:"swap-on"},t.on),st.$html("div",{class:"swap-off"},t.off)]);var Yo={};g(Yo,{Table:()=>Eo});var S=p("sigpro");var Eo=(t)=>{let{items:o=[],columns:e=[],keyFn:a,zebra:s=!1,pinRows:n=!1,empty:r=D("nodata")(),...l}=t;return S.$html("div",{class:"overflow-x-auto w-full bg-base-100 rounded-box border border-base-300"},[S.$html("table",{...l,class:()=>d("table",`${A(s)?"table-zebra":""} ${A(n)?"table-pin-rows":""} ${t.class||""}`)},[S.$html("thead",{},[S.$html("tr",{},e.map((c)=>S.$html("th",{class:c.class||""},c.label)))]),S.$html("tbody",{},[S.$for(o,(c,h)=>{return S.$html("tr",{class:"hover"},e.map((u)=>{let w=()=>{if(u.render)return u.render(c,h);let m=c[u.key];return A(m)};return S.$html("td",{class:u.class||""},[w])}))},a||((c,h)=>c.id||h)),S.$if(()=>A(o).length===0,()=>S.$html("tr",{},[S.$html("td",{colspan:e.length,class:"text-center p-10 opacity-50"},[A(r)])]))]),S.$if(()=>e.some((c)=>c.footer),()=>S.$html("tfoot",{},[S.$html("tr",{},e.map((c)=>S.$html("th",{},c.footer||"")))]))])])};var Io={};g(Io,{Tabs:()=>Vo});var z=p("sigpro");var Vo=(t)=>{let{items:o,...e}=t,a=typeof o==="function"?o:()=>o||[];return z.$html("div",{...e,class:"flex flex-col gap-4 w-full"},[z.$html("div",{role:"tablist",class:d("tabs tabs-box",t.class)},z.$for(a,(s)=>z.$html("a",{role:"tab",class:()=>d("tab",A(s.active)&&"tab-active",A(s.disabled)&&"tab-disabled",s.tip&&"tooltip"),"data-tip":s.tip,onclick:(n)=>!A(s.disabled)&&s.onclick?.(n)},s.label),(s)=>s.label)),()=>{let s=a().find((r)=>A(r.active));if(!s)return null;let n=A(s.content);return z.$html("div",{class:"p-4"},[typeof n==="function"?n():n])}])};var Ho={};g(Ho,{Timeline:()=>Mo});var Y=p("sigpro");var Mo=(t)=>{let{items:o=[],vertical:e=!0,compact:a=!1,...s}=t,n={info:X,success:P,warning:O,error:Z};return Y.$html("ul",{...s,class:()=>`timeline ${A(e)?"timeline-vertical":"timeline-horizontal"} ${A(a)?"timeline-compact":""} ${t.class||""}`},[Y.$for(o,(r,l)=>{let x=l===0,c=l===A(o).length-1,h=r.type||"success",u=(w)=>typeof w==="function"?w():w;return Y.$html("li",{class:"flex-1"},[!x?Y.$html("hr",{class:r.completed?"bg-primary":""}):null,Y.$html("div",{class:"timeline-start"},[u(r.title)]),Y.$html("div",{class:"timeline-middle"},[Y.$html("img",{src:n[h]||r.icon||n.success,class:"w-4 h-4 object-contain mx-1",alt:h})]),Y.$html("div",{class:"timeline-end timeline-box shadow-sm"},[u(r.detail)]),!c?Y.$html("hr",{class:r.completed?"bg-primary":""}):null])},(r,l)=>r.id||l)])};var Qo={};g(Qo,{Toast:()=>Fo});var J=p("sigpro");var Fo=(t,o="alert-success",e=3500)=>{let a=document.getElementById("sigpro-toast-container");if(!a)a=J.$html("div",{id:"sigpro-toast-container",class:"fixed top-0 right-0 z-[9999] p-4 flex flex-col gap-2 pointer-events-none"}),document.body.appendChild(a);let s=J.$html("div",{style:"display: contents"});a.appendChild(s);let n,r=()=>{clearTimeout(n);let c=s.firstElementChild;if(c&&!c.classList.contains("opacity-0"))c.classList.add("translate-x-full","opacity-0"),setTimeout(()=>{if(x.destroy(),s.remove(),!a.hasChildNodes())a.remove()},300);else x.destroy(),s.remove()},x=J.$mount(()=>{let c=J.$html("div",{class:`alert alert-soft ${o} shadow-lg transition-all duration-300 translate-x-10 opacity-0 pointer-events-auto`},[J.$html("span",{},[typeof t==="function"?t():t]),L({class:"btn-xs btn-circle btn-ghost",onclick:r},"✕")]);return requestAnimationFrame(()=>c.classList.remove("translate-x-10","opacity-0")),c},s);if(e>0)n=setTimeout(r,e);return r};var jo={};g(jo,{Tooltip:()=>No});var Zo=p("sigpro");var No=(t,o)=>Zo.$html("div",{...t,class:d("tooltip",t.class),"data-tip":t.tip},o);var Oo={...kt,...Yt,...Mt,...Ft,...Qt,...jt,...Tt,...zt,...Kt,...Pt,...Ot,...qt,...to,...ao,...Vt,...so,...no,...co,...mo,...go,...bo,...xo,...vo,...So,...yo,...Ro,...ko,...Yo,...Io,...Ho,...Qo,...jo},ne={...Oo,install:(t=window)=>{Object.entries(Oo).forEach(([o,e])=>{t[o]=e}),console.log("\uD83D\uDE80 SigproUI")}};var le={...vt,Icons:ht,Utils:rt,tt:D,install:(t=typeof window<"u"?window:{})=>{Object.entries(vt).forEach(([o,e])=>{t[o]=e}),t.Icons=ht,t.Utils=rt,t.tt=D,console.log("\uD83C\uDF1F SigproUI")}},ie=le;})();